unleash-server 7.2.3 → 7.4.0

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 (1324) hide show
  1. package/README.md +33 -33
  2. package/dist/lib/addons/datadog.js +1 -1
  3. package/dist/lib/addons/datadog.js.map +1 -1
  4. package/dist/lib/addons/datadog.test.js +11 -11
  5. package/dist/lib/addons/datadog.test.js.map +1 -1
  6. package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -1
  7. package/dist/lib/addons/feature-event-formatter-md-events.js +11 -1
  8. package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -1
  9. package/dist/lib/addons/feature-event-formatter-md.test.js +8 -6
  10. package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
  11. package/dist/lib/addons/new-relic-definition.js +1 -1
  12. package/dist/lib/addons/new-relic-definition.js.map +1 -1
  13. package/dist/lib/addons/new-relic.js +4 -4
  14. package/dist/lib/addons/new-relic.js.map +1 -1
  15. package/dist/lib/addons/new-relic.test.js +4 -4
  16. package/dist/lib/addons/new-relic.test.js.map +1 -1
  17. package/dist/lib/addons/slack-app-definition.d.ts.map +1 -1
  18. package/dist/lib/addons/slack-app-definition.js +3 -1
  19. package/dist/lib/addons/slack-app-definition.js.map +1 -1
  20. package/dist/lib/addons/slack-app.test.js +1 -2
  21. package/dist/lib/addons/slack-app.test.js.map +1 -1
  22. package/dist/lib/addons/slack.js +1 -1
  23. package/dist/lib/addons/slack.js.map +1 -1
  24. package/dist/lib/addons/slack.test.js +1 -1
  25. package/dist/lib/addons/slack.test.js.map +1 -1
  26. package/dist/lib/addons/teams-definition.d.ts.map +1 -1
  27. package/dist/lib/addons/teams-definition.js +3 -1
  28. package/dist/lib/addons/teams-definition.js.map +1 -1
  29. package/dist/lib/addons/teams.js +1 -1
  30. package/dist/lib/addons/teams.js.map +1 -1
  31. package/dist/lib/addons/teams.test.js +1 -1
  32. package/dist/lib/addons/teams.test.js.map +1 -1
  33. package/dist/lib/addons/webhook-definition.d.ts.map +1 -1
  34. package/dist/lib/addons/webhook-definition.js +4 -2
  35. package/dist/lib/addons/webhook-definition.js.map +1 -1
  36. package/dist/lib/addons/webhook.js +1 -1
  37. package/dist/lib/addons/webhook.js.map +1 -1
  38. package/dist/lib/addons/webhook.test.js +3 -3
  39. package/dist/lib/addons/webhook.test.js.map +1 -1
  40. package/dist/lib/app.js +2 -2
  41. package/dist/lib/app.js.map +1 -1
  42. package/dist/lib/app.test.js +2 -2
  43. package/dist/lib/app.test.js.map +1 -1
  44. package/dist/lib/create-config.d.ts.map +1 -1
  45. package/dist/lib/create-config.js +8 -0
  46. package/dist/lib/create-config.js.map +1 -1
  47. package/dist/lib/create-config.test.js +9 -2
  48. package/dist/lib/create-config.test.js.map +1 -1
  49. package/dist/lib/db/access-store.d.ts +1 -2
  50. package/dist/lib/db/access-store.d.ts.map +1 -1
  51. package/dist/lib/db/access-store.js +2 -3
  52. package/dist/lib/db/access-store.js.map +1 -1
  53. package/dist/lib/db/access-store.test.js +5 -1
  54. package/dist/lib/db/access-store.test.js.map +1 -1
  55. package/dist/lib/db/api-token-store.d.ts +1 -2
  56. package/dist/lib/db/api-token-store.d.ts.map +1 -1
  57. package/dist/lib/db/api-token-store.js +1 -2
  58. package/dist/lib/db/api-token-store.js.map +1 -1
  59. package/dist/lib/db/client-applications-store.d.ts.map +1 -1
  60. package/dist/lib/db/client-applications-store.js +32 -2
  61. package/dist/lib/db/client-applications-store.js.map +1 -1
  62. package/dist/lib/db/favorite-features-store.d.ts +1 -3
  63. package/dist/lib/db/favorite-features-store.d.ts.map +1 -1
  64. package/dist/lib/db/favorite-features-store.js +1 -3
  65. package/dist/lib/db/favorite-features-store.js.map +1 -1
  66. package/dist/lib/db/favorite-projects-store.d.ts +2 -3
  67. package/dist/lib/db/favorite-projects-store.d.ts.map +1 -1
  68. package/dist/lib/db/favorite-projects-store.js +20 -4
  69. package/dist/lib/db/favorite-projects-store.js.map +1 -1
  70. package/dist/lib/db/feature-environment-store.d.ts +1 -2
  71. package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
  72. package/dist/lib/db/feature-environment-store.js +1 -2
  73. package/dist/lib/db/feature-environment-store.js.map +1 -1
  74. package/dist/lib/db/feature-type-store.d.ts +1 -2
  75. package/dist/lib/db/feature-type-store.d.ts.map +1 -1
  76. package/dist/lib/db/feature-type-store.js +1 -2
  77. package/dist/lib/db/feature-type-store.js.map +1 -1
  78. package/dist/lib/db/project-stats-store.d.ts +1 -2
  79. package/dist/lib/db/project-stats-store.d.ts.map +1 -1
  80. package/dist/lib/db/project-stats-store.js +1 -2
  81. package/dist/lib/db/project-stats-store.js.map +1 -1
  82. package/dist/lib/db/public-signup-token-store.d.ts +1 -2
  83. package/dist/lib/db/public-signup-token-store.d.ts.map +1 -1
  84. package/dist/lib/db/public-signup-token-store.js +1 -2
  85. package/dist/lib/db/public-signup-token-store.js.map +1 -1
  86. package/dist/lib/db/reset-token-store.d.ts +2 -3
  87. package/dist/lib/db/reset-token-store.d.ts.map +1 -1
  88. package/dist/lib/db/reset-token-store.js +31 -6
  89. package/dist/lib/db/reset-token-store.js.map +1 -1
  90. package/dist/lib/db/user-feedback-store.d.ts +1 -1
  91. package/dist/lib/db/user-feedback-store.d.ts.map +1 -1
  92. package/dist/lib/db/user-feedback-store.js +1 -1
  93. package/dist/lib/db/user-feedback-store.js.map +1 -1
  94. package/dist/lib/db/user-splash-store.d.ts +1 -1
  95. package/dist/lib/db/user-splash-store.d.ts.map +1 -1
  96. package/dist/lib/db/user-splash-store.js +1 -1
  97. package/dist/lib/db/user-splash-store.js.map +1 -1
  98. package/dist/lib/default-custom-auth-deny-all.js +1 -1
  99. package/dist/lib/default-custom-auth-deny-all.js.map +1 -1
  100. package/dist/lib/domain/project-health/project-health.js +1 -1
  101. package/dist/lib/domain/project-health/project-health.js.map +1 -1
  102. package/dist/lib/error/unleash-error.test.js +4 -1
  103. package/dist/lib/error/unleash-error.test.js.map +1 -1
  104. package/dist/lib/events/index.d.ts +6 -1
  105. package/dist/lib/events/index.d.ts.map +1 -1
  106. package/dist/lib/events/index.js +10 -0
  107. package/dist/lib/events/index.js.map +1 -1
  108. package/dist/lib/features/access/createAccessService.d.ts +5 -1
  109. package/dist/lib/features/access/createAccessService.d.ts.map +1 -1
  110. package/dist/lib/features/access/createAccessService.js +2 -2
  111. package/dist/lib/features/access/createAccessService.js.map +1 -1
  112. package/dist/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.js.map +1 -1
  113. package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.d.ts +1 -2
  114. package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.d.ts.map +1 -1
  115. package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.js +1 -2
  116. package/dist/lib/features/client-feature-toggles/client-feature-toggle-service.js.map +1 -1
  117. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
  118. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +4 -2
  119. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
  120. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js +1 -1
  121. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js.map +1 -1
  122. package/dist/lib/features/client-feature-toggles/tests/client-feature-toggles.e2e.test.js +1 -1
  123. package/dist/lib/features/client-feature-toggles/tests/client-feature-toggles.e2e.test.js.map +1 -1
  124. package/dist/lib/features/context/context-field-store.d.ts +1 -3
  125. package/dist/lib/features/context/context-field-store.d.ts.map +1 -1
  126. package/dist/lib/features/context/context-field-store.js +1 -3
  127. package/dist/lib/features/context/context-field-store.js.map +1 -1
  128. package/dist/lib/features/context/context-service.d.ts +1 -3
  129. package/dist/lib/features/context/context-service.d.ts.map +1 -1
  130. package/dist/lib/features/context/context-service.js +2 -4
  131. package/dist/lib/features/context/context-service.js.map +1 -1
  132. package/dist/lib/features/context/context.d.ts +1 -2
  133. package/dist/lib/features/context/context.d.ts.map +1 -1
  134. package/dist/lib/features/context/context.js +5 -6
  135. package/dist/lib/features/context/context.js.map +1 -1
  136. package/dist/lib/features/dependent-features/fake-dependent-features-read-model.d.ts +1 -1
  137. package/dist/lib/features/dependent-features/fake-dependent-features-read-model.d.ts.map +1 -1
  138. package/dist/lib/features/dependent-features/fake-dependent-features-read-model.js +1 -1
  139. package/dist/lib/features/dependent-features/fake-dependent-features-read-model.js.map +1 -1
  140. package/dist/lib/features/environments/environments-controller.d.ts +1 -2
  141. package/dist/lib/features/environments/environments-controller.d.ts.map +1 -1
  142. package/dist/lib/features/environments/environments-controller.js +2 -3
  143. package/dist/lib/features/environments/environments-controller.js.map +1 -1
  144. package/dist/lib/features/events/event-created-by-migration.test.js +3 -3
  145. package/dist/lib/features/events/event-created-by-migration.test.js.map +1 -1
  146. package/dist/lib/features/events/event-search-controller.js +1 -1
  147. package/dist/lib/features/events/event-search-controller.js.map +1 -1
  148. package/dist/lib/features/events/event-service.test.js.map +1 -1
  149. package/dist/lib/features/events/event-store.d.ts.map +1 -1
  150. package/dist/lib/features/events/event-store.js +8 -6
  151. package/dist/lib/features/events/event-store.js.map +1 -1
  152. package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js +1 -1
  153. package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js.map +1 -1
  154. package/dist/lib/features/export-import-toggles/export-import-controller.d.ts +0 -1
  155. package/dist/lib/features/export-import-toggles/export-import-controller.d.ts.map +1 -1
  156. package/dist/lib/features/export-import-toggles/export-import-controller.js +5 -6
  157. package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
  158. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.d.ts +1 -1
  159. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.d.ts.map +1 -1
  160. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.js +1 -1
  161. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-read-model.js.map +1 -1
  162. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js +1 -1
  163. package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js.map +1 -1
  164. package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.d.ts.map +1 -1
  165. package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js +3 -2
  166. package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js.map +1 -1
  167. package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js +4 -1
  168. package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js.map +1 -1
  169. package/dist/lib/features/feature-links/fake-feature-links-read-model.d.ts +1 -1
  170. package/dist/lib/features/feature-links/fake-feature-links-read-model.d.ts.map +1 -1
  171. package/dist/lib/features/feature-links/fake-feature-links-read-model.js +1 -1
  172. package/dist/lib/features/feature-links/fake-feature-links-read-model.js.map +1 -1
  173. package/dist/lib/features/feature-links/feature-link-service.js +2 -2
  174. package/dist/lib/features/feature-links/feature-link-service.js.map +1 -1
  175. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js +10 -2
  176. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js.map +1 -1
  177. package/dist/lib/features/feature-search/fake-feature-search-store.d.ts +1 -1
  178. package/dist/lib/features/feature-search/fake-feature-search-store.d.ts.map +1 -1
  179. package/dist/lib/features/feature-search/fake-feature-search-store.js +1 -1
  180. package/dist/lib/features/feature-search/fake-feature-search-store.js.map +1 -1
  181. package/dist/lib/features/feature-search/feature-search-service.d.ts +1 -2
  182. package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
  183. package/dist/lib/features/feature-search/feature-search-service.js +1 -2
  184. package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
  185. package/dist/lib/features/feature-search/feature-search-store.d.ts +1 -3
  186. package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
  187. package/dist/lib/features/feature-search/feature-search-store.js +1 -3
  188. package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
  189. package/dist/lib/features/feature-search/feature.search.e2e.test.js +1 -1
  190. package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
  191. package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js +1 -1
  192. package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js.map +1 -1
  193. package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts +3 -4
  194. package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts.map +1 -1
  195. package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.js +2 -3
  196. package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.js.map +1 -1
  197. package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts.map +1 -1
  198. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +1 -12
  199. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  200. package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.d.ts +1 -1
  201. package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.d.ts.map +1 -1
  202. package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.js +1 -1
  203. package/dist/lib/features/feature-toggle/fake-feature-collaborators-read-model.js.map +1 -1
  204. package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts +5 -5
  205. package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts.map +1 -1
  206. package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js +6 -6
  207. package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js.map +1 -1
  208. package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.d.ts +8 -8
  209. package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.d.ts.map +1 -1
  210. package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.js +10 -12
  211. package/dist/lib/features/feature-toggle/fakes/fake-feature-toggle-store.js.map +1 -1
  212. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts +1 -1
  213. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts.map +1 -1
  214. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js +1 -1
  215. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js.map +1 -1
  216. package/dist/lib/features/feature-toggle/feature-toggle-controller.d.ts.map +1 -1
  217. package/dist/lib/features/feature-toggle/feature-toggle-controller.js +4 -3
  218. package/dist/lib/features/feature-toggle/feature-toggle-controller.js.map +1 -1
  219. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts +3 -10
  220. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
  221. package/dist/lib/features/feature-toggle/feature-toggle-service.js +10 -26
  222. package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
  223. package/dist/lib/features/feature-toggle/feature-toggle-store.d.ts.map +1 -1
  224. package/dist/lib/features/feature-toggle/feature-toggle-store.js +7 -3
  225. package/dist/lib/features/feature-toggle/feature-toggle-store.js.map +1 -1
  226. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts +1 -3
  227. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
  228. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +1 -3
  229. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
  230. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts +0 -1
  231. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts.map +1 -1
  232. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js +0 -1
  233. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js.map +1 -1
  234. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +1 -1
  235. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
  236. package/dist/lib/features/feature-toggle/tests/feature-toggle-store.e2e.test.js +1 -1
  237. package/dist/lib/features/feature-toggle/tests/feature-toggle-store.e2e.test.js.map +1 -1
  238. package/dist/lib/features/feature-toggle/tests/feature-toggle-strategies-store.e2e.test.js +2 -2
  239. package/dist/lib/features/feature-toggle/tests/feature-toggle-strategies-store.e2e.test.js.map +1 -1
  240. package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js +3 -3
  241. package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js.map +1 -1
  242. package/dist/lib/features/frontend-api/frontend-api-controller.js +2 -2
  243. package/dist/lib/features/frontend-api/frontend-api-controller.js.map +1 -1
  244. package/dist/lib/features/frontend-api/frontend-api-repository.d.ts +1 -3
  245. package/dist/lib/features/frontend-api/frontend-api-repository.d.ts.map +1 -1
  246. package/dist/lib/features/frontend-api/frontend-api-repository.js +6 -6
  247. package/dist/lib/features/frontend-api/frontend-api-repository.js.map +1 -1
  248. package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
  249. package/dist/lib/features/frontend-api/frontend-api-service.js +3 -1
  250. package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
  251. package/dist/lib/features/frontend-api/frontend-api-service.test.js +2 -2
  252. package/dist/lib/features/frontend-api/frontend-api.concurrency.e2e.test.js +1 -1
  253. package/dist/lib/features/frontend-api/frontend-api.concurrency.e2e.test.js.map +1 -1
  254. package/dist/lib/features/frontend-api/global-frontend-api-cache.d.ts +0 -2
  255. package/dist/lib/features/frontend-api/global-frontend-api-cache.d.ts.map +1 -1
  256. package/dist/lib/features/frontend-api/global-frontend-api-cache.js +0 -7
  257. package/dist/lib/features/frontend-api/global-frontend-api-cache.js.map +1 -1
  258. package/dist/lib/features/frontend-api/proxy-repository.js +1 -1
  259. package/dist/lib/features/frontend-api/proxy-repository.js.map +1 -1
  260. package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
  261. package/dist/lib/features/instance-stats/createInstanceStatsService.js +8 -2
  262. package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
  263. package/dist/lib/features/instance-stats/getEdgeInstances.d.ts +6 -0
  264. package/dist/lib/features/instance-stats/getEdgeInstances.d.ts.map +1 -0
  265. package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.d.ts +2 -0
  266. package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.d.ts.map +1 -0
  267. package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js +146 -0
  268. package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js.map +1 -0
  269. package/dist/lib/features/instance-stats/getEdgeInstances.js +48 -0
  270. package/dist/lib/features/instance-stats/getEdgeInstances.js.map +1 -0
  271. package/dist/lib/features/instance-stats/getProductionChanges.e2e.test.js +2 -2
  272. package/dist/lib/features/instance-stats/getProductionChanges.e2e.test.js.map +1 -1
  273. package/dist/lib/features/instance-stats/getReadOnlyUsers.d.ts +5 -0
  274. package/dist/lib/features/instance-stats/getReadOnlyUsers.d.ts.map +1 -0
  275. package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.d.ts +2 -0
  276. package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.d.ts.map +1 -0
  277. package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.js +36 -0
  278. package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.js.map +1 -0
  279. package/dist/lib/features/instance-stats/getReadOnlyUsers.js +24 -0
  280. package/dist/lib/features/instance-stats/getReadOnlyUsers.js.map +1 -0
  281. package/dist/lib/features/instance-stats/instance-stats-service.d.ts +6 -2
  282. package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
  283. package/dist/lib/features/instance-stats/instance-stats-service.js +9 -4
  284. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
  285. package/dist/lib/features/instance-stats/instance-stats-service.test.js +9 -6
  286. package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -1
  287. package/dist/lib/features/integration-events/integration-events-service.d.ts +1 -3
  288. package/dist/lib/features/integration-events/integration-events-service.d.ts.map +1 -1
  289. package/dist/lib/features/integration-events/integration-events-service.js +1 -3
  290. package/dist/lib/features/integration-events/integration-events-service.js.map +1 -1
  291. package/dist/lib/features/maintenance/maintenance-controller.d.ts +1 -1
  292. package/dist/lib/features/maintenance/maintenance-controller.d.ts.map +1 -1
  293. package/dist/lib/features/maintenance/maintenance-controller.js +1 -1
  294. package/dist/lib/features/maintenance/maintenance-controller.js.map +1 -1
  295. package/dist/lib/features/maintenance/maintenance-service.js +1 -1
  296. package/dist/lib/features/maintenance/maintenance-service.js.map +1 -1
  297. package/dist/lib/features/metrics/client-metrics/client-metrics-service.e2e.test.js +10 -10
  298. package/dist/lib/features/metrics/client-metrics/client-metrics-service.e2e.test.js.map +1 -1
  299. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.d.ts +1 -3
  300. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.d.ts.map +1 -1
  301. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js +2 -4
  302. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js.map +1 -1
  303. package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts +0 -1
  304. package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts.map +1 -1
  305. package/dist/lib/features/metrics/client-metrics/client-metrics.js +0 -1
  306. package/dist/lib/features/metrics/client-metrics/client-metrics.js.map +1 -1
  307. package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.d.ts +10 -10
  308. package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.d.ts.map +1 -1
  309. package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.js +13 -11
  310. package/dist/lib/features/metrics/client-metrics/fake-client-metrics-store-v2.js.map +1 -1
  311. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.d.ts +1 -1
  312. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.d.ts.map +1 -1
  313. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js +3 -3
  314. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js.map +1 -1
  315. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.test.js +2 -2
  316. package/dist/lib/features/metrics/client-metrics/metrics-service-v2.test.js.map +1 -1
  317. package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts +2 -2
  318. package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts.map +1 -1
  319. package/dist/lib/features/metrics/custom/custom-metrics-controller.js +2 -2
  320. package/dist/lib/features/metrics/custom/custom-metrics-controller.js.map +1 -1
  321. package/dist/lib/features/metrics/impact/metrics-translator.js +3 -1
  322. package/dist/lib/features/metrics/impact/metrics-translator.js.map +1 -1
  323. package/dist/lib/features/metrics/instance/instance-service.d.ts.map +1 -1
  324. package/dist/lib/features/metrics/instance/instance-service.js +1 -0
  325. package/dist/lib/features/metrics/instance/instance-service.js.map +1 -1
  326. package/dist/lib/features/metrics/instance/instance-service.test.js +2 -2
  327. package/dist/lib/features/metrics/instance/instance-service.test.js.map +1 -1
  328. package/dist/lib/features/metrics/instance/metrics.d.ts +1 -0
  329. package/dist/lib/features/metrics/instance/metrics.d.ts.map +1 -1
  330. package/dist/lib/features/metrics/instance/metrics.js +22 -6
  331. package/dist/lib/features/metrics/instance/metrics.js.map +1 -1
  332. package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.d.ts +1 -1
  333. package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.d.ts.map +1 -1
  334. package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.js +1 -1
  335. package/dist/lib/features/metrics/last-seen/fake-last-seen-read-model.js.map +1 -1
  336. package/dist/lib/features/metrics/shared/schema.test.js +0 -1
  337. package/dist/lib/features/metrics/shared/schema.test.js.map +1 -1
  338. package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.d.ts +2 -2
  339. package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.d.ts.map +1 -1
  340. package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.js +2 -2
  341. package/dist/lib/features/metrics/sizes/fake-largest-resources-read-model.js.map +1 -1
  342. package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts +1 -2
  343. package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts.map +1 -1
  344. package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js +1 -2
  345. package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js.map +1 -1
  346. package/dist/lib/features/onboarding/fake-onboarding-store.d.ts +2 -2
  347. package/dist/lib/features/onboarding/fake-onboarding-store.d.ts.map +1 -1
  348. package/dist/lib/features/onboarding/fake-onboarding-store.js +2 -2
  349. package/dist/lib/features/onboarding/fake-onboarding-store.js.map +1 -1
  350. package/dist/lib/features/onboarding/onboarding-service.d.ts +1 -3
  351. package/dist/lib/features/onboarding/onboarding-service.d.ts.map +1 -1
  352. package/dist/lib/features/onboarding/onboarding-service.js +2 -4
  353. package/dist/lib/features/onboarding/onboarding-service.js.map +1 -1
  354. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts +3 -3
  355. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts.map +1 -1
  356. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js +3 -3
  357. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js.map +1 -1
  358. package/dist/lib/features/playground/feature-evaluator/constraint.js +1 -1
  359. package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -1
  360. package/dist/lib/features/playground/feature-evaluator/repository/index.js +1 -1
  361. package/dist/lib/features/playground/feature-evaluator/repository/index.js.map +1 -1
  362. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.d.ts +1 -1
  363. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.d.ts.map +1 -1
  364. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js +1 -1
  365. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js.map +1 -1
  366. package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js +1 -1
  367. package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js.map +1 -1
  368. package/dist/lib/features/playground/feature-evaluator/strategy/strategy.d.ts +1 -1
  369. package/dist/lib/features/playground/feature-evaluator/strategy/strategy.d.ts.map +1 -1
  370. package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js +1 -1
  371. package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js.map +1 -1
  372. package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.d.ts +1 -1
  373. package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.d.ts.map +1 -1
  374. package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js +1 -1
  375. package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js.map +1 -1
  376. package/dist/lib/features/playground/offline-unleash-client.test.js +6 -2
  377. package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -1
  378. package/dist/lib/features/playground/playground-service.d.ts.map +1 -1
  379. package/dist/lib/features/playground/playground-service.js +3 -2
  380. package/dist/lib/features/playground/playground-service.js.map +1 -1
  381. package/dist/lib/features/playground/playground.test.js +1 -1
  382. package/dist/lib/features/playground/playground.test.js.map +1 -1
  383. package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts +3 -3
  384. package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts.map +1 -1
  385. package/dist/lib/features/private-project/fakePrivateProjectChecker.js +3 -3
  386. package/dist/lib/features/private-project/fakePrivateProjectChecker.js.map +1 -1
  387. package/dist/lib/features/private-project/privateProjectStore.d.ts +1 -2
  388. package/dist/lib/features/private-project/privateProjectStore.d.ts.map +1 -1
  389. package/dist/lib/features/private-project/privateProjectStore.js +1 -2
  390. package/dist/lib/features/private-project/privateProjectStore.js.map +1 -1
  391. package/dist/lib/features/project/fake-project-flag-creators-read-model.d.ts +1 -1
  392. package/dist/lib/features/project/fake-project-flag-creators-read-model.d.ts.map +1 -1
  393. package/dist/lib/features/project/fake-project-flag-creators-read-model.js +1 -1
  394. package/dist/lib/features/project/fake-project-flag-creators-read-model.js.map +1 -1
  395. package/dist/lib/features/project/project-controller.d.ts +1 -1
  396. package/dist/lib/features/project/project-controller.d.ts.map +1 -1
  397. package/dist/lib/features/project/project-controller.js +1 -1
  398. package/dist/lib/features/project/project-controller.js.map +1 -1
  399. package/dist/lib/features/project/project-read-model.d.ts +1 -2
  400. package/dist/lib/features/project/project-read-model.d.ts.map +1 -1
  401. package/dist/lib/features/project/project-read-model.js +1 -2
  402. package/dist/lib/features/project/project-read-model.js.map +1 -1
  403. package/dist/lib/features/project/project-service.e2e.test.js +10 -3
  404. package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
  405. package/dist/lib/features/project/project-store.d.ts +2 -3
  406. package/dist/lib/features/project/project-store.d.ts.map +1 -1
  407. package/dist/lib/features/project/project-store.js +43 -3
  408. package/dist/lib/features/project/project-store.js.map +1 -1
  409. package/dist/lib/features/project/projects.e2e.test.js +1 -1
  410. package/dist/lib/features/project/projects.e2e.test.js.map +1 -1
  411. package/dist/lib/features/project-environments/environment-service.d.ts +1 -0
  412. package/dist/lib/features/project-environments/environment-service.d.ts.map +1 -1
  413. package/dist/lib/features/project-environments/environment-service.js +4 -1
  414. package/dist/lib/features/project-environments/environment-service.js.map +1 -1
  415. package/dist/lib/features/project-environments/fake-environment-store.d.ts +3 -3
  416. package/dist/lib/features/project-environments/fake-environment-store.d.ts.map +1 -1
  417. package/dist/lib/features/project-environments/fake-environment-store.js +5 -5
  418. package/dist/lib/features/project-environments/fake-environment-store.js.map +1 -1
  419. package/dist/lib/features/project-insights/project-insights-service.e2e.test.js +1 -1
  420. package/dist/lib/features/project-insights/project-insights-service.e2e.test.js.map +1 -1
  421. package/dist/lib/features/project-status/projects-status.e2e.test.js +1 -1
  422. package/dist/lib/features/project-status/projects-status.e2e.test.js.map +1 -1
  423. package/dist/lib/features/scheduler/job-service.js +1 -1
  424. package/dist/lib/features/scheduler/job-service.js.map +1 -1
  425. package/dist/lib/features/scheduler/job-service.test.js +1 -1
  426. package/dist/lib/features/scheduler/job-service.test.js.map +1 -1
  427. package/dist/lib/features/scheduler/job-store.d.ts +0 -1
  428. package/dist/lib/features/scheduler/job-store.d.ts.map +1 -1
  429. package/dist/lib/features/scheduler/job-store.js +0 -1
  430. package/dist/lib/features/scheduler/job-store.js.map +1 -1
  431. package/dist/lib/features/scheduler/schedule-services.js +1 -1
  432. package/dist/lib/features/scheduler/schedule-services.js.map +1 -1
  433. package/dist/lib/features/segment/admin-segment.e2e.test.js +7 -25
  434. package/dist/lib/features/segment/admin-segment.e2e.test.js.map +1 -1
  435. package/dist/lib/features/segment/fake-segment-read-model.d.ts +2 -2
  436. package/dist/lib/features/segment/fake-segment-read-model.d.ts.map +1 -1
  437. package/dist/lib/features/segment/fake-segment-read-model.js +2 -2
  438. package/dist/lib/features/segment/fake-segment-read-model.js.map +1 -1
  439. package/dist/lib/features/segment/segment-controller.d.ts +1 -2
  440. package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
  441. package/dist/lib/features/segment/segment-controller.js +1 -2
  442. package/dist/lib/features/segment/segment-controller.js.map +1 -1
  443. package/dist/lib/features/segment/segment-service.d.ts +0 -1
  444. package/dist/lib/features/segment/segment-service.d.ts.map +1 -1
  445. package/dist/lib/features/segment/segment-service.js +0 -1
  446. package/dist/lib/features/segment/segment-service.js.map +1 -1
  447. package/dist/lib/features/tag-type/fake-tag-type-store.d.ts.map +1 -1
  448. package/dist/lib/features/tag-type/fake-tag-type-store.js +3 -1
  449. package/dist/lib/features/tag-type/fake-tag-type-store.js.map +1 -1
  450. package/dist/lib/features/tag-type/tag-type.d.ts +1 -2
  451. package/dist/lib/features/tag-type/tag-type.d.ts.map +1 -1
  452. package/dist/lib/features/tag-type/tag-type.js +1 -2
  453. package/dist/lib/features/tag-type/tag-type.js.map +1 -1
  454. package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.d.ts +4 -4
  455. package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.d.ts.map +1 -1
  456. package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.js +4 -4
  457. package/dist/lib/features/traffic-data-usage/fake-traffic-data-usage-store.js.map +1 -1
  458. package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.d.ts +1 -2
  459. package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.d.ts.map +1 -1
  460. package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.js +3 -4
  461. package/dist/lib/features/traffic-data-usage/traffic-data-usage-store.js.map +1 -1
  462. package/dist/lib/features/ui-observability-controller/ui-observability-controller.js +1 -1
  463. package/dist/lib/features/ui-observability-controller/ui-observability-controller.js.map +1 -1
  464. package/dist/lib/features/unique-connection/unique-connection-service.d.ts +0 -1
  465. package/dist/lib/features/unique-connection/unique-connection-service.d.ts.map +1 -1
  466. package/dist/lib/features/unique-connection/unique-connection-service.js +0 -1
  467. package/dist/lib/features/unique-connection/unique-connection-service.js.map +1 -1
  468. package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.d.ts +2 -2
  469. package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.d.ts.map +1 -1
  470. package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.js +2 -2
  471. package/dist/lib/features/user-subscriptions/fake-user-subscriptions-read-model.js.map +1 -1
  472. package/dist/lib/features/user-subscriptions/user-subscriptions-read-model.test.js +1 -1
  473. package/dist/lib/features/user-subscriptions/user-subscriptions-read-model.test.js.map +1 -1
  474. package/dist/lib/features/user-subscriptions/user-subscriptions-service.d.ts +1 -2
  475. package/dist/lib/features/user-subscriptions/user-subscriptions-service.d.ts.map +1 -1
  476. package/dist/lib/features/user-subscriptions/user-subscriptions-service.js +1 -2
  477. package/dist/lib/features/user-subscriptions/user-subscriptions-service.js.map +1 -1
  478. package/dist/lib/features/users/user-store.d.ts +1 -2
  479. package/dist/lib/features/users/user-store.d.ts.map +1 -1
  480. package/dist/lib/features/users/user-store.js +1 -2
  481. package/dist/lib/features/users/user-store.js.map +1 -1
  482. package/dist/lib/features/users/user-updates-read-model.d.ts +1 -2
  483. package/dist/lib/features/users/user-updates-read-model.d.ts.map +1 -1
  484. package/dist/lib/features/users/user-updates-read-model.js +1 -2
  485. package/dist/lib/features/users/user-updates-read-model.js.map +1 -1
  486. package/dist/lib/logger.test.js +2 -2
  487. package/dist/lib/logger.test.js.map +1 -1
  488. package/dist/lib/metrics.d.ts.map +1 -1
  489. package/dist/lib/metrics.js +8 -2
  490. package/dist/lib/metrics.js.map +1 -1
  491. package/dist/lib/metrics.test.js +14 -8
  492. package/dist/lib/metrics.test.js.map +1 -1
  493. package/dist/lib/middleware/api-token-middleware.js +1 -1
  494. package/dist/lib/middleware/api-token-middleware.js.map +1 -1
  495. package/dist/lib/middleware/api-token-middleware.test.js +4 -1
  496. package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
  497. package/dist/lib/middleware/audit-middleware.js +1 -1
  498. package/dist/lib/middleware/audit-middleware.js.map +1 -1
  499. package/dist/lib/middleware/catch-all-error-handler.js +1 -1
  500. package/dist/lib/middleware/catch-all-error-handler.js.map +1 -1
  501. package/dist/lib/middleware/content_type_checker.test.js +3 -6
  502. package/dist/lib/middleware/content_type_checker.test.js.map +1 -1
  503. package/dist/lib/middleware/cors-origin-middleware.js +1 -1
  504. package/dist/lib/middleware/cors-origin-middleware.js.map +1 -1
  505. package/dist/lib/middleware/demo-authentication.js +3 -3
  506. package/dist/lib/middleware/demo-authentication.js.map +1 -1
  507. package/dist/lib/middleware/no-authentication.js +3 -3
  508. package/dist/lib/middleware/no-authentication.js.map +1 -1
  509. package/dist/lib/middleware/origin-middleware.d.ts +1 -1
  510. package/dist/lib/middleware/origin-middleware.d.ts.map +1 -1
  511. package/dist/lib/middleware/origin-middleware.js +2 -9
  512. package/dist/lib/middleware/origin-middleware.js.map +1 -1
  513. package/dist/lib/middleware/origin-middleware.test.js +0 -16
  514. package/dist/lib/middleware/origin-middleware.test.js.map +1 -1
  515. package/dist/lib/middleware/oss-authentication.test.js +2 -2
  516. package/dist/lib/middleware/oss-authentication.test.js.map +1 -1
  517. package/dist/lib/middleware/pat-middleware.js +1 -1
  518. package/dist/lib/middleware/pat-middleware.js.map +1 -1
  519. package/dist/lib/middleware/rbac-middleware.js +1 -1
  520. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  521. package/dist/lib/middleware/rbac-middleware.test.js +7 -3
  522. package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
  523. package/dist/lib/middleware/response-time-metrics.js +1 -1
  524. package/dist/lib/middleware/response-time-metrics.js.map +1 -1
  525. package/dist/lib/middleware/response-time-metrics.test.js +4 -1
  526. package/dist/lib/middleware/response-time-metrics.test.js.map +1 -1
  527. package/dist/lib/middleware/secure-headers.js +1 -1
  528. package/dist/lib/middleware/secure-headers.js.map +1 -1
  529. package/dist/lib/openapi/meta-schema-rules.test.js +1 -1
  530. package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
  531. package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +2 -2
  532. package/dist/lib/openapi/spec/addon-create-update-schema.js +6 -6
  533. package/dist/lib/openapi/spec/addon-create-update-schema.js.map +1 -1
  534. package/dist/lib/openapi/spec/addon-parameter-schema.js +1 -1
  535. package/dist/lib/openapi/spec/addon-parameter-schema.js.map +1 -1
  536. package/dist/lib/openapi/spec/addon-schema.d.ts +1 -1
  537. package/dist/lib/openapi/spec/addon-schema.js +1 -1
  538. package/dist/lib/openapi/spec/addon-schema.js.map +1 -1
  539. package/dist/lib/openapi/spec/addon-type-schema.d.ts +2 -2
  540. package/dist/lib/openapi/spec/addon-type-schema.js +2 -2
  541. package/dist/lib/openapi/spec/addon-type-schema.js.map +1 -1
  542. package/dist/lib/openapi/spec/addons-schema.d.ts +5 -5
  543. package/dist/lib/openapi/spec/addons-schema.js +2 -2
  544. package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
  545. package/dist/lib/openapi/spec/admin-segment-schema.d.ts +6 -4
  546. package/dist/lib/openapi/spec/admin-segment-schema.d.ts.map +1 -1
  547. package/dist/lib/openapi/spec/admin-segment-schema.js +1 -1
  548. package/dist/lib/openapi/spec/admin-segment-schema.js.map +1 -1
  549. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +14 -14
  550. package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +28 -28
  551. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +61 -59
  552. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts.map +1 -1
  553. package/dist/lib/openapi/spec/api-token-schema.d.ts +1 -1
  554. package/dist/lib/openapi/spec/api-token-schema.js +1 -1
  555. package/dist/lib/openapi/spec/api-token-schema.js.map +1 -1
  556. package/dist/lib/openapi/spec/api-token-schema.test.js +5 -1
  557. package/dist/lib/openapi/spec/api-token-schema.test.js.map +1 -1
  558. package/dist/lib/openapi/spec/api-tokens-schema.d.ts +2 -2
  559. package/dist/lib/openapi/spec/api-tokens-schema.js +1 -1
  560. package/dist/lib/openapi/spec/api-tokens-schema.js.map +1 -1
  561. package/dist/lib/openapi/spec/application-schema.d.ts +1 -1
  562. package/dist/lib/openapi/spec/application-schema.js +1 -1
  563. package/dist/lib/openapi/spec/application-schema.js.map +1 -1
  564. package/dist/lib/openapi/spec/applications-schema.d.ts +1 -1
  565. package/dist/lib/openapi/spec/bulk-metrics-schema.d.ts +2 -2
  566. package/dist/lib/openapi/spec/bulk-registration-schema.d.ts +2 -2
  567. package/dist/lib/openapi/spec/bulk-registration-schema.js +2 -2
  568. package/dist/lib/openapi/spec/bulk-registration-schema.js.map +1 -1
  569. package/dist/lib/openapi/spec/client-feature-schema.d.ts +20 -18
  570. package/dist/lib/openapi/spec/client-feature-schema.d.ts.map +1 -1
  571. package/dist/lib/openapi/spec/client-feature-schema.js +3 -3
  572. package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
  573. package/dist/lib/openapi/spec/client-features-delta-schema.d.ts +37 -35
  574. package/dist/lib/openapi/spec/client-features-delta-schema.d.ts.map +1 -1
  575. package/dist/lib/openapi/spec/client-features-schema.d.ts +38 -36
  576. package/dist/lib/openapi/spec/client-features-schema.d.ts.map +1 -1
  577. package/dist/lib/openapi/spec/client-features-schema.js +1 -1
  578. package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
  579. package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -1
  580. package/dist/lib/openapi/spec/client-metrics-schema.js +1 -1
  581. package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
  582. package/dist/lib/openapi/spec/client-segment-schema.d.ts +5 -3
  583. package/dist/lib/openapi/spec/client-segment-schema.d.ts.map +1 -1
  584. package/dist/lib/openapi/spec/clone-feature-schema.d.ts +1 -1
  585. package/dist/lib/openapi/spec/clone-feature-schema.js +1 -1
  586. package/dist/lib/openapi/spec/clone-feature-schema.js.map +1 -1
  587. package/dist/lib/openapi/spec/constraint-schema.d.ts +7 -5
  588. package/dist/lib/openapi/spec/constraint-schema.d.ts.map +1 -1
  589. package/dist/lib/openapi/spec/constraint-schema.js +2 -2
  590. package/dist/lib/openapi/spec/constraint-schema.js.map +1 -1
  591. package/dist/lib/openapi/spec/constraint-schema.test.js +2 -0
  592. package/dist/lib/openapi/spec/constraint-schema.test.js.map +1 -1
  593. package/dist/lib/openapi/spec/context-field-schema.d.ts +2 -2
  594. package/dist/lib/openapi/spec/context-field-schema.js +2 -2
  595. package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
  596. package/dist/lib/openapi/spec/context-fields-schema.d.ts +2 -2
  597. package/dist/lib/openapi/spec/create-api-token-schema.d.ts +2 -2
  598. package/dist/lib/openapi/spec/create-api-token-schema.js +1 -1
  599. package/dist/lib/openapi/spec/create-api-token-schema.js.map +1 -1
  600. package/dist/lib/openapi/spec/create-application-schema.d.ts +1 -1
  601. package/dist/lib/openapi/spec/create-application-schema.js +1 -1
  602. package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
  603. package/dist/lib/openapi/spec/create-context-field-schema.d.ts +1 -1
  604. package/dist/lib/openapi/spec/create-feature-schema.d.ts +3 -3
  605. package/dist/lib/openapi/spec/create-feature-schema.js +1 -1
  606. package/dist/lib/openapi/spec/create-feature-schema.js.map +1 -1
  607. package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +9 -7
  608. package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts.map +1 -1
  609. package/dist/lib/openapi/spec/create-feature-strategy-schema.js +1 -1
  610. package/dist/lib/openapi/spec/create-feature-strategy-schema.js.map +1 -1
  611. package/dist/lib/openapi/spec/create-pat-schema.d.ts +1 -1
  612. package/dist/lib/openapi/spec/create-pat-schema.js +1 -1
  613. package/dist/lib/openapi/spec/create-pat-schema.js.map +1 -1
  614. package/dist/lib/openapi/spec/create-strategy-schema.d.ts +2 -2
  615. package/dist/lib/openapi/spec/create-strategy-schema.js +2 -2
  616. package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
  617. package/dist/lib/openapi/spec/create-strategy-variant-schema.d.ts +3 -3
  618. package/dist/lib/openapi/spec/create-strategy-variant-schema.js +3 -3
  619. package/dist/lib/openapi/spec/create-strategy-variant-schema.js.map +1 -1
  620. package/dist/lib/openapi/spec/create-tag-schema.d.ts +2 -2
  621. package/dist/lib/openapi/spec/create-tag-schema.js +1 -1
  622. package/dist/lib/openapi/spec/create-tag-schema.js.map +1 -1
  623. package/dist/lib/openapi/spec/create-user-response-schema.d.ts +1 -1
  624. package/dist/lib/openapi/spec/create-user-response-schema.js +1 -1
  625. package/dist/lib/openapi/spec/create-user-response-schema.js.map +1 -1
  626. package/dist/lib/openapi/spec/edge-token-schema.d.ts +3 -3
  627. package/dist/lib/openapi/spec/edge-token-schema.js +3 -3
  628. package/dist/lib/openapi/spec/edge-token-schema.js.map +1 -1
  629. package/dist/lib/openapi/spec/environment-project-schema.d.ts +15 -13
  630. package/dist/lib/openapi/spec/environment-project-schema.d.ts.map +1 -1
  631. package/dist/lib/openapi/spec/environment-project-schema.js +1 -1
  632. package/dist/lib/openapi/spec/environment-project-schema.js.map +1 -1
  633. package/dist/lib/openapi/spec/environment-schema.d.ts +1 -1
  634. package/dist/lib/openapi/spec/environment-schema.js +1 -1
  635. package/dist/lib/openapi/spec/environment-schema.js.map +1 -1
  636. package/dist/lib/openapi/spec/environments-project-schema.d.ts +26 -24
  637. package/dist/lib/openapi/spec/environments-project-schema.d.ts.map +1 -1
  638. package/dist/lib/openapi/spec/environments-schema.d.ts +1 -1
  639. package/dist/lib/openapi/spec/event-schema.d.ts +7 -7
  640. package/dist/lib/openapi/spec/event-schema.js +1 -1
  641. package/dist/lib/openapi/spec/event-schema.js.map +1 -1
  642. package/dist/lib/openapi/spec/event-search-response-schema.d.ts +9 -9
  643. package/dist/lib/openapi/spec/events-schema.d.ts +9 -9
  644. package/dist/lib/openapi/spec/export-query-schema.d.ts +1 -1
  645. package/dist/lib/openapi/spec/export-query-schema.js +1 -1
  646. package/dist/lib/openapi/spec/export-query-schema.js.map +1 -1
  647. package/dist/lib/openapi/spec/export-result-schema.d.ts +1986 -529
  648. package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
  649. package/dist/lib/openapi/spec/export-result-schema.js +6 -0
  650. package/dist/lib/openapi/spec/export-result-schema.js.map +1 -1
  651. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +372 -107
  652. package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
  653. package/dist/lib/openapi/spec/feature-environment-schema.js +12 -0
  654. package/dist/lib/openapi/spec/feature-environment-schema.js.map +1 -1
  655. package/dist/lib/openapi/spec/feature-events-schema.d.ts +9 -9
  656. package/dist/lib/openapi/spec/feature-schema.d.ts +950 -215
  657. package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
  658. package/dist/lib/openapi/spec/feature-schema.js +17 -0
  659. package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
  660. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +729 -213
  661. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
  662. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +745 -229
  663. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
  664. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +9 -7
  665. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts.map +1 -1
  666. package/dist/lib/openapi/spec/feature-strategy-schema.js +1 -1
  667. package/dist/lib/openapi/spec/feature-strategy-schema.js.map +1 -1
  668. package/dist/lib/openapi/spec/feature-tag-schema.d.ts +2 -2
  669. package/dist/lib/openapi/spec/feature-tag-schema.js +2 -2
  670. package/dist/lib/openapi/spec/feature-tag-schema.js.map +1 -1
  671. package/dist/lib/openapi/spec/feature-type-schema.d.ts +2 -2
  672. package/dist/lib/openapi/spec/feature-type-schema.js +2 -2
  673. package/dist/lib/openapi/spec/feature-type-schema.js.map +1 -1
  674. package/dist/lib/openapi/spec/feature-types-schema.d.ts +3 -3
  675. package/dist/lib/openapi/spec/feature-types-schema.js +1 -1
  676. package/dist/lib/openapi/spec/feature-types-schema.js.map +1 -1
  677. package/dist/lib/openapi/spec/feature-variants-schema.d.ts +3 -3
  678. package/dist/lib/openapi/spec/group-schema.d.ts +2 -2
  679. package/dist/lib/openapi/spec/group-user-model-schema.d.ts +1 -1
  680. package/dist/lib/openapi/spec/groups-schema.d.ts +5 -5
  681. package/dist/lib/openapi/spec/groups-schema.js +1 -1
  682. package/dist/lib/openapi/spec/groups-schema.js.map +1 -1
  683. package/dist/lib/openapi/spec/health-overview-schema.d.ts +1784 -535
  684. package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
  685. package/dist/lib/openapi/spec/health-overview-schema.js +3 -3
  686. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  687. package/dist/lib/openapi/spec/health-report-schema.d.ts +1783 -534
  688. package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
  689. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +66 -27262
  690. package/dist/lib/openapi/spec/import-toggles-schema.d.ts.map +1 -1
  691. package/dist/lib/openapi/spec/import-toggles-schema.js +40 -31
  692. package/dist/lib/openapi/spec/import-toggles-schema.js.map +1 -1
  693. package/dist/lib/openapi/spec/import-toggles-validate-schema.d.ts +1 -1
  694. package/dist/lib/openapi/spec/import-toggles-validate-schema.js +1 -1
  695. package/dist/lib/openapi/spec/import-toggles-validate-schema.js.map +1 -1
  696. package/dist/lib/openapi/spec/index.d.ts +4 -0
  697. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  698. package/dist/lib/openapi/spec/index.js +4 -0
  699. package/dist/lib/openapi/spec/index.js.map +1 -1
  700. package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +13 -0
  701. package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts.map +1 -1
  702. package/dist/lib/openapi/spec/instance-admin-stats-schema.js +13 -0
  703. package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
  704. package/dist/lib/openapi/spec/integration-event-schema.d.ts +12 -12
  705. package/dist/lib/openapi/spec/integration-events-schema.d.ts +24 -24
  706. package/dist/lib/openapi/spec/me-schema.d.ts +2 -2
  707. package/dist/lib/openapi/spec/metric-query-schema.d.ts +44 -0
  708. package/dist/lib/openapi/spec/metric-query-schema.d.ts.map +1 -0
  709. package/dist/lib/openapi/spec/metric-query-schema.js +42 -0
  710. package/dist/lib/openapi/spec/metric-query-schema.js.map +1 -0
  711. package/dist/lib/openapi/spec/pat-schema.d.ts +1 -1
  712. package/dist/lib/openapi/spec/pat-schema.js +1 -1
  713. package/dist/lib/openapi/spec/pat-schema.js.map +1 -1
  714. package/dist/lib/openapi/spec/pats-schema.d.ts +2 -2
  715. package/dist/lib/openapi/spec/pats-schema.js +1 -1
  716. package/dist/lib/openapi/spec/pats-schema.js.map +1 -1
  717. package/dist/lib/openapi/spec/permission-schema.d.ts +1 -1
  718. package/dist/lib/openapi/spec/permission-schema.js +1 -1
  719. package/dist/lib/openapi/spec/permission-schema.js.map +1 -1
  720. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts +1 -1
  721. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js +1 -1
  722. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js.map +1 -1
  723. package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts +1 -1
  724. package/dist/lib/openapi/spec/personal-dashboard-schema.js +1 -1
  725. package/dist/lib/openapi/spec/personal-dashboard-schema.js.map +1 -1
  726. package/dist/lib/openapi/spec/playground-constraint-schema.d.ts +5 -3
  727. package/dist/lib/openapi/spec/playground-constraint-schema.d.ts.map +1 -1
  728. package/dist/lib/openapi/spec/playground-feature-schema.d.ts +17 -15
  729. package/dist/lib/openapi/spec/playground-feature-schema.d.ts.map +1 -1
  730. package/dist/lib/openapi/spec/playground-response-schema.d.ts +33 -31
  731. package/dist/lib/openapi/spec/playground-response-schema.d.ts.map +1 -1
  732. package/dist/lib/openapi/spec/playground-response-schema.test.js +1 -1
  733. package/dist/lib/openapi/spec/playground-response-schema.test.js.map +1 -1
  734. package/dist/lib/openapi/spec/playground-segment-schema.d.ts +5 -3
  735. package/dist/lib/openapi/spec/playground-segment-schema.d.ts.map +1 -1
  736. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +10 -8
  737. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts.map +1 -1
  738. package/dist/lib/openapi/spec/profile-schema.d.ts +947 -214
  739. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  740. package/dist/lib/openapi/spec/project-environment-schema.d.ts +9 -9
  741. package/dist/lib/openapi/spec/project-feature-schema.d.ts +2 -2
  742. package/dist/lib/openapi/spec/project-features-schema.d.ts +4 -4
  743. package/dist/lib/openapi/spec/project-insights-schema.d.ts +2 -2
  744. package/dist/lib/openapi/spec/project-insights-schema.js +2 -2
  745. package/dist/lib/openapi/spec/project-insights-schema.js.map +1 -1
  746. package/dist/lib/openapi/spec/project-overview-schema.d.ts +1781 -532
  747. package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
  748. package/dist/lib/openapi/spec/project-overview-schema.js +2 -2
  749. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  750. package/dist/lib/openapi/spec/project-schema.d.ts +2 -2
  751. package/dist/lib/openapi/spec/project-schema.js +2 -2
  752. package/dist/lib/openapi/spec/project-schema.js.map +1 -1
  753. package/dist/lib/openapi/spec/projects-schema.d.ts +2 -2
  754. package/dist/lib/openapi/spec/public-signup-token-create-schema.d.ts +1 -1
  755. package/dist/lib/openapi/spec/public-signup-token-create-schema.js +1 -1
  756. package/dist/lib/openapi/spec/public-signup-token-create-schema.js.map +1 -1
  757. package/dist/lib/openapi/spec/public-signup-token-schema.d.ts +2 -2
  758. package/dist/lib/openapi/spec/public-signup-token-schema.js +1 -1
  759. package/dist/lib/openapi/spec/public-signup-token-schema.js.map +1 -1
  760. package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts +3 -3
  761. package/dist/lib/openapi/spec/push-variants-schema.d.ts +3 -3
  762. package/dist/lib/openapi/spec/ready-check-schema.d.ts +19 -0
  763. package/dist/lib/openapi/spec/ready-check-schema.d.ts.map +1 -0
  764. package/dist/lib/openapi/spec/ready-check-schema.js +17 -0
  765. package/dist/lib/openapi/spec/ready-check-schema.js.map +1 -0
  766. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +45 -25
  767. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts.map +1 -1
  768. package/dist/lib/openapi/spec/release-plan-milestone-schema.js +12 -1
  769. package/dist/lib/openapi/spec/release-plan-milestone-schema.js.map +1 -1
  770. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +15 -13
  771. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts.map +1 -1
  772. package/dist/lib/openapi/spec/release-plan-schema.d.ts +283 -48
  773. package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -1
  774. package/dist/lib/openapi/spec/release-plan-schema.js +13 -0
  775. package/dist/lib/openapi/spec/release-plan-schema.js.map +1 -1
  776. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +68 -48
  777. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts.map +1 -1
  778. package/dist/lib/openapi/spec/safeguard-schema.d.ts +149 -0
  779. package/dist/lib/openapi/spec/safeguard-schema.d.ts.map +1 -0
  780. package/dist/lib/openapi/spec/safeguard-schema.js +59 -0
  781. package/dist/lib/openapi/spec/safeguard-schema.js.map +1 -0
  782. package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.d.ts +24 -0
  783. package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.d.ts.map +1 -0
  784. package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.js +22 -0
  785. package/dist/lib/openapi/spec/safeguard-trigger-condition-schema.js.map +1 -0
  786. package/dist/lib/openapi/spec/search-features-schema.d.ts +1578 -548
  787. package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
  788. package/dist/lib/openapi/spec/segment-schema.d.ts +5 -3
  789. package/dist/lib/openapi/spec/segment-schema.d.ts.map +1 -1
  790. package/dist/lib/openapi/spec/segments-schema.d.ts +9 -7
  791. package/dist/lib/openapi/spec/segments-schema.d.ts.map +1 -1
  792. package/dist/lib/openapi/spec/segments-schema.js +1 -1
  793. package/dist/lib/openapi/spec/segments-schema.js.map +1 -1
  794. package/dist/lib/openapi/spec/strategies-schema.d.ts +1 -1
  795. package/dist/lib/openapi/spec/strategy-schema.d.ts +1 -1
  796. package/dist/lib/openapi/spec/strategy-schema.js +1 -1
  797. package/dist/lib/openapi/spec/strategy-schema.js.map +1 -1
  798. package/dist/lib/openapi/spec/strategy-variant-schema.d.ts +3 -3
  799. package/dist/lib/openapi/spec/tag-schema.d.ts +2 -2
  800. package/dist/lib/openapi/spec/tag-schema.js +2 -2
  801. package/dist/lib/openapi/spec/tag-schema.js.map +1 -1
  802. package/dist/lib/openapi/spec/tag-with-version-schema.d.ts +2 -2
  803. package/dist/lib/openapi/spec/tags-bulk-add-schema.d.ts +4 -4
  804. package/dist/lib/openapi/spec/tags-schema.d.ts +2 -2
  805. package/dist/lib/openapi/spec/update-context-field-schema.d.ts +1 -1
  806. package/dist/lib/openapi/spec/update-context-field-schema.js +1 -1
  807. package/dist/lib/openapi/spec/update-context-field-schema.js.map +1 -1
  808. package/dist/lib/openapi/spec/update-feature-schema.d.ts +6 -4
  809. package/dist/lib/openapi/spec/update-feature-schema.d.ts.map +1 -1
  810. package/dist/lib/openapi/spec/update-feature-schema.js +1 -1
  811. package/dist/lib/openapi/spec/update-feature-schema.js.map +1 -1
  812. package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts +6 -4
  813. package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts.map +1 -1
  814. package/dist/lib/openapi/spec/update-feature-strategy-schema.js +1 -1
  815. package/dist/lib/openapi/spec/update-feature-strategy-schema.js.map +1 -1
  816. package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.d.ts +1 -1
  817. package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.js +1 -1
  818. package/dist/lib/openapi/spec/update-feature-type-lifetime-schema.js.map +1 -1
  819. package/dist/lib/openapi/spec/update-strategy-schema.d.ts +1 -1
  820. package/dist/lib/openapi/spec/update-strategy-schema.js +1 -1
  821. package/dist/lib/openapi/spec/update-strategy-schema.js.map +1 -1
  822. package/dist/lib/openapi/spec/update-tags-schema.d.ts +2 -2
  823. package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +5 -3
  824. package/dist/lib/openapi/spec/upsert-segment-schema.d.ts.map +1 -1
  825. package/dist/lib/openapi/spec/upsert-segment-schema.test.js +6 -2
  826. package/dist/lib/openapi/spec/upsert-segment-schema.test.js.map +1 -1
  827. package/dist/lib/openapi/spec/user-access-overview-schema.d.ts +1 -1
  828. package/dist/lib/openapi/spec/user-schema.d.ts +1 -1
  829. package/dist/lib/openapi/spec/user-schema.js +1 -1
  830. package/dist/lib/openapi/spec/user-schema.js.map +1 -1
  831. package/dist/lib/openapi/spec/users-groups-base-schema.d.ts +4 -4
  832. package/dist/lib/openapi/spec/users-schema.d.ts +2 -2
  833. package/dist/lib/openapi/spec/users-schema.js +1 -1
  834. package/dist/lib/openapi/spec/users-schema.js.map +1 -1
  835. package/dist/lib/openapi/spec/users-search-schema.d.ts +1 -1
  836. package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts +3 -3
  837. package/dist/lib/openapi/spec/variant-schema.d.ts +3 -3
  838. package/dist/lib/openapi/spec/variant-schema.js +3 -3
  839. package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
  840. package/dist/lib/openapi/spec/variants-schema.d.ts +3 -3
  841. package/dist/lib/openapi/util/openapi-tags.d.ts +40 -40
  842. package/dist/lib/openapi/util/openapi-tags.js +20 -20
  843. package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
  844. package/dist/lib/openapi/validate.d.ts +2 -2
  845. package/dist/lib/openapi/validate.d.ts.map +1 -1
  846. package/dist/lib/routes/admin-api/addon.d.ts +1 -2
  847. package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
  848. package/dist/lib/routes/admin-api/addon.js +1 -2
  849. package/dist/lib/routes/admin-api/addon.js.map +1 -1
  850. package/dist/lib/routes/admin-api/api-token.js +2 -2
  851. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  852. package/dist/lib/routes/admin-api/event.d.ts +1 -1
  853. package/dist/lib/routes/admin-api/event.d.ts.map +1 -1
  854. package/dist/lib/routes/admin-api/event.js +1 -1
  855. package/dist/lib/routes/admin-api/event.js.map +1 -1
  856. package/dist/lib/routes/admin-api/events.test.js +1 -1
  857. package/dist/lib/routes/admin-api/events.test.js.map +1 -1
  858. package/dist/lib/routes/admin-api/feature-type.d.ts +1 -2
  859. package/dist/lib/routes/admin-api/feature-type.d.ts.map +1 -1
  860. package/dist/lib/routes/admin-api/feature-type.js +2 -3
  861. package/dist/lib/routes/admin-api/feature-type.js.map +1 -1
  862. package/dist/lib/routes/admin-api/instance-admin.d.ts +1 -3
  863. package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
  864. package/dist/lib/routes/admin-api/instance-admin.js +8 -4
  865. package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
  866. package/dist/lib/routes/admin-api/metrics.d.ts +2 -3
  867. package/dist/lib/routes/admin-api/metrics.d.ts.map +1 -1
  868. package/dist/lib/routes/admin-api/metrics.js +2 -3
  869. package/dist/lib/routes/admin-api/metrics.js.map +1 -1
  870. package/dist/lib/routes/admin-api/project/api-token.d.ts +0 -1
  871. package/dist/lib/routes/admin-api/project/api-token.d.ts.map +1 -1
  872. package/dist/lib/routes/admin-api/project/api-token.js +3 -4
  873. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  874. package/dist/lib/routes/admin-api/project/health-report.js +1 -1
  875. package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
  876. package/dist/lib/routes/admin-api/public-signup.d.ts +2 -4
  877. package/dist/lib/routes/admin-api/public-signup.d.ts.map +1 -1
  878. package/dist/lib/routes/admin-api/public-signup.js +2 -4
  879. package/dist/lib/routes/admin-api/public-signup.js.map +1 -1
  880. package/dist/lib/routes/admin-api/search/index.d.ts +1 -1
  881. package/dist/lib/routes/admin-api/search/index.d.ts.map +1 -1
  882. package/dist/lib/routes/admin-api/search/index.js +1 -1
  883. package/dist/lib/routes/admin-api/search/index.js.map +1 -1
  884. package/dist/lib/routes/admin-api/strategy.d.ts +1 -2
  885. package/dist/lib/routes/admin-api/strategy.d.ts.map +1 -1
  886. package/dist/lib/routes/admin-api/strategy.js +7 -8
  887. package/dist/lib/routes/admin-api/strategy.js.map +1 -1
  888. package/dist/lib/routes/admin-api/strategy.test.js +25 -1
  889. package/dist/lib/routes/admin-api/strategy.test.js.map +1 -1
  890. package/dist/lib/routes/admin-api/tag.d.ts +2 -4
  891. package/dist/lib/routes/admin-api/tag.d.ts.map +1 -1
  892. package/dist/lib/routes/admin-api/tag.js +4 -6
  893. package/dist/lib/routes/admin-api/tag.js.map +1 -1
  894. package/dist/lib/routes/admin-api/telemetry.d.ts +1 -1
  895. package/dist/lib/routes/admin-api/telemetry.d.ts.map +1 -1
  896. package/dist/lib/routes/admin-api/telemetry.js +1 -1
  897. package/dist/lib/routes/admin-api/telemetry.js.map +1 -1
  898. package/dist/lib/routes/admin-api/user/pat.js +3 -3
  899. package/dist/lib/routes/admin-api/user/pat.js.map +1 -1
  900. package/dist/lib/routes/admin-api/user/user.test.js +2 -2
  901. package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
  902. package/dist/lib/routes/admin-api/user-admin.d.ts +3 -3
  903. package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
  904. package/dist/lib/routes/admin-api/user-admin.js +4 -4
  905. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  906. package/dist/lib/routes/admin-api/user-feedback.d.ts +0 -1
  907. package/dist/lib/routes/admin-api/user-feedback.d.ts.map +1 -1
  908. package/dist/lib/routes/admin-api/user-feedback.js +2 -3
  909. package/dist/lib/routes/admin-api/user-feedback.js.map +1 -1
  910. package/dist/lib/routes/admin-api/user-splash.d.ts +0 -1
  911. package/dist/lib/routes/admin-api/user-splash.d.ts.map +1 -1
  912. package/dist/lib/routes/admin-api/user-splash.js +0 -1
  913. package/dist/lib/routes/admin-api/user-splash.js.map +1 -1
  914. package/dist/lib/routes/auth/reset-password-controller.d.ts +0 -1
  915. package/dist/lib/routes/auth/reset-password-controller.d.ts.map +1 -1
  916. package/dist/lib/routes/auth/reset-password-controller.js +0 -1
  917. package/dist/lib/routes/auth/reset-password-controller.js.map +1 -1
  918. package/dist/lib/routes/auth/simple-password-provider.d.ts +0 -1
  919. package/dist/lib/routes/auth/simple-password-provider.d.ts.map +1 -1
  920. package/dist/lib/routes/auth/simple-password-provider.js +0 -1
  921. package/dist/lib/routes/auth/simple-password-provider.js.map +1 -1
  922. package/dist/lib/routes/auth/simple-password-provider.test.js +2 -2
  923. package/dist/lib/routes/auth/simple-password-provider.test.js.map +1 -1
  924. package/dist/lib/routes/backstage.js +3 -3
  925. package/dist/lib/routes/backstage.js.map +1 -1
  926. package/dist/lib/routes/health-check.d.ts +0 -2
  927. package/dist/lib/routes/health-check.d.ts.map +1 -1
  928. package/dist/lib/routes/health-check.js +0 -2
  929. package/dist/lib/routes/health-check.js.map +1 -1
  930. package/dist/lib/routes/health-check.test.js +2 -2
  931. package/dist/lib/routes/health-check.test.js.map +1 -1
  932. package/dist/lib/routes/index.d.ts.map +1 -1
  933. package/dist/lib/routes/index.js +2 -0
  934. package/dist/lib/routes/index.js.map +1 -1
  935. package/dist/lib/routes/logout.test.js +5 -5
  936. package/dist/lib/routes/logout.test.js.map +1 -1
  937. package/dist/lib/routes/public-invite.d.ts +0 -1
  938. package/dist/lib/routes/public-invite.d.ts.map +1 -1
  939. package/dist/lib/routes/public-invite.js +0 -1
  940. package/dist/lib/routes/public-invite.js.map +1 -1
  941. package/dist/lib/routes/ready-check.d.ts +14 -0
  942. package/dist/lib/routes/ready-check.d.ts.map +1 -0
  943. package/dist/lib/routes/ready-check.js +86 -0
  944. package/dist/lib/routes/ready-check.js.map +1 -0
  945. package/dist/lib/schema/constraint-value-types.d.ts +1 -1
  946. package/dist/lib/schema/constraint-value-types.d.ts.map +1 -1
  947. package/dist/lib/server-impl.d.ts +6 -6
  948. package/dist/lib/server-impl.d.ts.map +1 -1
  949. package/dist/lib/server-impl.js +14 -4
  950. package/dist/lib/server-impl.js.map +1 -1
  951. package/dist/lib/services/access-service.d.ts +2 -1
  952. package/dist/lib/services/access-service.d.ts.map +1 -1
  953. package/dist/lib/services/access-service.js +20 -1
  954. package/dist/lib/services/access-service.js.map +1 -1
  955. package/dist/lib/services/access-service.test.js +21 -4
  956. package/dist/lib/services/access-service.test.js.map +1 -1
  957. package/dist/lib/services/account-service.d.ts.map +1 -1
  958. package/dist/lib/services/account-service.js +1 -0
  959. package/dist/lib/services/account-service.js.map +1 -1
  960. package/dist/lib/services/addon-service.d.ts +2 -2
  961. package/dist/lib/services/addon-service.d.ts.map +1 -1
  962. package/dist/lib/services/addon-service.js +22 -21
  963. package/dist/lib/services/addon-service.js.map +1 -1
  964. package/dist/lib/services/addon-service.test.js +1 -1
  965. package/dist/lib/services/addon-service.test.js.map +1 -1
  966. package/dist/lib/services/api-token-service.limit.test.js.map +1 -1
  967. package/dist/lib/services/api-token-service.test.js +2 -2
  968. package/dist/lib/services/api-token-service.test.js.map +1 -1
  969. package/dist/lib/services/client-spec-service.d.ts +1 -2
  970. package/dist/lib/services/client-spec-service.d.ts.map +1 -1
  971. package/dist/lib/services/client-spec-service.js +1 -2
  972. package/dist/lib/services/client-spec-service.js.map +1 -1
  973. package/dist/lib/services/favorites-service.d.ts +1 -3
  974. package/dist/lib/services/favorites-service.d.ts.map +1 -1
  975. package/dist/lib/services/favorites-service.js +2 -4
  976. package/dist/lib/services/favorites-service.js.map +1 -1
  977. package/dist/lib/services/feature-tag-service.d.ts.map +1 -1
  978. package/dist/lib/services/feature-tag-service.js +1 -0
  979. package/dist/lib/services/feature-tag-service.js.map +1 -1
  980. package/dist/lib/services/group-service.d.ts +2 -2
  981. package/dist/lib/services/group-service.d.ts.map +1 -1
  982. package/dist/lib/services/group-service.js +3 -2
  983. package/dist/lib/services/group-service.js.map +1 -1
  984. package/dist/lib/services/health-service.d.ts +1 -3
  985. package/dist/lib/services/health-service.d.ts.map +1 -1
  986. package/dist/lib/services/health-service.js +1 -2
  987. package/dist/lib/services/health-service.js.map +1 -1
  988. package/dist/lib/services/index.js +1 -1
  989. package/dist/lib/services/index.js.map +1 -1
  990. package/dist/lib/services/openapi-service.js +7 -5
  991. package/dist/lib/services/openapi-service.js.map +1 -1
  992. package/dist/lib/services/public-signup-token-service.d.ts +0 -1
  993. package/dist/lib/services/public-signup-token-service.d.ts.map +1 -1
  994. package/dist/lib/services/public-signup-token-service.js +0 -1
  995. package/dist/lib/services/public-signup-token-service.js.map +1 -1
  996. package/dist/lib/services/reset-token-service.js +3 -3
  997. package/dist/lib/services/reset-token-service.js.map +1 -1
  998. package/dist/lib/services/strategy-service.d.ts +4 -2
  999. package/dist/lib/services/strategy-service.d.ts.map +1 -1
  1000. package/dist/lib/services/strategy-service.js +15 -3
  1001. package/dist/lib/services/strategy-service.js.map +1 -1
  1002. package/dist/lib/services/user-service.js +2 -2
  1003. package/dist/lib/services/user-service.js.map +1 -1
  1004. package/dist/lib/services/user-service.test.js +5 -1
  1005. package/dist/lib/services/user-service.test.js.map +1 -1
  1006. package/dist/lib/services/user-splash-service.d.ts.map +1 -1
  1007. package/dist/lib/services/user-splash-service.js +7 -1
  1008. package/dist/lib/services/user-splash-service.js.map +1 -1
  1009. package/dist/lib/services/version-service.d.ts +8 -1
  1010. package/dist/lib/services/version-service.d.ts.map +1 -1
  1011. package/dist/lib/services/version-service.js +5 -1
  1012. package/dist/lib/services/version-service.js.map +1 -1
  1013. package/dist/lib/services/version-service.test.js +44 -0
  1014. package/dist/lib/services/version-service.test.js.map +1 -1
  1015. package/dist/lib/types/events.d.ts +5 -18
  1016. package/dist/lib/types/events.d.ts.map +1 -1
  1017. package/dist/lib/types/events.js +6 -15
  1018. package/dist/lib/types/events.js.map +1 -1
  1019. package/dist/lib/types/experimental.d.ts +1 -1
  1020. package/dist/lib/types/experimental.d.ts.map +1 -1
  1021. package/dist/lib/types/experimental.js +12 -12
  1022. package/dist/lib/types/experimental.js.map +1 -1
  1023. package/dist/lib/types/option.d.ts +8 -0
  1024. package/dist/lib/types/option.d.ts.map +1 -1
  1025. package/dist/lib/ui-config/ui-config-controller.d.ts +2 -8
  1026. package/dist/lib/ui-config/ui-config-controller.d.ts.map +1 -1
  1027. package/dist/lib/ui-config/ui-config-controller.js +3 -59
  1028. package/dist/lib/ui-config/ui-config-controller.js.map +1 -1
  1029. package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
  1030. package/dist/lib/ui-config/ui-config-service.js.map +1 -1
  1031. package/dist/lib/ui-config/ui-config.test.js +2 -2
  1032. package/dist/lib/ui-config/ui-config.test.js.map +1 -1
  1033. package/dist/lib/users/inactive/fakes/fake-inactive-users-store.d.ts.map +1 -1
  1034. package/dist/lib/users/inactive/fakes/fake-inactive-users-store.js +1 -0
  1035. package/dist/lib/users/inactive/fakes/fake-inactive-users-store.js.map +1 -1
  1036. package/dist/lib/users/inactive/inactive-users-store.d.ts +1 -3
  1037. package/dist/lib/users/inactive/inactive-users-store.d.ts.map +1 -1
  1038. package/dist/lib/users/inactive/inactive-users-store.js +1 -3
  1039. package/dist/lib/users/inactive/inactive-users-store.js.map +1 -1
  1040. package/dist/lib/util/anonymise.test.js.map +1 -1
  1041. package/dist/lib/util/batchExecute.d.ts.map +1 -1
  1042. package/dist/lib/util/batchExecute.js +3 -1
  1043. package/dist/lib/util/batchExecute.js.map +1 -1
  1044. package/dist/lib/util/flag-resolver.d.ts.map +1 -1
  1045. package/dist/lib/util/flag-resolver.js +11 -3
  1046. package/dist/lib/util/flag-resolver.js.map +1 -1
  1047. package/dist/lib/util/flag-resolver.test.js +66 -15
  1048. package/dist/lib/util/flag-resolver.test.js.map +1 -1
  1049. package/dist/lib/util/graceful-shutdown.js +1 -1
  1050. package/dist/lib/util/graceful-shutdown.js.map +1 -1
  1051. package/dist/lib/util/parseEnvVar.d.ts +2 -0
  1052. package/dist/lib/util/parseEnvVar.d.ts.map +1 -1
  1053. package/dist/lib/util/parseEnvVar.js +21 -1
  1054. package/dist/lib/util/parseEnvVar.js.map +1 -1
  1055. package/dist/lib/util/parseEnvVar.test.js +24 -1
  1056. package/dist/lib/util/parseEnvVar.test.js.map +1 -1
  1057. package/dist/lib/util/postgres-version-checker.test.js +17 -5
  1058. package/dist/lib/util/postgres-version-checker.test.js.map +1 -1
  1059. package/dist/lib/util/semver.js +1 -1
  1060. package/dist/lib/util/semver.js.map +1 -1
  1061. package/dist/lib/util/validateJsonString.js +1 -1
  1062. package/dist/lib/util/validateJsonString.js.map +1 -1
  1063. package/dist/mailtemplates/getting-started/getting-started.html.mustache +1 -1
  1064. package/dist/migrations/20251027094509-milestone-progression-natural-pk.d.ts +3 -0
  1065. package/dist/migrations/20251027094509-milestone-progression-natural-pk.d.ts.map +1 -0
  1066. package/dist/migrations/20251027094509-milestone-progression-natural-pk.js +22 -0
  1067. package/dist/migrations/20251027094509-milestone-progression-natural-pk.js.map +1 -0
  1068. package/dist/migrations/20251103114221-milestone-progression-paused-at.d.ts +3 -0
  1069. package/dist/migrations/20251103114221-milestone-progression-paused-at.d.ts.map +1 -0
  1070. package/dist/migrations/20251103114221-milestone-progression-paused-at.js +14 -0
  1071. package/dist/migrations/20251103114221-milestone-progression-paused-at.js.map +1 -0
  1072. package/dist/migrations/20251105153729-create-safeguards-table.d.ts +3 -0
  1073. package/dist/migrations/20251105153729-create-safeguards-table.d.ts.map +1 -0
  1074. package/dist/migrations/20251105153729-create-safeguards-table.js +17 -0
  1075. package/dist/migrations/20251105153729-create-safeguards-table.js.map +1 -0
  1076. package/dist/migrations/20251118131212-edge-observability-hosting.d.ts +3 -0
  1077. package/dist/migrations/20251118131212-edge-observability-hosting.d.ts.map +1 -0
  1078. package/dist/migrations/20251118131212-edge-observability-hosting.js +14 -0
  1079. package/dist/migrations/20251118131212-edge-observability-hosting.js.map +1 -0
  1080. package/dist/migrations/20251209090115-add-default-release-plan-template.d.ts +3 -0
  1081. package/dist/migrations/20251209090115-add-default-release-plan-template.d.ts.map +1 -0
  1082. package/dist/migrations/20251209090115-add-default-release-plan-template.js +45 -0
  1083. package/dist/migrations/20251209090115-add-default-release-plan-template.js.map +1 -0
  1084. package/dist/server-dev.js +3 -7
  1085. package/dist/server-dev.js.map +1 -1
  1086. package/dist/test/arbitraries.test.d.ts.map +1 -1
  1087. package/dist/test/arbitraries.test.js +1 -0
  1088. package/dist/test/arbitraries.test.js.map +1 -1
  1089. package/dist/test/config/create-config.test.js +2 -2
  1090. package/dist/test/config/create-config.test.js.map +1 -1
  1091. package/dist/test/e2e/api/admin/addon.e2e.test.js +4 -1
  1092. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  1093. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +6 -3
  1094. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  1095. package/dist/test/e2e/api/admin/api-token.e2e.test.js +12 -3
  1096. package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
  1097. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +8 -8
  1098. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -1
  1099. package/dist/test/e2e/api/admin/feature-type.test.js +4 -1
  1100. package/dist/test/e2e/api/admin/feature-type.test.js.map +1 -1
  1101. package/dist/test/e2e/api/admin/feature.custom-auth.e2e.test.js +3 -3
  1102. package/dist/test/e2e/api/admin/feature.custom-auth.e2e.test.js.map +1 -1
  1103. package/dist/test/e2e/api/admin/feedback.e2e.test.js +3 -3
  1104. package/dist/test/e2e/api/admin/feedback.e2e.test.js.map +1 -1
  1105. package/dist/test/e2e/api/admin/metrics.e2e.test.js +3 -3
  1106. package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
  1107. package/dist/test/e2e/api/admin/playground.e2e.test.js +1 -1
  1108. package/dist/test/e2e/api/admin/playground.e2e.test.js.map +1 -1
  1109. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +5 -1
  1110. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
  1111. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +1 -1
  1112. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
  1113. package/dist/test/e2e/api/admin/project/variants.e2e.test.js +2 -2
  1114. package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -1
  1115. package/dist/test/e2e/api/admin/public-signup-token.e2e.test.js +12 -12
  1116. package/dist/test/e2e/api/admin/public-signup-token.e2e.test.js.map +1 -1
  1117. package/dist/test/e2e/api/admin/splash.e2e.test.js +3 -3
  1118. package/dist/test/e2e/api/admin/splash.e2e.test.js.map +1 -1
  1119. package/dist/test/e2e/api/admin/user/pat.e2e.test.d.ts +1 -1
  1120. package/dist/test/e2e/api/admin/user/pat.e2e.test.js +1 -1
  1121. package/dist/test/e2e/api/admin/user-admin.e2e.test.js +1 -1
  1122. package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
  1123. package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.d.ts +2 -0
  1124. package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.d.ts.map +1 -0
  1125. package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.js +173 -0
  1126. package/dist/test/e2e/api/client/bulk-metrics-rejections.e2e.test.js.map +1 -0
  1127. package/dist/test/e2e/api/client/feature.auth-none.e2e.test.js +1 -1
  1128. package/dist/test/e2e/api/client/feature.auth-none.e2e.test.js.map +1 -1
  1129. package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js.map +1 -1
  1130. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +1 -1
  1131. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  1132. package/dist/test/e2e/api/client/metrics.e2e.test.js +2 -1
  1133. package/dist/test/e2e/api/client/metrics.e2e.test.js.map +1 -1
  1134. package/dist/test/e2e/api/client/register.e2e.test.js +4 -4
  1135. package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
  1136. package/dist/test/e2e/custom-auth.test.js +2 -2
  1137. package/dist/test/e2e/custom-auth.test.js.map +1 -1
  1138. package/dist/test/e2e/features-created-by-user-id-data-migration.e2e.test.js +4 -4
  1139. package/dist/test/e2e/features-created-by-user-id-data-migration.e2e.test.js.map +1 -1
  1140. package/dist/test/e2e/helpers/database-init.d.ts +1 -1
  1141. package/dist/test/e2e/helpers/database-init.d.ts.map +1 -1
  1142. package/dist/test/e2e/helpers/database-init.js +1 -1
  1143. package/dist/test/e2e/helpers/database-init.js.map +1 -1
  1144. package/dist/test/e2e/ready.e2e.test.d.ts +2 -0
  1145. package/dist/test/e2e/ready.e2e.test.d.ts.map +1 -0
  1146. package/dist/test/e2e/ready.e2e.test.js +66 -0
  1147. package/dist/test/e2e/ready.e2e.test.js.map +1 -0
  1148. package/dist/test/e2e/seed/segment.seed.js +2 -2
  1149. package/dist/test/e2e/seed/segment.seed.js.map +1 -1
  1150. package/dist/test/e2e/services/access-service.e2e.test.js +34 -2
  1151. package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
  1152. package/dist/test/e2e/services/addon-service.e2e.test.js +1 -1
  1153. package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
  1154. package/dist/test/e2e/services/api-token-service.e2e.test.js +1 -1
  1155. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  1156. package/dist/test/e2e/services/playground-service.test.js +18 -12
  1157. package/dist/test/e2e/services/playground-service.test.js.map +1 -1
  1158. package/dist/test/e2e/services/setting-service.test.js +2 -2
  1159. package/dist/test/e2e/services/setting-service.test.js.map +1 -1
  1160. package/dist/test/e2e/services/user-service.e2e.test.js +1 -1
  1161. package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
  1162. package/dist/test/e2e/stores/client-application-store.e2e.test.js +22 -23
  1163. package/dist/test/e2e/stores/client-application-store.e2e.test.js.map +1 -1
  1164. package/dist/test/e2e/stores/client-instance-store.e2e.test.js +2 -2
  1165. package/dist/test/e2e/stores/client-instance-store.e2e.test.js.map +1 -1
  1166. package/dist/test/e2e/stores/context-field-store.e2e.test.js +2 -2
  1167. package/dist/test/e2e/stores/context-field-store.e2e.test.js.map +1 -1
  1168. package/dist/test/fixtures/access-service-mock.d.ts +13 -13
  1169. package/dist/test/fixtures/access-service-mock.d.ts.map +1 -1
  1170. package/dist/test/fixtures/access-service-mock.js +13 -13
  1171. package/dist/test/fixtures/access-service-mock.js.map +1 -1
  1172. package/dist/test/fixtures/fake-access-store.d.ts +38 -34
  1173. package/dist/test/fixtures/fake-access-store.d.ts.map +1 -1
  1174. package/dist/test/fixtures/fake-access-store.js +37 -35
  1175. package/dist/test/fixtures/fake-access-store.js.map +1 -1
  1176. package/dist/test/fixtures/fake-account-store.d.ts +2 -2
  1177. package/dist/test/fixtures/fake-account-store.d.ts.map +1 -1
  1178. package/dist/test/fixtures/fake-account-store.js +2 -2
  1179. package/dist/test/fixtures/fake-account-store.js.map +1 -1
  1180. package/dist/test/fixtures/fake-client-applications-store.d.ts +2 -2
  1181. package/dist/test/fixtures/fake-client-applications-store.d.ts.map +1 -1
  1182. package/dist/test/fixtures/fake-client-applications-store.js +6 -4
  1183. package/dist/test/fixtures/fake-client-applications-store.js.map +1 -1
  1184. package/dist/test/fixtures/fake-client-instance-store.d.ts +1 -1
  1185. package/dist/test/fixtures/fake-client-instance-store.d.ts.map +1 -1
  1186. package/dist/test/fixtures/fake-client-instance-store.js +4 -2
  1187. package/dist/test/fixtures/fake-client-instance-store.js.map +1 -1
  1188. package/dist/test/fixtures/fake-event-store.d.ts +3 -3
  1189. package/dist/test/fixtures/fake-event-store.d.ts.map +1 -1
  1190. package/dist/test/fixtures/fake-event-store.js +3 -3
  1191. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  1192. package/dist/test/fixtures/fake-favorite-features-store.d.ts +5 -5
  1193. package/dist/test/fixtures/fake-favorite-features-store.d.ts.map +1 -1
  1194. package/dist/test/fixtures/fake-favorite-features-store.js +5 -5
  1195. package/dist/test/fixtures/fake-favorite-features-store.js.map +1 -1
  1196. package/dist/test/fixtures/fake-favorite-projects-store.d.ts +5 -5
  1197. package/dist/test/fixtures/fake-favorite-projects-store.d.ts.map +1 -1
  1198. package/dist/test/fixtures/fake-favorite-projects-store.js +5 -5
  1199. package/dist/test/fixtures/fake-favorite-projects-store.js.map +1 -1
  1200. package/dist/test/fixtures/fake-feature-environment-store.d.ts +9 -9
  1201. package/dist/test/fixtures/fake-feature-environment-store.d.ts.map +1 -1
  1202. package/dist/test/fixtures/fake-feature-environment-store.js +19 -19
  1203. package/dist/test/fixtures/fake-feature-environment-store.js.map +1 -1
  1204. package/dist/test/fixtures/fake-feature-tag-store.d.ts +1 -1
  1205. package/dist/test/fixtures/fake-feature-tag-store.d.ts.map +1 -1
  1206. package/dist/test/fixtures/fake-feature-tag-store.js +2 -2
  1207. package/dist/test/fixtures/fake-feature-tag-store.js.map +1 -1
  1208. package/dist/test/fixtures/fake-group-store.d.ts +16 -16
  1209. package/dist/test/fixtures/fake-group-store.d.ts.map +1 -1
  1210. package/dist/test/fixtures/fake-group-store.js +16 -16
  1211. package/dist/test/fixtures/fake-group-store.js.map +1 -1
  1212. package/dist/test/fixtures/fake-impact-metrics.d.ts +12 -4
  1213. package/dist/test/fixtures/fake-impact-metrics.d.ts.map +1 -1
  1214. package/dist/test/fixtures/fake-impact-metrics.js +50 -26
  1215. package/dist/test/fixtures/fake-impact-metrics.js.map +1 -1
  1216. package/dist/test/fixtures/fake-pat-store.d.ts +9 -9
  1217. package/dist/test/fixtures/fake-pat-store.d.ts.map +1 -1
  1218. package/dist/test/fixtures/fake-pat-store.js +9 -9
  1219. package/dist/test/fixtures/fake-pat-store.js.map +1 -1
  1220. package/dist/test/fixtures/fake-project-store.d.ts +11 -11
  1221. package/dist/test/fixtures/fake-project-store.d.ts.map +1 -1
  1222. package/dist/test/fixtures/fake-project-store.js +16 -16
  1223. package/dist/test/fixtures/fake-project-store.js.map +1 -1
  1224. package/dist/test/fixtures/fake-public-signup-store.d.ts +2 -2
  1225. package/dist/test/fixtures/fake-public-signup-store.d.ts.map +1 -1
  1226. package/dist/test/fixtures/fake-public-signup-store.js +2 -2
  1227. package/dist/test/fixtures/fake-public-signup-store.js.map +1 -1
  1228. package/dist/test/fixtures/fake-role-store.d.ts +9 -9
  1229. package/dist/test/fixtures/fake-role-store.d.ts.map +1 -1
  1230. package/dist/test/fixtures/fake-role-store.js +9 -9
  1231. package/dist/test/fixtures/fake-role-store.js.map +1 -1
  1232. package/dist/test/fixtures/fake-strategies-store.d.ts.map +1 -1
  1233. package/dist/test/fixtures/fake-strategies-store.js +0 -2
  1234. package/dist/test/fixtures/fake-strategies-store.js.map +1 -1
  1235. package/dist/test/fixtures/fake-tag-store.d.ts.map +1 -1
  1236. package/dist/test/fixtures/fake-tag-store.js +4 -2
  1237. package/dist/test/fixtures/fake-tag-store.js.map +1 -1
  1238. package/dist/test/fixtures/fake-user-feedback-store.d.ts +6 -6
  1239. package/dist/test/fixtures/fake-user-feedback-store.d.ts.map +1 -1
  1240. package/dist/test/fixtures/fake-user-feedback-store.js +6 -6
  1241. package/dist/test/fixtures/fake-user-feedback-store.js.map +1 -1
  1242. package/dist/test/fixtures/fake-user-splash-store.d.ts +6 -6
  1243. package/dist/test/fixtures/fake-user-splash-store.d.ts.map +1 -1
  1244. package/dist/test/fixtures/fake-user-splash-store.js +6 -6
  1245. package/dist/test/fixtures/fake-user-splash-store.js.map +1 -1
  1246. package/dist/test/fixtures/fake-user-store.d.ts +2 -2
  1247. package/dist/test/fixtures/fake-user-store.d.ts.map +1 -1
  1248. package/dist/test/fixtures/fake-user-store.js +2 -2
  1249. package/dist/test/fixtures/fake-user-store.js.map +1 -1
  1250. package/dist/test/fixtures/permissions.js +1 -1
  1251. package/dist/test/fixtures/permissions.js.map +1 -1
  1252. package/frontend/build/index.html +2 -2
  1253. package/frontend/build/static/{AdvancedPlayground-HWcSRQrt.js → AdvancedPlayground-CmMV64it.js} +2 -2
  1254. package/frontend/build/static/BackendConnections-MqHimHCS.js +1 -0
  1255. package/frontend/build/static/{CreateProject-3uUrdDWJ.js → CreateProject-ChlGOrPC.js} +1 -1
  1256. package/frontend/build/static/EnterpriseEdge-cJFso1xz.js +1 -0
  1257. package/frontend/build/static/FeatureMetricsChart-Bt6HiI-s.js +2 -0
  1258. package/frontend/build/static/FeatureStaleDialog-DZEtcHDT.js +7 -0
  1259. package/frontend/build/static/FeatureViewLazyExport-BPB1jWYz.js +10 -0
  1260. package/frontend/build/static/{FlagMetricsChart-DFDJ4xPh.js → FlagMetricsChart-CvsBPrQG.js} +2 -2
  1261. package/frontend/build/static/FrontendNetworkTrafficUsage-D8l5Nldl.js +1 -0
  1262. package/frontend/build/static/GridLayoutWrapper-2osRRgh4.js +3 -0
  1263. package/frontend/build/static/ImpactMetricsPage-Chv_7_jx.js +1 -0
  1264. package/frontend/build/static/LazyAdminExport-BOTczpO1.js +38 -0
  1265. package/frontend/build/static/LazyProjectExport-DPAYnCIy.js +728 -0
  1266. package/frontend/build/static/{LifecycleChartComponent-BOcT_Zpy.js → LifecycleChartComponent-DubZNJlv.js} +3 -3
  1267. package/frontend/build/static/{LineChartComponent-CudSs6ri.js → LineChartComponent-CY-8M35z.js} +1 -1
  1268. package/frontend/build/static/{MarkCompletedDialogue-4XT7ryE9.js → MarkCompletedDialogue-BwS_OP77.js} +1 -1
  1269. package/frontend/build/static/NetworkOverview-p_eqqiwO.js +1 -0
  1270. package/frontend/build/static/{NetworkPrometheusAPIWarning-Cy93jJcu.js → NetworkPrometheusAPIWarning-BhqdG7Dp.js} +1 -1
  1271. package/frontend/build/static/{NetworkTraffic-BTN3OABv.js → NetworkTraffic-NxX5X_w8.js} +1 -1
  1272. package/frontend/build/static/NetworkTrafficUsage-B-4F8Mzq.js +1 -0
  1273. package/frontend/build/static/{PercentageDonut-CmWbqKEA.js → PercentageDonut-BoaVP9ed.js} +1 -1
  1274. package/frontend/build/static/{ReactJSONEditor-xNDjbhPU.js → ReactJSONEditor-DfZdSwoC.js} +1 -1
  1275. package/frontend/build/static/RoleCell-Da0TjMne.js +1 -0
  1276. package/frontend/build/static/aggregateFeatureMetrics-yZy5qwho.js +1 -0
  1277. package/frontend/build/static/banner-progression-B6JPzTEE.svg +52 -0
  1278. package/frontend/build/static/enterpriseEdgeCloud-DzRtm8v6.svg +58 -0
  1279. package/frontend/build/static/enterpriseEdgeSelfHosted-4bnmOQVF.svg +44 -0
  1280. package/frontend/build/static/{formatTickValue-4OyGeZqN.js → formatTickValue-Csg87IVi.js} +2 -2
  1281. package/frontend/build/static/index-BAMIkcom.js +542 -0
  1282. package/frontend/build/static/{networkTrafficUsageHighlightPlugin-CT-MfVrm.js → networkTrafficUsageHighlightPlugin-Dje5Vuvo.js} +1 -1
  1283. package/frontend/build/static/new-feature-badge-FwMmHlwT.svg +7 -0
  1284. package/frontend/build/static/style-BfdqROT6.css +1 -0
  1285. package/frontend/build/static/useApiTokens-Btk4Hd2u.js +1 -0
  1286. package/frontend/package.json +4 -5
  1287. package/package.json +45 -50
  1288. package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts +0 -5
  1289. package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts.map +0 -1
  1290. package/dist/lib/features/release-plans/release-plan-read-model-type.js +0 -2
  1291. package/dist/lib/features/release-plans/release-plan-read-model-type.js.map +0 -1
  1292. package/dist/lib/features/release-plans/release-plan-read-model.d.ts +0 -11
  1293. package/dist/lib/features/release-plans/release-plan-read-model.d.ts.map +0 -1
  1294. package/dist/lib/features/release-plans/release-plan-read-model.js +0 -133
  1295. package/dist/lib/features/release-plans/release-plan-read-model.js.map +0 -1
  1296. package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts +0 -2
  1297. package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts.map +0 -1
  1298. package/dist/lib/features/release-plans/release-plan-read-model.test.js +0 -166
  1299. package/dist/lib/features/release-plans/release-plan-read-model.test.js.map +0 -1
  1300. package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts +0 -8
  1301. package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts.map +0 -1
  1302. package/dist/test/fixtures/fake/fake-release-plan-read-model.js +0 -9
  1303. package/dist/test/fixtures/fake/fake-release-plan-read-model.js.map +0 -1
  1304. package/frontend/build/static/BackendConnections-Cug76pb0.js +0 -1
  1305. package/frontend/build/static/FeatureMetricsChart-DLvE4xPU.js +0 -2
  1306. package/frontend/build/static/FeatureStaleDialog-BFWmPzw7.js +0 -7
  1307. package/frontend/build/static/FeatureViewLazyExport-DfivW7sC.js +0 -10
  1308. package/frontend/build/static/FrontendNetworkTrafficUsage-DVa2I8CC.js +0 -1
  1309. package/frontend/build/static/GridLayoutWrapper-Mt7n_5lt.js +0 -3
  1310. package/frontend/build/static/ImpactMetricsPage-B3ERxAH0.js +0 -1
  1311. package/frontend/build/static/LazyAdminExport-s8FIvcqq.js +0 -38
  1312. package/frontend/build/static/LazyProjectExport-DN00bJrc.js +0 -728
  1313. package/frontend/build/static/NetworkConnectedEdges-CnEFuyuC.js +0 -1
  1314. package/frontend/build/static/NetworkOverview-KDe9n7ZE.js +0 -1
  1315. package/frontend/build/static/NetworkTrafficUsage-DwnXvons.js +0 -1
  1316. package/frontend/build/static/RoleCell-DSglYWti.js +0 -1
  1317. package/frontend/build/static/aggregateFeatureMetrics-B7oOoe9g.js +0 -1
  1318. package/frontend/build/static/howToApplyReleaseTemplates-CkjJPTRh.png +0 -0
  1319. package/frontend/build/static/howToApplyReleaseTemplatesDark-CfwfIMua.png +0 -0
  1320. package/frontend/build/static/index-D02pkj6r.js +0 -542
  1321. package/frontend/build/static/merge-C7IT0rZd.svg +0 -3
  1322. package/frontend/build/static/metricsFormatters-7MLBOEud.js +0 -1
  1323. package/frontend/build/static/style-BW9ZTER3.css +0 -1
  1324. package/frontend/build/static/useApiTokens-wTDjjd8a.js +0 -1
