unleash-server 8.0.0 → 8.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/dist/lib/addons/addon.d.ts +10 -2
  2. package/dist/lib/addons/addon.d.ts.map +1 -1
  3. package/dist/lib/addons/addon.js +104 -6
  4. package/dist/lib/addons/addon.js.map +1 -1
  5. package/dist/lib/addons/datadog-definition.js +1 -1
  6. package/dist/lib/addons/datadog-definition.js.map +1 -1
  7. package/dist/lib/addons/datadog.test.js +2 -0
  8. package/dist/lib/addons/datadog.test.js.map +1 -1
  9. package/dist/lib/addons/index.d.ts.map +1 -1
  10. package/dist/lib/addons/index.js +2 -0
  11. package/dist/lib/addons/index.js.map +1 -1
  12. package/dist/lib/addons/new-relic.d.ts.map +1 -1
  13. package/dist/lib/addons/new-relic.js +0 -1
  14. package/dist/lib/addons/new-relic.js.map +1 -1
  15. package/dist/lib/addons/new-relic.test.js +0 -1
  16. package/dist/lib/addons/new-relic.test.js.map +1 -1
  17. package/dist/lib/addons/slack.test.js +1 -2
  18. package/dist/lib/addons/slack.test.js.map +1 -1
  19. package/dist/lib/addons/teams-definition.d.ts.map +1 -1
  20. package/dist/lib/addons/teams-definition.js +1 -0
  21. package/dist/lib/addons/teams-definition.js.map +1 -1
  22. package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
  23. package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
  24. package/dist/lib/addons/teams-workflow-definition.js +66 -0
  25. package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
  26. package/dist/lib/addons/teams-workflow.d.ts +15 -0
  27. package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
  28. package/dist/lib/addons/teams-workflow.js +110 -0
  29. package/dist/lib/addons/teams-workflow.js.map +1 -0
  30. package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
  31. package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
  32. package/dist/lib/addons/teams-workflow.test.js +202 -0
  33. package/dist/lib/addons/teams-workflow.test.js.map +1 -0
  34. package/dist/lib/addons/teams.d.ts.map +1 -1
  35. package/dist/lib/addons/teams.js +0 -1
  36. package/dist/lib/addons/teams.js.map +1 -1
  37. package/dist/lib/addons/teams.test.js +0 -1
  38. package/dist/lib/addons/teams.test.js.map +1 -1
  39. package/dist/lib/addons/validate-url.d.ts +18 -0
  40. package/dist/lib/addons/validate-url.d.ts.map +1 -0
  41. package/dist/lib/addons/validate-url.js +93 -0
  42. package/dist/lib/addons/validate-url.js.map +1 -0
  43. package/dist/lib/addons/validate-url.test.d.ts +2 -0
  44. package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
  45. package/dist/lib/addons/validate-url.test.js +199 -0
  46. package/dist/lib/addons/validate-url.test.js.map +1 -0
  47. package/dist/lib/create-config.d.ts.map +1 -1
  48. package/dist/lib/create-config.js +7 -0
  49. package/dist/lib/create-config.js.map +1 -1
  50. package/dist/lib/db/session-store.d.ts +1 -0
  51. package/dist/lib/db/session-store.d.ts.map +1 -1
  52. package/dist/lib/db/session-store.js +6 -0
  53. package/dist/lib/db/session-store.js.map +1 -1
  54. package/dist/lib/error/bad-data-error.d.ts.map +1 -1
  55. package/dist/lib/error/bad-data-error.js +10 -2
  56. package/dist/lib/error/bad-data-error.js.map +1 -1
  57. package/dist/lib/error/unleash-error.test.js +23 -0
  58. package/dist/lib/error/unleash-error.test.js.map +1 -1
  59. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
  60. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +2 -0
  61. package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
  62. package/dist/lib/features/constraints/constraints-controller.d.ts.map +1 -1
  63. package/dist/lib/features/constraints/constraints-controller.js +1 -0
  64. package/dist/lib/features/constraints/constraints-controller.js.map +1 -1
  65. package/dist/lib/features/context/context.d.ts.map +1 -1
  66. package/dist/lib/features/context/context.js +3 -1
  67. package/dist/lib/features/context/context.js.map +1 -1
  68. package/dist/lib/features/dependent-features/dependent-features-controller.d.ts.map +1 -1
  69. package/dist/lib/features/dependent-features/dependent-features-controller.js +6 -0
  70. package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -1
  71. package/dist/lib/features/environments/environments-controller.d.ts.map +1 -1
  72. package/dist/lib/features/environments/environments-controller.js +6 -0
  73. package/dist/lib/features/environments/environments-controller.js.map +1 -1
  74. package/dist/lib/features/events/event-search-controller.d.ts.map +1 -1
  75. package/dist/lib/features/events/event-search-controller.js +1 -0
  76. package/dist/lib/features/events/event-search-controller.js.map +1 -1
  77. package/dist/lib/features/export-import-toggles/export-import-controller.d.ts.map +1 -1
  78. package/dist/lib/features/export-import-toggles/export-import-controller.js +3 -0
  79. package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
  80. package/dist/lib/features/feature-search/feature-search-controller.d.ts.map +1 -1
  81. package/dist/lib/features/feature-search/feature-search-controller.js +1 -0
  82. package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
  83. package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
  84. package/dist/lib/features/feature-search/feature-search-service.js +5 -0
  85. package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
  86. package/dist/lib/features/feature-search/feature-search-store.d.ts +1 -1
  87. package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
  88. package/dist/lib/features/feature-search/feature-search-store.js +60 -10
  89. package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
  90. package/dist/lib/features/feature-search/feature.search.e2e.test.js +77 -0
  91. package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
  92. package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.d.ts.map +1 -1
  93. package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js +2 -0
  94. package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js.map +1 -1
  95. package/dist/lib/features/feature-toggle/feature-toggle-controller.d.ts.map +1 -1
  96. package/dist/lib/features/feature-toggle/feature-toggle-controller.js +21 -0
  97. package/dist/lib/features/feature-toggle/feature-toggle-controller.js.map +1 -1
  98. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts.map +1 -1
  99. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js +5 -0
  100. package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js.map +1 -1
  101. package/dist/lib/features/frontend-api/frontend-api-controller.d.ts.map +1 -1
  102. package/dist/lib/features/frontend-api/frontend-api-controller.js +4 -0
  103. package/dist/lib/features/frontend-api/frontend-api-controller.js.map +1 -1
  104. package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
  105. package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
  106. package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
  107. package/dist/lib/features/maintenance/maintenance-controller.d.ts.map +1 -1
  108. package/dist/lib/features/maintenance/maintenance-controller.js +2 -0
  109. package/dist/lib/features/maintenance/maintenance-controller.js.map +1 -1
  110. package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts.map +1 -1
  111. package/dist/lib/features/metrics/client-metrics/client-metrics.js +2 -0
  112. package/dist/lib/features/metrics/client-metrics/client-metrics.js.map +1 -1
  113. package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts.map +1 -1
  114. package/dist/lib/features/metrics/custom/custom-metrics-controller.js +2 -0
  115. package/dist/lib/features/metrics/custom/custom-metrics-controller.js.map +1 -1
  116. package/dist/lib/features/metrics/instance/metrics.d.ts.map +1 -1
  117. package/dist/lib/features/metrics/instance/metrics.js +3 -0
  118. package/dist/lib/features/metrics/instance/metrics.js.map +1 -1
  119. package/dist/lib/features/metrics/instance/register.d.ts.map +1 -1
  120. package/dist/lib/features/metrics/instance/register.js +1 -0
  121. package/dist/lib/features/metrics/instance/register.js.map +1 -1
  122. package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
  123. package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
  124. package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
  125. package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
  126. package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.d.ts.map +1 -1
  127. package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js +1 -0
  128. package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js.map +1 -1
  129. package/dist/lib/features/playground/playground.d.ts.map +1 -1
  130. package/dist/lib/features/playground/playground.js +2 -0
  131. package/dist/lib/features/playground/playground.js.map +1 -1
  132. package/dist/lib/features/project/project-controller.d.ts.map +1 -1
  133. package/dist/lib/features/project/project-controller.js +6 -0
  134. package/dist/lib/features/project/project-controller.js.map +1 -1
  135. package/dist/lib/features/project-environments/project-environments-controller.d.ts.map +1 -1
  136. package/dist/lib/features/project-environments/project-environments-controller.js +3 -0
  137. package/dist/lib/features/project-environments/project-environments-controller.js.map +1 -1
  138. package/dist/lib/features/project-insights/project-insights-controller.d.ts.map +1 -1
  139. package/dist/lib/features/project-insights/project-insights-controller.js +1 -0
  140. package/dist/lib/features/project-insights/project-insights-controller.js.map +1 -1
  141. package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.d.ts.map +1 -1
  142. package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.js +5 -2
  143. package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.js.map +1 -1
  144. package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.test.js +34 -0
  145. package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.test.js.map +1 -1
  146. package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
  147. package/dist/lib/features/segment/segment-controller.js +9 -0
  148. package/dist/lib/features/segment/segment-controller.js.map +1 -1
  149. package/dist/lib/features/tag-type/tag-type.d.ts.map +1 -1
  150. package/dist/lib/features/tag-type/tag-type.js +6 -0
  151. package/dist/lib/features/tag-type/tag-type.js.map +1 -1
  152. package/dist/lib/features/ui-observability-controller/ui-observability-controller.d.ts.map +1 -1
  153. package/dist/lib/features/ui-observability-controller/ui-observability-controller.js +1 -0
  154. package/dist/lib/features/ui-observability-controller/ui-observability-controller.js.map +1 -1
  155. package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
  156. package/dist/lib/middleware/secure-headers.js +20 -1
  157. package/dist/lib/middleware/secure-headers.js.map +1 -1
  158. package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
  159. package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
  160. package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
  161. package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
  162. package/dist/lib/openapi/spec/addons-schema.js +51 -0
  163. package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
  164. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +3 -2
  165. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
  166. package/dist/lib/openapi/spec/feature-search-query-parameters.js +3 -2
  167. package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
  168. package/dist/lib/openapi/spec/profile-schema.d.ts +6 -1
  169. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  170. package/dist/lib/openapi/spec/profile-schema.js +13 -1
  171. package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
  172. package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
  173. package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
  174. package/dist/lib/openapi/util/api-operation.d.ts +1 -1
  175. package/dist/lib/openapi/util/api-stability.js +1 -1
  176. package/dist/lib/openapi/util/api-stability.test.js +8 -5
  177. package/dist/lib/openapi/util/api-stability.test.js.map +1 -1
  178. package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
  179. package/dist/lib/routes/admin-api/addon.js +12 -2
  180. package/dist/lib/routes/admin-api/addon.js.map +1 -1
  181. package/dist/lib/routes/admin-api/api-token.d.ts.map +1 -1
  182. package/dist/lib/routes/admin-api/api-token.js +5 -0
  183. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  184. package/dist/lib/routes/admin-api/event.d.ts.map +1 -1
  185. package/dist/lib/routes/admin-api/event.js +3 -0
  186. package/dist/lib/routes/admin-api/event.js.map +1 -1
  187. package/dist/lib/routes/admin-api/favorites.d.ts.map +1 -1
  188. package/dist/lib/routes/admin-api/favorites.js +4 -0
  189. package/dist/lib/routes/admin-api/favorites.js.map +1 -1
  190. package/dist/lib/routes/admin-api/feature-type.d.ts.map +1 -1
  191. package/dist/lib/routes/admin-api/feature-type.js +2 -0
  192. package/dist/lib/routes/admin-api/feature-type.js.map +1 -1
  193. package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
  194. package/dist/lib/routes/admin-api/instance-admin.js +2 -0
  195. package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
  196. package/dist/lib/routes/admin-api/metrics.d.ts.map +1 -1
  197. package/dist/lib/routes/admin-api/metrics.js +7 -0
  198. package/dist/lib/routes/admin-api/metrics.js.map +1 -1
  199. package/dist/lib/routes/admin-api/project/api-token.d.ts.map +1 -1
  200. package/dist/lib/routes/admin-api/project/api-token.js +3 -0
  201. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  202. package/dist/lib/routes/admin-api/project/health-report.d.ts.map +1 -1
  203. package/dist/lib/routes/admin-api/project/health-report.js +1 -0
  204. package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
  205. package/dist/lib/routes/admin-api/project/project-archive.d.ts.map +1 -1
  206. package/dist/lib/routes/admin-api/project/project-archive.js +4 -0
  207. package/dist/lib/routes/admin-api/project/project-archive.js.map +1 -1
  208. package/dist/lib/routes/admin-api/project/variants.d.ts.map +1 -1
  209. package/dist/lib/routes/admin-api/project/variants.js +4 -0
  210. package/dist/lib/routes/admin-api/project/variants.js.map +1 -1
  211. package/dist/lib/routes/admin-api/public-signup.d.ts.map +1 -1
  212. package/dist/lib/routes/admin-api/public-signup.js +4 -0
  213. package/dist/lib/routes/admin-api/public-signup.js.map +1 -1
  214. package/dist/lib/routes/admin-api/strategy.d.ts.map +1 -1
  215. package/dist/lib/routes/admin-api/strategy.js +7 -0
  216. package/dist/lib/routes/admin-api/strategy.js.map +1 -1
  217. package/dist/lib/routes/admin-api/tag.d.ts.map +1 -1
  218. package/dist/lib/routes/admin-api/tag.js +5 -0
  219. package/dist/lib/routes/admin-api/tag.js.map +1 -1
  220. package/dist/lib/routes/admin-api/telemetry.d.ts.map +1 -1
  221. package/dist/lib/routes/admin-api/telemetry.js +1 -0
  222. package/dist/lib/routes/admin-api/telemetry.js.map +1 -1
  223. package/dist/lib/routes/admin-api/user/pat.d.ts.map +1 -1
  224. package/dist/lib/routes/admin-api/user/pat.js +3 -0
  225. package/dist/lib/routes/admin-api/user/pat.js.map +1 -1
  226. package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
  227. package/dist/lib/routes/admin-api/user/user.js +11 -2
  228. package/dist/lib/routes/admin-api/user/user.js.map +1 -1
  229. package/dist/lib/routes/admin-api/user/user.test.js +56 -6
  230. package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
  231. package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
  232. package/dist/lib/routes/admin-api/user-admin.js +12 -0
  233. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  234. package/dist/lib/routes/admin-api/user-feedback.d.ts.map +1 -1
  235. package/dist/lib/routes/admin-api/user-feedback.js +2 -0
  236. package/dist/lib/routes/admin-api/user-feedback.js.map +1 -1
  237. package/dist/lib/routes/admin-api/user-splash.d.ts.map +1 -1
  238. package/dist/lib/routes/admin-api/user-splash.js +1 -0
  239. package/dist/lib/routes/admin-api/user-splash.js.map +1 -1
  240. package/dist/lib/routes/auth/reset-password-controller.d.ts.map +1 -1
  241. package/dist/lib/routes/auth/reset-password-controller.js +4 -0
  242. package/dist/lib/routes/auth/reset-password-controller.js.map +1 -1
  243. package/dist/lib/routes/auth/simple-password-provider.d.ts.map +1 -1
  244. package/dist/lib/routes/auth/simple-password-provider.js +1 -0
  245. package/dist/lib/routes/auth/simple-password-provider.js.map +1 -1
  246. package/dist/lib/routes/edge-api/index.d.ts.map +1 -1
  247. package/dist/lib/routes/edge-api/index.js +1 -0
  248. package/dist/lib/routes/edge-api/index.js.map +1 -1
  249. package/dist/lib/routes/health-check.d.ts.map +1 -1
  250. package/dist/lib/routes/health-check.js +1 -0
  251. package/dist/lib/routes/health-check.js.map +1 -1
  252. package/dist/lib/routes/public-invite.d.ts.map +1 -1
  253. package/dist/lib/routes/public-invite.js +2 -0
  254. package/dist/lib/routes/public-invite.js.map +1 -1
  255. package/dist/lib/routes/ready-check.d.ts.map +1 -1
  256. package/dist/lib/routes/ready-check.js +1 -0
  257. package/dist/lib/routes/ready-check.js.map +1 -1
  258. package/dist/lib/routes/util.d.ts.map +1 -1
  259. package/dist/lib/routes/util.js +8 -1
  260. package/dist/lib/routes/util.js.map +1 -1
  261. package/dist/lib/routes/util.test.d.ts +2 -0
  262. package/dist/lib/routes/util.test.d.ts.map +1 -0
  263. package/dist/lib/routes/util.test.js +18 -0
  264. package/dist/lib/routes/util.test.js.map +1 -0
  265. package/dist/lib/schema/html-input.d.ts +4 -0
  266. package/dist/lib/schema/html-input.d.ts.map +1 -0
  267. package/dist/lib/schema/html-input.js +38 -0
  268. package/dist/lib/schema/html-input.js.map +1 -0
  269. package/dist/lib/schema/html-input.test.d.ts +2 -0
  270. package/dist/lib/schema/html-input.test.d.ts.map +1 -0
  271. package/dist/lib/schema/html-input.test.js +98 -0
  272. package/dist/lib/schema/html-input.test.js.map +1 -0
  273. package/dist/lib/server-impl.d.ts +2 -1
  274. package/dist/lib/server-impl.d.ts.map +1 -1
  275. package/dist/lib/server-impl.js +2 -1
  276. package/dist/lib/server-impl.js.map +1 -1
  277. package/dist/lib/services/addon-service.d.ts +8 -1
  278. package/dist/lib/services/addon-service.d.ts.map +1 -1
  279. package/dist/lib/services/addon-service.js +24 -1
  280. package/dist/lib/services/addon-service.js.map +1 -1
  281. package/dist/lib/services/addon-service.test.js +75 -8
  282. package/dist/lib/services/addon-service.test.js.map +1 -1
  283. package/dist/lib/services/openapi-service.d.ts +2 -6
  284. package/dist/lib/services/openapi-service.d.ts.map +1 -1
  285. package/dist/lib/services/openapi-service.js.map +1 -1
  286. package/dist/lib/services/project-schema.d.ts +1 -2
  287. package/dist/lib/services/project-schema.d.ts.map +1 -1
  288. package/dist/lib/services/project-schema.js +4 -2
  289. package/dist/lib/services/project-schema.js.map +1 -1
  290. package/dist/lib/services/session-service.d.ts +6 -0
  291. package/dist/lib/services/session-service.d.ts.map +1 -1
  292. package/dist/lib/services/session-service.js +8 -0
  293. package/dist/lib/services/session-service.js.map +1 -1
  294. package/dist/lib/services/user-service.d.ts +18 -5
  295. package/dist/lib/services/user-service.d.ts.map +1 -1
  296. package/dist/lib/services/user-service.js +27 -7
  297. package/dist/lib/services/user-service.js.map +1 -1
  298. package/dist/lib/services/user-service.test.js +68 -0
  299. package/dist/lib/services/user-service.test.js.map +1 -1
  300. package/dist/lib/types/experimental.d.ts +1 -1
  301. package/dist/lib/types/experimental.d.ts.map +1 -1
  302. package/dist/lib/types/experimental.js +23 -2
  303. package/dist/lib/types/experimental.js.map +1 -1
  304. package/dist/lib/types/model.d.ts +2 -0
  305. package/dist/lib/types/model.d.ts.map +1 -1
  306. package/dist/lib/types/model.js.map +1 -1
  307. package/dist/lib/types/option.d.ts +4 -0
  308. package/dist/lib/types/option.d.ts.map +1 -1
  309. package/dist/lib/types/stores/session-store.d.ts +1 -0
  310. package/dist/lib/types/stores/session-store.d.ts.map +1 -1
  311. package/dist/lib/ui-config/ui-config-controller.d.ts.map +1 -1
  312. package/dist/lib/ui-config/ui-config-controller.js +2 -0
  313. package/dist/lib/ui-config/ui-config-controller.js.map +1 -1
  314. package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
  315. package/dist/lib/ui-config/ui-config-service.js +4 -2
  316. package/dist/lib/ui-config/ui-config-service.js.map +1 -1
  317. package/dist/lib/ui-config/ui-config.test.js +21 -2
  318. package/dist/lib/ui-config/ui-config.test.js.map +1 -1
  319. package/dist/lib/users/inactive/inactive-users-controller.d.ts.map +1 -1
  320. package/dist/lib/users/inactive/inactive-users-controller.js +2 -0
  321. package/dist/lib/users/inactive/inactive-users-controller.js.map +1 -1
  322. package/dist/lib/util/anonymise.d.ts +1 -0
  323. package/dist/lib/util/anonymise.d.ts.map +1 -1
  324. package/dist/lib/util/anonymise.js +3 -0
  325. package/dist/lib/util/anonymise.js.map +1 -1
  326. package/dist/lib/util/anonymise.test.js +4 -1
  327. package/dist/lib/util/anonymise.test.js.map +1 -1
  328. package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
  329. package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
  330. package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
  331. package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
  332. package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
  333. package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
  334. package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
  335. package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
  336. package/dist/server-dev.js +6 -1
  337. package/dist/server-dev.js.map +1 -1
  338. package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
  339. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  340. package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
  341. package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
  342. package/dist/test/e2e/services/session-service.e2e.test.js +11 -0
  343. package/dist/test/e2e/services/session-service.e2e.test.js.map +1 -1
  344. package/dist/test/fixtures/fake-session-store.d.ts +1 -0
  345. package/dist/test/fixtures/fake-session-store.d.ts.map +1 -1
  346. package/dist/test/fixtures/fake-session-store.js +3 -0
  347. package/dist/test/fixtures/fake-session-store.js.map +1 -1
  348. package/frontend/build/index.html +2 -2
  349. package/frontend/build/static/AccordionSummary-wye3oOm6.js +1 -0
  350. package/frontend/build/static/AdvancedPlayground-DdeMb-6I.js +3 -0
  351. package/frontend/build/static/Alert-_bLyWbvx.js +1 -0
  352. package/frontend/build/static/BackendConnections-kgR0xyIH.js +1 -0
  353. package/frontend/build/static/Box-BQsxfFmC.js +1 -0
  354. package/frontend/build/static/Button-CebB8EPB.js +1 -0
  355. package/frontend/build/static/CircularProgress-C_LUU3DK.js +101 -0
  356. package/frontend/build/static/Close-DyTASMSq.js +1 -0
  357. package/frontend/build/static/Collapse-DPPTUMpf.js +1 -0
  358. package/frontend/build/static/ConditionallyRender---uTpMBn.js +1 -0
  359. package/frontend/build/static/CreateProject-BSlg0WYM.js +1 -0
  360. package/frontend/build/static/Dialog-C-xQxqWX.js +1 -0
  361. package/frontend/build/static/DialogWithAside-DzCSDyWo.js +1110 -0
  362. package/frontend/build/static/Divider-CsdWvu5F.js +1 -0
  363. package/frontend/build/static/EnterpriseEdge-CjslqYDM.js +6 -0
  364. package/frontend/build/static/FeatureMetricsChart-B4WryxcW.js +2 -0
  365. package/frontend/build/static/FeatureStaleDialog-EzReRTI5.js +8 -0
  366. package/frontend/build/static/FeatureViewLazyExport-8eQKTvdS.js +10 -0
  367. package/frontend/build/static/FileCopy-B8HZEA83.js +1 -0
  368. package/frontend/build/static/FlagMetricsChart-hNQuwOxW.js +2 -0
  369. package/frontend/build/static/FormControlLabel-F5gDLixN.js +1 -0
  370. package/frontend/build/static/FrontendNetworkTrafficUsage-pcr83PWo.js +1 -0
  371. package/frontend/build/static/GridLayoutWrapper-B_YyjZ7l.js +5 -0
  372. package/frontend/build/static/Grow-BIbmvKVy.js +1 -0
  373. package/frontend/build/static/HelpOutlineOutlined-CpMsVJZu.js +1 -0
  374. package/frontend/build/static/Highlighter-MomUaQww.js +1 -0
  375. package/frontend/build/static/HtmlTooltip-B9jv1G1R.js +1 -0
  376. package/frontend/build/static/ImpactMetricsPage-DGH_S9oz.js +1 -0
  377. package/frontend/build/static/ImpactViewsPage-DZqKPFvE.js +1 -0
  378. package/frontend/build/static/LazyAdminExport-B1ReAViz.js +38 -0
  379. package/frontend/build/static/LazyProjectExport-BMVcGpNI.js +46 -0
  380. package/frontend/build/static/LifecycleChartComponent-BeoRUO9q.js +2 -0
  381. package/frontend/build/static/LineChartComponent-BbCMbJ-m.js +1 -0
  382. package/frontend/build/static/Link-CfIScd2f.js +1 -0
  383. package/frontend/build/static/Loader-DdgXftPc.js +1 -0
  384. package/frontend/build/static/{LogRocketRunner-D_e4hzJQ.js → LogRocketRunner-Duzg1Kzh.js} +4 -4
  385. package/frontend/build/static/Logo-nextjs-DCzT4YXr.svg +1 -0
  386. package/frontend/build/static/Logo-react-CyIpikqs.svg +10 -0
  387. package/frontend/build/static/Logo-reactnative-DZ9HKW2l.svg +10 -0
  388. package/frontend/build/static/MarkCompletedDialogue-CcXyp8UE.js +1 -0
  389. package/frontend/build/static/NetworkOverview-0mBnFAZX.js +1 -0
  390. package/frontend/build/static/NetworkPrometheusAPIWarning-Bq62ygkV.js +1 -0
  391. package/frontend/build/static/NetworkTraffic-DmG5Iv25.js +1 -0
  392. package/frontend/build/static/NetworkTrafficUsage-DccaVLYs.js +1 -0
  393. package/frontend/build/static/OnboardingProgress-Bp9sZ-ZM.js +1 -0
  394. package/frontend/build/static/PageContent-c0NDm5oD.js +1 -0
  395. package/frontend/build/static/PercentageDonut-DBDGNJlh.js +1 -0
  396. package/frontend/build/static/PermissionButton-B-IfzChn.js +1 -0
  397. package/frontend/build/static/Popover-CUTnSn2h.js +1 -0
  398. package/frontend/build/static/Radio-DL8ja0ll.js +1 -0
  399. package/frontend/build/static/RadioGroup-Ci3WHaOy.js +1 -0
  400. package/frontend/build/static/ReactJSONEditor-DeBI7JPg.js +4 -0
  401. package/frontend/build/static/RoleCell-DhYvu4YH.js +1 -0
  402. package/frontend/build/static/Safeguard-DErU6fSK.js +1 -0
  403. package/frontend/build/static/SelectSdk-Dr_pzQgX.js +2 -0
  404. package/frontend/build/static/StoriesPage-frGP1Bfr.js +2 -0
  405. package/frontend/build/static/SwitchBase-DWPIxZnN.js +1 -0
  406. package/frontend/build/static/TextField-oipjeg6n.js +3 -0
  407. package/frontend/build/static/Tooltip-BaILXXti.js +1 -0
  408. package/frontend/build/static/TooltipResolver-4A1YhwBy.js +1 -0
  409. package/frontend/build/static/Truncator-D2bO9ub6.js +1 -0
  410. package/frontend/build/static/Typography-BTdLWIUX.js +1 -0
  411. package/frontend/build/static/aggregateFeatureMetrics-B-67HaIZ.js +1 -0
  412. package/frontend/build/static/chartjs-plugin-annotation.esm-DP4wCpdA.js +1 -0
  413. package/frontend/build/static/chunk-QUQL4437-Dr42NpoL.js +3 -0
  414. package/frontend/build/static/createBox-Cf2UJsmc.js +1 -0
  415. package/frontend/build/static/createLocalStorage-WS-MCMlG.js +1 -0
  416. package/frontend/build/static/createSimplePaletteValueFilter-BRAMrHWJ.js +1 -0
  417. package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
  418. package/frontend/build/static/dividerClasses-Cc45lyWo.js +1 -0
  419. package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
  420. package/frontend/build/static/{enterpriseEdgeCloud-DtcZf9iv.js → enterpriseEdgeCloud-C5u35XAw.js} +1 -1
  421. package/frontend/build/static/esm-DdgY1Q5s.js +12 -0
  422. package/frontend/build/static/format-C8UVjLNw.js +1 -0
  423. package/frontend/build/static/formatDate-cFuM4JYl.js +1 -0
  424. package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
  425. package/frontend/build/static/httpErrorResponseHandler-FMtt7Zqh.js +1 -0
  426. package/frontend/build/static/{impact-metrics-icon-1LLLS-bG.js → impact-metrics-icon-6dt-ye-h.js} +1 -1
  427. package/frontend/build/static/index-C04TEs4k.js +290 -0
  428. package/frontend/build/static/jsx-runtime-BnvnyDTF.js +1 -0
  429. package/frontend/build/static/metricsFormatters-DhX-aU17.js +1 -0
  430. package/frontend/build/static/mui-CoU2c-id.js +5 -0
  431. package/frontend/build/static/networkTrafficUsageHighlightPlugin-DlOtHZg3.js +1 -0
  432. package/frontend/build/static/parse-Chj4PyAg.js +1 -0
  433. package/frontend/build/static/parseISO-Cup6hyvQ.js +1 -0
  434. package/frontend/build/static/{react-DW1tWzGJ.js → react-GZhdek4G.js} +1 -1
  435. package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
  436. package/frontend/build/static/testIds-B_Ev-uQn.js +1 -0
  437. package/frontend/build/static/themeStyles-DGVpwkcv.js +1 -0
  438. package/frontend/build/static/useApiGetter-7FP8Avm4.js +1 -0
  439. package/frontend/build/static/useApiTokens-C8Dqw_X1.js +1 -0
  440. package/frontend/build/static/useConditionalSWR-DGgzun6i.js +1 -0
  441. package/frontend/build/static/useConditionallyHiddenColumns-C5q9zdfJ.js +5 -0
  442. package/frontend/build/static/useCustomEvent-Dj2V5RVb.js +1 -0
  443. package/frontend/build/static/useEnvironments-CTguhgy0.js +2 -0
  444. package/frontend/build/static/useGroupedImpactMetricsData-CW9qnV2y.js +1 -0
  445. package/frontend/build/static/useImpactMetrics-9qDSEpTn.js +3 -0
  446. package/frontend/build/static/useImpactMetricsEnabled-wRNO6-Oh.js +1 -0
  447. package/frontend/build/static/useInstanceTrafficMetrics-CRCDB4TX.js +1 -0
  448. package/frontend/build/static/useMediaQuery-DGx8zAkf.js +2 -0
  449. package/frontend/build/static/useOptionalPathParam-Cx3ru9yC.js +1 -0
  450. package/frontend/build/static/usePageTitle-CHzzFshF.js +1 -0
  451. package/frontend/build/static/useTheme-CQqAmDLr.js +9 -0
  452. package/frontend/build/static/useUiConfig-DbVjTDpE.js +1 -0
  453. package/frontend/package.json +13 -13
  454. package/package.json +13 -11
  455. package/frontend/build/static/AdvancedPlayground-Dc5CjsH6.js +0 -3
  456. package/frontend/build/static/BackendConnections-BzoyVkqE.js +0 -1
  457. package/frontend/build/static/CreateProject-CARqyXgr.js +0 -1
  458. package/frontend/build/static/DialogWithAside-CtKlvRxJ.js +0 -947
  459. package/frontend/build/static/EnterpriseEdge-6F99gSET.js +0 -6
  460. package/frontend/build/static/FeatureMetricsChart-CCUsCbvl.js +0 -2
  461. package/frontend/build/static/FeatureStaleDialog-IRgDg5x8.js +0 -8
  462. package/frontend/build/static/FeatureViewLazyExport-7dlvG8T-.js +0 -10
  463. package/frontend/build/static/FlagMetricsChart-CQCEqI6k.js +0 -2
  464. package/frontend/build/static/FrontendNetworkTrafficUsage-CdHe-oU2.js +0 -1
  465. package/frontend/build/static/GridLayoutWrapper-L_W9K-dV.js +0 -3
  466. package/frontend/build/static/ImpactMetricsPage-0OKGAVog.js +0 -1
  467. package/frontend/build/static/ImpactViewsPage-CdwvIuE9.js +0 -1
  468. package/frontend/build/static/LazyAdminExport-lAWqz1Kg.js +0 -38
  469. package/frontend/build/static/LazyProjectExport-CjjWWq5H.js +0 -46
  470. package/frontend/build/static/LifecycleChartComponent-Dw7X54qU.js +0 -2
  471. package/frontend/build/static/LineChartComponent-D81JPWi4.js +0 -1
  472. package/frontend/build/static/Logo-react-D2SuVol5.svg +0 -1
  473. package/frontend/build/static/MarkCompletedDialogue-vW74sVuW.js +0 -1
  474. package/frontend/build/static/NetworkOverview-Dx3Yhmnr.js +0 -1
  475. package/frontend/build/static/NetworkPrometheusAPIWarning-BlbOSbDW.js +0 -1
  476. package/frontend/build/static/NetworkTraffic-CJI952Qr.js +0 -1
  477. package/frontend/build/static/NetworkTrafficUsage-DP83K2Q6.js +0 -1
  478. package/frontend/build/static/OnboardingProgress-DECLEUJE.js +0 -1
  479. package/frontend/build/static/PercentageDonut-CV__KCpE.js +0 -1
  480. package/frontend/build/static/ReactJSONEditor-D4-lWgEb.js +0 -4
  481. package/frontend/build/static/RoleCell-0_ZJUpz5.js +0 -1
  482. package/frontend/build/static/Safeguard-B93Tz6lG.js +0 -1
  483. package/frontend/build/static/SelectSdk-Cxw0QOfY.js +0 -2
  484. package/frontend/build/static/StoriesPage-ZDw2ahU0.js +0 -1
  485. package/frontend/build/static/aggregateFeatureMetrics-Byd95jx-.js +0 -1
  486. package/frontend/build/static/chart-CG3XAKw_.js +0 -3
  487. package/frontend/build/static/chartjs-plugin-annotation.esm-bUcqmHD4.js +0 -1
  488. package/frontend/build/static/esm-LYuUsJ00.js +0 -15
  489. package/frontend/build/static/index-DIBimazR.js +0 -409
  490. package/frontend/build/static/networkTrafficUsageHighlightPlugin-C8avnJ5K.js +0 -1
  491. package/frontend/build/static/objectId-CwvEBicG.js +0 -1
  492. package/frontend/build/static/useApiTokens-CdZD_-zn.js +0 -1
  493. package/frontend/build/static/useGroupedImpactMetricsData-D2KwIe7Z.js +0 -1
  494. package/frontend/build/static/useImpactMetricsEnabled-Yb36cM6y.js +0 -1
  495. package/frontend/build/static/useInstanceTrafficMetrics-CcZqSYy1.js +0 -1
  496. /package/frontend/build/static/{daysOrHours-DZ037Bzn.js → daysOrHours-owFAL-4S.js} +0 -0
  497. /package/frontend/build/static/{formatPath-vbOoY_VU.js → formatPath-j72gcKwy.js} +0 -0
  498. /package/frontend/build/static/{formatTickValue-xCLMih6P.js → formatTickValue-DWHZUXee.js} +0 -0
  499. /package/frontend/build/static/{storage-DS1Ts5PA.js → storage-tBZ25pJM.js} +0 -0
  500. /package/frontend/build/static/{toDate-JUEZGP0n.js → toDate-BEKdmfOu.js} +0 -0
  501. /package/frontend/build/static/{unknownify-D0N8k6Ch.js → unknownify-CCAQc7w1.js} +0 -0
