unleash-server 4.2.0-0 → 4.2.0-beta.10

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 (256) hide show
  1. package/README.md +5 -2
  2. package/dist/lib/addons/datadog-definition.js +7 -0
  3. package/dist/lib/addons/datadog-definition.js.map +1 -1
  4. package/dist/lib/addons/datadog.d.ts +3 -12
  5. package/dist/lib/addons/datadog.js +3 -56
  6. package/dist/lib/addons/datadog.js.map +1 -1
  7. package/dist/lib/addons/datadog.test.js +26 -1
  8. package/dist/lib/addons/datadog.test.js.map +1 -1
  9. package/dist/lib/addons/feature-event-formatter-md.d.ts +25 -0
  10. package/dist/lib/addons/feature-event-formatter-md.js +117 -0
  11. package/dist/lib/addons/feature-event-formatter-md.js.map +1 -0
  12. package/dist/lib/addons/index.d.ts +1 -0
  13. package/dist/lib/addons/index.js.map +1 -1
  14. package/dist/lib/addons/slack-definition.js +7 -0
  15. package/dist/lib/addons/slack-definition.js.map +1 -1
  16. package/dist/lib/addons/slack.d.ts +1 -6
  17. package/dist/lib/addons/slack.js +5 -57
  18. package/dist/lib/addons/slack.js.map +1 -1
  19. package/dist/lib/addons/slack.test.js +27 -0
  20. package/dist/lib/addons/slack.test.js.map +1 -1
  21. package/dist/lib/addons/teams-definition.js +7 -0
  22. package/dist/lib/addons/teams-definition.js.map +1 -1
  23. package/dist/lib/addons/teams.d.ts +3 -12
  24. package/dist/lib/addons/teams.js +7 -56
  25. package/dist/lib/addons/teams.js.map +1 -1
  26. package/dist/lib/addons/teams.test.js +25 -0
  27. package/dist/lib/addons/teams.test.js.map +1 -1
  28. package/dist/lib/addons/webhook-definition.js +7 -0
  29. package/dist/lib/addons/webhook-definition.js.map +1 -1
  30. package/dist/lib/app.js +3 -2
  31. package/dist/lib/app.js.map +1 -1
  32. package/dist/lib/create-config.js +25 -3
  33. package/dist/lib/create-config.js.map +1 -1
  34. package/dist/{test/e2e/api/admin/project/feature.strategy.e2e.test.d.ts → lib/create-config.test.d.ts} +0 -0
  35. package/dist/lib/create-config.test.js +57 -0
  36. package/dist/lib/create-config.test.js.map +1 -0
  37. package/dist/lib/db/client-instance-store.js +5 -2
  38. package/dist/lib/db/client-instance-store.js.map +1 -1
  39. package/dist/lib/db/client-metrics-store-v2.d.ts +18 -0
  40. package/dist/lib/db/client-metrics-store-v2.js +123 -0
  41. package/dist/lib/db/client-metrics-store-v2.js.map +1 -0
  42. package/dist/lib/db/context-field-store.d.ts +5 -5
  43. package/dist/lib/db/context-field-store.js +2 -7
  44. package/dist/lib/db/context-field-store.js.map +1 -1
  45. package/dist/lib/db/environment-store.d.ts +2 -2
  46. package/dist/lib/db/environment-store.js +6 -5
  47. package/dist/lib/db/environment-store.js.map +1 -1
  48. package/dist/lib/db/feature-environment-store.d.ts +2 -1
  49. package/dist/lib/db/feature-environment-store.js +18 -5
  50. package/dist/lib/db/feature-environment-store.js.map +1 -1
  51. package/dist/lib/db/feature-strategy-store.d.ts +1 -0
  52. package/dist/lib/db/feature-strategy-store.js +15 -5
  53. package/dist/lib/db/feature-strategy-store.js.map +1 -1
  54. package/dist/lib/db/feature-toggle-client-store.js +19 -13
  55. package/dist/lib/db/feature-toggle-client-store.js.map +1 -1
  56. package/dist/lib/db/index.js +2 -0
  57. package/dist/lib/db/index.js.map +1 -1
  58. package/dist/lib/db/project-store.d.ts +2 -2
  59. package/dist/lib/db/project-store.js +2 -1
  60. package/dist/lib/db/project-store.js.map +1 -1
  61. package/dist/lib/error/incompatible-project-error.d.ts +4 -0
  62. package/dist/lib/error/incompatible-project-error.js +25 -0
  63. package/dist/lib/error/incompatible-project-error.js.map +1 -0
  64. package/dist/lib/event-differ.js +1 -1
  65. package/dist/lib/event-differ.js.map +1 -1
  66. package/dist/lib/middleware/demo-authentication.d.ts +2 -1
  67. package/dist/lib/middleware/demo-authentication.js +30 -13
  68. package/dist/lib/middleware/demo-authentication.js.map +1 -1
  69. package/dist/lib/routes/admin-api/client-metrics.d.ts +12 -0
  70. package/dist/lib/routes/admin-api/client-metrics.js +35 -0
  71. package/dist/lib/routes/admin-api/client-metrics.js.map +1 -0
  72. package/dist/lib/routes/admin-api/feature.d.ts +2 -4
  73. package/dist/lib/routes/admin-api/feature.js +33 -39
  74. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  75. package/dist/lib/routes/admin-api/index.js +2 -0
  76. package/dist/lib/routes/admin-api/index.js.map +1 -1
  77. package/dist/lib/routes/admin-api/project/features.d.ts +5 -1
  78. package/dist/lib/routes/admin-api/project/features.js +13 -7
  79. package/dist/lib/routes/admin-api/project/features.js.map +1 -1
  80. package/dist/lib/routes/admin-api/project/index.d.ts +3 -0
  81. package/dist/lib/routes/admin-api/project/index.js +8 -0
  82. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  83. package/dist/lib/routes/admin-api/state.js +2 -2
  84. package/dist/lib/routes/admin-api/state.js.map +1 -1
  85. package/dist/lib/routes/admin-api/user-admin.d.ts +1 -0
  86. package/dist/lib/routes/admin-api/user-admin.js +6 -0
  87. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  88. package/dist/lib/routes/client-api/metrics.d.ts +5 -1
  89. package/dist/lib/routes/client-api/metrics.js +22 -5
  90. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  91. package/dist/lib/routes/client-api/metrics.test.js +25 -2
  92. package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
  93. package/dist/lib/routes/client-api/register.d.ts +4 -2
  94. package/dist/lib/routes/client-api/register.js +15 -2
  95. package/dist/lib/routes/client-api/register.js.map +1 -1
  96. package/dist/lib/routes/util.js +2 -0
  97. package/dist/lib/routes/util.js.map +1 -1
  98. package/dist/lib/server-impl.js +1 -0
  99. package/dist/lib/server-impl.js.map +1 -1
  100. package/dist/lib/services/access-service.js +4 -2
  101. package/dist/lib/services/access-service.js.map +1 -1
  102. package/dist/lib/services/client-metrics/client-metrics-service-v2.d.ts +16 -0
  103. package/dist/lib/services/client-metrics/client-metrics-service-v2.js +68 -0
  104. package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -0
  105. package/dist/lib/services/client-metrics/index.d.ts +0 -1
  106. package/dist/lib/services/client-metrics/index.js +4 -2
  107. package/dist/lib/services/client-metrics/index.js.map +1 -1
  108. package/dist/lib/services/client-metrics/register-schema.js +1 -0
  109. package/dist/lib/services/client-metrics/register-schema.js.map +1 -1
  110. package/dist/lib/services/event-service.js +1 -3
  111. package/dist/lib/services/event-service.js.map +1 -1
  112. package/dist/lib/services/feature-toggle-service-v2.d.ts +15 -7
  113. package/dist/lib/services/feature-toggle-service-v2.js +95 -47
  114. package/dist/lib/services/feature-toggle-service-v2.js.map +1 -1
  115. package/dist/lib/services/index.js +3 -0
  116. package/dist/lib/services/index.js.map +1 -1
  117. package/dist/lib/services/project-health-service.js +2 -0
  118. package/dist/lib/services/project-health-service.js.map +1 -1
  119. package/dist/lib/services/project-service.d.ts +5 -2
  120. package/dist/lib/services/project-service.js +33 -6
  121. package/dist/lib/services/project-service.js.map +1 -1
  122. package/dist/lib/services/state-service.test.js +0 -6
  123. package/dist/lib/services/state-service.test.js.map +1 -1
  124. package/dist/lib/services/state-util.js +1 -1
  125. package/dist/lib/services/state-util.js.map +1 -1
  126. package/dist/lib/services/user-service.js +2 -2
  127. package/dist/lib/services/user-service.js.map +1 -1
  128. package/dist/lib/types/model.d.ts +5 -5
  129. package/dist/lib/types/model.js.map +1 -1
  130. package/dist/lib/types/models/metrics.d.ts +11 -0
  131. package/dist/lib/types/models/metrics.js +3 -0
  132. package/dist/lib/types/models/metrics.js.map +1 -0
  133. package/dist/lib/types/option.d.ts +17 -2
  134. package/dist/lib/types/services.d.ts +2 -0
  135. package/dist/lib/types/stores/client-instance-store.d.ts +1 -0
  136. package/dist/lib/types/stores/client-metrics-store-v2.d.ts +17 -0
  137. package/dist/lib/types/stores/client-metrics-store-v2.js +3 -0
  138. package/dist/lib/types/stores/client-metrics-store-v2.js.map +1 -0
  139. package/dist/lib/types/stores/environment-store.d.ts +1 -1
  140. package/dist/lib/types/stores/feature-environment-store.d.ts +2 -1
  141. package/dist/lib/types/stores/feature-strategies-store.d.ts +1 -0
  142. package/dist/lib/types/stores/project-store.d.ts +4 -0
  143. package/dist/lib/types/stores.d.ts +2 -0
  144. package/dist/migrations/20210928065411-remove-displayname-from-environments.d.ts +2 -0
  145. package/dist/migrations/20210928065411-remove-displayname-from-environments.js +10 -0
  146. package/dist/migrations/20210928065411-remove-displayname-from-environments.js.map +1 -0
  147. package/dist/migrations/20210928080601-add-development-and-production-environments.d.ts +2 -0
  148. package/dist/migrations/20210928080601-add-development-and-production-environments.js +16 -0
  149. package/dist/migrations/20210928080601-add-development-and-production-environments.js.map +1 -0
  150. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.d.ts +2 -0
  151. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js +16 -0
  152. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js.map +1 -0
  153. package/dist/migrations/20211004104917-client-metrics-env.d.ts +2 -0
  154. package/dist/migrations/20211004104917-client-metrics-env.js +22 -0
  155. package/dist/migrations/20211004104917-client-metrics-env.js.map +1 -0
  156. package/dist/migrations/20211011094226-add-environment-to-client-instances.d.ts +5 -0
  157. package/dist/migrations/20211011094226-add-environment-to-client-instances.js +21 -0
  158. package/dist/migrations/20211011094226-add-environment-to-client-instances.js.map +1 -0
  159. package/dist/migrations/20211013093114-feature-strategies-parameters-not-null.d.ts +2 -0
  160. package/dist/migrations/20211013093114-feature-strategies-parameters-not-null.js +12 -0
  161. package/dist/migrations/20211013093114-feature-strategies-parameters-not-null.js.map +1 -0
  162. package/dist/server-dev.js +5 -0
  163. package/dist/server-dev.js.map +1 -1
  164. package/dist/test/e2e/api/admin/bootstrap.test.js +1 -1
  165. package/dist/test/e2e/api/admin/client-metrics.e2e.test.d.ts +1 -0
  166. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +219 -0
  167. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -0
  168. package/dist/test/e2e/api/admin/context.e2e.test.js +23 -0
  169. package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
  170. package/dist/test/e2e/api/admin/environment.test.js +0 -5
  171. package/dist/test/e2e/api/admin/environment.test.js.map +1 -1
  172. package/dist/test/e2e/api/admin/feature.auth.e2e.test.js +1 -1
  173. package/dist/test/e2e/api/admin/feature.custom-auth.e2e.test.js +1 -1
  174. package/dist/test/e2e/api/admin/project/environments.e2e.test.js +0 -2
  175. package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
  176. package/dist/test/e2e/api/admin/project/features.e2e.test.d.ts +1 -0
  177. package/dist/test/e2e/api/admin/project/{feature.strategy.e2e.test.js → features.e2e.test.js} +451 -20
  178. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -0
  179. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +76 -0
  180. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
  181. package/dist/test/e2e/api/admin/project/projects.e2e.test.d.ts +1 -0
  182. package/dist/test/e2e/api/admin/project/projects.e2e.test.js +30 -0
  183. package/dist/test/e2e/api/admin/project/projects.e2e.test.js.map +1 -0
  184. package/dist/test/e2e/api/admin/state.e2e.test.js +0 -3
  185. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  186. package/dist/test/e2e/api/admin/user-admin.e2e.test.js +16 -1
  187. package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
  188. package/dist/test/e2e/api/admin/user.test.js +1 -1
  189. package/dist/test/e2e/api/auth/reset-password-controller.e2e.test.js +2 -2
  190. package/dist/test/e2e/api/client/feature.e2e.test.js +11 -13
  191. package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
  192. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.d.ts +1 -0
  193. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +49 -0
  194. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -0
  195. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +0 -1
  196. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  197. package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js +0 -1
  198. package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js.map +1 -1
  199. package/dist/test/e2e/api/client/metrics.e2e.test.js +2 -5
  200. package/dist/test/e2e/api/client/metrics.e2e.test.js.map +1 -1
  201. package/dist/test/e2e/api/client/metricsV2.e2e.test.d.ts +1 -0
  202. package/dist/test/e2e/api/client/metricsV2.e2e.test.js +95 -0
  203. package/dist/test/e2e/api/client/metricsV2.e2e.test.js.map +1 -0
  204. package/dist/test/e2e/helpers/database-init.js +1 -1
  205. package/dist/test/e2e/helpers/database.json +0 -1
  206. package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
  207. package/dist/test/e2e/helpers/test-helper.js +4 -5
  208. package/dist/test/e2e/helpers/test-helper.js.map +1 -1
  209. package/dist/test/e2e/services/environment-service.test.js +0 -7
  210. package/dist/test/e2e/services/environment-service.test.js.map +1 -1
  211. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +1 -24
  212. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  213. package/dist/test/e2e/services/project-service.e2e.test.js +66 -3
  214. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  215. package/dist/test/e2e/services/user-service.e2e.test.js +12 -0
  216. package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
  217. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.d.ts +1 -0
  218. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +331 -0
  219. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -0
  220. package/dist/test/e2e/stores/feature-environment-store.e2e.test.d.ts +1 -0
  221. package/dist/test/e2e/stores/feature-environment-store.e2e.test.js +53 -0
  222. package/dist/test/e2e/stores/feature-environment-store.e2e.test.js.map +1 -0
  223. package/dist/test/e2e/stores/feature-strategies-store.e2e.test.d.ts +1 -0
  224. package/dist/test/e2e/stores/feature-strategies-store.e2e.test.js +53 -0
  225. package/dist/test/e2e/stores/feature-strategies-store.e2e.test.js.map +1 -0
  226. package/dist/test/e2e/stores/project-store.e2e.test.js +0 -1
  227. package/dist/test/e2e/stores/project-store.e2e.test.js.map +1 -1
  228. package/dist/test/fixtures/fake-client-metrics-store-v2.d.ts +20 -0
  229. package/dist/test/fixtures/fake-client-metrics-store-v2.js +52 -0
  230. package/dist/test/fixtures/fake-client-metrics-store-v2.js.map +1 -0
  231. package/dist/test/fixtures/fake-environment-store.d.ts +1 -1
  232. package/dist/test/fixtures/fake-environment-store.js.map +1 -1
  233. package/dist/test/fixtures/fake-feature-environment-store.d.ts +2 -1
  234. package/dist/test/fixtures/fake-feature-environment-store.js +14 -2
  235. package/dist/test/fixtures/fake-feature-environment-store.js.map +1 -1
  236. package/dist/test/fixtures/fake-feature-strategies-store.d.ts +1 -0
  237. package/dist/test/fixtures/fake-feature-strategies-store.js +9 -0
  238. package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
  239. package/dist/test/fixtures/store.js +2 -0
  240. package/dist/test/fixtures/store.js.map +1 -1
  241. package/package.json +21 -17
  242. package/CHANGELOG.md +0 -920
  243. package/dist/test/e2e/api/admin/project/feature.strategy.e2e.test.js.map +0 -1
  244. package/docs/api/oas/swagger-ui-bundle.js +0 -3
  245. package/docs/api/oas/swagger-ui-bundle.js.map +0 -1
  246. package/docs/api/oas/swagger-ui-es-bundle-core.js +0 -3
  247. package/docs/api/oas/swagger-ui-es-bundle-core.js.map +0 -1
  248. package/docs/api/oas/swagger-ui-es-bundle.js +0 -3
  249. package/docs/api/oas/swagger-ui-es-bundle.js.map +0 -1
  250. package/docs/api/oas/swagger-ui-standalone-preset.js +0 -3
  251. package/docs/api/oas/swagger-ui-standalone-preset.js.map +0 -1
  252. package/docs/api/oas/swagger-ui.css +0 -8906
  253. package/docs/api/oas/swagger-ui.css.map +0 -1
  254. package/docs/api/oas/swagger-ui.js +0 -3
  255. package/docs/api/oas/swagger-ui.js.map +0 -1
  256. package/docs/api/oas/swagger.json +0 -1479
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- ![Build & Tests](https://github.com/Unleash/unleash/workflows/Build%20%26%20Tests/badge.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/github/Unleash/unleash/badge.svg?branch=master)](https://coveralls.io/github/Unleash/unleash?branch=master) [![npm](https://img.shields.io/npm/v/unleash-server)](https://www.npmjs.com/package/unleash-server) [![Docker Pulls](https://img.shields.io/docker/pulls/unleashorg/unleash-server)](https://hub.docker.com/r/unleashorg/unleash-server)
3
+ ![Build & Tests](https://github.com/Unleash/unleash/workflows/Build%20%26%20Tests/badge.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/github/Unleash/unleash/badge.svg?branch=master&)](https://coveralls.io/github/Unleash/unleash?branch=master) [![npm](https://img.shields.io/npm/v/unleash-server)](https://www.npmjs.com/package/unleash-server) [![Docker Pulls](https://img.shields.io/docker/pulls/unleashorg/unleash-server)](https://hub.docker.com/r/unleashorg/unleash-server)
4
4
 
5
5
  [![Deploy to Heroku](./.github/deploy-heroku-20.png)](https://www.heroku.com/deploy/?template=https://github.com/Unleash/unleash) [![Deploy to DigitalOcean](./.github/deploy-digital.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/Unleash/unleash/tree/master&refcode=0e1d75187044) [![Twitter Follow](https://img.shields.io/twitter/follow/getunleash)](https://twitter.com/intent/follow?screen_name=getunleash)
6
6
 
@@ -163,7 +163,10 @@ _(PS! feel free to submit your logo!)_
163
163
 
164
164
  # Contribute to Unleash
165
165
 
166
- Unleash has been built with the help of many smart individuals. This ensures that we build a product that solves real problems for people. If you want to contribute to this project you are encouraged to send issue requests, or provide pull-requests. Please read the [CONTRIBUTING.md](./CONTRIBUTING.md) to learn more on how you can contribute.
166
+ Unleash has been built with the help of many smart individuals. This ensures that we build a product that solves real problems for people. If you want to contribute to this project you are encouraged to send issue requests, or provide pull-requests.
167
+
168
+ 1. Read [CONTRIBUTING.md](./CONTRIBUTING.md) to learn more on how you can contribute
169
+ 1. Browse the [developer-guide](./website/docs/contributing/developer-guide.md) for tips on environment setup, running the tests, and running Unleash from source.
167
170
 
168
171
  # Community and Help
169
172
 
@@ -32,6 +32,13 @@ const dataDogDefinition = {
32
32
  events_1.FEATURE_REVIVED,
33
33
  events_1.FEATURE_STALE_ON,
34
34
  events_1.FEATURE_STALE_OFF,
35
+ events_1.FEATURE_ENVIRONMENT_ENABLED,
36
+ events_1.FEATURE_ENVIRONMENT_DISABLED,
37
+ events_1.FEATURE_STRATEGY_REMOVE,
38
+ events_1.FEATURE_STRATEGY_UPDATE,
39
+ events_1.FEATURE_STRATEGY_ADD,
40
+ events_1.FEATURE_METADATA_UPDATED,
41
+ events_1.FEATURE_PROJECT_CHANGE,
35
42
  ],
36
43
  tagTypes: [
37
44
  {
@@ -1 +1 @@
1
- {"version":3,"file":"datadog-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog-definition.ts"],"names":[],"mappings":";;AAAA,4CAOyB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,4CAA4C;IACzD,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB;YACjC,WAAW,EACP,2GAA2G;YAC/G,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;KACpB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,SAAS;YACf,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"datadog-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog-definition.ts"],"names":[],"mappings":";;AAAA,4CAcyB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,4CAA4C;IACzD,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB;YACjC,WAAW,EACP,2GAA2G;YAC/G,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;KACzB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,SAAS;YACf,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -1,16 +1,7 @@
1
1
  import Addon from './addon';
2
- import { LogProvider } from '../logger';
3
- import { IEvent } from '../types/model';
2
+ import { IAddonConfig, IEvent } from '../types/model';
4
3
  export default class DatadogAddon extends Addon {
5
- unleashUrl: string;
6
- constructor(config: {
7
- unleashUrl: string;
8
- getLogger: LogProvider;
9
- });
4
+ private msgFormatter;
5
+ constructor(config: IAddonConfig);
10
6
  handleEvent(event: IEvent, parameters: any): Promise<void>;
11
- featureLink(event: IEvent): string;
12
- generateStaleText(event: IEvent): string;
13
- generateArchivedText(event: IEvent): string;
14
- generateText(event: IEvent): string;
15
- getAction(type: string): string;
16
7
  }
@@ -3,28 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const js_yaml_1 = __importDefault(require("js-yaml"));
7
6
  const addon_1 = __importDefault(require("./addon"));
8
- const events_1 = require("../types/events");
9
7
  const datadog_definition_1 = __importDefault(require("./datadog-definition"));
8
+ const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
10
9
  class DatadogAddon extends addon_1.default {
11
10
  constructor(config) {
12
11
  super(datadog_definition_1.default, config);
13
- this.unleashUrl = config.unleashUrl;
12
+ this.msgFormatter = new feature_event_formatter_md_1.FeatureEventFormatterMd(config.unleashUrl, feature_event_formatter_md_1.LinkStyle.MD);
14
13
  }
15
14
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
16
15
  async handleEvent(event, parameters) {
17
16
  const { url = 'https://api.datadoghq.com/api/v1/events', apiKey } = parameters;
18
- let text;
19
- if ([events_1.FEATURE_ARCHIVED, events_1.FEATURE_REVIVED].includes(event.type)) {
20
- text = this.generateArchivedText(event);
21
- }
22
- else if ([events_1.FEATURE_STALE_ON, events_1.FEATURE_STALE_OFF].includes(event.type)) {
23
- text = this.generateStaleText(event);
24
- }
25
- else {
26
- text = this.generateText(event);
27
- }
17
+ const text = this.msgFormatter.format(event);
28
18
  const { tags: eventTags } = event;
29
19
  const tags = eventTags && eventTags.map((tag) => `${tag.value}:${tag.type}`);
30
20
  const body = {
@@ -43,49 +33,6 @@ class DatadogAddon extends addon_1.default {
43
33
  const res = await this.fetchRetry(url, requestOpts);
44
34
  this.logger.info(`Handled event ${event.type}. Status codes=${res.status}`);
45
35
  }
46
- featureLink(event) {
47
- const path = event.type === events_1.FEATURE_ARCHIVED ? 'archive' : 'features';
48
- return `${this.unleashUrl}/${path}/strategies/${event.data.name}`;
49
- }
50
- generateStaleText(event) {
51
- const { createdBy, data, type } = event;
52
- const isStale = type === events_1.FEATURE_STALE_ON;
53
- const feature = `[${data.name}](${this.featureLink(event)})`;
54
- if (isStale) {
55
- return `The feature toggle *${feature}* is now *ready to be removed* from the code.
56
- This was changed by ${createdBy}.`;
57
- }
58
- return `The feature toggle *${feature}* was *unmarked as stale* by ${createdBy}.`;
59
- }
60
- generateArchivedText(event) {
61
- const { createdBy, data, type } = event;
62
- const action = type === events_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
63
- const feature = `[${data.name}](${this.featureLink(event)})`;
64
- return `The feature toggle *${feature}* was *${action}* by ${createdBy}.`;
65
- }
66
- generateText(event) {
67
- const { createdBy, data, type } = event;
68
- const action = this.getAction(type);
69
- const feature = `[${data.name}](${this.featureLink(event)})`;
70
- const enabled = `**Enabled**: ${data.enabled ? 'yes' : 'no'}`;
71
- const stale = data.stale ? '("stale")' : '';
72
- const typeStr = `**Type**: ${data.type}`;
73
- const project = `**Project**: ${data.project}`;
74
- const strategies = `**Activation strategies**: \`\`\`${js_yaml_1.default.dump(data.strategies, { skipInvalid: true })}\`\`\``;
75
- return `${createdBy} ${action} feature toggle ${feature}
76
- ${enabled}${stale} | ${typeStr} | ${project}
77
- ${data.strategies ? strategies : ''}`;
78
- }
79
- getAction(type) {
80
- switch (type) {
81
- case events_1.FEATURE_CREATED:
82
- return 'created';
83
- case events_1.FEATURE_UPDATED:
84
- return 'updated';
85
- default:
86
- return type;
87
- }
88
- }
89
36
  }
90
37
  exports.default = DatadogAddon;
91
38
  //# sourceMappingURL=datadog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,8EAA8C;AAE9C,6EAIsC;AAEtC,MAAqB,YAAa,SAAQ,eAAK;IAG3C,YAAY,MAAoB;QAC5B,KAAK,CAAC,4BAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,MAAM,CAAC,UAAU,EACjB,sCAAS,CAAC,EAAE,CACf,CAAC;IACN,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EAAE,GAAG,GAAG,yCAAyC,EAAE,MAAM,EAAE,GAC7D,UAAU,CAAC;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClC,MAAM,IAAI,GACN,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,UAAU,IAAI,UAAU;YAC9B,KAAK,EAAE,6BAA6B;YACpC,IAAI;SACP,CAAC;QAEF,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,MAAM;aACvB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAC5D,CAAC;IACN,CAAC;CACJ;AAxCD,+BAwCC"}
@@ -46,7 +46,7 @@ test('Should call datadog webhook', async () => {
46
46
  expect(fetchRetryCalls[0].url).toBe(parameters.url);
47
47
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
48
48
  });
49
- test('Should call datadog webhook for archived toggle', async () => {
49
+ test('Should call datadog webhook for archived toggle', async () => {
50
50
  const addon = new datadog_1.default({
51
51
  getLogger: no_logger_1.default,
52
52
  unleashUrl: 'http://some-url.com',
@@ -68,4 +68,29 @@ test('Should call datadog webhook for archived toggle', async () => {
68
68
  expect(fetchRetryCalls[0].url).toBe(parameters.url);
69
69
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
70
70
  });
71
+ test(`Should call datadog webhook for toggled environment`, async () => {
72
+ const addon = new datadog_1.default({
73
+ getLogger: no_logger_1.default,
74
+ unleashUrl: 'http://some-url.com',
75
+ });
76
+ const event = {
77
+ id: 2,
78
+ createdAt: new Date(),
79
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
80
+ createdBy: 'some@user.com',
81
+ environment: 'development',
82
+ project: 'default',
83
+ data: {
84
+ name: 'some-toggle',
85
+ },
86
+ };
87
+ const parameters = {
88
+ url: 'http://hooks.slack.com',
89
+ };
90
+ await addon.handleEvent(event, parameters);
91
+ expect(fetchRetryCalls).toHaveLength(1);
92
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
93
+ expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
94
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
95
+ });
71
96
  //# sourceMappingURL=datadog.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoE;AAGpE,wDAAqC;AAErC,8EAAqD;AAGrD,IAAI,eAAe,GAAU,EAAE,CAAC;AAEhC,IAAI,CAAC,IAAI,CACL,SAAS,EACT,GAAG,EAAE,CACD,MAAM,KAAK;IAGP,YAAY,UAAU,EAAE,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,eAAe,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;QAC3C,eAAe,CAAC,IAAI,CAAC;YACjB,GAAG;YACH,OAAO;YACP,OAAO;YACP,OAAO;SACV,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;CACJ,CACR,CAAC;AAEF,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,wBAAe;QACrB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACpC;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wCAAwC;KAChD,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAC/D,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,yBAAgB;QACtB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wCAAwC;KAChD,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { IEvent } from '../types/model';
2
+ export interface FeatureEventFormatter {
3
+ format: (event: IEvent) => string;
4
+ featureLink: (event: IEvent) => string;
5
+ }
6
+ export declare enum LinkStyle {
7
+ SLACK = 0,
8
+ MD = 1
9
+ }
10
+ export declare class FeatureEventFormatterMd implements FeatureEventFormatter {
11
+ private unleashUrl;
12
+ private linkStyle;
13
+ constructor(unleashUrl: string, linkStyle?: LinkStyle);
14
+ generateArchivedText(event: IEvent): string;
15
+ generateFeatureLink(event: IEvent): string;
16
+ generateStaleText(event: IEvent): string;
17
+ generateEnvironmentToggleText(event: IEvent): string;
18
+ generateStrategyChangeText(event: IEvent): string;
19
+ generateMetadataText(event: IEvent): string;
20
+ generateProjectChangeText(event: IEvent): string;
21
+ featureLink(event: IEvent): string;
22
+ getAction(type: string): string;
23
+ defaultText(event: IEvent): string;
24
+ format(event: IEvent): string;
25
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeatureEventFormatterMd = exports.LinkStyle = void 0;
4
+ const events_1 = require("../types/events");
5
+ var LinkStyle;
6
+ (function (LinkStyle) {
7
+ LinkStyle[LinkStyle["SLACK"] = 0] = "SLACK";
8
+ LinkStyle[LinkStyle["MD"] = 1] = "MD";
9
+ })(LinkStyle = exports.LinkStyle || (exports.LinkStyle = {}));
10
+ class FeatureEventFormatterMd {
11
+ constructor(unleashUrl, linkStyle = LinkStyle.MD) {
12
+ this.unleashUrl = unleashUrl;
13
+ this.linkStyle = linkStyle;
14
+ }
15
+ generateArchivedText(event) {
16
+ const { createdBy, type } = event;
17
+ const action = type === events_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
18
+ const feature = this.generateFeatureLink(event);
19
+ return ` ${createdBy} just ${action} feature toggle *${feature}*`;
20
+ }
21
+ generateFeatureLink(event) {
22
+ if (this.linkStyle === LinkStyle.SLACK) {
23
+ return `<${this.featureLink(event)}|${event.data.name}>`;
24
+ }
25
+ else {
26
+ return `[${event.data.name}](${this.featureLink(event)})`;
27
+ }
28
+ }
29
+ generateStaleText(event) {
30
+ const { createdBy, type } = event;
31
+ const isStale = type === events_1.FEATURE_STALE_ON;
32
+ const feature = this.generateFeatureLink(event);
33
+ if (isStale) {
34
+ return `${createdBy} marked ${feature} as stale and this feature toggle is now *ready to be removed* from the code.`;
35
+ }
36
+ return `${createdBy} removed the stale marking on *${feature}*.`;
37
+ }
38
+ generateEnvironmentToggleText(event) {
39
+ const { createdBy, environment, type, project } = event;
40
+ const toggleStatus = type === events_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
41
+ const feature = this.generateFeatureLink(event);
42
+ return `${createdBy} *${toggleStatus}* ${feature} in *${environment}* environment in project *${project}*`;
43
+ }
44
+ generateStrategyChangeText(event) {
45
+ const { createdBy, environment, project, data, type } = event;
46
+ const feature = this.generateFeatureLink(event);
47
+ let action;
48
+ if (events_1.FEATURE_STRATEGY_UPDATE === type) {
49
+ action = 'updated in';
50
+ }
51
+ else if (events_1.FEATURE_STRATEGY_ADD === type) {
52
+ action = 'added to';
53
+ }
54
+ else {
55
+ action = 'removed from';
56
+ }
57
+ const strategyText = `a ${data.strategyName ?? ''} strategy ${action} the *${environment}* environment`;
58
+ return `${createdBy} updated *${feature}* with ${strategyText} in project *${project}*`;
59
+ }
60
+ generateMetadataText(event) {
61
+ const { createdBy, project } = event;
62
+ const feature = this.generateFeatureLink(event);
63
+ return `${createdBy} updated the metadata for ${feature} in project *${project}*`;
64
+ }
65
+ generateProjectChangeText(event) {
66
+ const { createdBy, project, data } = event;
67
+ return `${createdBy} moved ${data.name} to ${project}`;
68
+ }
69
+ featureLink(event) {
70
+ const { type, project = '', data } = event;
71
+ if (type === events_1.FEATURE_ARCHIVED) {
72
+ return `${this.unleashUrl}/archive`;
73
+ }
74
+ return `${this.unleashUrl}/projects/${project}/${data.name}`;
75
+ }
76
+ getAction(type) {
77
+ switch (type) {
78
+ case events_1.FEATURE_CREATED:
79
+ return 'created';
80
+ case events_1.FEATURE_UPDATED:
81
+ return 'updated';
82
+ default:
83
+ return type;
84
+ }
85
+ }
86
+ defaultText(event) {
87
+ const { createdBy, project, type } = event;
88
+ const action = this.getAction(type);
89
+ const feature = this.generateFeatureLink(event);
90
+ return `${createdBy} ${action} feature toggle ${feature} in project *${project}*`;
91
+ }
92
+ format(event) {
93
+ switch (event.type) {
94
+ case events_1.FEATURE_ARCHIVED:
95
+ case events_1.FEATURE_REVIVED:
96
+ return this.generateArchivedText(event);
97
+ case events_1.FEATURE_STALE_ON:
98
+ case events_1.FEATURE_STALE_OFF:
99
+ return this.generateStaleText(event);
100
+ case events_1.FEATURE_ENVIRONMENT_DISABLED:
101
+ case events_1.FEATURE_ENVIRONMENT_ENABLED:
102
+ return this.generateEnvironmentToggleText(event);
103
+ case events_1.FEATURE_STRATEGY_ADD:
104
+ case events_1.FEATURE_STRATEGY_REMOVE:
105
+ case events_1.FEATURE_STRATEGY_UPDATE:
106
+ return this.generateStrategyChangeText(event);
107
+ case events_1.FEATURE_METADATA_UPDATED:
108
+ return this.generateMetadataText(event);
109
+ case events_1.FEATURE_PROJECT_CHANGE:
110
+ return this.generateProjectChangeText(event);
111
+ default:
112
+ return this.defaultText(event);
113
+ }
114
+ }
115
+ }
116
+ exports.FeatureEventFormatterMd = FeatureEventFormatterMd;
117
+ //# sourceMappingURL=feature-event-formatter-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-event-formatter-md.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export interface IAddonProviders {
6
6
  export declare const getAddons: (args: {
7
7
  getLogger: LogProvider;
8
8
  unleashUrl: string;
9
+ newFeatureLink?: boolean;
9
10
  }) => IAddonProviders;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/addons/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,wDAAqC;AAQ9B,MAAM,SAAS,GAGE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG;QACX,IAAI,iBAAO,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,iBAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;KAC9C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAChC,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AAfW,QAAA,SAAS,aAepB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/addons/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,wDAAqC;AAQ9B,MAAM,SAAS,GAIE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG;QACX,IAAI,iBAAO,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,iBAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;KAC9C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAChC,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -48,6 +48,13 @@ const slackDefinition = {
48
48
  events_1.FEATURE_REVIVED,
49
49
  events_1.FEATURE_STALE_ON,
50
50
  events_1.FEATURE_STALE_OFF,
51
+ events_1.FEATURE_ENVIRONMENT_ENABLED,
52
+ events_1.FEATURE_ENVIRONMENT_DISABLED,
53
+ events_1.FEATURE_STRATEGY_REMOVE,
54
+ events_1.FEATURE_STRATEGY_UPDATE,
55
+ events_1.FEATURE_STRATEGY_ADD,
56
+ events_1.FEATURE_METADATA_UPDATED,
57
+ events_1.FEATURE_PROJECT_CHANGE,
51
58
  ],
52
59
  tagTypes: [
53
60
  {
@@ -1 +1 @@
1
- {"version":3,"file":"slack-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-definition.ts"],"names":[],"mappings":";;AAAA,4CAOyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,0CAA0C;IACvD,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,SAAS;YACtB,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACP,sEAAsE;YAC1E,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SACnB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;KACpB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"slack-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-definition.ts"],"names":[],"mappings":";;AAAA,4CAcyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,0CAA0C;IACvD,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,SAAS;YACtB,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACP,sEAAsE;YAC1E,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SACnB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;KACzB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -1,13 +1,8 @@
1
1
  import Addon from './addon';
2
2
  import { IAddonConfig, IEvent } from '../types/model';
3
3
  export default class SlackAddon extends Addon {
4
- unleashUrl: string;
4
+ private msgFormatter;
5
5
  constructor(args: IAddonConfig);
6
6
  handleEvent(event: IEvent, parameters: any): Promise<void>;
7
- featureLink(event: IEvent): string;
8
7
  findSlackChannels({ tags }: Pick<IEvent, 'tags'>): string[];
9
- generateStaleText(event: IEvent): string;
10
- generateArchivedText(event: IEvent): string;
11
- generateText(event: IEvent): string;
12
- getAction(type: string): string;
13
8
  }
@@ -3,14 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const js_yaml_1 = __importDefault(require("js-yaml"));
7
6
  const addon_1 = __importDefault(require("./addon"));
8
7
  const slack_definition_1 = __importDefault(require("./slack-definition"));
9
- const { FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, } = require('../types/events');
8
+ const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
10
9
  class SlackAddon extends addon_1.default {
11
10
  constructor(args) {
12
11
  super(slack_definition_1.default, args);
13
- this.unleashUrl = args.unleashUrl;
12
+ this.msgFormatter = new feature_event_formatter_md_1.FeatureEventFormatterMd(args.unleashUrl, feature_event_formatter_md_1.LinkStyle.SLACK);
14
13
  }
15
14
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
16
15
  async handleEvent(event, parameters) {
@@ -19,16 +18,8 @@ class SlackAddon extends addon_1.default {
19
18
  if (slackChannels.length === 0) {
20
19
  slackChannels.push(defaultChannel);
21
20
  }
22
- let text;
23
- if ([FEATURE_ARCHIVED, FEATURE_REVIVED].includes(event.type)) {
24
- text = this.generateArchivedText(event);
25
- }
26
- else if ([FEATURE_STALE_ON, FEATURE_STALE_OFF].includes(event.type)) {
27
- text = this.generateStaleText(event);
28
- }
29
- else {
30
- text = this.generateText(event);
31
- }
21
+ const text = this.msgFormatter.format(event);
22
+ const featureLink = this.msgFormatter.featureLink(event);
32
23
  const requests = slackChannels.map((channel) => {
33
24
  const body = {
34
25
  username,
@@ -44,7 +35,7 @@ class SlackAddon extends addon_1.default {
44
35
  type: 'button',
45
36
  value: 'featureToggle',
46
37
  style: 'primary',
47
- url: this.featureLink(event),
38
+ url: featureLink,
48
39
  },
49
40
  ],
50
41
  },
@@ -61,10 +52,6 @@ class SlackAddon extends addon_1.default {
61
52
  const codes = results.map((res) => res.status).join(', ');
62
53
  this.logger.info(`Handled event ${event.type}. Status codes=${codes}`);
63
54
  }
64
- featureLink(event) {
65
- const path = event.type === FEATURE_ARCHIVED ? 'archive' : 'features';
66
- return `${this.unleashUrl}/${path}/strategies/${event.data.name}`;
67
- }
68
55
  findSlackChannels({ tags }) {
69
56
  if (tags) {
70
57
  return tags
@@ -73,45 +60,6 @@ class SlackAddon extends addon_1.default {
73
60
  }
74
61
  return [];
75
62
  }
76
- generateStaleText(event) {
77
- const { createdBy, data, type } = event;
78
- const isStale = type === FEATURE_STALE_ON;
79
- const feature = `<${this.featureLink(event)}|${data.name}>`;
80
- if (isStale) {
81
- return `The feature toggle *${feature}* is now *ready to be removed* from the code. :technologist:
82
- This was changed by ${createdBy}.`;
83
- }
84
- return `The feature toggle *${feature}* was *unmarked as stale* by ${createdBy}.`;
85
- }
86
- generateArchivedText(event) {
87
- const { createdBy, data, type } = event;
88
- const action = type === FEATURE_ARCHIVED ? 'archived' : 'revived';
89
- const feature = `<${this.featureLink(event)}|${data.name}>`;
90
- return `The feature toggle *${feature}* was *${action}* by ${createdBy}.`;
91
- }
92
- generateText(event) {
93
- const { createdBy, data, type } = event;
94
- const action = this.getAction(type);
95
- const feature = `<${this.featureLink(event)}|${data.name}>`;
96
- const enabled = `*Enabled*: ${data.enabled ? 'yes' : 'no'}`;
97
- const stale = data.stale ? '("stale")' : '';
98
- const typeStr = `*Type*: ${data.type}`;
99
- const project = `*Project*: ${data.project}`;
100
- const strategies = `*Activation strategies*: \`\`\`${js_yaml_1.default.safeDump(data.strategies, { skipInvalid: true })}\`\`\``;
101
- return `${createdBy} ${action} feature toggle ${feature}
102
- ${enabled}${stale} | ${typeStr} | ${project}
103
- ${data.strategies ? strategies : ''}`;
104
- }
105
- getAction(type) {
106
- switch (type) {
107
- case FEATURE_CREATED:
108
- return 'created';
109
- case FEATURE_UPDATED:
110
- return 'updated';
111
- default:
112
- return type;
113
- }
114
- }
115
63
  }
116
64
  exports.default = SlackAddon;
117
65
  module.exports = SlackAddon;
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.ts"],"names":[],"mappings":";;;;;AAAA,sDAA2B;AAC3B,oDAA4B;AAE5B,0EAAiD;AAGjD,MAAM,EACF,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/B,MAAqB,UAAW,SAAQ,eAAK;IAGzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,0BAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EACF,GAAG,EACH,cAAc,EACd,QAAQ,GAAG,SAAS,EACpB,SAAS,GAAG,WAAW,GAC1B,GAAG,UAAU,CAAC;QAEf,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtC;QAED,IAAI,IAAI,CAAC;QAET,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC3C;aAAM,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACnE,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACnC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG;gBACT,QAAQ;gBACR,UAAU,EAAE,SAAS;gBACrB,IAAI;gBACJ,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,WAAW,EAAE;oBACT;wBACI,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,eAAe;gCACrB,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,eAAe;gCACtB,KAAK,EAAE,SAAS;gCAChB,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;6BAC/B;yBACJ;qBACJ;iBACJ;aACJ,CAAC;YAEF,MAAM,WAAW,GAAG;gBAChB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC7B,CAAC;YAEF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACtE,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;IAED,iBAAiB,CAAC,EAAE,IAAI,EAAwB;QAC5C,IAAI,IAAI,EAAE;YACN,OAAO,IAAI;iBACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC3B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,KAAK,gBAAgB,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QAE5D,IAAI,OAAO,EAAE;YACT,OAAO,uBAAuB,OAAO;sBAC3B,SAAS,GAAG,CAAC;SAC1B;QACD,OAAO,uBAAuB,OAAO,gCAAgC,SAAS,GAAG,CAAC;IACtF,CAAC;IAED,oBAAoB,CAAC,KAAa;QAC9B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QAC5D,OAAO,uBAAuB,OAAO,UAAU,MAAM,QAAQ,SAAS,GAAG,CAAC;IAC9E,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QAC5D,MAAM,OAAO,GAAG,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,kCAAkC,iBAAI,CAAC,QAAQ,CAC9D,IAAI,CAAC,UAAU,EACf,EAAE,WAAW,EAAE,IAAI,EAAE,CACxB,QAAQ,CAAC;QACV,OAAO,GAAG,SAAS,IAAI,MAAM,mBAAmB,OAAO;EAC7D,OAAO,GAAG,KAAK,MAAM,OAAO,MAAM,OAAO;EACzC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,QAAQ,IAAI,EAAE;YACV,KAAK,eAAe;gBAChB,OAAO,SAAS,CAAC;YACrB,KAAK,eAAe;gBAChB,OAAO,SAAS,CAAC;YACrB;gBACI,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;CACJ;AAjID,6BAiIC;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,0EAAiD;AAGjD,6EAIsC;AAEtC,MAAqB,UAAW,SAAQ,eAAK;IAGzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,0BAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,IAAI,CAAC,UAAU,EACf,sCAAS,CAAC,KAAK,CAClB,CAAC;IACN,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EACF,GAAG,EACH,cAAc,EACd,QAAQ,GAAG,SAAS,EACpB,SAAS,GAAG,WAAW,GAC1B,GAAG,UAAU,CAAC;QAEf,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG;gBACT,QAAQ;gBACR,UAAU,EAAE,SAAS;gBACrB,IAAI;gBACJ,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,WAAW,EAAE;oBACT;wBACI,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,eAAe;gCACrB,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,eAAe;gCACtB,KAAK,EAAE,SAAS;gCAChB,GAAG,EAAE,WAAW;6BACnB;yBACJ;qBACJ;iBACJ;aACJ,CAAC;YAEF,MAAM,WAAW,GAAG;gBAChB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC7B,CAAC;YAEF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,iBAAiB,CAAC,EAAE,IAAI,EAAwB;QAC5C,IAAI,IAAI,EAAE;YACN,OAAO,IAAI;iBACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzED,6BAyEC;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC"}
@@ -32,9 +32,11 @@ test('Should call slack webhook', async () => {
32
32
  createdAt: new Date(),
33
33
  type: events_1.FEATURE_CREATED,
34
34
  createdBy: 'some@user.com',
35
+ project: 'default',
35
36
  data: {
36
37
  name: 'some-toggle',
37
38
  enabled: false,
39
+ type: 'release',
38
40
  strategies: [{ name: 'default' }],
39
41
  },
40
42
  };
@@ -68,6 +70,31 @@ test('Should call slack webhook for archived toggle', async () => {
68
70
  expect(fetchRetryCalls[0].url).toBe(parameters.url);
69
71
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
70
72
  });
73
+ test(`Should call webhook for toggled environment`, async () => {
74
+ const addon = new slack_1.default({
75
+ getLogger: no_logger_1.default,
76
+ unleashUrl: 'http://some-url.com',
77
+ });
78
+ const event = {
79
+ id: 2,
80
+ createdAt: new Date(),
81
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
82
+ createdBy: 'some@user.com',
83
+ environment: 'development',
84
+ project: 'default',
85
+ data: {
86
+ name: 'some-toggle',
87
+ },
88
+ };
89
+ const parameters = {
90
+ url: 'http://hooks.slack.com',
91
+ };
92
+ await addon.handleEvent(event, parameters);
93
+ expect(fetchRetryCalls).toHaveLength(1);
94
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
95
+ expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
96
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
97
+ });
71
98
  test('Should use default channel', async () => {
72
99
  const addon = new slack_1.default({
73
100
  getLogger: no_logger_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.test.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,13 @@ const teamsDefinition = {
22
22
  events_1.FEATURE_REVIVED,
23
23
  events_1.FEATURE_STALE_ON,
24
24
  events_1.FEATURE_STALE_OFF,
25
+ events_1.FEATURE_ENVIRONMENT_ENABLED,
26
+ events_1.FEATURE_ENVIRONMENT_DISABLED,
27
+ events_1.FEATURE_STRATEGY_REMOVE,
28
+ events_1.FEATURE_STRATEGY_UPDATE,
29
+ events_1.FEATURE_STRATEGY_ADD,
30
+ events_1.FEATURE_METADATA_UPDATED,
31
+ events_1.FEATURE_PROJECT_CHANGE,
25
32
  ],
26
33
  };
27
34
  exports.default = teamsDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"teams-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-definition.ts"],"names":[],"mappings":";;AAAA,4CAOyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,oDAAoD;IACjE,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;KACpB;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"teams-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-definition.ts"],"names":[],"mappings":";;AAAA,4CAcyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,oDAAoD;IACjE,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;KACzB;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}