@@ -147,11 +147,11 @@ class UserStoreMock {
147
147
  return Promise.resolve(userToReturn);
148
148
  }
149
149
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
150
- getUserByPersonalAccessToken(secret) {
150
+ getUserByPersonalAccessToken(_secret) {
151
151
  throw new Error('Not implemented');
152
152
  }
153
153
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
154
- async markSeenAt(secrets) {
154
+ async markSeenAt(_secrets) {
155
155
  throw new Error('Not implemented');
156
156
  }
157
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fake-user-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-user-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-user-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-user-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  const adminUser = () => {
2
2
  return {
3
3
  hook(app) {
4
- app.use((req, res, next) => {
4
+ app.use((req, _res, next) => {
5
5
  req.user = {
6
6
  isAPI: true,
7
7
  id: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/test/fixtures/permissions.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,GAAiC,EAAE;IACjD,OAAO;QACH,IAAI,CAAC,GAAG;YACJ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACvB,GAAG,CAAC,IAAI,GAAG;oBACP,KAAK,EAAE,IAAI;oBACX,EAAE,EAAE,CAAC;oBACL,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,CAAC,OAAO,CAAC;iBACzB,CAAC;gBACF,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/test/fixtures/permissions.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,GAAiC,EAAE;IACjD,OAAO;QACH,IAAI,CAAC,GAAG;YACJ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBACxB,GAAG,CAAC,IAAI,GAAG;oBACP,KAAK,EAAE,IAAI;oBACX,EAAE,EAAE,CAAC;oBACL,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,CAAC,OAAO,CAAC;iBACzB,CAAC;gBACF,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -21,8 +21,8 @@
21
21
  rel="stylesheet"
22
22
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0"
23
23
  />
24
- <script type="module" crossorigin src="/static/index-D02pkj6r.js"></script>
25
- <link rel="stylesheet" crossorigin href="/static/style-BW9ZTER3.css">
24
+ <script type="module" crossorigin src="/static/index-BAMIkcom.js"></script>
25
+ <link rel="stylesheet" crossorigin href="/static/style-BfdqROT6.css">
26
26
  </head>
27
27
  <body>
28
28
  <div id="app"></div>
@@ -1,3 +1,3 @@
1
- import{u as Tt,g as It,r as g,_ as Pt,j as t,a as xe,s as E,U as Rt,b as N,B as k,C as L,d as Ot,c as Bt,e as Ge,f as Ft,h as Z,T as $,F as Lt,I as Nt,S as At,M as $t,i as se,p as Ee,k as Te,l as te,A as _e,m as Dt,n as Wt,o as Ht,q as zt,t as Mt,v as Ut,w as Gt,x as _t,y as Ie,P as Vt,z as Pe,D as G,L as qt,E as Kt,G as Ve,H as qe,J as X,K as Jt,N as Ke,O as oe,Q as Je,R as Yt,V as Q,W as pe,X as Zt,Y as Qt,Z as Xt,$ as Ye,a0 as re,a1 as en,a2 as tn,a3 as nn,a4 as rn,a5 as an,a6 as sn,a7 as on,a8 as ln,a9 as cn,aa as dn,ab as un,ac as B,ad as ie,ae as hn,af as gn,ag as fn,ah as pn,ai as mn,aj as xn,ak as Re,al as Ze,am as ye,an as be,ao as Qe,ap as ve,aq as Xe,ar as et,as as tt,at as nt,au as yn,av as Oe,aw as bn,ax as vn,ay as de,az as jn,aA as Cn,aB as Sn,aC as kn,aD as wn,aE as En,aF as Tn}from"./index-D02pkj6r.js";import{c as In,d as Pn,s as Rn,h as On,f as Bn,a as Fn,l as Ln,b as Nn,e as An,g as $n,i as Dn,j as Wn,k as Hn,m as zn,E as ae,n as Mn,o as je,p as Un,q as Gn,r as _n,t as Vn,u as qn,v as Kn,w as Jn,x as Yn,y as Zn,z as rt,A as U,H as at,B as i,C as Qn,D as Xn,S as er,F as tr,L as nr,G as rr,I as ar,J as sr,K as Be,M as or,N as ir}from"./index-Bj8wwcOa.js";import{u as lr}from"./useApiTokens-wTDjjd8a.js";const cr=()=>{const{makeRequest:e,createRequest:n,errors:r,loading:a}=Tt({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async l=>{const u=`${s}/advanced`,f=n(u,{method:"POST",body:JSON.stringify(l)});return(await e(f.caller,f.id)).json()},evaluateChangeRequestPlayground:async(l,u)=>{const f=`${s}/change-request/${l}`,o=n(f,{method:"POST",body:JSON.stringify(u)});return(await e(o.caller,o.id)).json()},errors:r,loading:a}};var Ce={exports:{}};function st(e,n=100,r={}){if(typeof e!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(n<0)throw new RangeError("`wait` must not be negative.");const{immediate:a}=typeof r=="boolean"?{immediate:r}:r;let s,c,d,l,u;function f(){const h=s,b=c;return s=void 0,c=void 0,u=e.apply(h,b),u}function o(){const h=Date.now()-l;h<n&&h>=0?d=setTimeout(o,n-h):(d=void 0,a||(u=f()))}const p=function(...h){if(s&&this!==s&&Object.getPrototypeOf(this)===Object.getPrototypeOf(s))throw new Error("Debounced method called with different contexts of the same prototype.");s=this,c=h,l=Date.now();const b=a&&!d;return d||(d=setTimeout(o,n)),b&&(u=f()),u};return Object.defineProperty(p,"isPending",{get(){return d!==void 0}}),p.clear=()=>{d&&(clearTimeout(d),d=void 0)},p.flush=()=>{d&&p.trigger()},p.trigger=()=>{u=f(),p.clear()},p}Ce.exports.debounce=st;Ce.exports=st;var dr=Ce.exports;const ur=It(dr);var Fe=function(n){n===void 0&&(n={});var{crosshairCursor:r=!1}=n,a=[];n.closeBracketsKeymap!==!1&&(a=a.concat(In)),n.defaultKeymap!==!1&&(a=a.concat(Pn)),n.searchKeymap!==!1&&(a=a.concat(Rn)),n.historyKeymap!==!1&&(a=a.concat(On)),n.foldKeymap!==!1&&(a=a.concat(Bn)),n.completionKeymap!==!1&&(a=a.concat(Fn)),n.lintKeymap!==!1&&(a=a.concat(Ln));var s=[];return n.lineNumbers!==!1&&s.push(Nn()),n.highlightActiveLineGutter!==!1&&s.push(An()),n.highlightSpecialChars!==!1&&s.push($n()),n.history!==!1&&s.push(Dn()),n.foldGutter!==!1&&s.push(Wn()),n.drawSelection!==!1&&s.push(Hn()),n.dropCursor!==!1&&s.push(zn()),n.allowMultipleSelections!==!1&&s.push(ae.allowMultipleSelections.of(!0)),n.indentOnInput!==!1&&s.push(Mn()),n.syntaxHighlighting!==!1&&s.push(je(Un,{fallback:!0})),n.bracketMatching!==!1&&s.push(Gn()),n.closeBrackets!==!1&&s.push(_n()),n.autocompletion!==!1&&s.push(Vn()),n.rectangularSelection!==!1&&s.push(qn()),r!==!1&&s.push(Kn()),n.highlightActiveLine!==!1&&s.push(Jn()),n.highlightSelectionMatches!==!1&&s.push(Yn()),n.tabSize&&typeof n.tabSize=="number"&&s.push(Zn.of(" ".repeat(n.tabSize))),s.concat([rt.of(a.flat())]).filter(Boolean)};const hr="#e5c07b",Le="#e06c75",gr="#56b6c2",fr="#ffffff",ne="#abb2bf",me="#7d8799",pr="#61afef",mr="#98c379",Ne="#d19a66",xr="#c678dd",yr="#21252b",Ae="#2c313a",$e="#282c34",ue="#353a42",br="#3E4451",De="#528bff",vr=U.theme({"&":{color:ne,backgroundColor:$e},".cm-content":{caretColor:De},".cm-cursor, .cm-dropCursor":{borderLeftColor:De},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:br},".cm-panels":{backgroundColor:yr,color:ne},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:$e,color:me,border:"none"},".cm-activeLineGutter":{backgroundColor:Ae},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:ue},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:ue,borderBottomColor:ue},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Ae,color:ne}}},{dark:!0}),jr=at.define([{tag:i.keyword,color:xr},{tag:[i.name,i.deleted,i.character,i.propertyName,i.macroName],color:Le},{tag:[i.function(i.variableName),i.labelName],color:pr},{tag:[i.color,i.constant(i.name),i.standard(i.name)],color:Ne},{tag:[i.definition(i.name),i.separator],color:ne},{tag:[i.typeName,i.className,i.number,i.changed,i.annotation,i.modifier,i.self,i.namespace],color:hr},{tag:[i.operator,i.operatorKeyword,i.url,i.escape,i.regexp,i.link,i.special(i.string)],color:gr},{tag:[i.meta,i.comment],color:me},{tag:i.strong,fontWeight:"bold"},{tag:i.emphasis,fontStyle:"italic"},{tag:i.strikethrough,textDecoration:"line-through"},{tag:i.link,color:me,textDecoration:"underline"},{tag:i.heading,fontWeight:"bold",color:Le},{tag:[i.atom,i.bool,i.special(i.variableName)],color:Ne},{tag:[i.processingInstruction,i.string,i.inserted],color:mr},{tag:i.invalid,color:fr}]),Cr=[vr,je(jr)];var Sr=U.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),kr=function(n){n===void 0&&(n={});var{indentWithTab:r=!0,editable:a=!0,readOnly:s=!1,theme:c="light",placeholder:d="",basicSetup:l=!0}=n,u=[];switch(r&&u.unshift(rt.of([Qn])),l&&(typeof l=="boolean"?u.unshift(Fe()):u.unshift(Fe(l))),d&&u.unshift(Xn(d)),c){case"light":u.push(Sr);break;case"dark":u.push(Cr);break;case"none":break;default:u.push(c);break}return a===!1&&u.push(U.editable.of(!1)),s&&u.push(ae.readOnly.of(!0)),[...u]},wr=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(n=>e.state.sliceDoc(n.from,n.to)),selectedText:e.state.selection.ranges.some(n=>!n.empty)}),We=tr.define(),Er=[];function Tr(e){var{value:n,selection:r,onChange:a,onStatistics:s,onCreateEditor:c,onUpdate:d,extensions:l=Er,autoFocus:u,theme:f="light",height:o=null,minHeight:p=null,maxHeight:h=null,width:b=null,minWidth:T=null,maxWidth:I=null,placeholder:v="",editable:R=!0,readOnly:P=!1,indentWithTab:F=!0,basicSetup:y=!0,root:m,initialState:w}=e,[x,j]=g.useState(),[C,A]=g.useState(),[D,z]=g.useState(),J=U.theme({"&":{height:o,minHeight:p,maxHeight:h,width:b,minWidth:T,maxWidth:I},"& .cm-scroller":{height:"100% !important"}}),V=U.updateListener.of(O=>{if(O.docChanged&&typeof a=="function"&&!O.transactions.some(le=>le.annotation(We))){var _=O.state.doc,q=_.toString();a(q,O)}s&&s(wr(O))}),Y=kr({theme:f,editable:R,readOnly:P,placeholder:v,indentWithTab:F,basicSetup:y}),W=[V,J,...Y];return d&&typeof d=="function"&&W.push(U.updateListener.of(d)),W=W.concat(l),g.useLayoutEffect(()=>{if(x&&!D){var O={doc:n,selection:r,extensions:W},_=w?ae.fromJSON(w.json,O,w.fields):ae.create(O);if(z(_),!C){var q=new U({state:_,parent:x,root:m});A(q),c&&c(q,_)}}return()=>{C&&(z(void 0),A(void 0))}},[x,D]),g.useEffect(()=>{e.container&&j(e.container)},[e.container]),g.useEffect(()=>()=>{C&&(C.destroy(),A(void 0))},[C]),g.useEffect(()=>{u&&C&&C.focus()},[u,C]),g.useEffect(()=>{C&&C.dispatch({effects:er.reconfigure.of(W)})},[f,l,o,p,h,b,T,I,v,R,P,F,y,a,d]),g.useEffect(()=>{if(n!==void 0){var O=C?C.state.doc.toString():"";C&&n!==O&&C.dispatch({changes:{from:0,to:O.length,insert:n||""},annotations:[We.of(!0)]})}},[n,C]),{state:D,setState:z,view:C,setView:A,container:x,setContainer:j}}var Ir=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],ot=g.forwardRef((e,n)=>{var{className:r,value:a="",selection:s,extensions:c=[],onChange:d,onStatistics:l,onCreateEditor:u,onUpdate:f,autoFocus:o,theme:p="light",height:h,minHeight:b,maxHeight:T,width:I,minWidth:v,maxWidth:R,basicSetup:P,placeholder:F,indentWithTab:y,editable:m,readOnly:w,root:x,initialState:j}=e,C=Pt(e,Ir),A=g.useRef(null),{state:D,view:z,container:J,setContainer:V}=Tr({root:x,value:a,autoFocus:o,theme:p,height:h,minHeight:b,maxHeight:T,width:I,minWidth:v,maxWidth:R,basicSetup:P,placeholder:F,indentWithTab:y,editable:m,readOnly:w,selection:s,onChange:d,onStatistics:l,onCreateEditor:u,onUpdate:f,extensions:c,initialState:j});g.useImperativeHandle(n,()=>({editor:A.current,state:D,view:z}),[A,J,D,z]);var Y=g.useCallback(O=>{A.current=O,V(O)},[V]);if(typeof a!="string")throw new Error("value must be typeof string but got "+typeof a);var W=typeof p=="string"?"cm-theme-"+p:"cm-theme";return t.jsx("div",xe({ref:Y,className:""+W+(r?" "+r:"")},C))});ot.displayName="CodeMirror";const Pr=rr.define({name:"json",parser:ar.configure({props:[sr.add({Object:Be({except:/^\s*\}/}),Array:Be({except:/^\s*\]/})}),or.add({"Object Array":ir})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Rr(){return new nr(Pr)}var it=e=>{var{theme:n,settings:r={},styles:a=[]}=e,s={".cm-gutters":{}},c={};r.background&&(c.backgroundColor=r.background),r.backgroundImage&&(c.backgroundImage=r.backgroundImage),r.foreground&&(c.color=r.foreground),r.fontSize&&(c.fontSize=r.fontSize),(r.background||r.foreground)&&(s["&"]=c),r.fontFamily&&(s["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(s[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(s[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(s[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(s[".cm-content"]={caretColor:r.caret},s[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var d={};r.gutterActiveForeground&&(d.color=r.gutterActiveForeground),r.lineHighlight&&(s[".cm-activeLine"]={backgroundColor:r.lineHighlight},d.backgroundColor=r.lineHighlight),s[".cm-activeLineGutter"]=d,r.selection&&(s["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(s["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var l=U.theme(s,{dark:n==="dark"}),u=at.define(a),f=[l,je(u)];return f},Or={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#ddceb154"},Br=[{tag:[i.comment,i.bracket],color:"#b6ad9a"},{tag:[i.atom,i.number,i.keyword,i.link,i.attributeName,i.quote],color:"#063289"},{tag:[i.emphasis,i.heading,i.tagName,i.propertyName,i.variableName],color:"#2d2006"},{tag:[i.typeName,i.url,i.string],color:"#896724"},{tag:[i.operator,i.string],color:"#1659df"},{tag:[i.propertyName],color:"#b29762"},{tag:[i.unit,i.punctuation],color:"#063289"}],Fr=e=>{var{theme:n="light",settings:r={},styles:a=[]}={};return it({theme:n,settings:xe({},Or,r),styles:[...Br,...a]})},Lr=Fr(),Nr={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"#91ff6c26",selectionMatch:"#91ff6c26",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},Ar=[{tag:[i.comment,i.bracket],color:"#6c6783"},{tag:[i.atom,i.number,i.keyword,i.link,i.attributeName,i.quote],color:"#ffcc99"},{tag:[i.emphasis,i.heading,i.tagName,i.propertyName,i.className,i.variableName],color:"#eeebff"},{tag:[i.typeName,i.url],color:"#7a63ee"},{tag:i.operator,color:"#ffad5c"},{tag:i.string,color:"#ffb870"},{tag:[i.propertyName],color:"#9a86fd"},{tag:[i.unit,i.punctuation],color:"#e09142"}],$r=e=>{var{theme:n="dark",settings:r={},styles:a=[]}={};return it({theme:n,settings:xe({},Nr,r),styles:[...Ar,...a]})},Dr=$r();const Wr=E("aside")(({theme:e})=>({height:"50px",backgroundColor:e.palette.background.paper,borderTopRightRadius:e.shape.borderRadiusMedium,borderTopLeftRadius:e.shape.borderRadiusMedium,padding:e.spacing(1,2),color:e.palette.text.primary,display:"flex",justifyContent:"space-between",alignItems:"center",border:`1px solid ${e.palette.divider}`})),lt=E("div")(({theme:e,style:n})=>({width:e.spacing(3),height:e.spacing(3),display:"flex",alignItems:"center",color:e.palette.background.paper,justifyContent:"center",transition:"background-color 0.5s ease-in-out",borderRadius:"50%",...n})),Hr=E("div")(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.error.dark,marginRight:e.spacing(1)})),zr=()=>{const e=N();return t.jsx(lt,{style:{backgroundColor:e.palette.success.main},children:t.jsx(Ot,{sx:n=>({width:n.spacing(2),height:n.spacing(2)})})})},Mr=()=>{const e=N();return t.jsx(lt,{style:{backgroundColor:e.palette.error.main},children:t.jsx(Bt,{})})},Ur=({context:e,setContext:n,error:r})=>{const{themeMode:a}=g.useContext(Rt),s=N(),c=g.useCallback(l=>{n(l)},[n]),d=`calc(6 * ${s.typography.body1.fontSize} * ${s.typography.body1.lineHeight}) + 8px`;return t.jsxs(k,{sx:{width:"100%"},children:[t.jsxs(Wr,{children:["JSON",t.jsx(L,{condition:!!r,show:t.jsxs(k,{sx:l=>({display:"flex",alignItems:"center"}),children:[t.jsx(Hr,{children:r}),t.jsx(Mr,{})]}),elseShow:t.jsx(zr,{})})]}),t.jsx(ot,{value:e,minHeight:d,theme:a==="dark"?Dr:Lr,extensions:[Rr()],onChange:c,style:{border:`1px solid ${s.palette.divider}`,borderTop:"none"},placeholder:JSON.stringify({currentTime:"2022-07-04T14:13:03.929Z",appName:"playground",userId:"test",remoteAddress:"127.0.0.1"},null,2)})]})};function ct(e){return Array.isArray(e)?e:[e]}const Gr=e=>!e||e.length===0||e.length===1&&e[0]==="*"?"*":ct(e),_r=e=>ct(e),Vr=e=>{const n=qr(e);return n.length>0?n[0]:""},qr=e=>e.filter(({enabled:n})=>!!n).sort((n,r)=>n.sortOrder-r.sortOrder).map(({name:n})=>n),Kr=(e,n)=>"100%",Jr=e=>typeof e=="string"?!0:Array.isArray(e)?e.every(n=>typeof n=="string"):!1,Yr=e=>{const n=new Set(["appName","environment","userId","sessionId","remoteAddress","currentTime","properties"]),r={...e};let a=!1;for(const s in e)n.has(s)||(r.properties||(r.properties={}),r.properties[s]=e[s],delete r[s],a=!0);return!a&&!e.properties&&delete r.properties,r},Zr=e=>{const[n]=e.split("."),[r,a]=n.split(":");if(!r||!a)throw new Error("Invalid token format");if(a==="*")throw new Error("Admin tokens are not supported in the playground")},Qr=e=>{const[n]=e.split(".");return n.split(":")},Xr=({context:e,setContext:n})=>{const r=N(),{setToastData:a}=Ge(),{context:s}=Ft(),c=s.sort((y,m)=>y.sortOrder-m.sortOrder).map(({name:y})=>y),[d,l]=g.useState(),[u,f]=g.useState(!1),[o,p]=g.useState(""),[h,b]=g.useState(""),T=g.useMemo(()=>ur(y=>{var m;if(!y)return l(void 0);try{const w=JSON.parse(y);f(w[o]!==void 0||((m=w==null?void 0:w.properties)==null?void 0:m[o])!==void 0)}catch(w){return l(Z(w))}return l(void 0)},250),[l,o,f]);g.useEffect(()=>{T(e)},[T,e]);const I=()=>{try{const y=JSON.parse(e||"{}");n(JSON.stringify(Yr({...y,[o]:h}),null,2));const m=s.find(w=>w.name===o);if(m!=null&&m.legalValues&&m.legalValues.length>0||o==="currentTime")return b("")}catch(y){a({type:"error",text:`Error parsing context: ${Z(y)}`})}},v=(y,m)=>{if(Jr(m)){if(Array.isArray(m)){const w=(m||[]).length>1?m.join(","):m[0];return b(w)}b(m)}},R=()=>{if(!h||h==="")return[];const y=s.find(w=>w.name===o),m=((y==null?void 0:y.legalValues)||[]).length>1;return h.includes(",")&&m?h.split(","):[h]},P=()=>{if(o==="currentTime"){const m=Ee(h),x=m?Te(m.toISOString()):Te(new Date().toISOString());return t.jsx(te,{id:"date",label:"Date",size:"small",type:"datetime-local",value:x,sx:{width:200,maxWidth:"100%"},onChange:j=>{const C=Ee(j.target.value),A=C==null?void 0:C.toISOString();A&&b(A)},InputLabelProps:{shrink:!0},required:!0})}const y=s.find(m=>m.name===o);if(y!=null&&y.legalValues&&y.legalValues.length>0){const m=y.legalValues.map(({value:w})=>w);return t.jsx(_e,{disablePortal:!0,limitTags:3,id:"context-legal-values",multiple:!0,options:m,disableCloseOnSelect:!0,size:"small",value:R(),onChange:v,getOptionLabel:w=>w,renderOption:(w,x,{selected:j})=>t.jsxs("li",{...w,children:[t.jsx(Dt,{icon:t.jsx(Wt,{fontSize:"small"}),checkedIcon:t.jsx(Ht,{fontSize:"small"}),sx:C=>({marginRight:C.spacing(.5)}),checked:j}),x]}),sx:{width:370,maxWidth:"100%"},renderInput:w=>t.jsx(te,{...w,label:"Value"})})}return t.jsx(te,{label:"Value",id:"context-value",sx:{width:370,maxWidth:"100%"},placeholder:"value1,value2,value3",size:"small",value:h,onChange:m=>b(m.target.value||"")})},F=y=>{if(p(y.target.value||""),y.target.value==="currentTime")return b(new Date().toISOString());b("")};return t.jsxs(k,{children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx($,{variant:"body2",color:r.palette.text.primary,sx:{ml:1},children:"Unleash context"})}),t.jsxs(k,{sx:{display:"flex",gap:2,flexWrap:"wrap",mb:2},children:[t.jsxs(Lt,{children:[t.jsx(Nt,{id:"context-field-label",size:"small",children:"Context field"}),t.jsx(At,{label:"Context field",labelId:"context-field-label",id:"context-field",value:o,onChange:F,variant:"outlined",size:"small",sx:{width:200,maxWidth:"100%"},children:c.map(y=>t.jsx($t,{value:y,children:y},y))})]}),P(),t.jsx(se,{variant:"outlined",disabled:!o||!!d,onClick:I,sx:{width:"95px",maxHeight:"40px"},children:`${u?"Replace":"Add"} `})]}),t.jsx(Ur,{context:e,setContext:n,error:d})]})},ea=({environments:e,setEnvironments:n,availableEnvironments:r,disabled:a})=>{const s=[...r.map(l=>({label:l,id:l}))],c=s.filter(({id:l})=>e.includes(l)),d=(l,u,f)=>{const o=u;return f==="clear"||o===null?n([]):Array.isArray(o)?o.length===0?n([]):n(o.map(({id:p})=>p)):n([o.id])};return t.jsx(_e,{disablePortal:!0,limitTags:3,id:"environment",multiple:!0,options:s,sx:{flex:1},renderInput:l=>t.jsx(te,{...l,label:"Environments"}),renderOption:zt,renderTags:(l,u)=>l.map((f,o)=>{const{key:p,...h}=u({index:o});return t.jsx(Mt,{size:"small",...h,label:f.label},p)}),getOptionLabel:({label:l})=>l,disableCloseOnSelect:!1,size:"small",value:c,onChange:d,disabled:a,"data-testid":"PLAYGROUND_ENVIRONMENT_SELECT"})},he={label:"ALL",id:"*"},He=E(Ut)({fontSize:"1.25rem"}),dt=E(Gt)(()=>({width:"100%"})),ta=E(k)(({theme:e})=>({display:"grid",columnGap:e.spacing(2),rowGap:e.spacing(2),gridTemplateColumns:"1fr",[e.breakpoints.up("md")]:{gridTemplateColumns:"1fr 1fr"}})),na=E(dt)(({theme:e})=>({"& label":{WebkitTextFillColor:e.palette.text.secondary},"& input.Mui-disabled":{WebkitTextFillColor:e.palette.text.secondary}})),ra=({environments:e,projects:n,token:r,setProjects:a,setEnvironments:s,setToken:c,availableEnvironments:d,changeRequest:l,onClearChangeRequest:u})=>{const f=N(),{tokens:o}=lr(),[p,h]=g.useState(),{projects:b}=_t(),T=[he,...b.map(({name:x,id:j})=>({label:x,id:j}))],I=async x=>{const j=x.target.value;if(c==null||c(j),j===""){m();return}try{Zr(j),h(void 0),v(j)}catch(C){h(C.message)}},v=x=>{const[j,C]=Qr(x);switch(s([C]),j){case"[]":P(x);break;case"*":F();break;default:y(j)}},R=x=>{!x.projects||x.projects==="*"?a([he.id]):typeof x.projects=="string"?a([x.projects]):Array.isArray(x.projects)&&a(x.projects)},P=x=>{const j=o.find(({secret:C})=>C===x);j?R(j):h("Invalid token. Ensure you use a valid token from this Unleash instance.")},F=()=>{a([he.id])},y=x=>{T.map(j=>j.id).includes(x)?a([x]):h(`Invalid token. Project ${x} does not exist.`)},m=()=>{h(void 0)},w=()=>{c==null||c(""),m()};return t.jsxs(k,{sx:{pb:2},children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx($,{variant:"body2",color:f.palette.text.primary,sx:{ml:1},children:"Access configuration"})}),t.jsxs(ta,{children:[t.jsx(k,{children:t.jsx(Ie,{arrow:!0,title:r?"Environment is automatically selected because you are using a token":"Select environments to use in the playground",children:t.jsx(k,{children:t.jsx(ea,{environments:e,setEnvironments:s,availableEnvironments:d,disabled:!!(r||l)})})})}),t.jsx(k,{children:t.jsx(Ie,{arrow:!0,title:r?"Project is automatically selected because you are using a token":"Select projects to use in the playground",children:t.jsx(Vt,{selectedProjects:n,onChange:a,dataTestId:"PLAYGROUND_PROJECT_SELECT",disabled:!!(r||l),limitTags:3})})}),t.jsx(k,{children:t.jsx(dt,{label:"API token",value:r||(l?" ":""),onChange:I,type:"text",error:!!p,errorText:p,placeholder:"Enter your API token","data-testid":"PLAYGROUND_TOKEN_INPUT",InputProps:{endAdornment:r?t.jsx(Pe,{position:"end","data-testid":"TOKEN_INPUT_CLEAR_BTN",children:t.jsx(G,{"aria-label":"clear API token",onClick:w,edge:"end",children:t.jsx(He,{})})}):null},disabled:!!l})}),t.jsx(L,{condition:!!l,show:t.jsxs(k,{sx:{display:"flex",gap:2},children:[t.jsx(k,{sx:{flex:1},children:t.jsx(na,{label:"Change request",value:l?`Change request #${l}`:"",onChange:()=>{},type:"text",disabled:!0,InputProps:{endAdornment:t.jsx(Pe,{position:"end",children:t.jsx(G,{"aria-label":"clear Change request results",onClick:u,edge:"end",children:t.jsx(He,{})})})}})}),t.jsx(se,{variant:"outlined",size:"small",to:`/projects/${n[0]}/change-requests/${l}`,component:qt,children:"View change request"})]})})]})]})},aa=({availableEnvironments:e,environments:n,onSubmit:r,projects:a,token:s,setToken:c,setProjects:d,setEnvironments:l,context:u,setContext:f,changeRequest:o,onClearChangeRequest:p})=>t.jsxs(k,{component:"form",onSubmit:r,sx:{display:"flex",flexDirection:"column"},children:[t.jsx(ra,{environments:Array.isArray(n)?n:[n],projects:a,token:s,setToken:c,setEnvironments:l,setProjects:d,availableEnvironments:e.map(({name:h})=>h),changeRequest:o,onClearChangeRequest:p}),t.jsx(Xr,{context:u,setContext:f}),t.jsx(k,{sx:{mt:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:t.jsx(se,{variant:"contained",size:"large",type:"submit",sx:{marginLeft:"auto"},children:"Try configuration"})})]}),sa=E("div")(({style:e,theme:n})=>({width:"25px",height:"25px",borderRadius:"50%",color:n.palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",...e})),oa=({style:e,children:n,type:r})=>{const a=N(),s={backgroundColor:a.palette.background.alternative,color:a.palette.common.white};return r==="secondary"&&(s.backgroundColor=a.palette.background.paper,s.color=a.palette.text.secondary),t.jsx(sa,{style:{...s,...e},children:n})},ge=({headerText:e,bodyText:n,sectionNumber:r})=>t.jsx(k,{sx:{display:"flex",alignItems:"flex-start",mt:2,flexDirection:"column"},children:t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(k,{children:t.jsx(oa,{children:r})}),t.jsxs(k,{sx:{ml:2,display:"flex",flexDirection:"column"},children:[t.jsx($,{variant:"body1",sx:{fontWeight:"bold"},children:e}),t.jsx(L,{condition:!!n,show:t.jsx($,{variant:"body1",sx:{mt:1},children:n})})]})]})}),ut=()=>t.jsxs(k,{sx:{ml:4},children:[t.jsx($,{variant:"body1",children:"Unleash playground is for helping you to understand how Unleash works, how feature flags are evaluated and for you to easily debug your feature flags."}),t.jsx(Kt,{sx:{mt:2,mb:2}}),t.jsx($,{variant:"body1",sx:{mb:1},children:"What you need to do is:"}),t.jsx(ge,{headerText:`Select in which environment you want to test your
1
+ import{u as Tt,g as It,r as g,_ as Pt,j as t,a as xe,s as E,U as Rt,b as N,B as k,C as L,d as Ot,c as Bt,e as _e,f as Ft,h as Z,T as $,F as Lt,I as Nt,S as At,M as $t,i as se,p as Ee,k as Te,l as te,A as Ge,m as Dt,n as Wt,o as Ht,q as zt,t as Mt,v as Ut,w as _t,x as Gt,y as Ie,P as Vt,z as Pe,D as _,L as qt,E as Kt,G as Ve,H as qe,J as X,K as Jt,N as Ke,O as oe,Q as Je,R as Yt,V as Q,W as pe,X as Zt,Y as Qt,Z as Xt,$ as Ye,a0 as re,a1 as en,a2 as tn,a3 as nn,a4 as rn,a5 as an,a6 as sn,a7 as on,a8 as ln,a9 as cn,aa as dn,ab as un,ac as B,ad as ie,ae as hn,af as gn,ag as fn,ah as pn,ai as mn,aj as xn,ak as Re,al as Ze,am as ye,an as be,ao as Qe,ap as ve,aq as Xe,ar as et,as as tt,at as nt,au as yn,av as Oe,aw as bn,ax as vn,ay as de,az as jn,aA as Cn,aB as Sn,aC as kn,aD as wn,aE as En,aF as Tn}from"./index-BAMIkcom.js";import{c as In,d as Pn,s as Rn,h as On,f as Bn,a as Fn,l as Ln,b as Nn,e as An,g as $n,i as Dn,j as Wn,k as Hn,m as zn,E as ae,n as Mn,o as je,p as Un,q as _n,r as Gn,t as Vn,u as qn,v as Kn,w as Jn,x as Yn,y as Zn,z as rt,A as U,H as at,B as i,C as Qn,D as Xn,S as er,F as tr,L as nr,G as rr,I as ar,J as sr,K as Be,M as or,N as ir}from"./index-Bj8wwcOa.js";import{u as lr}from"./useApiTokens-Btk4Hd2u.js";const cr=()=>{const{makeRequest:e,createRequest:n,errors:r,loading:a}=Tt({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async l=>{const u=`${s}/advanced`,f=n(u,{method:"POST",body:JSON.stringify(l)});return(await e(f.caller,f.id)).json()},evaluateChangeRequestPlayground:async(l,u)=>{const f=`${s}/change-request/${l}`,o=n(f,{method:"POST",body:JSON.stringify(u)});return(await e(o.caller,o.id)).json()},errors:r,loading:a}};var Ce={exports:{}};function st(e,n=100,r={}){if(typeof e!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(n<0)throw new RangeError("`wait` must not be negative.");const{immediate:a}=typeof r=="boolean"?{immediate:r}:r;let s,c,d,l,u;function f(){const h=s,b=c;return s=void 0,c=void 0,u=e.apply(h,b),u}function o(){const h=Date.now()-l;h<n&&h>=0?d=setTimeout(o,n-h):(d=void 0,a||(u=f()))}const p=function(...h){if(s&&this!==s&&Object.getPrototypeOf(this)===Object.getPrototypeOf(s))throw new Error("Debounced method called with different contexts of the same prototype.");s=this,c=h,l=Date.now();const b=a&&!d;return d||(d=setTimeout(o,n)),b&&(u=f()),u};return Object.defineProperty(p,"isPending",{get(){return d!==void 0}}),p.clear=()=>{d&&(clearTimeout(d),d=void 0)},p.flush=()=>{d&&p.trigger()},p.trigger=()=>{u=f(),p.clear()},p}Ce.exports.debounce=st;Ce.exports=st;var dr=Ce.exports;const ur=It(dr);var Fe=function(n){n===void 0&&(n={});var{crosshairCursor:r=!1}=n,a=[];n.closeBracketsKeymap!==!1&&(a=a.concat(In)),n.defaultKeymap!==!1&&(a=a.concat(Pn)),n.searchKeymap!==!1&&(a=a.concat(Rn)),n.historyKeymap!==!1&&(a=a.concat(On)),n.foldKeymap!==!1&&(a=a.concat(Bn)),n.completionKeymap!==!1&&(a=a.concat(Fn)),n.lintKeymap!==!1&&(a=a.concat(Ln));var s=[];return n.lineNumbers!==!1&&s.push(Nn()),n.highlightActiveLineGutter!==!1&&s.push(An()),n.highlightSpecialChars!==!1&&s.push($n()),n.history!==!1&&s.push(Dn()),n.foldGutter!==!1&&s.push(Wn()),n.drawSelection!==!1&&s.push(Hn()),n.dropCursor!==!1&&s.push(zn()),n.allowMultipleSelections!==!1&&s.push(ae.allowMultipleSelections.of(!0)),n.indentOnInput!==!1&&s.push(Mn()),n.syntaxHighlighting!==!1&&s.push(je(Un,{fallback:!0})),n.bracketMatching!==!1&&s.push(_n()),n.closeBrackets!==!1&&s.push(Gn()),n.autocompletion!==!1&&s.push(Vn()),n.rectangularSelection!==!1&&s.push(qn()),r!==!1&&s.push(Kn()),n.highlightActiveLine!==!1&&s.push(Jn()),n.highlightSelectionMatches!==!1&&s.push(Yn()),n.tabSize&&typeof n.tabSize=="number"&&s.push(Zn.of(" ".repeat(n.tabSize))),s.concat([rt.of(a.flat())]).filter(Boolean)};const hr="#e5c07b",Le="#e06c75",gr="#56b6c2",fr="#ffffff",ne="#abb2bf",me="#7d8799",pr="#61afef",mr="#98c379",Ne="#d19a66",xr="#c678dd",yr="#21252b",Ae="#2c313a",$e="#282c34",ue="#353a42",br="#3E4451",De="#528bff",vr=U.theme({"&":{color:ne,backgroundColor:$e},".cm-content":{caretColor:De},".cm-cursor, .cm-dropCursor":{borderLeftColor:De},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:br},".cm-panels":{backgroundColor:yr,color:ne},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:$e,color:me,border:"none"},".cm-activeLineGutter":{backgroundColor:Ae},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:ue},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:ue,borderBottomColor:ue},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Ae,color:ne}}},{dark:!0}),jr=at.define([{tag:i.keyword,color:xr},{tag:[i.name,i.deleted,i.character,i.propertyName,i.macroName],color:Le},{tag:[i.function(i.variableName),i.labelName],color:pr},{tag:[i.color,i.constant(i.name),i.standard(i.name)],color:Ne},{tag:[i.definition(i.name),i.separator],color:ne},{tag:[i.typeName,i.className,i.number,i.changed,i.annotation,i.modifier,i.self,i.namespace],color:hr},{tag:[i.operator,i.operatorKeyword,i.url,i.escape,i.regexp,i.link,i.special(i.string)],color:gr},{tag:[i.meta,i.comment],color:me},{tag:i.strong,fontWeight:"bold"},{tag:i.emphasis,fontStyle:"italic"},{tag:i.strikethrough,textDecoration:"line-through"},{tag:i.link,color:me,textDecoration:"underline"},{tag:i.heading,fontWeight:"bold",color:Le},{tag:[i.atom,i.bool,i.special(i.variableName)],color:Ne},{tag:[i.processingInstruction,i.string,i.inserted],color:mr},{tag:i.invalid,color:fr}]),Cr=[vr,je(jr)];var Sr=U.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),kr=function(n){n===void 0&&(n={});var{indentWithTab:r=!0,editable:a=!0,readOnly:s=!1,theme:c="light",placeholder:d="",basicSetup:l=!0}=n,u=[];switch(r&&u.unshift(rt.of([Qn])),l&&(typeof l=="boolean"?u.unshift(Fe()):u.unshift(Fe(l))),d&&u.unshift(Xn(d)),c){case"light":u.push(Sr);break;case"dark":u.push(Cr);break;case"none":break;default:u.push(c);break}return a===!1&&u.push(U.editable.of(!1)),s&&u.push(ae.readOnly.of(!0)),[...u]},wr=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(n=>e.state.sliceDoc(n.from,n.to)),selectedText:e.state.selection.ranges.some(n=>!n.empty)}),We=tr.define(),Er=[];function Tr(e){var{value:n,selection:r,onChange:a,onStatistics:s,onCreateEditor:c,onUpdate:d,extensions:l=Er,autoFocus:u,theme:f="light",height:o=null,minHeight:p=null,maxHeight:h=null,width:b=null,minWidth:T=null,maxWidth:I=null,placeholder:v="",editable:R=!0,readOnly:P=!1,indentWithTab:F=!0,basicSetup:y=!0,root:m,initialState:w}=e,[x,j]=g.useState(),[C,A]=g.useState(),[D,z]=g.useState(),J=U.theme({"&":{height:o,minHeight:p,maxHeight:h,width:b,minWidth:T,maxWidth:I},"& .cm-scroller":{height:"100% !important"}}),V=U.updateListener.of(O=>{if(O.docChanged&&typeof a=="function"&&!O.transactions.some(le=>le.annotation(We))){var G=O.state.doc,q=G.toString();a(q,O)}s&&s(wr(O))}),Y=kr({theme:f,editable:R,readOnly:P,placeholder:v,indentWithTab:F,basicSetup:y}),W=[V,J,...Y];return d&&typeof d=="function"&&W.push(U.updateListener.of(d)),W=W.concat(l),g.useLayoutEffect(()=>{if(x&&!D){var O={doc:n,selection:r,extensions:W},G=w?ae.fromJSON(w.json,O,w.fields):ae.create(O);if(z(G),!C){var q=new U({state:G,parent:x,root:m});A(q),c&&c(q,G)}}return()=>{C&&(z(void 0),A(void 0))}},[x,D]),g.useEffect(()=>{e.container&&j(e.container)},[e.container]),g.useEffect(()=>()=>{C&&(C.destroy(),A(void 0))},[C]),g.useEffect(()=>{u&&C&&C.focus()},[u,C]),g.useEffect(()=>{C&&C.dispatch({effects:er.reconfigure.of(W)})},[f,l,o,p,h,b,T,I,v,R,P,F,y,a,d]),g.useEffect(()=>{if(n!==void 0){var O=C?C.state.doc.toString():"";C&&n!==O&&C.dispatch({changes:{from:0,to:O.length,insert:n||""},annotations:[We.of(!0)]})}},[n,C]),{state:D,setState:z,view:C,setView:A,container:x,setContainer:j}}var Ir=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],ot=g.forwardRef((e,n)=>{var{className:r,value:a="",selection:s,extensions:c=[],onChange:d,onStatistics:l,onCreateEditor:u,onUpdate:f,autoFocus:o,theme:p="light",height:h,minHeight:b,maxHeight:T,width:I,minWidth:v,maxWidth:R,basicSetup:P,placeholder:F,indentWithTab:y,editable:m,readOnly:w,root:x,initialState:j}=e,C=Pt(e,Ir),A=g.useRef(null),{state:D,view:z,container:J,setContainer:V}=Tr({root:x,value:a,autoFocus:o,theme:p,height:h,minHeight:b,maxHeight:T,width:I,minWidth:v,maxWidth:R,basicSetup:P,placeholder:F,indentWithTab:y,editable:m,readOnly:w,selection:s,onChange:d,onStatistics:l,onCreateEditor:u,onUpdate:f,extensions:c,initialState:j});g.useImperativeHandle(n,()=>({editor:A.current,state:D,view:z}),[A,J,D,z]);var Y=g.useCallback(O=>{A.current=O,V(O)},[V]);if(typeof a!="string")throw new Error("value must be typeof string but got "+typeof a);var W=typeof p=="string"?"cm-theme-"+p:"cm-theme";return t.jsx("div",xe({ref:Y,className:""+W+(r?" "+r:"")},C))});ot.displayName="CodeMirror";const Pr=rr.define({name:"json",parser:ar.configure({props:[sr.add({Object:Be({except:/^\s*\}/}),Array:Be({except:/^\s*\]/})}),or.add({"Object Array":ir})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Rr(){return new nr(Pr)}var it=e=>{var{theme:n,settings:r={},styles:a=[]}=e,s={".cm-gutters":{}},c={};r.background&&(c.backgroundColor=r.background),r.backgroundImage&&(c.backgroundImage=r.backgroundImage),r.foreground&&(c.color=r.foreground),r.fontSize&&(c.fontSize=r.fontSize),(r.background||r.foreground)&&(s["&"]=c),r.fontFamily&&(s["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(s[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(s[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(s[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(s[".cm-content"]={caretColor:r.caret},s[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var d={};r.gutterActiveForeground&&(d.color=r.gutterActiveForeground),r.lineHighlight&&(s[".cm-activeLine"]={backgroundColor:r.lineHighlight},d.backgroundColor=r.lineHighlight),s[".cm-activeLineGutter"]=d,r.selection&&(s["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(s["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var l=U.theme(s,{dark:n==="dark"}),u=at.define(a),f=[l,je(u)];return f},Or={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#ddceb154"},Br=[{tag:[i.comment,i.bracket],color:"#b6ad9a"},{tag:[i.atom,i.number,i.keyword,i.link,i.attributeName,i.quote],color:"#063289"},{tag:[i.emphasis,i.heading,i.tagName,i.propertyName,i.variableName],color:"#2d2006"},{tag:[i.typeName,i.url,i.string],color:"#896724"},{tag:[i.operator,i.string],color:"#1659df"},{tag:[i.propertyName],color:"#b29762"},{tag:[i.unit,i.punctuation],color:"#063289"}],Fr=e=>{var{theme:n="light",settings:r={},styles:a=[]}={};return it({theme:n,settings:xe({},Or,r),styles:[...Br,...a]})},Lr=Fr(),Nr={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"#91ff6c26",selectionMatch:"#91ff6c26",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},Ar=[{tag:[i.comment,i.bracket],color:"#6c6783"},{tag:[i.atom,i.number,i.keyword,i.link,i.attributeName,i.quote],color:"#ffcc99"},{tag:[i.emphasis,i.heading,i.tagName,i.propertyName,i.className,i.variableName],color:"#eeebff"},{tag:[i.typeName,i.url],color:"#7a63ee"},{tag:i.operator,color:"#ffad5c"},{tag:i.string,color:"#ffb870"},{tag:[i.propertyName],color:"#9a86fd"},{tag:[i.unit,i.punctuation],color:"#e09142"}],$r=e=>{var{theme:n="dark",settings:r={},styles:a=[]}={};return it({theme:n,settings:xe({},Nr,r),styles:[...Ar,...a]})},Dr=$r();const Wr=E("aside")(({theme:e})=>({height:"50px",backgroundColor:e.palette.background.paper,borderTopRightRadius:e.shape.borderRadiusMedium,borderTopLeftRadius:e.shape.borderRadiusMedium,padding:e.spacing(1,2),color:e.palette.text.primary,display:"flex",justifyContent:"space-between",alignItems:"center",border:`1px solid ${e.palette.divider}`})),lt=E("div")(({theme:e,style:n})=>({width:e.spacing(3),height:e.spacing(3),display:"flex",alignItems:"center",color:e.palette.background.paper,justifyContent:"center",transition:"background-color 0.5s ease-in-out",borderRadius:"50%",...n})),Hr=E("div")(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.error.dark,marginRight:e.spacing(1)})),zr=()=>{const e=N();return t.jsx(lt,{style:{backgroundColor:e.palette.success.main},children:t.jsx(Ot,{sx:n=>({width:n.spacing(2),height:n.spacing(2)})})})},Mr=()=>{const e=N();return t.jsx(lt,{style:{backgroundColor:e.palette.error.main},children:t.jsx(Bt,{})})},Ur=({context:e,setContext:n,error:r})=>{const{themeMode:a}=g.useContext(Rt),s=N(),c=g.useCallback(l=>{n(l)},[n]),d=`calc(6 * ${s.typography.body1.fontSize} * ${s.typography.body1.lineHeight}) + 8px`;return t.jsxs(k,{sx:{width:"100%"},children:[t.jsxs(Wr,{children:["JSON",t.jsx(L,{condition:!!r,show:t.jsxs(k,{sx:l=>({display:"flex",alignItems:"center"}),children:[t.jsx(Hr,{children:r}),t.jsx(Mr,{})]}),elseShow:t.jsx(zr,{})})]}),t.jsx(ot,{value:e,minHeight:d,theme:a==="dark"?Dr:Lr,extensions:[Rr()],onChange:c,style:{border:`1px solid ${s.palette.divider}`,borderTop:"none"},placeholder:JSON.stringify({currentTime:"2022-07-04T14:13:03.929Z",appName:"playground",userId:"test",remoteAddress:"127.0.0.1"},null,2)})]})};function ct(e){return Array.isArray(e)?e:[e]}const _r=e=>!e||e.length===0||e.length===1&&e[0]==="*"?"*":ct(e),Gr=e=>ct(e),Vr=e=>{const n=qr(e);return n.length>0?n[0]:""},qr=e=>e.filter(({enabled:n})=>!!n).sort((n,r)=>n.sortOrder-r.sortOrder).map(({name:n})=>n),Kr=(e,n)=>"100%",Jr=e=>typeof e=="string"?!0:Array.isArray(e)?e.every(n=>typeof n=="string"):!1,Yr=e=>{const n=new Set(["appName","environment","userId","sessionId","remoteAddress","currentTime","properties"]),r={...e};let a=!1;for(const s in e)n.has(s)||(r.properties||(r.properties={}),r.properties[s]=e[s],delete r[s],a=!0);return!a&&!e.properties&&delete r.properties,r},Zr=e=>{const[n]=e.split("."),[r,a]=n.split(":");if(!r||!a)throw new Error("Invalid token format");if(a==="*")throw new Error("Admin tokens are not supported in the playground")},Qr=e=>{const[n]=e.split(".");return n.split(":")},Xr=({context:e,setContext:n})=>{const r=N(),{setToastData:a}=_e(),{context:s}=Ft(),c=s.sort((y,m)=>y.sortOrder-m.sortOrder).map(({name:y})=>y),[d,l]=g.useState(),[u,f]=g.useState(!1),[o,p]=g.useState(""),[h,b]=g.useState(""),T=g.useMemo(()=>ur(y=>{var m;if(!y)return l(void 0);try{const w=JSON.parse(y);f(w[o]!==void 0||((m=w==null?void 0:w.properties)==null?void 0:m[o])!==void 0)}catch(w){return l(Z(w))}return l(void 0)},250),[l,o,f]);g.useEffect(()=>{T(e)},[T,e]);const I=()=>{try{const y=JSON.parse(e||"{}");n(JSON.stringify(Yr({...y,[o]:h}),null,2));const m=s.find(w=>w.name===o);if(m!=null&&m.legalValues&&m.legalValues.length>0||o==="currentTime")return b("")}catch(y){a({type:"error",text:`Error parsing context: ${Z(y)}`})}},v=(y,m)=>{if(Jr(m)){if(Array.isArray(m)){const w=(m||[]).length>1?m.join(","):m[0];return b(w)}b(m)}},R=()=>{if(!h||h==="")return[];const y=s.find(w=>w.name===o),m=((y==null?void 0:y.legalValues)||[]).length>1;return h.includes(",")&&m?h.split(","):[h]},P=()=>{if(o==="currentTime"){const m=Ee(h),x=m?Te(m.toISOString()):Te(new Date().toISOString());return t.jsx(te,{id:"date",label:"Date",size:"small",type:"datetime-local",value:x,sx:{width:200,maxWidth:"100%"},onChange:j=>{const C=Ee(j.target.value),A=C==null?void 0:C.toISOString();A&&b(A)},InputLabelProps:{shrink:!0},required:!0})}const y=s.find(m=>m.name===o);if(y!=null&&y.legalValues&&y.legalValues.length>0){const m=y.legalValues.map(({value:w})=>w);return t.jsx(Ge,{disablePortal:!0,limitTags:3,id:"context-legal-values",multiple:!0,options:m,disableCloseOnSelect:!0,size:"small",value:R(),onChange:v,getOptionLabel:w=>w,renderOption:(w,x,{selected:j})=>t.jsxs("li",{...w,children:[t.jsx(Dt,{icon:t.jsx(Wt,{fontSize:"small"}),checkedIcon:t.jsx(Ht,{fontSize:"small"}),sx:C=>({marginRight:C.spacing(.5)}),checked:j}),x]}),sx:{width:370,maxWidth:"100%"},renderInput:w=>t.jsx(te,{...w,label:"Value"})})}return t.jsx(te,{label:"Value",id:"context-value",sx:{width:370,maxWidth:"100%"},placeholder:"value1,value2,value3",size:"small",value:h,onChange:m=>b(m.target.value||"")})},F=y=>{if(p(y.target.value||""),y.target.value==="currentTime")return b(new Date().toISOString());b("")};return t.jsxs(k,{children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx($,{variant:"body2",color:r.palette.text.primary,sx:{ml:1},children:"Unleash context"})}),t.jsxs(k,{sx:{display:"flex",gap:2,flexWrap:"wrap",mb:2},children:[t.jsxs(Lt,{children:[t.jsx(Nt,{id:"context-field-label",size:"small",children:"Context field"}),t.jsx(At,{label:"Context field",labelId:"context-field-label",id:"context-field",value:o,onChange:F,variant:"outlined",size:"small",sx:{width:200,maxWidth:"100%"},children:c.map(y=>t.jsx($t,{value:y,children:y},y))})]}),P(),t.jsx(se,{variant:"outlined",disabled:!o||!!d,onClick:I,sx:{width:"95px",maxHeight:"40px"},children:`${u?"Replace":"Add"} `})]}),t.jsx(Ur,{context:e,setContext:n,error:d})]})},ea=({environments:e,setEnvironments:n,availableEnvironments:r,disabled:a})=>{const s=[...r.map(l=>({label:l,id:l}))],c=s.filter(({id:l})=>e.includes(l)),d=(l,u,f)=>{const o=u;return f==="clear"||o===null?n([]):Array.isArray(o)?o.length===0?n([]):n(o.map(({id:p})=>p)):n([o.id])};return t.jsx(Ge,{disablePortal:!0,limitTags:3,id:"environment",multiple:!0,options:s,sx:{flex:1},renderInput:l=>t.jsx(te,{...l,label:"Environments"}),renderOption:zt,renderTags:(l,u)=>l.map((f,o)=>{const{key:p,...h}=u({index:o});return t.jsx(Mt,{size:"small",...h,label:f.label},p)}),getOptionLabel:({label:l})=>l,disableCloseOnSelect:!1,size:"small",value:c,onChange:d,disabled:a,"data-testid":"PLAYGROUND_ENVIRONMENT_SELECT"})},he={label:"ALL",id:"*"},He=E(Ut)({fontSize:"1.25rem"}),dt=E(_t)(()=>({width:"100%"})),ta=E(k)(({theme:e})=>({display:"grid",columnGap:e.spacing(2),rowGap:e.spacing(2),gridTemplateColumns:"1fr",[e.breakpoints.up("md")]:{gridTemplateColumns:"1fr 1fr"}})),na=E(dt)(({theme:e})=>({"& label":{WebkitTextFillColor:e.palette.text.secondary},"& input.Mui-disabled":{WebkitTextFillColor:e.palette.text.secondary}})),ra=({environments:e,projects:n,token:r,setProjects:a,setEnvironments:s,setToken:c,availableEnvironments:d,changeRequest:l,onClearChangeRequest:u})=>{const f=N(),{tokens:o}=lr(),[p,h]=g.useState(),{projects:b}=Gt(),T=[he,...b.map(({name:x,id:j})=>({label:x,id:j}))],I=async x=>{const j=x.target.value;if(c==null||c(j),j===""){m();return}try{Zr(j),h(void 0),v(j)}catch(C){h(C.message)}},v=x=>{const[j,C]=Qr(x);switch(s([C]),j){case"[]":P(x);break;case"*":F();break;default:y(j)}},R=x=>{!x.projects||x.projects==="*"?a([he.id]):typeof x.projects=="string"?a([x.projects]):Array.isArray(x.projects)&&a(x.projects)},P=x=>{const j=o.find(({secret:C})=>C===x);j?R(j):h("Invalid token. Ensure you use a valid token from this Unleash instance.")},F=()=>{a([he.id])},y=x=>{T.map(j=>j.id).includes(x)?a([x]):h(`Invalid token. Project ${x} does not exist.`)},m=()=>{h(void 0)},w=()=>{c==null||c(""),m()};return t.jsxs(k,{sx:{pb:2},children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx($,{variant:"body2",color:f.palette.text.primary,sx:{ml:1},children:"Access configuration"})}),t.jsxs(ta,{children:[t.jsx(k,{children:t.jsx(Ie,{arrow:!0,title:r?"Environment is automatically selected because you are using a token":"Select environments to use in the playground",children:t.jsx(k,{children:t.jsx(ea,{environments:e,setEnvironments:s,availableEnvironments:d,disabled:!!(r||l)})})})}),t.jsx(k,{children:t.jsx(Ie,{arrow:!0,title:r?"Project is automatically selected because you are using a token":"Select projects to use in the playground",children:t.jsx(Vt,{selectedProjects:n,onChange:a,dataTestId:"PLAYGROUND_PROJECT_SELECT",disabled:!!(r||l),limitTags:3})})}),t.jsx(k,{children:t.jsx(dt,{label:"API token",value:r||(l?" ":""),onChange:I,type:"text",error:!!p,errorText:p,placeholder:"Enter your API token","data-testid":"PLAYGROUND_TOKEN_INPUT",InputProps:{endAdornment:r?t.jsx(Pe,{position:"end","data-testid":"TOKEN_INPUT_CLEAR_BTN",children:t.jsx(_,{"aria-label":"clear API token",onClick:w,edge:"end",children:t.jsx(He,{})})}):null},disabled:!!l})}),t.jsx(L,{condition:!!l,show:t.jsxs(k,{sx:{display:"flex",gap:2},children:[t.jsx(k,{sx:{flex:1},children:t.jsx(na,{label:"Change request",value:l?`Change request #${l}`:"",onChange:()=>{},type:"text",disabled:!0,InputProps:{endAdornment:t.jsx(Pe,{position:"end",children:t.jsx(_,{"aria-label":"clear Change request results",onClick:u,edge:"end",children:t.jsx(He,{})})})}})}),t.jsx(se,{variant:"outlined",size:"small",to:`/projects/${n[0]}/change-requests/${l}`,component:qt,children:"View change request"})]})})]})]})},aa=({availableEnvironments:e,environments:n,onSubmit:r,projects:a,token:s,setToken:c,setProjects:d,setEnvironments:l,context:u,setContext:f,changeRequest:o,onClearChangeRequest:p})=>t.jsxs(k,{component:"form",onSubmit:r,sx:{display:"flex",flexDirection:"column"},children:[t.jsx(ra,{environments:Array.isArray(n)?n:[n],projects:a,token:s,setToken:c,setEnvironments:l,setProjects:d,availableEnvironments:e.map(({name:h})=>h),changeRequest:o,onClearChangeRequest:p}),t.jsx(Xr,{context:u,setContext:f}),t.jsx(k,{sx:{mt:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:t.jsx(se,{variant:"contained",size:"large",type:"submit",sx:{marginLeft:"auto"},children:"Try configuration"})})]}),sa=E("div")(({style:e,theme:n})=>({width:"25px",height:"25px",borderRadius:"50%",color:n.palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",...e})),oa=({style:e,children:n,type:r})=>{const a=N(),s={backgroundColor:a.palette.background.alternative,color:a.palette.common.white};return r==="secondary"&&(s.backgroundColor=a.palette.background.paper,s.color=a.palette.text.secondary),t.jsx(sa,{style:{...s,...e},children:n})},ge=({headerText:e,bodyText:n,sectionNumber:r})=>t.jsx(k,{sx:{display:"flex",alignItems:"flex-start",mt:2,flexDirection:"column"},children:t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(k,{children:t.jsx(oa,{children:r})}),t.jsxs(k,{sx:{ml:2,display:"flex",flexDirection:"column"},children:[t.jsx($,{variant:"body1",sx:{fontWeight:"bold"},children:e}),t.jsx(L,{condition:!!n,show:t.jsx($,{variant:"body1",sx:{mt:1},children:n})})]})]})}),ut=()=>t.jsxs(k,{sx:{ml:4},children:[t.jsx($,{variant:"body1",children:"Unleash playground is for helping you to understand how Unleash works, how feature flags are evaluated and for you to easily debug your feature flags."}),t.jsx(Kt,{sx:{mt:2,mb:2}}),t.jsx($,{variant:"body1",sx:{mb:1},children:"What you need to do is:"}),t.jsx(ge,{headerText:`Select in which environment you want to test your
2
2
  feature flag configuration`,bodyText:`You can also specify specific projects, or check
3
- flags in all projects.`,sectionNumber:"1"}),t.jsx(ge,{headerText:"Select a context field that you'd like to check",bodyText:"You can configure as many context fields as you want. You can also leave the context empty to test against an empty context.",sectionNumber:"2"}),t.jsx(ge,{headerText:"Submit the form to try the configuration",bodyText:"The results of evaluating your feature flags will appear after you submit the form. Then view the results.",sectionNumber:"3"})]});var Se={},ia=qe;Object.defineProperty(Se,"__esModule",{value:!0});var ht=Se.default=void 0,la=ia(Ve()),ca=t,da=(0,la.default)((0,ca.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");ht=Se.default=da;const ua=E(X)(({theme:e})=>({"& .MuiPaper-root":{borderRadius:e.shape.borderRadiusExtraLarge,border:`1px solid ${e.palette.divider}`,padding:e.spacing(8,4),maxWidth:"500px"}})),ha=()=>{const[e,n]=g.useState(null),r=c=>n(c.currentTarget),a=()=>n(null),s=!!e;return t.jsxs(k,{children:[t.jsx(G,{onClick:r,"aria-label":"Open Playground guidance",children:t.jsx(ht,{})}),t.jsxs(ua,{open:s,anchorEl:e,onClose:a,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},sx:c=>({zIndex:c.zIndex.tooltip,background:"none"}),children:[t.jsx(G,{onClick:a,sx:{position:"absolute",right:25,top:15},children:t.jsx(Jt,{})}),t.jsx(ut,{})]})]})},ga=e=>g.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},g.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84818 0.184159C8.56367 -0.0789547 8.1234 -0.0575747 7.86482 0.231912C7.60623 0.521399 7.62724 0.96937 7.91175 1.23248C9.48292 2.68551 10.6076 4.74934 10.6076 7C10.6076 9.25066 9.48292 11.3145 7.91175 12.7675C7.62724 13.0306 7.60623 13.4786 7.86482 13.7681C8.1234 14.0576 8.56367 14.079 8.84818 13.8158C10.6396 12.1592 11.9998 9.73702 11.9998 7C11.9998 4.26298 10.6396 1.84083 8.84818 0.184159ZM6.04105 2.23302C6.29109 1.93586 6.73054 1.90121 7.02259 2.15563C8.33146 3.29586 9.35426 5.02309 9.35426 6.99995C9.35426 8.97682 8.33145 10.7039 7.02259 11.8441C6.73054 12.0986 6.29109 12.0639 6.04105 11.7668C5.79101 11.4696 5.82506 11.0225 6.11711 10.768C7.19425 9.82969 7.96199 8.46967 7.96199 6.99995C7.96199 5.53021 7.19423 4.17007 6.11711 3.23173C5.82506 2.97731 5.79101 2.53017 6.04105 2.23302ZM6.56908 7.00015C6.56908 8.56492 5.3224 9.83342 3.78454 9.83342C2.24668 9.83342 1 8.56492 1 7.00015C1 5.43539 2.24668 4.16689 3.78454 4.16689C5.3224 4.16689 6.56908 5.43539 6.56908 7.00015Z",fill:"currentColor"})),fa=e=>g.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},g.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84835 0.184159C8.56384 -0.0789547 8.12358 -0.0575747 7.86499 0.231912C7.6064 0.521399 7.62741 0.96937 7.91192 1.23248C9.4831 2.68551 10.6078 4.74934 10.6078 7C10.6078 7.40738 10.5709 7.80863 10.5012 8.20125L11.6597 9.35972C11.8783 8.60937 12 7.81877 12 7C12 4.26298 10.6397 1.84083 8.84835 0.184159ZM9.35443 6.99995L9.35418 7.0542L7.63252 5.33255C7.30901 4.52372 6.76993 3.80029 6.11728 3.23173C5.82523 2.97731 5.79118 2.53017 6.04122 2.23302C6.29127 1.93586 6.73072 1.90121 7.02276 2.15563C8.33164 3.29586 9.35443 5.02309 9.35443 6.99995ZM7.57827 8.79752L6.48307 7.70233C6.17606 8.92745 5.08437 9.83342 3.78471 9.83342C2.24685 9.83342 1.00017 8.56492 1.00017 7.00015C1.00017 5.69492 1.8676 4.59583 3.04789 4.26714L0.458225 1.67748C0.172794 1.39205 0.178843 0.923223 0.471736 0.63033C0.764629 0.337437 1.23345 0.331388 1.51889 0.616819L13.2132 12.3111C13.4986 12.5965 13.4926 13.0654 13.1997 13.3583C12.9068 13.6511 12.4379 13.6572 12.1525 13.3718L10.556 11.7753C10.0694 12.539 9.48623 13.2259 8.84835 13.8158C8.56384 14.079 8.12358 14.0576 7.86499 13.7681C7.6064 13.4786 7.62741 13.0306 7.91192 12.7675C8.54021 12.1865 9.0971 11.5078 9.53922 10.7585L8.62356 9.84281C8.20906 10.6195 7.64861 11.2989 7.02276 11.8441C6.73072 12.0986 6.29127 12.0639 6.04122 11.7668C5.79118 11.4696 5.82523 11.0225 6.11728 10.768C6.73471 10.2302 7.25048 9.55374 7.57827 8.79752Z",fill:"currentColor"})),pa=e=>e==="unknown"||e==="unevaluated"?[oe,"info"]:e===!0?[ga,"success"]:[fa,"error"],K=({enabled:e,label:n,showIcon:r=!0})=>{const[a,s]=pa(e);return t.jsx(Ke,{color:s,icon:r?t.jsx(a,{"aria-hidden":!0,color:s,strokeWidth:"0.25"}):void 0,children:n})},ma=E(k)(({theme:e})=>({display:"flex",alignItems:"center",padding:e.spacing(1,0,1,2)})),xa=E(k)(()=>({marginRight:"auto"})),gt=({feature:e})=>{const[n,r]=(()=>{var a;return e!=null&&e.isEnabled?[!0,"True"]:((a=e==null?void 0:e.strategies)==null?void 0:a.result)==="unknown"?["unknown","Unknown"]:[!1,"False"]})();return t.jsx(ma,{children:t.jsx(xa,{"data-loading":!0,children:t.jsx(K,{enabled:n,label:r,showIcon:n!=="unknown"})})})};function ft(e){return e===void 0?!0:Object.values(e).every(n=>n&&typeof n=="object"?ft(n):n===null)}const ze=e=>{var n,r;return(r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.find(a=>!Je.includes(a.name))},ya=e=>{var n,r,a,s;return((r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.length)>0&&!((s=(a=e.strategies)==null?void 0:a.data)!=null&&s.find(c=>Je.includes(c.name)))},ba=E("div")({display:"flex",justifyContent:"space-between",width:"100%"}),va=E("hgroup")(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:e.spacing(1.5)})),ja=E("h3")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.subtitle1.fontSize,margin:0})),Ca=({feature:e,input:n,onClose:r})=>{var o;const a=N(),[s,c,d]=e.isEnabled?[`This feature flag is True in ${n==null?void 0:n.environment} because `,"at least one strategy is True",a.palette.success.contrastText]:e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied and the environment is disabled",a.palette.error.contrastText]:e.isEnabledInCurrentEnvironment?ya(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"no strategies could be fully evaluated",a.palette.warning.contrastText]:ze(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"not all strategies could be fully evaluated",a.palette.warning.contrastText]:e.hasUnsatisfiedDependency?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"all strategies are either False or could not be fully evaluated",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"the environment is disabled",a.palette.error.contrastText],l=ft(n==null?void 0:n.context)?"You did not provide a value for your context field in step 2 of the configuration":void 0,u=ze(e)?"This feature uses custom strategies. Custom strategies can't be evaluated, so they will be marked accordingly.":void 0,f=r&&(p=>{p.stopPropagation(),r()});return t.jsxs(t.Fragment,{children:[t.jsxs(ba,{children:[t.jsxs(va,{children:[t.jsx(ja,{children:e.name}),t.jsx("p",{children:((o=e==null?void 0:e.strategies)==null?void 0:o.result)!=="unknown"?t.jsx(K,{enabled:e.isEnabled,label:e.isEnabled?"True":"False"}):t.jsx(K,{enabled:"unknown",label:"Unknown",showIcon:!1})})]}),t.jsx(G,{"aria-label":"Close",onClick:f,children:t.jsx(Yt,{})})]}),t.jsxs("p",{children:[s,t.jsx($,{color:d,component:"span",children:c}),"."]}),l?t.jsx(Q,{color:"info",children:l}):null,u?t.jsx(Q,{severity:"warning",color:"info",children:u}):null]})},pt=E("div",{shouldForwardProp:e=>e!=="variant"})(({theme:e,variant:n})=>({"--font-size":e.typography.body2.fontSize,display:"flex",alignItems:"center",gap:e.spacing(1),padding:e.spacing(.5,.25),color:n==="ok"?e.palette.success.dark:e.palette.error.dark,fontSize:"var(--font-size)",svg:{fontSize:"calc(var(--font-size) * 1.25)"}})),Sa=()=>t.jsxs(pt,{variant:"ok",children:[t.jsx(Qt,{"aria-hidden":"true"}),t.jsx("p",{children:"Constraint met by value in context"})]}),ka=({text:e})=>t.jsxs(pt,{variant:"error",children:[t.jsx(Xt,{"aria-hidden":"true"}),t.jsx("p",{children:e})]}),mt=({constraint:e,input:n})=>{if(!e)return null;const r=()=>{const a=n==null?void 0:n.context[e.contextName];return a?`Constraint not met – the value in the context: { ${a} } is not ${e.operator} ${e.contextName}`:`Constraint not met – no value was specified for ${e.contextName}`};return t.jsx(pe,{children:t.jsxs("div",{children:[t.jsx(Zt,{...e}),e.result?t.jsx(Sa,{}):t.jsx(ka,{text:r()})]})})},wa=E(k)(({theme:e})=>({width:"auto",height:"auto",padding:e.spacing(2,3),borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.divider}`})),Ea=({segment:e,input:n})=>{const r=e.constraints.length>0?t.jsx(Ye,{children:e.constraints.map(a=>t.jsx(mt,{constraint:a,input:n},re(a)))}):void 0;return t.jsx(en,{segment:e,constraintList:r,isExpanded:!0})},Ta=({strategyResult:e,input:n})=>{const{name:r,constraints:a,segments:s,parameters:c}=e,d=tn(e),{strategies:l}=nn(),{isCustomStrategy:u,customStrategyParameters:f}=rn(e,l),o=!!(s&&s.length>0),p=!!(a&&(a==null?void 0:a.length)>0),h=r!=="default"&&Object.keys(an).includes(r);if(!c)return null;const b=[...o?s.map(v=>t.jsx(Ea,{segment:v,input:n},re(v))):[],...p?a.map(v=>t.jsx(mt,{constraint:v,input:n},re(v))):[],h&&d.map((v,R)=>t.jsx(pe,{children:v},R)),u&&f.map((v,R)=>t.jsx(pe,{children:v},R)),r==="default"&&t.jsxs(wa,{sx:{width:"100%"},children:["The standard strategy is ",t.jsx(Ke,{color:"success",children:"ON"})," for all users."]},"default-on")].filter(Boolean),{variant:T,variants:I}=e.result;return t.jsxs(t.Fragment,{children:[t.jsx(Ye,{children:b}),I!=null&&I.length?t.jsx(sn,{variants:I,selected:T==null?void 0:T.name}):null]})},Ia=({strategy:e,input:n,className:r})=>{const{result:a}=e,s=a.evaluationStatus==="incomplete"||a.evaluationStatus==="unevaluated"?"Not evaluated":a.enabled?"True":"False";return t.jsx(on,{strategy:{...e,id:`${re(e)}`},strategyHeaderLevel:4,className:r,headerItemsLeft:e.disabled?null:t.jsx(K,{showIcon:!1,enabled:a.enabled,label:s}),children:t.jsx(Ta,{strategyResult:e,input:n})})},Pa=E("hgroup")(({theme:e})=>({paddingBottom:e.spacing(2)})),Ra=E("h4")(({theme:e})=>({fontWeight:"normal",fontSize:e.typography.body1.fontSize,margin:0})),Oa=E("p")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.body2.fontSize})),Ba=E(ln)(({theme:e})=>({marginInline:"calc(var(--popover-inline-padding) * -1)",borderTop:`1px solid ${e.palette.divider}`,"> li:last-of-type":{paddingBottom:0}})),Me=({strategies:e,input:n,titlePrefix:r,infoText:a})=>e.length===0?null:t.jsxs("div",{children:[t.jsxs(Pa,{children:[t.jsx(Ra,{children:`${r?r.concat(" strategies"):"Strategies"} (${e==null?void 0:e.length})`}),a?t.jsx(Oa,{children:a}):null]}),t.jsx(Ba,{children:e==null?void 0:e.map((s,c)=>t.jsxs(cn,{children:[c>0?t.jsx(dn,{}):"",t.jsx(Ia,{strategy:s,input:n})]},s.id))})]}),Fa=({feature:e})=>{var r,a;if(!((r=e==null?void 0:e.strategies)!=null&&r.data))return null;let n;if(e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment)n="If the environment was enabled and parent dependencies were satisfied";else if(e.hasUnsatisfiedDependency)n="If parent dependencies were satisfied";else if(!e.isEnabledInCurrentEnvironment)n="If the environment was enabled";else return;return t.jsxs(Q,{severity:"info",color:"info",children:[n,", then this feature flag would be"," ",(a=e.strategies)!=null&&a.result?"TRUE":"FALSE"," with strategies evaluated like this:"]})},La=({feature:e,input:n})=>{var c,d,l,u,f;const r=(d=(c=e.strategies)==null?void 0:c.data)==null?void 0:d.filter(o=>!o.disabled),a=(u=(l=e.strategies)==null?void 0:l.data)==null?void 0:u.filter(o=>o.disabled),s=(a==null?void 0:a.length)>0;return(((f=e==null?void 0:e.strategies)==null?void 0:f.data.length)??0)===0?t.jsx(Q,{severity:"info",children:"There are no strategies added to this feature flag in the selected environment."}):t.jsxs(t.Fragment,{children:[t.jsx(Fa,{feature:e}),t.jsx(Me,{strategies:r||[],input:n,titlePrefix:s?"Enabled":void 0}),s?t.jsx(Me,{strategies:a,input:n,titlePrefix:"Disabled",infoText:"Disabled strategies are not evaluated for the overall result."}):null]})},Na=E("div")(({theme:e})=>({alignItems:"flex-end",color:e.palette.divider})),Aa=({feature:e,input:n})=>{const[r,a]=g.useState(!1),s=g.useRef(null),c=()=>{a(!r)};return t.jsxs(Na,{children:[t.jsx(G,{onClick:c,children:t.jsx(oe,{ref:s})}),t.jsxs(X,{open:r,onClose:()=>a(!1),anchorEl:s.current,PaperProps:{sx:d=>({"--popover-inline-padding":d.spacing(4),paddingInline:"var(--popover-inline-padding)",paddingBlock:d.spacing(3),display:"flex",flexDirection:"column",width:728,maxWidth:"100%",height:"auto",gap:d.spacing(3),overflowY:"auto",backgroundColor:d.palette.background.elevation1,borderRadius:d.shape.borderRadius})},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},children:[t.jsx(Ca,{feature:e,input:n,onClose:()=>a(!1)}),t.jsx(La,{feature:e,input:n})]})]})},xt=e=>e.feature?t.jsx(Aa,{...e}):null;var ke={},$a=qe;Object.defineProperty(ke,"__esModule",{value:!0});var yt=ke.default=void 0,Da=$a(Ve()),Wa=t,Ha=(0,Da.default)((0,Wa.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z"}),"CheckCircleOutlined");yt=ke.default=Ha;const za=E("div")(({theme:e})=>({padding:e.spacing(4),maxWidth:"400px"})),fe=E($)(({theme:e})=>({marginBottom:e.spacing(2)})),Ma=E(yt)(({theme:e})=>({color:e.palette.success.main})),Ua=({variants:e,selectedVariant:n})=>{const r=N(),a=g.useMemo(()=>e.map(o=>({name:o.name,weight:`${un(o.weight)}%`,selected:o.name===n})),[e,n]),s=g.useMemo(()=>({sortBy:[{id:"name",desc:!1}]}),[]),{getTableProps:c,getTableBodyProps:d,headerGroups:l,rows:u,prepareRow:f}=B.useTable({initialState:s,columns:Ga,data:a,sortTypes:ie,autoResetGlobalFilter:!1,autoResetSortBy:!1,disableSortRemove:!0},B.useGlobalFilter,B.useSortBy);return t.jsxs(za,{children:[t.jsx(fe,{variant:"subtitle2",children:"Variant Information"}),t.jsx(fe,{variant:"body2",children:"The following table shows the variants defined on this feature toggle and the variant result based on your context configuration."}),t.jsx(fe,{variant:"body2",children:'If you include "userId" or "sessionId" in your context, the variant will be the same every time because unleash uses these properties to ensure that the user receives the same experience.'}),t.jsxs(hn,{...c(),rowHeight:"dense",children:[t.jsx(gn,{headerGroups:l}),t.jsx(fn,{...d(),children:u.map(o=>{const p={};o.original.selected||(p.color=r.palette.text.secondary),f(o);const{key:h,...b}=o.getRowProps();return t.jsx(pn,{hover:!0,...b,children:o.cells.map(T=>{const{key:I,...v}=T.getCellProps();return t.jsx(mn,{...v,style:p,children:T.render("Cell")},I)})},h)})})]})]})},Ga=[{id:"Icon",Cell:({row:{original:{selected:e}}})=>t.jsx(t.Fragment,{children:t.jsx(L,{condition:e,show:t.jsx(xn,{icon:t.jsx(Ma,{})})})}),maxWidth:25,disableGlobalFilter:!0},{Header:"Name",accessor:"name",searchable:!0,Cell:({row:{original:{name:e}}})=>t.jsx(Re,{children:e}),maxWidth:175,width:175},{Header:"Weight",accessor:"weight",sortType:"alphanumeric",searchable:!0,maxWidth:75,Cell:({row:{original:{weight:e}}})=>t.jsx(Re,{children:e})}],_a=E("div")(()=>({maxWidth:"100%",display:"flex",alignItems:"center",wordBreak:"break-all"})),Va=({variant:e,variants:n,feature:r,isEnabled:a})=>{const s=N(),[c,d]=g.useState(null),l=o=>d(o.currentTarget),u=()=>d(null),f=!!c;return t.jsxs(_a,{children:[e,t.jsx(L,{condition:!!n&&n.length>0&&a,show:t.jsxs(t.Fragment,{children:[t.jsx(G,{onClick:l,children:t.jsx(oe,{})}),t.jsx(X,{open:f,id:`${r}-result-variants`,PaperProps:{sx:{borderRadius:`${s.shape.borderRadiusLarge}px`}},onClose:u,anchorEl:c,anchorOrigin:{vertical:"bottom",horizontal:-320},children:t.jsx(Ua,{variants:n,selectedVariant:e})})]})})]})},qa=({features:e})=>{const n=N(),r=Ze(n.breakpoints.down("sm")),a=Object.keys(e[0].context).map(o=>({Header:ye(o),accessor:p=>p.context[o],minWidth:160,Cell:be})),s=g.useMemo(()=>[...a,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:o,row:{original:{variant:p,feature:h,variants:b,isEnabled:T}}})=>t.jsx(Va,{variant:p!=null&&p.enabled?o:"",variants:b,feature:h,isEnabled:T})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:o=>{var p;return o!=null&&o.isEnabled?"true":((p=o==null?void 0:o.strategies)==null?void 0:p.result)==="unknown"?"unknown":"false"},Cell:({row:o})=>t.jsx(gt,{feature:o.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:o})=>t.jsx(xt,{feature:o.original,input:{environment:o.original.environment,context:o.original.context}})}],[]),{headerGroups:c,rows:d,prepareRow:l,setHiddenColumns:u}=B.useTable({columns:s,data:e,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);Qe([{condition:r,columns:["variant"]}],u,s);const f=g.useRef(null);return t.jsx(k,{ref:f,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:f,rows:d,headerGroups:c,prepareRow:l})})},Ka=E("div",{})(({theme:e})=>({flexGrow:0,...Xe,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),Ja=E(k)(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(1)})),Ya=({value:e})=>{const n=N(),[r,a]=g.useState(null),s=f=>a(f.currentTarget),c=()=>a(null),d=!!r,l=(e||[]).filter(f=>f.isEnabled),u=(e||[]).filter(f=>!f.isEnabled);return t.jsxs(Ka,{children:[t.jsxs(Ja,{children:[t.jsx(L,{condition:l.length>0,show:t.jsx(K,{enabled:!0,label:`${l.length}`,showIcon:!0})}),t.jsx(L,{condition:u.length>0,show:t.jsx(K,{enabled:!1,label:`${u.length}`,showIcon:!0})})]}),t.jsxs(t.Fragment,{children:[t.jsx(G,{onClick:s,children:t.jsx(oe,{})}),t.jsxs(X,{open:d,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:c,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx($,{variant:"subtitle2",sx:{mb:3},children:e[0].environment}),t.jsx(qa,{features:e})]})]})]})},Za=({features:e})=>{const n=Object.keys(e),r=e[n[0]],a=r[0].context,s=g.useMemo(()=>r.map((h,b)=>({...Object.fromEntries(n.map(T=>[T,e[T][b]]))})),[JSON.stringify(e)]),c=Object.keys(a).map(h=>({Header:ye(h),accessor:b=>b[n[0]].context[h],minWidth:160,Cell:be})),d=n.map(h=>({Header:h,accessor:b=>{var T,I,v;return(T=b[h])!=null&&T.isEnabled?"true":((v=(I=b[h])==null?void 0:I.strategies)==null?void 0:v.result)==="unknown"?"unknown":"false"},Cell:({row:b})=>t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(gt,{feature:b.original[h]}),t.jsx(xt,{feature:b.original[h],input:{environment:b.original[h].environment,context:b.original[h].context}})]}),sortType:"playgroundResultState",maxWidth:140})),l=g.useMemo(()=>[...c,...d],[]),{headerGroups:u,rows:f,prepareRow:o}=B.useTable({columns:l,data:s,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy),p=g.useRef(null);return t.jsx(k,{ref:p,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:p,rows:f,headerGroups:u,prepareRow:o})})},Qa=E("div",{})(({theme:e})=>({flexGrow:0,...Xe,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),Xa=E(se)(({theme:e})=>({textAlign:"left",textDecorationStyle:"dotted",textDecorationLine:"underline",textUnderlineOffset:e.spacing(.75),color:e.palette.neutral.dark,padding:0,fontWeight:"normal"})),es=({value:e})=>{const n=N(),[r,a]=g.useState(null),s=l=>a(l.currentTarget),c=()=>a(null),d=!!r;return t.jsx(Qa,{children:t.jsxs(t.Fragment,{children:[t.jsx(Xa,{variant:"text",onClick:s,children:"View diff"}),t.jsxs(X,{open:d,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:c,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx($,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),t.jsx(Za,{features:e})]})]})})},ts=e=>e.reduce((n,r)=>n+Object.values(r.environments).flatMap(a=>Object.keys(a)).length,0),ns=e=>e<0?"invalid bucket":e>=2e4?"20000+":e>=1e4?"10000-20000":e>=1e3?"1000-10000":e>=100?"100-1000":"0-100",rs={id:"name"},{value:Ue,setValue:as}=et("AdvancedPlaygroundResultsTable:v1",rs),ss=({features:e,input:n,loading:r})=>{const{trackEvent:a}=tt();e&&a("playground",{props:{eventType:"number-of-combinations",count:ns(ts(e))}});const[s,c]=nt(),d=yn(r),[l,u]=g.useState(s.get("search")||""),f=N(),o=Ze(f.breakpoints.down("md")),p=e&&e.length>0?Object.keys(e[0].environments).length:0,h=g.useMemo(()=>{var x;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:j,row:{original:C}})=>t.jsx(Oe,{title:j,to:`/projects/${C==null?void 0:C.projectId}/features/${j}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:j})=>t.jsx(Oe,{title:j,to:`/projects/${j}`})},...((x=n==null?void 0:n.environments)==null?void 0:x.map(j=>({Header:r?()=>"":ye(j),maxWidth:150,id:`environments.${j}`,align:"flex-start",Cell:({row:C})=>t.jsx(Ya,{value:C.original.environments[j]})})))||[],...p>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:j})=>t.jsx(es,{value:j.original.environments})}]:[]]},[n]),{data:b,getSearchText:T,getSearchContext:I}=bn(h,l,e||[]),v=g.useMemo(()=>r?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):b,[b,r]),[R]=g.useState(()=>({sortBy:[{id:s.get("sort")||Ue.id,desc:s.has("order")?s.get("order")==="desc":Ue.desc}]})),{headerGroups:P,rows:F,state:{sortBy:y},prepareRow:m,setHiddenColumns:w}=B.useTable({initialState:R,columns:h,data:v,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:be}},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);return Qe([{condition:o,columns:["projectId"]}],w,h),g.useEffect(()=>{if(r)return;const x=Object.fromEntries(s);x.sort=y[0].id,y[0].desc?x.order="desc":x.order&&delete x.order,l?x.search=l:delete x.search,c(x,{replace:!0}),as({id:y[0].id,desc:y[0].desc||!1})},[r,y,l]),t.jsxs(t.Fragment,{children:[t.jsxs(k,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[t.jsx($,{variant:"subtitle1",sx:{ml:1},children:e!==void 0&&!r?`Results (${F.length<v.length?`${F.length} of ${v.length}`:v.length})`:"Results"}),t.jsx(vn,{initialValue:l,onChange:u,hasFilters:!0,getSearchContext:I,disabled:r,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),t.jsx(L,{condition:!r&&!v,show:()=>t.jsx(de,{children:v===void 0?"None of the feature flags were evaluated yet.":"No results found."}),elseShow:()=>t.jsxs(k,{ref:d,sx:{overflow:"auto"},children:[t.jsx(jn,{value:T(l),children:t.jsx(ve,{rows:F,headerGroups:P,prepareRow:m})}),t.jsx(L,{condition:v.length===0&&(l==null?void 0:l.length)>0,show:t.jsxs(de,{children:["No feature flags found matching “",l,"”"]})}),t.jsx(L,{condition:v&&v.length===0&&!l,show:t.jsx(de,{children:"No features flags to display"})})]})})]})},bt=E(Q)(({theme:e})=>({marginBottom:e.spacing(3)})),os=({response:e})=>{var r;const n=(r=e==null?void 0:e.warnings)==null?void 0:r.invalidContextProperties;if(n&&n.length>0){n.sort();const a="Some context properties were not taken into account during evaluation",s=E("details")(({theme:c})=>({"* + *":{marginBlockStart:c.spacing(1)}}));return t.jsx(bt,{severity:"warning",children:t.jsxs(s,{children:[t.jsx("summary",{children:a}),t.jsx("p",{children:"The context you provided for this query contained top-level properties with invalid values. These properties were not taken into consideration when evaluating your query. The properties are:"}),t.jsx("ul",{children:n.map(c=>t.jsx("li",{"data-testid":"context-warning-list-element",children:t.jsx("code",{children:c})},c))}),t.jsxs("p",{children:["Remember that context fields (with the exception of the"," ",t.jsx("code",{children:"properties"})," object) must be strings."]}),t.jsx("p",{children:"Because we didn't take these properties into account during the feature flag evaluation, they will not appear in the results table."})]})})}else return null},ds=({FormComponent:e=aa})=>{const n={projects:[],environments:[]},{value:r,setValue:a}=et("AdvancedPlayground:v1",n),{trackEvent:s}=tt(),{environments:c}=Cn(),d=N(),l=!0,[u,f]=g.useState(),[o,p]=g.useState(r.environments),[h,b]=g.useState(r.projects),[T,I]=g.useState(r.token),[v,R]=g.useState(r.context),[P,F]=g.useState(),{setToastData:y}=Ge(),[m,w]=nt(),[x,j]=g.useState(),{evaluateAdvancedPlayground:C,evaluateChangeRequestPlayground:A,loading:D,errors:z}=cr(),[J,V]=g.useState(!1);g.useEffect(()=>{(o==null?void 0:o.length)===0&&c.length>0&&p([Vr(c)])},[JSON.stringify(o),JSON.stringify(c)]),g.useEffect(()=>{Y()},[]);const Y=async()=>{try{const S=W(),H=O(),ee=_();q(),le(),S&&ee&&await we(S||[],H||"*",ee)}catch(S){y({type:"error",text:`Failed to parse URL parameters: ${Z(S)}`})}},W=()=>{let S=null;const H=m.get("environments");return H&&(S=H.split(","),p(S)),S},O=()=>{let S=null;const H=m.get("projects");return H&&(S=H.split(","),b(S)),S},_=()=>{let S=m.get("context");return S&&(S=decodeURI(S),R(S)),S},q=()=>{let S=m.get("token");return S&&(S=decodeURI(S),I(S)),S},le=()=>{const S=m.get("changeRequest");S&&j(S)},we=async(S,H,ee,ce)=>{try{f(void 0);const M={appName:"playground",...JSON.parse(ee||"{}")},Et=x?await A(x,{context:M}):await C({environments:_r(S),projects:Gr(H),context:M});ce&&typeof ce=="function"&&ce(),F(Et)}catch(M){M instanceof Sn?f(M.message):M instanceof SyntaxError?y({type:"error",text:`Error parsing context: ${Z(M)}`}):y({type:"error",text:Z(M)})}},vt=()=>{let S="default";T&&T!==""?S="api_token":x&&(S="change_request"),s("playground",{props:{eventType:"try-configuration",mode:S}})},jt=async S=>{S.preventDefault(),V(!0),vt(),await we(o,h,v,()=>{St(),x||a({environments:o,projects:h,context:v})})},Ct=()=>{j(void 0)},St=()=>{m.set("context",encodeURI(v||"")),Array.isArray(o)&&o.length>0&&!(o.length===1&&o[0]==="*")?m.set("environments",o.join(",")):m.delete("projects"),Array.isArray(h)&&h.length>0&&!(h.length===1&&h[0]==="*")?m.set("projects",h.join(",")):m.delete("projects"),x?m.set("changeRequest",x):m.delete("changeRequest"),w(m)},kt=P&&!l?"35%":"auto",wt=Kr();return t.jsx(kn,{header:t.jsx(wn,{title:"Unleash playground",actions:t.jsx(ha,{})}),disableLoading:!0,bodyClass:"no-padding",children:t.jsxs(k,{sx:{display:"flex",flexDirection:"column"},children:[t.jsx(k,{sx:{background:d.palette.background.elevation2,borderBottomLeftRadius:d.shape.borderRadiusMedium,isolation:"isolate",zIndex:2},children:t.jsx(En,{elevation:0,sx:{px:4,py:3,background:d.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:kt,position:"sticky",top:0},children:t.jsx(e,{onSubmit:jt,context:v,setContext:R,availableEnvironments:c,projects:h,environments:o,token:T,setToken:I,setProjects:b,setEnvironments:p,changeRequest:x||void 0,onClearChangeRequest:Ct})})}),t.jsxs(k,{sx:S=>({width:wt,transition:"width 0.4s ease",padding:S.spacing(4,4),isolation:"isolate",zIndex:1}),children:[t.jsx(L,{condition:!!u,show:t.jsx(bt,{severity:"warning",children:u})}),t.jsx(L,{condition:D,show:t.jsx(Tn,{}),elseShow:t.jsxs(t.Fragment,{children:[t.jsx(L,{condition:!!P&&Object.values(z).length===0,show:t.jsxs(t.Fragment,{children:[t.jsx(os,{response:P}),t.jsx(ss,{loading:D,features:P==null?void 0:P.features,input:P==null?void 0:P.input})]})}),t.jsx(L,{condition:!P&&!J,show:t.jsx(ut,{})})]})})]})]})})};export{ds as AdvancedPlayground,ds as default};
3
+ flags in all projects.`,sectionNumber:"1"}),t.jsx(ge,{headerText:"Select a context field that you'd like to check",bodyText:"You can configure as many context fields as you want. You can also leave the context empty to test against an empty context.",sectionNumber:"2"}),t.jsx(ge,{headerText:"Submit the form to try the configuration",bodyText:"The results of evaluating your feature flags will appear after you submit the form. Then view the results.",sectionNumber:"3"})]});var Se={},ia=qe;Object.defineProperty(Se,"__esModule",{value:!0});var ht=Se.default=void 0,la=ia(Ve()),ca=t,da=(0,la.default)((0,ca.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");ht=Se.default=da;const ua=E(X)(({theme:e})=>({"& .MuiPaper-root":{borderRadius:e.shape.borderRadiusExtraLarge,border:`1px solid ${e.palette.divider}`,padding:e.spacing(8,4),maxWidth:"500px"}})),ha=()=>{const[e,n]=g.useState(null),r=c=>n(c.currentTarget),a=()=>n(null),s=!!e;return t.jsxs(k,{children:[t.jsx(_,{onClick:r,"aria-label":"Open Playground guidance",children:t.jsx(ht,{})}),t.jsxs(ua,{open:s,anchorEl:e,onClose:a,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},sx:c=>({zIndex:c.zIndex.tooltip,background:"none"}),children:[t.jsx(_,{onClick:a,sx:{position:"absolute",right:25,top:15},children:t.jsx(Jt,{})}),t.jsx(ut,{})]})]})},ga=e=>g.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},g.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84818 0.184159C8.56367 -0.0789547 8.1234 -0.0575747 7.86482 0.231912C7.60623 0.521399 7.62724 0.96937 7.91175 1.23248C9.48292 2.68551 10.6076 4.74934 10.6076 7C10.6076 9.25066 9.48292 11.3145 7.91175 12.7675C7.62724 13.0306 7.60623 13.4786 7.86482 13.7681C8.1234 14.0576 8.56367 14.079 8.84818 13.8158C10.6396 12.1592 11.9998 9.73702 11.9998 7C11.9998 4.26298 10.6396 1.84083 8.84818 0.184159ZM6.04105 2.23302C6.29109 1.93586 6.73054 1.90121 7.02259 2.15563C8.33146 3.29586 9.35426 5.02309 9.35426 6.99995C9.35426 8.97682 8.33145 10.7039 7.02259 11.8441C6.73054 12.0986 6.29109 12.0639 6.04105 11.7668C5.79101 11.4696 5.82506 11.0225 6.11711 10.768C7.19425 9.82969 7.96199 8.46967 7.96199 6.99995C7.96199 5.53021 7.19423 4.17007 6.11711 3.23173C5.82506 2.97731 5.79101 2.53017 6.04105 2.23302ZM6.56908 7.00015C6.56908 8.56492 5.3224 9.83342 3.78454 9.83342C2.24668 9.83342 1 8.56492 1 7.00015C1 5.43539 2.24668 4.16689 3.78454 4.16689C5.3224 4.16689 6.56908 5.43539 6.56908 7.00015Z",fill:"currentColor"})),fa=e=>g.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},g.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84835 0.184159C8.56384 -0.0789547 8.12358 -0.0575747 7.86499 0.231912C7.6064 0.521399 7.62741 0.96937 7.91192 1.23248C9.4831 2.68551 10.6078 4.74934 10.6078 7C10.6078 7.40738 10.5709 7.80863 10.5012 8.20125L11.6597 9.35972C11.8783 8.60937 12 7.81877 12 7C12 4.26298 10.6397 1.84083 8.84835 0.184159ZM9.35443 6.99995L9.35418 7.0542L7.63252 5.33255C7.30901 4.52372 6.76993 3.80029 6.11728 3.23173C5.82523 2.97731 5.79118 2.53017 6.04122 2.23302C6.29127 1.93586 6.73072 1.90121 7.02276 2.15563C8.33164 3.29586 9.35443 5.02309 9.35443 6.99995ZM7.57827 8.79752L6.48307 7.70233C6.17606 8.92745 5.08437 9.83342 3.78471 9.83342C2.24685 9.83342 1.00017 8.56492 1.00017 7.00015C1.00017 5.69492 1.8676 4.59583 3.04789 4.26714L0.458225 1.67748C0.172794 1.39205 0.178843 0.923223 0.471736 0.63033C0.764629 0.337437 1.23345 0.331388 1.51889 0.616819L13.2132 12.3111C13.4986 12.5965 13.4926 13.0654 13.1997 13.3583C12.9068 13.6511 12.4379 13.6572 12.1525 13.3718L10.556 11.7753C10.0694 12.539 9.48623 13.2259 8.84835 13.8158C8.56384 14.079 8.12358 14.0576 7.86499 13.7681C7.6064 13.4786 7.62741 13.0306 7.91192 12.7675C8.54021 12.1865 9.0971 11.5078 9.53922 10.7585L8.62356 9.84281C8.20906 10.6195 7.64861 11.2989 7.02276 11.8441C6.73072 12.0986 6.29127 12.0639 6.04122 11.7668C5.79118 11.4696 5.82523 11.0225 6.11728 10.768C6.73471 10.2302 7.25048 9.55374 7.57827 8.79752Z",fill:"currentColor"})),pa=e=>e==="unknown"||e==="unevaluated"?[oe,"info"]:e===!0?[ga,"success"]:[fa,"error"],K=({enabled:e,label:n,showIcon:r=!0})=>{const[a,s]=pa(e);return t.jsx(Ke,{color:s,icon:r?t.jsx(a,{"aria-hidden":!0,color:s,strokeWidth:"0.25"}):void 0,children:n})},ma=E(k)(({theme:e})=>({display:"flex",alignItems:"center",padding:e.spacing(1,0,1,2)})),xa=E(k)(()=>({marginRight:"auto"})),gt=({feature:e})=>{const[n,r]=(()=>{var a;return e!=null&&e.isEnabled?[!0,"True"]:((a=e==null?void 0:e.strategies)==null?void 0:a.result)==="unknown"?["unknown","Unknown"]:[!1,"False"]})();return t.jsx(ma,{children:t.jsx(xa,{"data-loading":!0,children:t.jsx(K,{enabled:n,label:r,showIcon:n!=="unknown"})})})};function ft(e){return e===void 0?!0:Object.values(e).every(n=>n&&typeof n=="object"?ft(n):n===null)}const ze=e=>{var n,r;return(r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.find(a=>!Je.includes(a.name))},ya=e=>{var n,r,a,s;return((r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.length)>0&&!((s=(a=e.strategies)==null?void 0:a.data)!=null&&s.find(c=>Je.includes(c.name)))},ba=E("div")({display:"flex",justifyContent:"space-between",width:"100%"}),va=E("hgroup")(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:e.spacing(1.5)})),ja=E("h3")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.subtitle1.fontSize,margin:0})),Ca=({feature:e,input:n,onClose:r})=>{var o;const a=N(),[s,c,d]=e.isEnabled?[`This feature flag is True in ${n==null?void 0:n.environment} because `,"at least one strategy is True",a.palette.success.contrastText]:e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied and the environment is disabled",a.palette.error.contrastText]:e.isEnabledInCurrentEnvironment?ya(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"no strategies could be fully evaluated",a.palette.warning.contrastText]:ze(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"not all strategies could be fully evaluated",a.palette.warning.contrastText]:e.hasUnsatisfiedDependency?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"all strategies are either False or could not be fully evaluated",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"the environment is disabled",a.palette.error.contrastText],l=ft(n==null?void 0:n.context)?"You did not provide a value for your context field in step 2 of the configuration":void 0,u=ze(e)?"This feature uses custom strategies. Custom strategies can't be evaluated, so they will be marked accordingly.":void 0,f=r&&(p=>{p.stopPropagation(),r()});return t.jsxs(t.Fragment,{children:[t.jsxs(ba,{children:[t.jsxs(va,{children:[t.jsx(ja,{children:e.name}),t.jsx("p",{children:((o=e==null?void 0:e.strategies)==null?void 0:o.result)!=="unknown"?t.jsx(K,{enabled:e.isEnabled,label:e.isEnabled?"True":"False"}):t.jsx(K,{enabled:"unknown",label:"Unknown",showIcon:!1})})]}),t.jsx(_,{"aria-label":"Close",onClick:f,children:t.jsx(Yt,{})})]}),t.jsxs("p",{children:[s,t.jsx($,{color:d,component:"span",children:c}),"."]}),l?t.jsx(Q,{color:"info",children:l}):null,u?t.jsx(Q,{severity:"warning",color:"info",children:u}):null]})},pt=E("div",{shouldForwardProp:e=>e!=="variant"})(({theme:e,variant:n})=>({"--font-size":e.typography.body2.fontSize,display:"flex",alignItems:"center",gap:e.spacing(1),padding:e.spacing(.5,.25),color:n==="ok"?e.palette.success.dark:e.palette.error.dark,fontSize:"var(--font-size)",svg:{fontSize:"calc(var(--font-size) * 1.25)"}})),Sa=()=>t.jsxs(pt,{variant:"ok",children:[t.jsx(Qt,{"aria-hidden":"true"}),t.jsx("p",{children:"Constraint met by value in context"})]}),ka=({text:e})=>t.jsxs(pt,{variant:"error",children:[t.jsx(Xt,{"aria-hidden":"true"}),t.jsx("p",{children:e})]}),mt=({constraint:e,input:n})=>{if(!e)return null;const r=()=>{const a=n==null?void 0:n.context[e.contextName];return a?`Constraint not met – the value in the context: { ${a} } is not ${e.operator} ${e.contextName}`:`Constraint not met – no value was specified for ${e.contextName}`};return t.jsx(pe,{children:t.jsxs("div",{children:[t.jsx(Zt,{...e}),e.result?t.jsx(Sa,{}):t.jsx(ka,{text:r()})]})})},wa=E(k)(({theme:e})=>({width:"auto",height:"auto",padding:e.spacing(2,3),borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.divider}`})),Ea=({segment:e,input:n})=>{const r=e.constraints.length>0?t.jsx(Ye,{children:e.constraints.map(a=>t.jsx(mt,{constraint:a,input:n},re(a)))}):void 0;return t.jsx(en,{segment:e,constraintList:r,isExpanded:!0})},Ta=({strategyResult:e,input:n})=>{const{name:r,constraints:a,segments:s,parameters:c}=e,d=tn(e),{strategies:l}=nn(),{isCustomStrategy:u,customStrategyParameters:f}=rn(e,l),o=!!(s&&s.length>0),p=!!(a&&(a==null?void 0:a.length)>0),h=r!=="default"&&Object.keys(an).includes(r);if(!c)return null;const b=[...o?s.map(v=>t.jsx(Ea,{segment:v,input:n},re(v))):[],...p?a.map(v=>t.jsx(mt,{constraint:v,input:n},re(v))):[],h&&d.map((v,R)=>t.jsx(pe,{children:v},R)),u&&f.map((v,R)=>t.jsx(pe,{children:v},R)),r==="default"&&t.jsxs(wa,{sx:{width:"100%"},children:["The standard strategy is ",t.jsx(Ke,{color:"success",children:"ON"})," for all users."]},"default-on")].filter(Boolean),{variant:T,variants:I}=e.result;return t.jsxs(t.Fragment,{children:[t.jsx(Ye,{children:b}),I!=null&&I.length?t.jsx(sn,{variants:I,selected:T==null?void 0:T.name}):null]})},Ia=({strategy:e,input:n,className:r})=>{const{result:a}=e,s=a.evaluationStatus==="incomplete"||a.evaluationStatus==="unevaluated"?"Not evaluated":a.enabled?"True":"False";return t.jsx(on,{strategy:{...e,id:`${re(e)}`},strategyHeaderLevel:4,className:r,headerItemsLeft:e.disabled?null:t.jsx(K,{showIcon:!1,enabled:a.enabled,label:s}),children:t.jsx(Ta,{strategyResult:e,input:n})})},Pa=E("hgroup")(({theme:e})=>({paddingBottom:e.spacing(2)})),Ra=E("h4")(({theme:e})=>({fontWeight:"normal",fontSize:e.typography.body1.fontSize,margin:0})),Oa=E("p")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.body2.fontSize})),Ba=E(ln)(({theme:e})=>({marginInline:"calc(var(--popover-inline-padding) * -1)",borderTop:`1px solid ${e.palette.divider}`,"> li:last-of-type":{paddingBottom:0}})),Me=({strategies:e,input:n,titlePrefix:r,infoText:a})=>e.length===0?null:t.jsxs("div",{children:[t.jsxs(Pa,{children:[t.jsx(Ra,{children:`${r?r.concat(" strategies"):"Strategies"} (${e==null?void 0:e.length})`}),a?t.jsx(Oa,{children:a}):null]}),t.jsx(Ba,{children:e==null?void 0:e.map((s,c)=>t.jsxs(cn,{children:[c>0?t.jsx(dn,{}):"",t.jsx(Ia,{strategy:s,input:n})]},s.id))})]}),Fa=({feature:e})=>{var r,a;if(!((r=e==null?void 0:e.strategies)!=null&&r.data))return null;let n;if(e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment)n="If the environment was enabled and parent dependencies were satisfied";else if(e.hasUnsatisfiedDependency)n="If parent dependencies were satisfied";else if(!e.isEnabledInCurrentEnvironment)n="If the environment was enabled";else return;return t.jsxs(Q,{severity:"info",color:"info",children:[n,", then this feature flag would be"," ",(a=e.strategies)!=null&&a.result?"TRUE":"FALSE"," with strategies evaluated like this:"]})},La=({feature:e,input:n})=>{var c,d,l,u,f;const r=(d=(c=e.strategies)==null?void 0:c.data)==null?void 0:d.filter(o=>!o.disabled),a=(u=(l=e.strategies)==null?void 0:l.data)==null?void 0:u.filter(o=>o.disabled),s=(a==null?void 0:a.length)>0;return(((f=e==null?void 0:e.strategies)==null?void 0:f.data.length)??0)===0?t.jsx(Q,{severity:"info",children:"There are no strategies added to this feature flag in the selected environment."}):t.jsxs(t.Fragment,{children:[t.jsx(Fa,{feature:e}),t.jsx(Me,{strategies:r||[],input:n,titlePrefix:s?"Enabled":void 0}),s?t.jsx(Me,{strategies:a,input:n,titlePrefix:"Disabled",infoText:"Disabled strategies are not evaluated for the overall result."}):null]})},Na=E("div")(({theme:e})=>({alignItems:"flex-end",color:e.palette.divider})),Aa=({feature:e,input:n})=>{const[r,a]=g.useState(!1),s=g.useRef(null),c=()=>{a(!r)};return t.jsxs(Na,{children:[t.jsx(_,{onClick:c,children:t.jsx(oe,{ref:s})}),t.jsxs(X,{open:r,onClose:()=>a(!1),anchorEl:s.current,PaperProps:{sx:d=>({"--popover-inline-padding":d.spacing(4),paddingInline:"var(--popover-inline-padding)",paddingBlock:d.spacing(3),display:"flex",flexDirection:"column",width:728,maxWidth:"100%",height:"auto",gap:d.spacing(3),overflowY:"auto",backgroundColor:d.palette.background.elevation1,borderRadius:d.shape.borderRadius})},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},children:[t.jsx(Ca,{feature:e,input:n,onClose:()=>a(!1)}),t.jsx(La,{feature:e,input:n})]})]})},xt=e=>e.feature?t.jsx(Aa,{...e}):null;var ke={},$a=qe;Object.defineProperty(ke,"__esModule",{value:!0});var yt=ke.default=void 0,Da=$a(Ve()),Wa=t,Ha=(0,Da.default)((0,Wa.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z"}),"CheckCircleOutlined");yt=ke.default=Ha;const za=E("div")(({theme:e})=>({padding:e.spacing(4),maxWidth:"400px"})),fe=E($)(({theme:e})=>({marginBottom:e.spacing(2)})),Ma=E(yt)(({theme:e})=>({color:e.palette.success.main})),Ua=({variants:e,selectedVariant:n})=>{const r=N(),a=g.useMemo(()=>e.map(o=>({name:o.name,weight:`${un(o.weight)}%`,selected:o.name===n})),[e,n]),s=g.useMemo(()=>({sortBy:[{id:"name",desc:!1}]}),[]),{getTableProps:c,getTableBodyProps:d,headerGroups:l,rows:u,prepareRow:f}=B.useTable({initialState:s,columns:_a,data:a,sortTypes:ie,autoResetGlobalFilter:!1,autoResetSortBy:!1,disableSortRemove:!0},B.useGlobalFilter,B.useSortBy);return t.jsxs(za,{children:[t.jsx(fe,{variant:"subtitle2",children:"Variant Information"}),t.jsx(fe,{variant:"body2",children:"The following table shows the variants defined on this feature toggle and the variant result based on your context configuration."}),t.jsx(fe,{variant:"body2",children:'If you include "userId" or "sessionId" in your context, the variant will be the same every time because unleash uses these properties to ensure that the user receives the same experience.'}),t.jsxs(hn,{...c(),rowHeight:"dense",children:[t.jsx(gn,{headerGroups:l}),t.jsx(fn,{...d(),children:u.map(o=>{const p={};o.original.selected||(p.color=r.palette.text.secondary),f(o);const{key:h,...b}=o.getRowProps();return t.jsx(pn,{hover:!0,...b,children:o.cells.map(T=>{const{key:I,...v}=T.getCellProps();return t.jsx(mn,{...v,style:p,children:T.render("Cell")},I)})},h)})})]})]})},_a=[{id:"Icon",Cell:({row:{original:{selected:e}}})=>t.jsx(t.Fragment,{children:t.jsx(L,{condition:e,show:t.jsx(xn,{icon:t.jsx(Ma,{})})})}),maxWidth:25,disableGlobalFilter:!0},{Header:"Name",accessor:"name",searchable:!0,Cell:({row:{original:{name:e}}})=>t.jsx(Re,{children:e}),maxWidth:175,width:175},{Header:"Weight",accessor:"weight",sortType:"alphanumeric",searchable:!0,maxWidth:75,Cell:({row:{original:{weight:e}}})=>t.jsx(Re,{children:e})}],Ga=E("div")(()=>({maxWidth:"100%",display:"flex",alignItems:"center",wordBreak:"break-all"})),Va=({variant:e,variants:n,feature:r,isEnabled:a})=>{const s=N(),[c,d]=g.useState(null),l=o=>d(o.currentTarget),u=()=>d(null),f=!!c;return t.jsxs(Ga,{children:[e,t.jsx(L,{condition:!!n&&n.length>0&&a,show:t.jsxs(t.Fragment,{children:[t.jsx(_,{onClick:l,children:t.jsx(oe,{})}),t.jsx(X,{open:f,id:`${r}-result-variants`,PaperProps:{sx:{borderRadius:`${s.shape.borderRadiusLarge}px`}},onClose:u,anchorEl:c,anchorOrigin:{vertical:"bottom",horizontal:-320},children:t.jsx(Ua,{variants:n,selectedVariant:e})})]})})]})},qa=({features:e})=>{const n=N(),r=Ze(n.breakpoints.down("sm")),a=Object.keys(e[0].context).map(o=>({Header:ye(o),accessor:p=>p.context[o],minWidth:160,Cell:be})),s=g.useMemo(()=>[...a,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:o,row:{original:{variant:p,feature:h,variants:b,isEnabled:T}}})=>t.jsx(Va,{variant:p!=null&&p.enabled?o:"",variants:b,feature:h,isEnabled:T})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:o=>{var p;return o!=null&&o.isEnabled?"true":((p=o==null?void 0:o.strategies)==null?void 0:p.result)==="unknown"?"unknown":"false"},Cell:({row:o})=>t.jsx(gt,{feature:o.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:o})=>t.jsx(xt,{feature:o.original,input:{environment:o.original.environment,context:o.original.context}})}],[]),{headerGroups:c,rows:d,prepareRow:l,setHiddenColumns:u}=B.useTable({columns:s,data:e,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);Qe([{condition:r,columns:["variant"]}],u,s);const f=g.useRef(null);return t.jsx(k,{ref:f,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:f,rows:d,headerGroups:c,prepareRow:l})})},Ka=E("div",{})(({theme:e})=>({flexGrow:0,...Xe,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),Ja=E(k)(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(1)})),Ya=({value:e})=>{const n=N(),[r,a]=g.useState(null),s=f=>a(f.currentTarget),c=()=>a(null),d=!!r,l=(e||[]).filter(f=>f.isEnabled),u=(e||[]).filter(f=>!f.isEnabled);return t.jsxs(Ka,{children:[t.jsxs(Ja,{children:[t.jsx(L,{condition:l.length>0,show:t.jsx(K,{enabled:!0,label:`${l.length}`,showIcon:!0})}),t.jsx(L,{condition:u.length>0,show:t.jsx(K,{enabled:!1,label:`${u.length}`,showIcon:!0})})]}),t.jsxs(t.Fragment,{children:[t.jsx(_,{onClick:s,children:t.jsx(oe,{})}),t.jsxs(X,{open:d,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:c,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx($,{variant:"subtitle2",sx:{mb:3},children:e[0].environment}),t.jsx(qa,{features:e})]})]})]})},Za=({features:e})=>{const n=Object.keys(e),r=e[n[0]],a=r[0].context,s=g.useMemo(()=>r.map((h,b)=>({...Object.fromEntries(n.map(T=>[T,e[T][b]]))})),[JSON.stringify(e)]),c=Object.keys(a).map(h=>({Header:ye(h),accessor:b=>b[n[0]].context[h],minWidth:160,Cell:be})),d=n.map(h=>({Header:h,accessor:b=>{var T,I,v;return(T=b[h])!=null&&T.isEnabled?"true":((v=(I=b[h])==null?void 0:I.strategies)==null?void 0:v.result)==="unknown"?"unknown":"false"},Cell:({row:b})=>t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(gt,{feature:b.original[h]}),t.jsx(xt,{feature:b.original[h],input:{environment:b.original[h].environment,context:b.original[h].context}})]}),sortType:"playgroundResultState",maxWidth:140})),l=g.useMemo(()=>[...c,...d],[]),{headerGroups:u,rows:f,prepareRow:o}=B.useTable({columns:l,data:s,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy),p=g.useRef(null);return t.jsx(k,{ref:p,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:p,rows:f,headerGroups:u,prepareRow:o})})},Qa=E("div",{})(({theme:e})=>({flexGrow:0,...Xe,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),Xa=E(se)(({theme:e})=>({textAlign:"left",textDecorationStyle:"dotted",textDecorationLine:"underline",textUnderlineOffset:e.spacing(.75),color:e.palette.neutral.dark,padding:0,fontWeight:"normal"})),es=({value:e})=>{const n=N(),[r,a]=g.useState(null),s=l=>a(l.currentTarget),c=()=>a(null),d=!!r;return t.jsx(Qa,{children:t.jsxs(t.Fragment,{children:[t.jsx(Xa,{variant:"text",onClick:s,children:"View diff"}),t.jsxs(X,{open:d,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:c,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx($,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),t.jsx(Za,{features:e})]})]})})},ts=e=>e.reduce((n,r)=>n+Object.values(r.environments).flatMap(a=>Object.keys(a)).length,0),ns=e=>e<0?"invalid bucket":e>=2e4?"20000+":e>=1e4?"10000-20000":e>=1e3?"1000-10000":e>=100?"100-1000":"0-100",rs={id:"name"},{value:Ue,setValue:as}=et("AdvancedPlaygroundResultsTable:v1",rs),ss=({features:e,input:n,loading:r})=>{const{trackEvent:a}=tt();e&&a("playground",{props:{eventType:"number-of-combinations",count:ns(ts(e))}});const[s,c]=nt(),d=yn(r),[l,u]=g.useState(s.get("search")||""),f=N(),o=Ze(f.breakpoints.down("md")),p=e&&e.length>0?Object.keys(e[0].environments).length:0,h=g.useMemo(()=>{var x;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:j,row:{original:C}})=>t.jsx(Oe,{title:j,to:`/projects/${C==null?void 0:C.projectId}/features/${j}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:j})=>t.jsx(Oe,{title:j,to:`/projects/${j}`})},...((x=n==null?void 0:n.environments)==null?void 0:x.map(j=>({Header:r?()=>"":ye(j),maxWidth:150,id:`environments.${j}`,align:"flex-start",Cell:({row:C})=>t.jsx(Ya,{value:C.original.environments[j]})})))||[],...p>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:j})=>t.jsx(es,{value:j.original.environments})}]:[]]},[n]),{data:b,getSearchText:T,getSearchContext:I}=bn(h,l,e||[]),v=g.useMemo(()=>r?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):b,[b,r]),[R]=g.useState(()=>({sortBy:[{id:s.get("sort")||Ue.id,desc:s.has("order")?s.get("order")==="desc":Ue.desc}]})),{headerGroups:P,rows:F,state:{sortBy:y},prepareRow:m,setHiddenColumns:w}=B.useTable({initialState:R,columns:h,data:v,sortTypes:ie,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:be}},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);return Qe([{condition:o,columns:["projectId"]}],w,h),g.useEffect(()=>{if(r)return;const x=Object.fromEntries(s);x.sort=y[0].id,y[0].desc?x.order="desc":x.order&&delete x.order,l?x.search=l:delete x.search,c(x,{replace:!0}),as({id:y[0].id,desc:y[0].desc||!1})},[r,y,l]),t.jsxs(t.Fragment,{children:[t.jsxs(k,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[t.jsx($,{variant:"subtitle1",sx:{ml:1},children:e!==void 0&&!r?`Results (${F.length<v.length?`${F.length} of ${v.length}`:v.length})`:"Results"}),t.jsx(vn,{initialValue:l,onChange:u,hasFilters:!0,getSearchContext:I,disabled:r,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),t.jsx(L,{condition:!r&&!v,show:()=>t.jsx(de,{children:v===void 0?"None of the feature flags were evaluated yet.":"No results found."}),elseShow:()=>t.jsxs(k,{ref:d,sx:{overflow:"auto"},children:[t.jsx(jn,{value:T(l),children:t.jsx(ve,{rows:F,headerGroups:P,prepareRow:m})}),t.jsx(L,{condition:v.length===0&&(l==null?void 0:l.length)>0,show:t.jsxs(de,{children:["No feature flags found matching “",l,"”"]})}),t.jsx(L,{condition:v&&v.length===0&&!l,show:t.jsx(de,{children:"No features flags to display"})})]})})]})},bt=E(Q)(({theme:e})=>({marginBottom:e.spacing(3)})),os=({response:e})=>{var r;const n=(r=e==null?void 0:e.warnings)==null?void 0:r.invalidContextProperties;if(n&&n.length>0){n.sort();const a="Some context properties were not taken into account during evaluation",s=E("details")(({theme:c})=>({"* + *":{marginBlockStart:c.spacing(1)}}));return t.jsx(bt,{severity:"warning",children:t.jsxs(s,{children:[t.jsx("summary",{children:a}),t.jsx("p",{children:"The context you provided for this query contained top-level properties with invalid values. These properties were not taken into consideration when evaluating your query. The properties are:"}),t.jsx("ul",{children:n.map(c=>t.jsx("li",{"data-testid":"context-warning-list-element",children:t.jsx("code",{children:c})},c))}),t.jsxs("p",{children:["Remember that context fields (with the exception of the"," ",t.jsx("code",{children:"properties"})," object) must be strings."]}),t.jsx("p",{children:"Because we didn't take these properties into account during the feature flag evaluation, they will not appear in the results table."})]})})}else return null},ds=({FormComponent:e=aa})=>{const n={projects:[],environments:[]},{value:r,setValue:a}=et("AdvancedPlayground:v1",n),{trackEvent:s}=tt(),{environments:c}=Cn(),d=N(),l=!0,[u,f]=g.useState(),[o,p]=g.useState(r.environments),[h,b]=g.useState(r.projects),[T,I]=g.useState(r.token),[v,R]=g.useState(r.context),[P,F]=g.useState(),{setToastData:y}=_e(),[m,w]=nt(),[x,j]=g.useState(),{evaluateAdvancedPlayground:C,evaluateChangeRequestPlayground:A,loading:D,errors:z}=cr(),[J,V]=g.useState(!1);g.useEffect(()=>{(o==null?void 0:o.length)===0&&c.length>0&&p([Vr(c)])},[JSON.stringify(o),JSON.stringify(c)]),g.useEffect(()=>{Y()},[]);const Y=async()=>{try{const S=W(),H=O(),ee=G();q(),le(),S&&ee&&await we(S||[],H||"*",ee)}catch(S){y({type:"error",text:`Failed to parse URL parameters: ${Z(S)}`})}},W=()=>{let S=null;const H=m.get("environments");return H&&(S=H.split(","),p(S)),S},O=()=>{let S=null;const H=m.get("projects");return H&&(S=H.split(","),b(S)),S},G=()=>{let S=m.get("context");return S&&(S=decodeURI(S),R(S)),S},q=()=>{let S=m.get("token");return S&&(S=decodeURI(S),I(S)),S},le=()=>{const S=m.get("changeRequest");S&&j(S)},we=async(S,H,ee,ce)=>{try{f(void 0);const M={appName:"playground",...JSON.parse(ee||"{}")},Et=x?await A(x,{context:M}):await C({environments:Gr(S),projects:_r(H),context:M});ce&&typeof ce=="function"&&ce(),F(Et)}catch(M){M instanceof Sn?f(M.message):M instanceof SyntaxError?y({type:"error",text:`Error parsing context: ${Z(M)}`}):y({type:"error",text:Z(M)})}},vt=()=>{let S="default";T&&T!==""?S="api_token":x&&(S="change_request"),s("playground",{props:{eventType:"try-configuration",mode:S}})},jt=async S=>{S.preventDefault(),V(!0),vt(),await we(o,h,v,()=>{St(),x||a({environments:o,projects:h,context:v})})},Ct=()=>{j(void 0)},St=()=>{m.set("context",encodeURI(v||"")),Array.isArray(o)&&o.length>0&&!(o.length===1&&o[0]==="*")?m.set("environments",o.join(",")):m.delete("projects"),Array.isArray(h)&&h.length>0&&!(h.length===1&&h[0]==="*")?m.set("projects",h.join(",")):m.delete("projects"),x?m.set("changeRequest",x):m.delete("changeRequest"),w(m)},kt=P&&!l?"35%":"auto",wt=Kr();return t.jsx(kn,{header:t.jsx(wn,{title:"Unleash playground",actions:t.jsx(ha,{})}),disableLoading:!0,bodyClass:"no-padding",children:t.jsxs(k,{sx:{display:"flex",flexDirection:"column"},children:[t.jsx(k,{sx:{background:d.palette.background.elevation2,borderBottomLeftRadius:d.shape.borderRadiusMedium,isolation:"isolate",zIndex:2},children:t.jsx(En,{elevation:0,sx:{px:4,py:3,background:d.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:kt,position:"sticky",top:0},children:t.jsx(e,{onSubmit:jt,context:v,setContext:R,availableEnvironments:c,projects:h,environments:o,token:T,setToken:I,setProjects:b,setEnvironments:p,changeRequest:x||void 0,onClearChangeRequest:Ct})})}),t.jsxs(k,{sx:S=>({width:wt,transition:"width 0.4s ease",padding:S.spacing(4,4),isolation:"isolate",zIndex:1}),children:[t.jsx(L,{condition:!!u,show:t.jsx(bt,{severity:"warning",children:u})}),t.jsx(L,{condition:D,show:t.jsx(Tn,{}),elseShow:t.jsxs(t.Fragment,{children:[t.jsx(L,{condition:!!P&&Object.values(z).length===0,show:t.jsxs(t.Fragment,{children:[t.jsx(os,{response:P}),t.jsx(ss,{loading:D,features:P==null?void 0:P.features,input:P==null?void 0:P.input})]})}),t.jsx(L,{condition:!P&&!J,show:t.jsx(ut,{})})]})})]})]})})};export{ds as AdvancedPlayground,ds as default};
@@ -0,0 +1 @@
1
+ import{s as l,B as n,cY as c,bc as d,j as e,C as p,V as t,T as g,y as h,hL as j,jn as u,jg as x,jh as m,ji as y,jj as C,jk as f,jl as S,jm as B}from"./index-BAMIkcom.js";import{u as T,b,S as k,T as v,P as w,n as P,g as D}from"./networkTrafficUsageHighlightPlugin-Dje5Vuvo.js";import{a as q}from"./formatTickValue-Csg87IVi.js";import"./LazyAdminExport-BOTczpO1.js";import"./RoleCell-Da0TjMne.js";import"./useApiTokens-Btk4Hd2u.js";import"./PercentageDonut-BoaVP9ed.js";const _=l(n)(({theme:s})=>({display:"flex",alignItems:"center",gap:s.spacing(.5)})),H=()=>{c("Network - Backend Connections");const{isOss:s}=d(),{chartDataSelection:a,setChartDataSelection:i,options:o}=T(),{chartData:r}=b(a);return e.jsx(p,{condition:s(),show:e.jsx(t,{severity:"warning",children:"Not enabled."}),elseShow:e.jsx(e.Fragment,{children:e.jsxs(k,{children:[e.jsxs(v,{children:[e.jsx(n,{children:e.jsx(t,{severity:"info",icon:!1,children:e.jsxs(_,{children:[e.jsx(g,{children:"1 connection = 7200 backend SDK requests per day"}),e.jsx(h,{title:"1 connection involves polling every 15 seconds and sending metrics every 60 seconds. This translates to 5 requests per minute, 300 requests per hour, and 7200 requests per day.",children:e.jsx(j,{})})]})})}),e.jsx(w,{selectedPeriod:a,setPeriod:i})]}),e.jsx(u,{data:r,plugins:[P],options:o,"aria-label":D(a)})]})})})};x.register(q,m,y,C,f,S,B);export{H as BackendConnections,H as default};
@@ -1 +1 @@
1
- import{j as e,ea as t}from"./index-D02pkj6r.js";const a=()=>e.jsx(t,{to:"/projects?create=true",replace:!0});export{a as default};
1
+ import{j as e,e6 as t}from"./index-BAMIkcom.js";const a=()=>e.jsx(t,{to:"/projects?create=true",replace:!0});export{a as default};
@@ -0,0 +1 @@
1
+ import{cm as A,b9 as M,r as s,bb as I,G as D,H as T,j as t,s as i,c7 as m,cM as _,cf as U,cN as W,N as v,bs as N,hd as j,bp as z,y as B,aL as F,T as h,b as P,g8 as y,jN as H,jO as R,jP as V,d as $,i as G,L as Z,aC as q,cY as O}from"./index-BAMIkcom.js";import{u as K}from"./unknownify-B7hmSXnj.js";import{S as Y}from"./LazyAdminExport-BOTczpO1.js";import"./RoleCell-Da0TjMne.js";import"./useApiTokens-Btk4Hd2u.js";import"./PercentageDonut-BoaVP9ed.js";const J=[],Q=e=>{const{data:r,error:n,mutate:d}=A(M("api/admin/metrics/edges"),X,e);return s.useMemo(()=>({connectedEdges:r??J,loading:!n&&!r,refetch:()=>d(),error:n}),[r,n,d])},X=e=>fetch(e).then(I("Connected Edges")).then(r=>r.json());var f={},ee=T;Object.defineProperty(f,"__esModule",{value:!0});var L=f.default=void 0,te=ee(D()),re=t,se=(0,te.default)((0,re.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"}),"Circle");L=f.default=se;const ne=i("table")(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:"right","& > th:first-of-type, td:first-of-type":{textAlign:"left"}}})),E=i("tr")(({theme:e})=>({fontWeight:e.fontWeight.bold,"&&& > td":{paddingTop:e.spacing(1),"& > div":{display:"flex",alignItems:"center"}}})),ae=({instance:e})=>t.jsxs(ne,{children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"Latency (ms)"}),t.jsx("th",{children:"Avg"}),t.jsx("th",{children:"p99"})]})}),t.jsxs("tbody",{children:[t.jsx(E,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Upstream"," ",t.jsx(m,{tooltip:"Latency measured for requests sent from this Edge instance to the configured upstream, i.e. Unleash or another Edge instance.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.upstreamFeaturesAverageLatencyMs}),t.jsx("td",{children:e.upstreamFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Metrics"}),t.jsx("td",{children:e.upstreamMetricsAverageLatencyMs}),t.jsx("td",{children:e.upstreamMetricsP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Edge"}),t.jsx("td",{children:e.upstreamEdgeAverageLatencyMs}),t.jsx("td",{children:e.upstreamEdgeP99LatencyMs})]}),t.jsx(E,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Downstream"," ",t.jsx(m,{tooltip:"Latency measured when serving requests from clients, i.e. SDKs or other Edge instances.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.clientFeaturesAverageLatencyMs}),t.jsx("td",{children:e.clientFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Frontend"}),t.jsx("td",{children:e.frontendApiAverageLatencyMs}),t.jsx("td",{children:e.frontendApiP99LatencyMs})]})]})]}),oe=i("div")(({theme:e})=>({width:"100%",borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:0,zIndex:1,marginTop:e.spacing(1)})),ie=i(_)({width:"100%",background:"transparent",boxShadow:"none"}),le=i(U,{shouldForwardProp:e=>e!=="connectionStatus"})(({theme:e,connectionStatus:r})=>({fontSize:e.fontSizes.smallBody,padding:e.spacing(1),minHeight:e.spacing(3),"& .MuiAccordionSummary-content":{alignItems:"center",gap:e.spacing(1),margin:0,"&.Mui-expanded":{margin:0},"& svg":{fontSize:e.fontSizes.mainHeader,color:r==="Stale"?e.palette.warning.main:r==="Disconnected"?e.palette.error.main:e.palette.success.main}}})),de=i(W)(({theme:e})=>({display:"flex",flexDirection:"column",fontSize:e.fontSizes.smallerBody,gap:e.spacing(2)})),p=i("div")(({theme:e})=>({display:"flex",justifyContent:"space-between",gap:e.spacing(2),"& > span":{display:"flex",alignItems:"center"}})),ce=i(v)(({theme:e})=>({padding:e.spacing(0,1)})),pe=({hosting:e})=>{switch(e){case"hosted":return"Cloud";case"enterprise-self-hosted":return"Self-hosted";default:return e?`Unknown: ${e}`:"Unknown"}},he=({reportedAt:e})=>{const r=new Date(e).getTime(),n=(Date.now()-r)/1e3;return n>360?"Disconnected":n>180?"Stale":"Connected"},ge=({started:e,reportedAt:r,cpuUsage:n})=>{const d=Number(n);if(!d)return"No usage";const a=new Date(e).getTime(),l=(new Date(r).getTime()-a)/1e3;return l===0?"No usage":`${(d/l*100).toFixed(2)} %`},xe=({memoryUsage:e})=>{if(!e)return"No usage";const r=["B","KB","MB","GB"];let n=e,d=0;for(;n>=1024&&d<r.length-1;)n/=1024,d++;return`${n.toFixed(2)} ${r[d]}`},ue=({instance:e})=>{const{locationSettings:r}=N(),n=he(e),d=j(e.started,r==null?void 0:r.locale),a=j(e.reportedAt,r==null?void 0:r.locale),o=ge(e),l=xe(e),c=o==="No usage"&&l==="No usage"&&t.jsx("p",{children:"Resource metrics are only available when running on Linux."});return t.jsx(oe,{children:t.jsxs(ie,{children:[t.jsxs(le,{expandIcon:t.jsx(z,{}),connectionStatus:n,children:[t.jsx(B,{arrow:!0,title:`${n}. Last reported: ${a}`,children:t.jsx(L,{})}),e.id||e.instanceId]}),t.jsxs(de,{children:[t.jsxs(p,{children:[t.jsx("strong",{children:"ID"}),t.jsx("span",{children:e.instanceId})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Upstream server"}),t.jsx("span",{children:e.connectedVia||"Unleash"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Region"}),t.jsx("span",{children:e.region||"Unknown"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Hosting"}),t.jsx("span",{children:pe(e)})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Version"}),t.jsx("span",{children:e.edgeVersion})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Status"}),t.jsx(ce,{color:n==="Disconnected"?"error":n==="Stale"?"warning":"success",children:n})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Start"}),t.jsx("span",{children:d})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Last report"}),t.jsx("span",{children:a})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"CPU"}),t.jsxs("span",{children:[o," ",t.jsx(m,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"CPU average usage since instance started."}),c]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Memory"}),t.jsxs("span",{children:[l," ",t.jsx(m,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"Current memory usage."}),c]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Stream clients"}),t.jsx("span",{children:e.connectedStreamingClients})]}),t.jsx(p,{children:t.jsx(ae,{instance:e})})]})]})})},g="Unleash",me=i("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),ye=i("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap",marginTop:e.spacing(2)})),b=i("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.secondary.border}`,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,marginTop:e.spacing(1),"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),fe=i(b)(({theme:e})=>({backgroundColor:F(e.palette.background.paper,.75),position:"relative"})),je=i(v)({position:"absolute",top:-13}),Ee=i(h)(({theme:e})=>({marginTop:e.spacing(.5),fontWeight:e.fontWeight.bold})),Ce=i(h)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),Se=e=>e.reduce((r,n)=>(r.has(n.appName)||r.set(n.appName,{appName:n.appName,instances:[],groupTargets:new Set,level:0}),r.get(n.appName).instances.push(n),r),new Map),ve=e=>{const r=new Map,n=a=>{if(r.has(a.appName))return r.get(a.appName);let o=0;return a.groupTargets.forEach(l=>{if(l!==g){const c=e.get(l);c&&(o=Math.max(o,n(c)+1))}}),r.set(a.appName,o),o};e.forEach(a=>{a.level=n(a)});const d=new Map;return e.forEach(a=>{const o=d.get(a.level)||[];o.push(a),d.set(a.level,o)}),d},Le=e=>{const r=Se(e),n=new Map,d=new Map;return r.forEach(a=>{a.instances=a.instances.sort((o,l)=>o.instanceId.localeCompare(l.instanceId)).map((o,l)=>{const c=`${a.appName}-${l+1}`;return n.set(o.instanceId,c),d.set(c,a.appName),{...o,id:c}})}),r.forEach(a=>{a.instances=a.instances.map(l=>({...l,connectedVia:l.connectedVia?n.get(l.connectedVia)||l.connectedVia:g}));const o=new Set;a.instances.forEach(l=>{if(!l.connectedVia||l.connectedVia===g)o.add(g);else{const c=d.get(l.connectedVia);c&&c!==a.appName&&o.add(c)}}),a.groupTargets=o}),ve(r)},be=e=>e.every(r=>r.hosting==="hosted")?{hostingLabel:"Cloud",hostingColor:"secondary"}:e.every(r=>r.hosting==="enterprise-self-hosted")?{hostingLabel:"Self-hosted",hostingColor:"info"}:e.every(r=>r.hosting==="hosted"||r.hosting==="enterprise-self-hosted")?{hostingLabel:"Hybrid",hostingColor:"warning"}:{hostingLabel:"Unknown",hostingColor:"neutral"},ke=({connectedEdges:e})=>{const r=P(),n=s.useMemo(()=>Le(e),[e]),d=Array.from(n.keys()).sort((a,o)=>a-o);return t.jsxs(y.ArcherContainer,{strokeColor:r.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(me,{children:t.jsx(y.ArcherElement,{id:g,children:t.jsxs(b,{children:[t.jsx(H,{darkmode:t.jsx(R,{}),lightmode:t.jsx(V,{})}),t.jsx(h,{sx:{mt:1},children:g})]})})}),d.map(a=>{var o;return t.jsx(ye,{children:(o=n.get(a))==null?void 0:o.map(({appName:l,groupTargets:c,instances:x})=>{const{hostingLabel:k,hostingColor:w}=be(x);return t.jsx(y.ArcherElement,{id:l,relations:Array.from(c).map(u=>({targetId:u,targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:r.palette.secondary.border}})),children:t.jsxs(fe,{children:[t.jsx(je,{color:w,children:k}),t.jsx(Ee,{children:K(l)}),t.jsxs(Ce,{children:[x.length," instance",x.length!==1&&"s"]}),x.map(u=>t.jsx(ue,{instance:u},u.instanceId))]})},l)})},a)})]})},we=e=>s.createElement("svg",{width:312,height:144,viewBox:"0 0 312 144",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},s.createElement("rect",{width:312,height:144,rx:8,fill:"#F1F0FC"}),s.createElement("g",{opacity:.2},s.createElement("circle",{cx:155.933,cy:72.1494,r:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),s.createElement("ellipse",{cx:155.933,cy:72.2595,rx:43.5873,ry:60.2595,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),s.createElement("ellipse",{cx:156.368,cy:72.1494,rx:27.2421,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),s.createElement("ellipse",{cx:156.369,cy:72.1494,rx:10.8968,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"})),s.createElement("g",{opacity:.2},s.createElement("mask",{id:"mask0_35832_1410",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:96,y:12,width:120,height:121},s.createElement("circle",{cx:155.933,cy:72.1494,r:59.2542,fill:"#92A1A5",stroke:"#657A80",strokeWidth:1.35669})),s.createElement("g",{mask:"url(#mask0_35832_1410)"},s.createElement("path",{d:"M96 48.1777C96 48.1777 109.076 59.2925 155.933 59.2925C202.789 59.2925 215.865 48.1777 215.865 48.1777",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M96 28.3438C96 28.3438 109.076 45.7787 155.933 45.7787C202.789 45.7787 215.865 28.3438 215.865 28.3438",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M96 2.19141C96 2.19141 109.076 33.1384 155.933 33.1384C202.789 33.1384 215.865 2.19141 215.865 2.19141",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M96 -39.4336C96 -39.4336 109.076 21.3707 155.933 21.3707C202.789 21.3707 215.865 -39.4336 215.865 -39.4336",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("line",{x1:96,y1:71.472,x2:215.865,y2:71.472,stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M215.867 95.6855C215.867 95.6855 202.79 84.5708 155.934 84.5708C109.078 84.5708 96.0016 95.6855 96.0016 95.6855",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M215.867 115.518C215.867 115.518 202.79 98.0826 155.934 98.0826C109.078 98.0826 96.0016 115.518 96.0016 115.518",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M215.867 141.672C215.867 141.672 202.79 110.725 155.934 110.725C109.078 110.725 96.0016 141.672 96.0016 141.672",stroke:"#657A80",strokeWidth:1.35669}),s.createElement("path",{d:"M215.866 183.297C215.866 183.297 202.79 122.493 155.934 122.493C109.078 122.493 96.0013 183.297 96.0013 183.297",stroke:"#657A80",strokeWidth:1.35669}))),s.createElement("rect",{x:116.749,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 116.749 86.5273)",fill:"url(#paint0_linear_35832_1410)"}),s.createElement("ellipse",{cx:102.184,cy:71.9997,rx:14.565,ry:14.527,fill:"#817AFE"}),s.createElement("path",{d:"M106.258 67.9648H98.187V76.0354H106.258V67.9648Z",fill:"white"}),s.createElement("path",{d:"M140.556 78.3887L140.232 70.291L133.381 74.6202L140.556 78.3887ZM121.749 69.1189L129.108 72.5139L128.369 64.4436L121.749 69.1189ZM137.182 73.0493L137.645 72.5217C136.53 71.5447 135.079 70.5495 133.191 69.6186L132.88 70.2481L132.57 70.8776C134.358 71.7589 135.705 72.6876 136.719 73.577L137.182 73.0493ZM132.88 70.2481L133.191 69.6186C131.302 68.6877 129.629 68.143 128.176 67.8544L128.039 68.5428L127.902 69.2312C129.225 69.4939 130.782 69.9964 132.57 70.8776L132.88 70.2481Z",fill:"#6C65E5"}),s.createElement("rect",{x:147.284,y:55.7305,width:17.4324,height:32.5405,rx:3.48649,fill:"#1A4049"}),s.createElement("path",{d:"M171.444 78.3887L171.768 70.291L178.619 74.6202L171.444 78.3887ZM190.251 69.1189L182.892 72.5139L183.631 64.4436L190.251 69.1189ZM174.818 73.0493L174.355 72.5217C175.47 71.5447 176.921 70.5495 178.809 69.6186L179.12 70.2481L179.43 70.8776C177.642 71.7589 176.295 72.6876 175.281 73.577L174.818 73.0493ZM179.12 70.2481L178.809 69.6186C180.698 68.6877 182.371 68.143 183.824 67.8544L183.961 68.5428L184.098 69.2312C182.775 69.4939 181.218 69.9964 179.43 70.8776L179.12 70.2481Z",fill:"#6C65E5"}),s.createElement("rect",{x:253.359,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 253.359 86.5273)",fill:"url(#paint1_linear_35832_1410)"}),s.createElement("ellipse",{cx:238.794,cy:71.9997,rx:14.565,ry:14.527,fill:"#1A4049"}),s.createElement("path",{d:"M242.867 67.9648H234.797V76.0354H242.867V67.9648Z",fill:"#EDF0F1"}),s.createElement("defs",null,s.createElement("linearGradient",{id:"paint0_linear_35832_1410",x1:116.737,y1:100.985,x2:174.889,y2:100.985,gradientUnits:"userSpaceOnUse"},s.createElement("stop",{stopColor:"#1A4049",stopOpacity:0}),s.createElement("stop",{offset:1,stopColor:"#0E1A1D"})),s.createElement("linearGradient",{id:"paint1_linear_35832_1410",x1:253.347,y1:100.985,x2:311.499,y2:100.985,gradientUnits:"userSpaceOnUse"},s.createElement("stop",{stopColor:"#657A80",stopOpacity:0}),s.createElement("stop",{offset:1,stopColor:"#1A4049",stopOpacity:.75})))),Ae=i("div")(({theme:e})=>({display:"flex",flexDirection:"column",gap:e.spacing(1),maxWidth:e.spacing(80),margin:"auto"})),Me=i("div")(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(2.5),marginTop:e.spacing(2.5)})),Ie=i("div")(({theme:e})=>({border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3),flex:1,display:"flex",flexDirection:"column",gap:e.spacing(1.5)})),De=i("div")({"& > svg":{width:"auto",maxWidth:"100%",height:"auto",display:"block"}}),Te=i("ul")(({theme:e})=>({listStyle:"none",marginTop:e.spacing(1),marginBottom:e.spacing(1),paddingLeft:e.spacing(0),display:"flex",flexDirection:"column",gap:e.spacing(1)})),_e=i("li")(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1)})),Ue=i($)(({theme:e})=>({color:e.palette.primary.main,fontSize:"18px"})),We=i("div")(({theme:e})=>({display:"flex",justifyContent:"flex-start",margin:e.spacing(-.75)})),Ne=()=>t.jsxs(Ae,{children:[t.jsx(h,{variant:"h3",children:"Which version is right for you?"}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Unleash Enterprise Edge is a high-performance proxy engineered for scalability, resilience, and privacy. It acts as a shield between your SDKs and the Unleash API, allowing you to handle thousands of concurrent connections with zero impact on your primary instance. Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," ","today to provision your private Enterprise Edge environment."]}),t.jsxs(Me,{children:[t.jsx(C,{image:t.jsx(Y,{}),title:"Cloud hosted",description:"When you need to connect to Unleash from geographically distributed locations.",bullets:["Global infrastructure","No operational burden","Instant flag updates worldwide"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#cloud-hosted"}),t.jsx(C,{image:t.jsx(we,{}),title:"Self hosted",description:"Ensure low latency and data sovereignty by running Enterprise Edge inside your private network.",bullets:["Ideal for PII heavy data","Optimized for minimal latency","Improved security"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#self-hosted"})]})]}),C=({image:e,title:r,description:n,bullets:d,docsUrl:a})=>t.jsxs(Ie,{children:[t.jsx(De,{children:e}),t.jsx(h,{variant:"h3",children:r}),t.jsx(h,{variant:"body2",color:"text.secondary",children:n}),t.jsx(Te,{children:d.map(o=>t.jsxs(_e,{children:[t.jsx(Ue,{})," ",t.jsx(h,{variant:"body2",color:"text.secondary",children:o})]},o))}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," to get started."]}),t.jsx(We,{children:t.jsx(G,{component:Z,to:a,size:"small",sx:{fontSize:"14px"},rel:"noopener noreferrer",target:"_blank",children:"Read docs"})})]}),ze=i(q)(({theme:e})=>({".body":{padding:e.spacing(0)}})),S=i("div")(({theme:e})=>({padding:e.spacing(4)})),Be=i("hr")(({theme:e})=>({border:"none",height:"1px",background:e.palette.divider,width:"100%",margin:e.spacing(2,0)})),Ge=()=>{O("Enterprise Edge");const{connectedEdges:e}=Q({refreshInterval:3e4}),r=e.length>0;return t.jsxs(ze,{header:"Enterprise Edge",children:[r&&t.jsxs(t.Fragment,{children:[t.jsx(S,{children:t.jsx(ke,{connectedEdges:e})}),t.jsx(Be,{})]}),t.jsx(S,{sx:{pb:r?6:4},children:t.jsx(Ne,{})})]})};export{Ge as EnterpriseEdge,Ge as default};
@@ -0,0 +1,2 @@
1
+ import{jt as c,du as y,je as u,bv as x,b as g,bs as f,r as d,j as b,jH as C,jg as j,jh as v,ji as M,jz as S,jM as q,jC as D,jm as E,jl as T,jk as $}from"./index-BAMIkcom.js";import{d as h}from"./FeatureViewLazyExport-BPB1jWYz.js";import"./MarkCompletedDialogue-BwS_OP77.js";import"./aggregateFeatureMetrics-yZy5qwho.js";import"./FeatureStaleDialog-DZEtcHDT.js";import"./PercentageDonut-BoaVP9ed.js";import"./GridLayoutWrapper-2osRRgh4.js";const k=(e,l,s)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(l,s,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(l,s,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(l,s,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,l,s)=>e.map(a=>({x:a.timestamp,y:s(a),variants:a.variants||{}})),L=(e,l)=>{if(l===0)return"";const[s,a]=e,t=Math.floor(Number(a)/l*100);return`${a} (${t}%) - ${s}`},_=(e,l,s,a)=>({locale:a.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.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],n=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return n-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...n}=r.variants;return Object.entries(n).map(i=>L(i,r.y)).join(`
2
+ `)},title:t=>`Time: ${s>48?y(t[0].parsed.x,a.locale,"UTC"):u(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:H(s),position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests",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:s>48?"day":"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>s>48?x(o[r].value,a.locale,"UTC"):u(o[r].value,a.locale),color:e.palette.text.secondary}}}}),H=e=>e===1?"Requests in the last hour":`Requests in the last ${h(e)}`;c.font={...c.font,family:"Sen",size:13,weight:"400"};const V=({metrics:e,hoursBack:l,statsSectionId:s})=>{const a=g(),{locationSettings:t}=f(),r=d.useMemo(()=>[...e].sort((i,m)=>i.timestamp.localeCompare(m.timestamp)),[e]),o=d.useMemo(()=>_(a,r,l,t),[a,r,l,t]),n=d.useMemo(()=>k(a,r,t),[a,r,t]);return b.jsx("div",{style:{height:400},children:b.jsx(C,{options:o,data:n,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":s})})};j.register(v,M,S,q,D,E,T,$);export{V as FeatureMetricsChart,V as default};
@@ -0,0 +1,7 @@
1
+ import{G as H,H as W,j as t,A as Y,l as J,C as I,bh as le,m as ce,o as de,iL as ue,n as pe,s as D,b as K,T as E,u as he,ba as me,r as v,b9 as Q,bb as X,bd as ge,as as Z,c7 as fe,cK as ve,iM as be,d5 as xe,d9 as M,b5 as V,iN as Se,d8 as Te,d7 as je,iO as ye,cw as Ee,bE as ee,bt as te,bc as se,iP as Ce,iQ as Re,iR as Ae,iS as we,hW as ke,hM as ae,iT as De,i as Ie,iU as Pe,c3 as ne,aQ as U,bB as Oe,fU as Fe,e as $,bF as _e,bD as Ve,bK as $e,c8 as qe,c6 as Ue,iV as Be,h as _,cm as Ne,aU as Le,aV as re,aY as B,V as Me,da as ze,aR as Ge,bi as z,bf as oe,iW as He,iX as We,B as Ye,aq as Je,hK as Ke,iY as Qe,cQ as Xe,iZ as Ze,fS as et}from"./index-BAMIkcom.js";var N={},tt=W;Object.defineProperty(N,"__esModule",{value:!0});var ie=N.default=void 0,st=tt(H()),at=t,nt=(0,st.default)((0,at.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");ie=N.default=nt;const rt=ue(),Vt=({options:e,selectedOptions:r,indeterminateOptions:a,tagType:d,existingTags:o,disabled:l=!1,onChange:s})=>{const i=t.jsx(pe,{fontSize:"small"}),u=p=>p.inputValue?p.inputValue:p.title,g=({key:p,...h},n,{selected:m})=>{const S=(a==null?void 0:a.some(x=>x.title===n.title))??!1;return t.jsxs("li",{...h,children:[t.jsx(I,{condition:!!n.inputValue,show:t.jsx(le,{sx:{mr:x=>x.spacing(.5)}}),elseShow:t.jsx(ce,{icon:i,checkedIcon:t.jsx(de,{fontSize:"small"}),indeterminateIcon:t.jsx(ie,{fontSize:"small"}),sx:{mr:x=>x.spacing(.5)},checked:m&&!S,indeterminate:S})}),n.title]},p)},f=(p,h)=>{const n=h.inputValue.trim(),m=rt(p,{...h,inputValue:n}),S=p.some(x=>n===x.title);return n.length>=2&&!S&&m.push({inputValue:n,title:`Create new value "${n}"`}),m};return t.jsx(Y,{multiple:!0,id:"checkboxes-tag",sx:{marginTop:p=>p.spacing(2),width:500},disableCloseOnSelect:!0,options:e,value:r,isOptionEqualToValue:(p,h)=>h.inputValue&&h.inputValue!==""?p.title===h.inputValue:p.title===h.title,getOptionLabel:u,renderOption:g,filterOptions:f,ListboxProps:{style:{maxHeight:200,overflow:"auto"}},onChange:s,renderInput:p=>t.jsx(J,{...p,label:"Select values",placeholder:"Select values"}),disabled:l})},ot=D("li")({flexDirection:"column"}),$t=({options:e,value:r,disabled:a=!1,onChange:d})=>{const o=K();return t.jsx(Y,{disablePortal:!0,disabled:a,id:"tag-type-select",sx:{marginTop:l=>l.spacing(2),width:500},options:e,disableClearable:!0,value:r,getOptionLabel:l=>l.name,renderOption:({key:l,...s},i)=>t.jsxs(ot,{...s,style:{alignItems:"flex-start",gap:o.spacing(.5)},children:[t.jsx(E,{variant:"body1",children:i.name}),t.jsx(E,{variant:"caption",children:i.description})]},l),renderInput:l=>t.jsx(J,{...l,label:"Tag type",value:r}),onChange:d,ListboxProps:{style:{maxHeight:200,overflow:"auto"}}})},qt=()=>{const{makeRequest:e,createRequest:r,errors:a,loading:d}=he({propagateErrors:!0});return{createTag:async s=>{const u=r("api/admin/tags",{method:"POST",body:JSON.stringify(s)});return e(u.caller,u.id)},bulkUpdateTags:async(s,i)=>{const u=`api/admin/projects/${i}/tags`,g=r(u,{method:"PUT",body:JSON.stringify(s)});return e(g.caller,g.id)},errors:a,loading:d}},Ut=(e,r={})=>{const a=async()=>{const g=Q(`api/admin/tags/${e}`);return(await fetch(g,{method:"GET"}).then(X("Tags"))).json()},d=`api/admin/tags/${e}`,{data:o,error:l}=me(!!e,{tags:[]},d,a,r),[s,i]=v.useState(!l&&!o),u=()=>{ge(d)};return v.useEffect(()=>{i(!l&&!o)},[o,l]),{tags:(o==null?void 0:o.tags)||[],error:l,loading:s,refetch:u}},it=D("div")({display:"flex",flexDirection:"column"}),lt=({strategy:e,setStrategy:r,projectId:a,environment:d,editable:o,permission:l=Te})=>{const{trackEvent:s}=Z(),[i,u]=v.useState([]),g=K(),f=e!=null&&e.parameters&&"stickiness"in(e==null?void 0:e.parameters)?String(e.parameters.stickiness):"default";v.useEffect(()=>{u((e.variants||[]).map(n=>({...n,new:o||!1,isValid:!0,id:crypto.randomUUID(),overrides:[]})))},[]),v.useEffect(()=>{r(n=>({...n,variants:i.map(m=>({stickiness:f,name:m.name,weight:m.weight,payload:m.payload,weightType:m.weightType}))}))},[f,JSON.stringify(i)]);const p=(n,m)=>{u(S=>M(S.map(x=>x.id===m?n:x),1e3))},h=()=>{const n=crypto.randomUUID();u(m=>[...m,{name:"",weightType:je.VARIABLE,weight:0,stickiness:f,new:!0,isValid:!1,id:n}]),s("strategy-variants",{props:{eventType:"variant added"}})};return t.jsxs(t.Fragment,{children:[t.jsxs(E,{component:"h3",sx:{m:0,display:"flex",gap:"1ch"},variant:"h3",children:["Variants",t.jsx(fe,{htmlTooltip:!0,tooltip:t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Variants allow to attach one or more values to this strategy. Variants at the strategy level override variants at the feature level."}),t.jsx(ve,{target:"_blank",href:"https://docs.getunleash.io/concepts/strategy-variants",children:"Learn more"})]})})]}),t.jsxs(it,{children:[t.jsx(be,{}),i.map((n,m)=>t.jsx(xe,{disableOverrides:!0,variant:n,variants:i,updateVariant:S=>p(S,n.id),removeVariant:()=>u(S=>M(S.filter(x=>x.id!==n.id),1e3)),decorationColor:g.palette.variants[m%g.palette.variants.length]},n.id))]}),t.jsx(V,{onClick:h,variant:"outlined",permission:l,projectId:a,environmentId:d,"data-testid":"ADD_STRATEGY_VARIANT_BUTTON",children:"Add variant"}),t.jsx(Se,{variants:i})]})},ct=D("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),G=D("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),dt=D("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),ut=({projectId:e,environmentId:r,permission:a,onSubmit:d,onCancel:o,loading:l,strategy:s,setStrategy:i,segments:u,setSegments:g,errors:f})=>{const p=ye(s.constraints),h=Ee(a,e,r),{strategyDefinition:n}=ee(s==null?void 0:s.name),m=te(),{uiConfig:S,error:x,loading:P}=se();if(x)throw x;if(P||!n)return null;const O=T=>n.parameters.find(y=>y.name===T),C=(T,y)=>{const R=O(T);if(T!=="groupId"){const k=Pe(R,y);return k?(f.setFormError(T,k),!1):(f.removeFormError(T),!0)}return!0},c=()=>n.parameters.map(T=>T.name).map(T=>{var y;return C(T,(y=s.parameters)==null?void 0:y[T])}).every(Boolean),w=()=>{m(`/projects/${e}/settings/default-strategy`)},F=async T=>{if(T.preventDefault(),c())d();else return};return t.jsxs(ct,{onSubmit:F,children:[t.jsx(Ce,{title:s.title||"",setTitle:T=>{i(y=>({...y,title:T}))}}),t.jsx(Re,{segments:u,setSegments:g,projectId:e}),t.jsx(Ae,{projectId:e,environmentId:r,strategy:s,setStrategy:i}),t.jsx(G,{}),t.jsx(we,{strategy:s,strategyDefinition:n,setStrategy:i,validateParameter:C,errors:f,hasAccess:h}),t.jsx(I,{condition:s.parameters!=null&&"stickiness"in s.parameters,show:t.jsx(lt,{strategy:s,setStrategy:i,environment:r,projectId:e,permission:[ke,ae]})}),t.jsx(G,{}),t.jsxs(dt,{children:[t.jsx(V,{permission:a,projectId:e,environmentId:r,variant:"contained",color:"primary",type:"submit",disabled:l||!p||f.hasFormErrors(),"data-testid":De,children:"Save strategy"}),t.jsx(Ie,{type:"button",color:"primary",onClick:o||w,disabled:l,children:"Cancel"})]})]})},pt=(e,r)=>{var s,i;const{project:a,refetch:d}=ne(e),o={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:a.defaultStickiness||"default",groupId:""}},l=(i=(s=a.environments)==null?void 0:s.find(u=>u.environment===r))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:o,strategy:l,refetch:d}},Bt=()=>{const e=U("projectId"),r=Oe("environmentId"),{refetch:a}=ne(e),{defaultStrategyFallback:d,strategy:o,refetch:l}=pt(e,r),[s,i]=v.useState(o||d),[u,g]=v.useState([]),{updateDefaultStrategy:f,loading:p}=Fe(),{strategyDefinition:h}=ee(s==null?void 0:s.name),{setToastData:n,setToastApiError:m}=$(),S=_e(),{uiConfig:x}=se(),{unleashUrl:P}=x,O=te(),{trackEvent:C}=Z(),{segments:c,refetchSegments:w}=Ve();v.useEffect(()=>{if(c&&(o!=null&&o.segments)){const R=[];for(const k of o==null?void 0:o.segments)R.push(...c.filter(j=>j.id===k));g(R)}},[JSON.stringify(c),JSON.stringify(o==null?void 0:o.segments)]);const F=ht(s,u),T=async R=>{await f(e,r,R),C("default_strategy",{props:{action:"edit",hasTitle:!!R.title}}),w(),a(),n({text:"Default Strategy updated",type:"success"})},y=async()=>{const R=`/projects/${e}/settings/default-strategy`;try{await T(F),await l(),O(R)}catch(k){m(_(k))}};return!h||!s?null:t.jsx($e,{modal:!0,title:qe((s==null?void 0:s.name)??""),description:gt,documentationLink:ft,documentationLinkLabel:vt,formatApiCode:()=>mt(e,r,F,h,P),children:t.jsx(ut,{projectId:e,strategy:s,setStrategy:i,segments:u,setSegments:g,environmentId:r,onSubmit:y,loading:p,permission:[Ue,ae],errors:S,isChangeRequest:!1})})},ht=(e,r)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:r.map(a=>a.id),disabled:e.disabled??!1}),mt=(e,r,a,d,o)=>{if(!o)return"";const l={...a,parameters:Be(a.parameters??{},d)},s=`${o}/api/admin/projects/${e}/environments/${r}/default-strategy}`,i=JSON.stringify(l,void 0,2);return`curl --location --request PUT '${s}' \\
2
+ --header 'Authorization: INSERT_API_KEY' \\
3
+ --header 'Content-Type: application/json' \\
4
+ --data-raw '${i}'`},gt=`
5
+ An activation strategy will only run when a feature flag is enabled and provides a way to control who will get access to the feature.
6
+ If any of a feature flag's activation strategies returns true, the user will get access.
7
+ `,ft="https://docs.getunleash.io/concepts/projects#project-default-strategy",vt="Default strategy documentation",Nt=e=>{const{data:r,error:a,mutate:d}=Ne(Q(`api/admin/environments/project/${e}`),bt),o=v.useMemo(()=>r||[],[r]),l=v.useCallback(async()=>{await d()},[d]);return{environments:o,refetchEnvironments:l,loading:!a&&!r,error:a}},bt=async e=>(await fetch(e).then(X("Environments")).then(a=>a.json())).environments.sort((a,d)=>a.sortOrder-d.sortOrder),xt=e=>{const{setToastData:r,setToastApiError:a}=$(),{addChange:d}=Le(),{refetch:o}=re(e),[l,s]=v.useState(!1),[i,u]=v.useState({isOpen:!1}),g=v.useCallback((h,n,m,S)=>{u({featureName:h,environment:n,enabled:m,shouldActivateDisabledStrategies:S,isOpen:!0})},[]),f=v.useCallback(()=>{u(h=>({...h,isOpen:!1}))},[]),p=v.useCallback(async()=>{try{s(!0),await d(e,i.environment,{feature:i.featureName,action:"updateEnabled",payload:{enabled:!!i.enabled,shouldActivateDisabledStrategies:!!i.shouldActivateDisabledStrategies}}),o(),u(h=>({...h,isOpen:!1})),r({type:"success",text:"Changes added to draft"})}catch(h){a(_(h)),u(n=>({...n,isOpen:!1}))}finally{s(!1)}},[d]);return{pending:l,onChangeRequestToggle:g,onChangeRequestToggleClose:f,onChangeRequestToggleConfirm:p,changeRequestDialogDetails:i}},St=({enabled:e,featureName:r,environment:a})=>t.jsxs(E,{"data-testid":"update-enabled-message",children:[t.jsx("strong",{children:e?"Enable":"Disable"})," feature flag"," ",t.jsx("strong",{children:r})," in ",t.jsx("strong",{children:a})]}),Tt=({isOpen:e,disabled:r=!1,onConfirm:a,onClose:d,showBanner:o,environment:l,messageComponent:s})=>{const i=U("projectId"),{data:u}=re(i),{changeRequestInReviewOrApproved:g,alert:f}=ze(u),p=g(l||""),h=p?"Add to existing change request":"Add suggestion to draft";return t.jsxs(B,{open:e,primaryButtonText:h,secondaryButtonText:"Cancel",disabledPrimaryButton:r,onClick:a,onClose:d,title:"Request changes",fullWidth:!0,children:[t.jsx(I,{condition:p,show:f}),t.jsx(I,{condition:!!o,show:t.jsxs(Me,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",l,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),t.jsx(E,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),s]})},jt=D("ul")(({theme:e})=>({margin:e.spacing(1),paddingLeft:e.spacing(2)})),yt=({isOpen:e,onAddDefaultStrategy:r,onActivateDisabledStrategies:a,onClose:d,environment:o,featureId:l})=>{var f,p,h;const s=U("projectId"),{feature:i}=Ge(s,l),u=(h=(p=(f=i.environments)==null?void 0:f.find(({name:n})=>n===o))==null?void 0:p.strategies)==null?void 0:h.filter(({disabled:n})=>n).length,g=u?u===1?"1 disabled strategy":`${u} disabled strategies`:"disabled strategies";return t.jsxs(B,{open:e,secondaryButtonText:"Cancel",permissionButton:t.jsxs(t.Fragment,{children:[t.jsx(V,{type:"button",variant:"outlined",permission:z,projectId:s,environmentId:o,onClick:r,children:"Add default strategy"}),t.jsx(V,{type:"button",variant:"outlined",permission:z,projectId:s,environmentId:o,onClick:a,children:"Enable all strategies"})]}),onClose:d,title:`Enable feature flag in ${o}`,fullWidth:!0,children:[t.jsx(E,{sx:{mb:n=>n.spacing(3)},children:"A feature flag cannot be enabled without an enabled strategy."}),t.jsx(E,{children:"To enable this feature flag you can choose to:"}),t.jsxs(jt,{children:[t.jsx("li",{children:t.jsx(E,{children:t.jsx("strong",{children:"Add the default strategy"})})}),t.jsx("li",{children:t.jsxs(E,{children:[t.jsx("strong",{children:"Enable all the disabled strategies"})," ","(this feature flag has ",g,")"]})})]})]})},Et=e=>{const r=a=>{a<e.length&&e[a](()=>r(a+1))};r(0)},Lt=e=>{const{toggleFeatureEnvironmentOn:r,toggleFeatureEnvironmentOff:a}=oe(),{setToastData:d,setToastApiError:o}=$(),[l,s]=v.useState({open:!1,label:"",loading:!1,onClose:()=>{},onClick:()=>{}}),[i,u]=v.useState({isOpen:!1,environment:"",featureId:"",onClose:()=>{},onActivateDisabledStrategies:()=>{},onAddDefaultStrategy:()=>{}}),{pending:g,onChangeRequestToggle:f,onChangeRequestToggleClose:p,onChangeRequestToggleConfirm:h,changeRequestDialogDetails:n}=xt(e),[m,S]=v.useState(),x=v.useCallback(async(C,c)=>{let w=!1;return Et([j=>{if(c.isChangeRequestEnabled||!We(c.environmentType||""))return j();s({open:!0,label:`${C?"Enable":"Disable"} Environment`,loading:!1,onClose:()=>{var b;s(A=>({...A,open:!1})),(b=c.onRollback)==null||b.call(c)},onClick:()=>{s(b=>({...b,open:!1,loading:!0})),j()}})},j=>{if(C===!1||!c.hasStrategies||c.hasEnabledStrategies||c.hasReleasePlans)return j();u({isOpen:!0,environment:c.environmentName,featureId:c.featureId,onClose:()=>{var b;u(A=>({...A,isOpen:!1})),(b=c.onRollback)==null||b.call(c)},onActivateDisabledStrategies:()=>{u(b=>({...b,isOpen:!1})),w=!0,j()},onAddDefaultStrategy:()=>{u(b=>({...b,isOpen:!1})),j()}})},j=>{if(!c.isChangeRequestEnabled)return j();S(()=>{var b;S(void 0),(b=c.onRollback)==null||b.call(c)}),f(c.featureId,c.environmentName,C,w)},async j=>{var b,A;if(C!==!1)return j();try{await a(c.projectId,c.featureId,c.environmentName),d({type:"success",text:`Disabled in ${c.environmentName}`}),(b=c.onSuccess)==null||b.call(c)}catch(q){o(_(q)),(A=c.onRollback)==null||A.call(c)}},async j=>{var b,A;if(C!==!0)return j();try{await r(c.projectId,c.featureId,c.environmentName,w),d({type:"success",text:`Enabled in ${c.environmentName}`}),(b=c.onSuccess)==null||b.call(c)}catch(q){o(_(q)),(A=c.onRollback)==null||A.call(c)}}])},[s]),P=i.featureId.length!==0,O=t.jsxs(t.Fragment,{children:[t.jsx(He,{...l}),t.jsx(I,{condition:P,show:t.jsx(yt,{...i})}),t.jsx(Tt,{isOpen:n.isOpen,onClose:()=>{m==null||m(),p()},environment:n==null?void 0:n.environment,disabled:g,onConfirm:()=>{m==null||m(),h()},messageComponent:t.jsx(St,{enabled:n==null?void 0:n.enabled,featureName:n==null?void 0:n.featureName,environment:n.environment})})]});return{onToggle:x,modals:O}},Ct=e=>{const[r,a]=v.useState(e),d=v.useCallback(()=>a(e),[e]);return v.useEffect(()=>{a(e)},[e]),[r,a,d]},Rt=D(Ye)(()=>({mx:"auto",...Je})),Mt=({projectId:e,featureId:r,environmentName:a,value:d,onToggle:o})=>{const[l,s,i]=Ct(d),u=()=>{s(!l),requestAnimationFrame(()=>{o(!l,i)})},g=`${r}-${a}`;return t.jsx(t.Fragment,{children:t.jsx(Rt,{"data-testid":`TOGGLE-${g}`,children:t.jsx(Ke,{tooltip:l?`Disable flag in ${a}`:`Enable flag in ${a}`,checked:d,environmentId:a,projectId:e,permission:Qe,inputProps:{"aria-label":a},onClick:u,"data-testid":"permission-switch",disabled:d!==l})},g)})};var L={},At=W;Object.defineProperty(L,"__esModule",{value:!0});var wt=L.default=void 0,kt=At(H()),Dt=t,It=(0,kt.default)((0,Dt.jsx)("path",{d:"M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z"}),"CleaningServices");wt=L.default=It;const Pt="flag-reminders:v1",Ot=50,Ft=7,zt=({days:e=Ft,maxReminders:r=Ot}={})=>{const[a,d]=Xe(Pt,{});return{shouldShowReminder:s=>{const i=a[s];return!i||Ze(new Date,new Date(i))},snoozeReminder:(s,i=e)=>{const u=et(new Date,i).getTime();d(g=>{const f={...g,[s]:u},p=Object.entries(f);if(p.length>r){p.sort((n,m)=>n[1]-m[1]);const h=p.slice(p.length-r);return Object.fromEntries(h)}return f})}}},Gt=({isStale:e,isOpen:r,projectId:a,featureId:d,onClose:o})=>{const{setToastData:l,setToastApiError:s}=$(),{patchFeatureToggle:i}=oe(),u=t.jsx(E,{children:"Setting a flag to stale marks it for cleanup"}),g=t.jsx(E,{children:"Setting a flag to active marks it as in active use"}),f=e?"active":"stale",p=async h=>{h.stopPropagation();try{await i(a,d,[{op:"replace",path:"/stale",value:!e}]),o()}catch(n){s(_(n))}l(e?{type:"success",text:"The flag is no longer marked as stale"}:{type:"success",text:"The flag has been marked as stale"})};return t.jsx(B,{open:r,secondaryButtonText:"Cancel",primaryButtonText:`Flip to ${f}`,title:`Set feature state to ${f}`,onClick:p,onClose:o,children:t.jsx(I,{condition:e,show:g,elseShow:u})})};export{Tt as C,Bt as E,Mt as F,$t as T,Ut as a,Vt as b,pt as c,Nt as d,Lt as e,zt as f,wt as g,Gt as h,qt as u};