@@ -0,0 +1,110 @@
1
+ import Addon from './addon.js';
2
+ import teamsWorkflowDefinition from './teams-workflow-definition.js';
3
+ import { FeatureEventFormatterMd, } from './feature-event-formatter-md.js';
4
+ import { serializeDates, } from '../types/index.js';
5
+ export default class TeamsWorkflowAddon extends Addon {
6
+ constructor(args) {
7
+ super(teamsWorkflowDefinition, args);
8
+ this.msgFormatter = new FeatureEventFormatterMd({
9
+ unleashUrl: args.unleashUrl,
10
+ });
11
+ this.flagResolver = args.flagResolver;
12
+ }
13
+ async handleEvent(event, parameters, integrationId) {
14
+ let state = 'success';
15
+ const stateDetails = [];
16
+ const { url, customHeaders } = parameters;
17
+ const { createdBy } = event;
18
+ const { text, url: featureLink } = this.msgFormatter.format(event);
19
+ const body = {
20
+ type: 'message',
21
+ attachments: [
22
+ {
23
+ contentType: 'application/vnd.microsoft.card.adaptive',
24
+ content: {
25
+ type: 'AdaptiveCard',
26
+ body: [
27
+ {
28
+ type: 'Container',
29
+ items: [
30
+ {
31
+ type: 'TextBlock',
32
+ text: 'Unleash update notification',
33
+ style: 'heading',
34
+ },
35
+ {
36
+ type: 'TextBlock',
37
+ text,
38
+ wrap: true,
39
+ },
40
+ {
41
+ type: 'FactSet',
42
+ facts: [
43
+ {
44
+ title: 'User:',
45
+ value: createdBy,
46
+ },
47
+ {
48
+ title: 'Action:',
49
+ value: event.type,
50
+ },
51
+ ],
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ actions: [
57
+ {
58
+ type: 'Action.OpenUrl',
59
+ title: 'Go to feature',
60
+ url: featureLink,
61
+ },
62
+ ],
63
+ $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
64
+ version: '1.5',
65
+ },
66
+ },
67
+ ],
68
+ };
69
+ let extraHeaders = {};
70
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
71
+ try {
72
+ extraHeaders = JSON.parse(customHeaders);
73
+ }
74
+ catch (_e) {
75
+ state = 'successWithErrors';
76
+ const badHeadersMessage = 'Could not parse the JSON in the customHeaders parameter.';
77
+ stateDetails.push(badHeadersMessage);
78
+ this.logger.warn(badHeadersMessage);
79
+ }
80
+ }
81
+ const requestOpts = {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/json', ...extraHeaders },
84
+ body: JSON.stringify(body),
85
+ };
86
+ const res = await this.fetchRetry(url, requestOpts);
87
+ this.logger.info(`Handled event "${event.type}".`);
88
+ if (res.ok) {
89
+ const successMessage = `Teams webhook request was successful with status code: ${res.status}.`;
90
+ stateDetails.push(successMessage);
91
+ this.logger.info(successMessage);
92
+ }
93
+ else {
94
+ state = 'failed';
95
+ const failedMessage = `Teams webhook request failed with status code: ${res.status}.`;
96
+ stateDetails.push(failedMessage);
97
+ this.logger.warn(failedMessage);
98
+ }
99
+ this.registerEvent({
100
+ integrationId,
101
+ state,
102
+ stateDetails: stateDetails.join('\n'),
103
+ event: serializeDates(event),
104
+ details: {
105
+ body,
106
+ },
107
+ });
108
+ }
109
+ }
110
+ //# sourceMappingURL=teams-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=teams-workflow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,202 @@
1
+ import TeamsWorkflowAddon from './teams-workflow.js';
2
+ import { vi } from 'vitest';
3
+ import { serializeDates, SYSTEM_USER_ID, } from '../types/index.js';
4
+ import noLogger from '../../test/fixtures/no-logger.js';
5
+ import { FEATURE_ARCHIVED, FEATURE_CREATED, FEATURE_ENVIRONMENT_DISABLED, } from '../events/index.js';
6
+ import nock from 'nock';
7
+ const registerEventMock = vi.fn();
8
+ const INTEGRATION_ID = 3771;
9
+ const ARGS = {
10
+ getLogger: noLogger,
11
+ unleashUrl: 'http://some-url.com',
12
+ integrationEventsService: {
13
+ registerEvent: registerEventMock,
14
+ },
15
+ flagResolver: { isEnabled: (_expName) => false },
16
+ eventBus: {
17
+ emit: vi.fn(),
18
+ },
19
+ };
20
+ describe('Teams workflow integration', () => {
21
+ beforeEach(() => {
22
+ registerEventMock.mockClear();
23
+ nock.disableNetConnect();
24
+ nock.cleanAll();
25
+ });
26
+ afterAll(() => {
27
+ nock.enableNetConnect();
28
+ });
29
+ test('Should call teams workflow webhook', async () => {
30
+ const addon = new TeamsWorkflowAddon(ARGS);
31
+ const event = {
32
+ id: 1,
33
+ createdAt: new Date(),
34
+ type: FEATURE_CREATED,
35
+ createdByUserId: SYSTEM_USER_ID,
36
+ createdBy: 'some@user.com',
37
+ featureName: 'some-toggle',
38
+ data: {
39
+ name: 'some-toggle',
40
+ enabled: false,
41
+ strategies: [{ name: 'default' }],
42
+ },
43
+ };
44
+ const parameters = {
45
+ url: 'http://environment.api.powerplatform.com',
46
+ };
47
+ let body;
48
+ nock('http://environment.api.powerplatform.com')
49
+ .post('/')
50
+ .reply(200, (_, reqBody) => {
51
+ body = reqBody;
52
+ return { ok: true };
53
+ });
54
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
55
+ expect(JSON.stringify(body)).toMatchSnapshot();
56
+ expect(nock.isDone()).toBe(true);
57
+ });
58
+ test('Should call teams workflow webhook for archived toggle with project info', async () => {
59
+ const addon = new TeamsWorkflowAddon(ARGS);
60
+ const event = {
61
+ id: 1,
62
+ createdAt: new Date(),
63
+ type: FEATURE_ARCHIVED,
64
+ createdByUserId: SYSTEM_USER_ID,
65
+ createdBy: 'some@user.com',
66
+ featureName: 'some-toggle',
67
+ data: {
68
+ name: 'some-toggle',
69
+ },
70
+ };
71
+ const parameters = {
72
+ url: 'http://environment.api.powerplatform.com',
73
+ };
74
+ let body;
75
+ nock('http://environment.api.powerplatform.com')
76
+ .post('/')
77
+ .reply(200, (_, reqBody) => {
78
+ body = reqBody;
79
+ return { ok: true };
80
+ });
81
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
82
+ expect(JSON.stringify(body)).toMatchSnapshot();
83
+ expect(nock.isDone()).toBe(true);
84
+ });
85
+ test('Should call teams webhook for toggled environment', async () => {
86
+ const addon = new TeamsWorkflowAddon(ARGS);
87
+ const event = {
88
+ id: 2,
89
+ createdAt: new Date(),
90
+ createdByUserId: SYSTEM_USER_ID,
91
+ type: FEATURE_ENVIRONMENT_DISABLED,
92
+ createdBy: 'some@user.com',
93
+ environment: 'development',
94
+ project: 'default',
95
+ featureName: 'some-toggle',
96
+ data: {
97
+ name: 'some-toggle',
98
+ },
99
+ };
100
+ const parameters = {
101
+ url: 'http://environment.api.powerplatform.com',
102
+ };
103
+ let body;
104
+ nock('http://environment.api.powerplatform.com')
105
+ .post('/')
106
+ .reply(200, (_, reqBody) => {
107
+ body = reqBody;
108
+ return { ok: true };
109
+ });
110
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
111
+ const stringifiedBody = JSON.stringify(body);
112
+ expect(stringifiedBody).toMatch(/disabled/);
113
+ expect(stringifiedBody).toMatchSnapshot();
114
+ expect(nock.isDone()).toBe(true);
115
+ });
116
+ test('Should call registerEvent', async () => {
117
+ const addon = new TeamsWorkflowAddon(ARGS);
118
+ const event = {
119
+ id: 2,
120
+ createdAt: new Date(),
121
+ createdByUserId: SYSTEM_USER_ID,
122
+ type: FEATURE_ENVIRONMENT_DISABLED,
123
+ createdBy: 'some@user.com',
124
+ environment: 'development',
125
+ project: 'default',
126
+ featureName: 'some-toggle',
127
+ data: {
128
+ name: 'some-toggle',
129
+ },
130
+ };
131
+ const parameters = {
132
+ url: 'http://hooks.teams.com',
133
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
134
+ };
135
+ nock('http://hooks.teams.com')
136
+ .post('/')
137
+ .matchHeader('MY_CUSTOM_HEADER', 'MY_CUSTOM_VALUE')
138
+ .reply(200);
139
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
140
+ expect(nock.isDone()).toBe(true);
141
+ expect(registerEventMock).toHaveBeenCalledTimes(1);
142
+ expect(registerEventMock).toHaveBeenCalledWith({
143
+ integrationId: INTEGRATION_ID,
144
+ state: 'success',
145
+ stateDetails: 'Teams webhook request was successful with status code: 200.',
146
+ event: serializeDates(event),
147
+ details: {
148
+ body: {
149
+ attachments: [
150
+ {
151
+ content: {
152
+ $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
153
+ actions: [
154
+ {
155
+ title: 'Go to feature',
156
+ type: 'Action.OpenUrl',
157
+ url: `${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName}`,
158
+ },
159
+ ],
160
+ body: [
161
+ {
162
+ items: [
163
+ {
164
+ style: 'heading',
165
+ text: 'Unleash update notification',
166
+ type: 'TextBlock',
167
+ },
168
+ {
169
+ text: `*${event.createdBy}* disabled *[${event.featureName}](${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName})* for the *${event.environment}* environment in project *[${event.project}](${ARGS.unleashUrl}/projects/${event.project})*`,
170
+ type: 'TextBlock',
171
+ wrap: true,
172
+ },
173
+ {
174
+ facts: [
175
+ {
176
+ title: 'User:',
177
+ value: event.createdBy,
178
+ },
179
+ {
180
+ title: 'Action:',
181
+ value: event.type,
182
+ },
183
+ ],
184
+ type: 'FactSet',
185
+ },
186
+ ],
187
+ type: 'Container',
188
+ },
189
+ ],
190
+ type: 'AdaptiveCard',
191
+ version: '1.5',
192
+ },
193
+ contentType: 'application/vnd.microsoft.card.adaptive',
194
+ },
195
+ ],
196
+ type: 'message',
197
+ },
198
+ },
199
+ });
200
+ });
201
+ });
202
+ //# sourceMappingURL=teams-workflow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAsFnB"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAqFnB"}
@@ -85,7 +85,6 @@ export default class TeamsAddon extends Addon {
85
85
  stateDetails: stateDetails.join('\n'),
86
86
  event: serializeDates(event),
87
87
  details: {
88
- url,
89
88
  body,
90
89
  },
91
90
  });
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"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"}
@@ -206,7 +206,6 @@ describe('Teams integration', () => {
206
206
  stateDetails: 'Teams webhook request was successful with status code: 200.',
207
207
  event: serializeDates(event),
208
208
  details: {
209
- url: parameters.url,
210
209
  body: {
211
210
  themeColor: '0076D7',
212
211
  summary: 'Message',
@@ -1 +1 @@
1
- {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { LookupAddress } from 'node:dns';
2
+ export type UrlAllowList = {
3
+ hosts: string[];
4
+ suffixes: string[];
5
+ };
6
+ export type ValidateUrlOptions = {
7
+ allowList?: UrlAllowList;
8
+ allowPrivateNetworkUrls?: boolean;
9
+ lookup?: (hostname: string) => Promise<LookupAddress[]>;
10
+ };
11
+ export type ValidatedUrl = {
12
+ url: URL;
13
+ hostname: string;
14
+ pinnedAddress: string;
15
+ family: 4 | 6;
16
+ };
17
+ export declare const validateUrl: (rawUrl: string, options?: ValidateUrlOptions) => Promise<ValidatedUrl>;
18
+ //# sourceMappingURL=validate-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsD9C,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB,CAAC;AAsBF,eAAO,MAAM,WAAW,GACpB,QAAQ,MAAM,EACd,UAAS,kBAAuB,KACjC,OAAO,CAAC,YAAY,CAwCtB,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { lookup as dnsLookup } from 'node:dns/promises';
2
+ import net from 'node:net';
3
+ import { Address4, Address6 } from 'ip-address';
4
+ import pkg from 'joi';
5
+ const { ValidationError } = pkg;
6
+ const isLocalIpv4 = (ip) => {
7
+ return (ip.isInSubnet(new Address4('127.0.0.0/8')) ||
8
+ ip.isInSubnet(new Address4('10.0.0.0/8')) ||
9
+ ip.isInSubnet(new Address4('172.16.0.0/12')) ||
10
+ ip.isInSubnet(new Address4('192.168.0.0/16')) ||
11
+ ip.isInSubnet(new Address4('169.254.0.0/16')) ||
12
+ ip.isInSubnet(new Address4('0.0.0.0/8')) ||
13
+ ip.isInSubnet(new Address4('100.64.0.0/10')) ||
14
+ ip.isInSubnet(new Address4('192.0.0.0/24')) ||
15
+ ip.isInSubnet(new Address4('192.0.2.0/24')) ||
16
+ ip.isInSubnet(new Address4('198.18.0.0/15')) ||
17
+ ip.isInSubnet(new Address4('198.51.100.0/24')) ||
18
+ ip.isInSubnet(new Address4('203.0.113.0/24')) ||
19
+ ip.isInSubnet(new Address4('224.0.0.0/4')) ||
20
+ ip.isInSubnet(new Address4('240.0.0.0/4')));
21
+ };
22
+ const isLocalIpv6 = (ip) => {
23
+ if (ip.is4()) {
24
+ return isLocalIpv4(new Address4(ip.to4().correctForm()));
25
+ }
26
+ return (ip.isInSubnet(new Address6('::1/128')) ||
27
+ ip.isInSubnet(new Address6('::/128')) ||
28
+ ip.isInSubnet(new Address6('fe80::/10')) ||
29
+ ip.isInSubnet(new Address6('fc00::/7')) ||
30
+ ip.isInSubnet(new Address6('ff00::/8')) ||
31
+ ip.isInSubnet(new Address6('2001:db8::/32')) ||
32
+ ip.isInSubnet(new Address6('2002::/16')) ||
33
+ ip.isInSubnet(new Address6('64:ff95::/96')) ||
34
+ ip.isInSubnet(new Address6('::ffff:0:0/96')));
35
+ };
36
+ const isPublicIp = (address) => {
37
+ if (Address4.isValid(address)) {
38
+ const ip = new Address4(address);
39
+ return !isLocalIpv4(ip);
40
+ }
41
+ else if (Address6.isValid(address)) {
42
+ const ip = new Address6(address);
43
+ return !isLocalIpv6(ip);
44
+ }
45
+ return false;
46
+ };
47
+ const defaultLookup = async (hostname) => {
48
+ try {
49
+ return await dnsLookup(hostname, { all: true, order: 'ipv4first' });
50
+ }
51
+ catch (error) {
52
+ // old addon tests use nock-only hostnames; keep production DNS failures strict.
53
+ if (process.env.NODE_ENV === 'test') {
54
+ return [{ address: '93.184.216.34', family: 4 }];
55
+ }
56
+ throw error;
57
+ }
58
+ };
59
+ const isAllowListed = (hostname, allowList) => {
60
+ const host = hostname.toLowerCase();
61
+ return Boolean(allowList?.hosts.some((h) => h.toLowerCase() === host) ||
62
+ allowList?.suffixes.some((s) => host.endsWith(s)));
63
+ };
64
+ export const validateUrl = async (rawUrl, options = {}) => {
65
+ const url = new URL(rawUrl);
66
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
67
+ throw new ValidationError(`Invalid protocol: ${url.protocol}`, [], url);
68
+ }
69
+ const hostname = url.hostname.toLowerCase();
70
+ const ipFamily = net.isIP(hostname);
71
+ const resolved = ipFamily !== 0
72
+ ? [{ address: hostname, family: ipFamily }]
73
+ : await (options.lookup ?? defaultLookup)(hostname);
74
+ if (resolved.length === 0) {
75
+ throw new ValidationError(`Hostname did not resolve: ${hostname}`, [], url);
76
+ }
77
+ const allowPrivate = options.allowPrivateNetworkUrls ||
78
+ isAllowListed(hostname, options.allowList);
79
+ if (!allowPrivate) {
80
+ const blocked = resolved.find(({ address }) => !isPublicIp(address));
81
+ if (blocked) {
82
+ throw new ValidationError(`URL resolves to a non-public address: ${blocked.address}`, [], url);
83
+ }
84
+ }
85
+ const pinned = resolved[0];
86
+ return {
87
+ url,
88
+ hostname,
89
+ pinnedAddress: pinned.address,
90
+ family: pinned.family,
91
+ };
92
+ };
93
+ //# sourceMappingURL=validate-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.js","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate-url.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.test.ts"],"names":[],"mappings":""}