unleash-server 4.22.0-beta.4 → 4.22.0-beta.40

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 (226) hide show
  1. package/dist/lib/addons/feature-event-formatter-md.d.ts +12 -3
  2. package/dist/lib/addons/feature-event-formatter-md.js +135 -31
  3. package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
  4. package/dist/lib/addons/feature-event-formatter-md.test.d.ts +1 -0
  5. package/dist/lib/addons/feature-event-formatter-md.test.js +483 -0
  6. package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -0
  7. package/dist/lib/app.js +1 -1
  8. package/dist/lib/app.js.map +1 -1
  9. package/dist/lib/db/event-store.d.ts +8 -2
  10. package/dist/lib/db/event-store.js +18 -4
  11. package/dist/lib/db/event-store.js.map +1 -1
  12. package/dist/lib/event-hook.d.ts +1 -1
  13. package/dist/lib/event-hook.js.map +1 -1
  14. package/dist/lib/features/export-import-toggles/createExportImportService.js +2 -2
  15. package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
  16. package/dist/lib/features/export-import-toggles/export-import-permissions.e2e.test.js +1 -1
  17. package/dist/lib/features/export-import-toggles/export-import-permissions.e2e.test.js.map +1 -1
  18. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +2 -2
  19. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  20. package/dist/lib/openapi/index.d.ts +113 -128
  21. package/dist/lib/openapi/index.js +2 -1
  22. package/dist/lib/openapi/index.js.map +1 -1
  23. package/dist/lib/openapi/spec/bulk-metrics-schema.d.ts +43 -56
  24. package/dist/lib/openapi/spec/bulk-metrics-schema.js +3 -3
  25. package/dist/lib/openapi/spec/bulk-metrics-schema.js.map +1 -1
  26. package/dist/lib/openapi/spec/bulk-registration-schema.d.ts +23 -3
  27. package/dist/lib/openapi/spec/bulk-registration-schema.js +15 -3
  28. package/dist/lib/openapi/spec/bulk-registration-schema.js.map +1 -1
  29. package/dist/lib/openapi/spec/client-metrics-env-schema.d.ts +49 -0
  30. package/dist/lib/openapi/spec/client-metrics-env-schema.js +43 -0
  31. package/dist/lib/openapi/spec/client-metrics-env-schema.js.map +1 -0
  32. package/dist/lib/openapi/spec/client-metrics-schema.js +7 -23
  33. package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
  34. package/dist/lib/openapi/spec/index.d.ts +0 -1
  35. package/dist/lib/openapi/spec/index.js +0 -1
  36. package/dist/lib/openapi/spec/index.js.map +1 -1
  37. package/dist/lib/openapi/validate.d.ts +1 -1
  38. package/dist/lib/routes/admin-api/maintenance.d.ts +0 -1
  39. package/dist/lib/routes/admin-api/maintenance.js +0 -8
  40. package/dist/lib/routes/admin-api/maintenance.js.map +1 -1
  41. package/dist/lib/routes/admin-api/project/variants.js +29 -0
  42. package/dist/lib/routes/admin-api/project/variants.js.map +1 -1
  43. package/dist/lib/routes/client-api/feature.js.map +1 -1
  44. package/dist/lib/routes/edge-api/index.js +4 -4
  45. package/dist/lib/routes/edge-api/index.js.map +1 -1
  46. package/dist/lib/routes/index.js +3 -2
  47. package/dist/lib/routes/index.js.map +1 -1
  48. package/dist/lib/routes/proxy-api/index.js +1 -1
  49. package/dist/lib/routes/proxy-api/index.js.map +1 -1
  50. package/dist/lib/services/access-service.d.ts +2 -2
  51. package/dist/lib/services/access-service.js.map +1 -1
  52. package/dist/lib/services/client-metrics/metrics-service-v2.d.ts +1 -0
  53. package/dist/lib/services/client-metrics/metrics-service-v2.js +8 -5
  54. package/dist/lib/services/client-metrics/metrics-service-v2.js.map +1 -1
  55. package/dist/lib/services/client-metrics/schema.d.ts +3 -0
  56. package/dist/lib/services/client-metrics/schema.js +24 -1
  57. package/dist/lib/services/client-metrics/schema.js.map +1 -1
  58. package/dist/lib/services/proxy-service.d.ts +2 -2
  59. package/dist/lib/services/proxy-service.js.map +1 -1
  60. package/dist/lib/types/experimental.d.ts +1 -2
  61. package/dist/lib/types/experimental.js +1 -2
  62. package/dist/lib/types/experimental.js.map +1 -1
  63. package/dist/lib/types/stores/event-store.d.ts +1 -1
  64. package/dist/lib/util/anyEventEmitter.d.ts +1 -0
  65. package/dist/lib/util/anyEventEmitter.js +2 -1
  66. package/dist/lib/util/anyEventEmitter.js.map +1 -1
  67. package/dist/migrations/20201216140726-add-last-seen-to-features.js +1 -0
  68. package/dist/migrations/20201216140726-add-last-seen-to-features.js.map +1 -1
  69. package/dist/migrations/20210105083014-add-tag-and-tag-types.js +1 -0
  70. package/dist/migrations/20210105083014-add-tag-and-tag-types.js.map +1 -1
  71. package/dist/migrations/20210119084617-add-addon-table.js +1 -0
  72. package/dist/migrations/20210119084617-add-addon-table.js.map +1 -1
  73. package/dist/migrations/20210212114759-add-session-table.js +1 -0
  74. package/dist/migrations/20210212114759-add-session-table.js.map +1 -1
  75. package/dist/migrations/20210217195834-rbac-tables.js +1 -0
  76. package/dist/migrations/20210217195834-rbac-tables.js.map +1 -1
  77. package/dist/migrations/20210409120136-create-reset-token-table.js +1 -0
  78. package/dist/migrations/20210409120136-create-reset-token-table.js.map +1 -1
  79. package/dist/migrations/20210414141220-fix-misspellings-in-role-descriptions.js +1 -0
  80. package/dist/migrations/20210414141220-fix-misspellings-in-role-descriptions.js.map +1 -1
  81. package/dist/migrations/20210423103647-lowercase-all-emails.js +1 -0
  82. package/dist/migrations/20210423103647-lowercase-all-emails.js.map +1 -1
  83. package/dist/migrations/20210428103923-onboard-projects-to-rbac.js +1 -0
  84. package/dist/migrations/20210428103923-onboard-projects-to-rbac.js.map +1 -1
  85. package/dist/migrations/20210504101429-deprecate-strategies.js +1 -0
  86. package/dist/migrations/20210504101429-deprecate-strategies.js.map +1 -1
  87. package/dist/migrations/20210615115226-migrate-strategies-to-feature-strategies.js +1 -0
  88. package/dist/migrations/20210615115226-migrate-strategies-to-feature-strategies.js.map +1 -1
  89. package/dist/migrations/20210618091331-project-environments-table.js +1 -0
  90. package/dist/migrations/20210618091331-project-environments-table.js.map +1 -1
  91. package/dist/migrations/20210618100913-add-cascade-for-user-feedback.js +1 -0
  92. package/dist/migrations/20210618100913-add-cascade-for-user-feedback.js.map +1 -1
  93. package/dist/migrations/20210624114855-drop-strategies-column-from-features.js +1 -0
  94. package/dist/migrations/20210624114855-drop-strategies-column-from-features.js.map +1 -1
  95. package/dist/migrations/20210624115109-drop-enabled-column-from-features.js +1 -0
  96. package/dist/migrations/20210624115109-drop-enabled-column-from-features.js.map +1 -1
  97. package/dist/migrations/20210625102126-connect-default-project-to-global-environment.js +1 -0
  98. package/dist/migrations/20210625102126-connect-default-project-to-global-environment.js.map +1 -1
  99. package/dist/migrations/20210629130734-add-health-rating-to-project.js +1 -0
  100. package/dist/migrations/20210629130734-add-health-rating-to-project.js.map +1 -1
  101. package/dist/migrations/20210830113948-connect-projects-to-global-envrionments.js +1 -0
  102. package/dist/migrations/20210830113948-connect-projects-to-global-envrionments.js.map +1 -1
  103. package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js +1 -0
  104. package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js.map +1 -1
  105. package/dist/migrations/20210907124058-add-dbcritic-indices.js +1 -0
  106. package/dist/migrations/20210907124058-add-dbcritic-indices.js.map +1 -1
  107. package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js +1 -0
  108. package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js.map +1 -1
  109. package/dist/migrations/20210908100701-add-enabled-to-environments.js +1 -0
  110. package/dist/migrations/20210908100701-add-enabled-to-environments.js.map +1 -1
  111. package/dist/migrations/20210909085651-add-protected-field-to-environments.js +1 -0
  112. package/dist/migrations/20210909085651-add-protected-field-to-environments.js.map +1 -1
  113. package/dist/migrations/20210913103159-api-keys-scoping.js +1 -0
  114. package/dist/migrations/20210913103159-api-keys-scoping.js.map +1 -1
  115. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js +1 -0
  116. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js.map +1 -1
  117. package/dist/migrations/20211004104917-client-metrics-env.js +1 -0
  118. package/dist/migrations/20211004104917-client-metrics-env.js.map +1 -1
  119. package/dist/migrations/20211109103930-add-splash-entry-for-users.js +1 -0
  120. package/dist/migrations/20211109103930-add-splash-entry-for-users.js.map +1 -1
  121. package/dist/migrations/20211126112551-disable-default-environment.js +1 -0
  122. package/dist/migrations/20211126112551-disable-default-environment.js.map +1 -1
  123. package/dist/migrations/20211202120808-add-custom-roles.js +1 -0
  124. package/dist/migrations/20211202120808-add-custom-roles.js.map +1 -1
  125. package/dist/migrations/20220103134659-add-permissions-to-project-roles.js +1 -0
  126. package/dist/migrations/20220103134659-add-permissions-to-project-roles.js.map +1 -1
  127. package/dist/migrations/20220103143843-add-permissions-to-editor-role.js +1 -0
  128. package/dist/migrations/20220103143843-add-permissions-to-editor-role.js.map +1 -1
  129. package/dist/migrations/20220111112804-update-permission-descriptions.js +1 -0
  130. package/dist/migrations/20220111112804-update-permission-descriptions.js.map +1 -1
  131. package/dist/migrations/20220111115613-move-feature-toggle-permission.js +1 -0
  132. package/dist/migrations/20220111115613-move-feature-toggle-permission.js.map +1 -1
  133. package/dist/migrations/20220111120346-roles-unique-name.js +1 -0
  134. package/dist/migrations/20220111120346-roles-unique-name.js.map +1 -1
  135. package/dist/migrations/20220111121010-update-project-for-editor-role.js +1 -0
  136. package/dist/migrations/20220111121010-update-project-for-editor-role.js.map +1 -1
  137. package/dist/migrations/20220111125620-role-permission-empty-string-for-non-environment-type.js +1 -0
  138. package/dist/migrations/20220111125620-role-permission-empty-string-for-non-environment-type.js.map +1 -1
  139. package/dist/migrations/20220224081422-remove-project-column-from-roles.js +1 -0
  140. package/dist/migrations/20220224081422-remove-project-column-from-roles.js.map +1 -1
  141. package/dist/migrations/20220408081222-clean-up-duplicate-foreign-key-role-permission.js +1 -0
  142. package/dist/migrations/20220408081222-clean-up-duplicate-foreign-key-role-permission.js.map +1 -1
  143. package/dist/migrations/20220711084613-add-projects-and-environments-for-addons.js +1 -0
  144. package/dist/migrations/20220711084613-add-projects-and-environments-for-addons.js.map +1 -1
  145. package/dist/migrations/20220808110415-add-projects-foreign-key.js +1 -0
  146. package/dist/migrations/20220808110415-add-projects-foreign-key.js.map +1 -1
  147. package/dist/migrations/20221108114358-add-change-request-permissions.js +1 -0
  148. package/dist/migrations/20221108114358-add-change-request-permissions.js.map +1 -1
  149. package/dist/migrations/20221125185244-change-request-unique-approvals.js +1 -0
  150. package/dist/migrations/20221125185244-change-request-unique-approvals.js.map +1 -1
  151. package/dist/migrations/20221128165141-change-request-min-approvals.js +1 -0
  152. package/dist/migrations/20221128165141-change-request-min-approvals.js.map +1 -1
  153. package/dist/migrations/20221205122253-skip-change-request.js +1 -0
  154. package/dist/migrations/20221205122253-skip-change-request.js.map +1 -1
  155. package/dist/migrations/20221220160345-user-pat-permissions.js +1 -0
  156. package/dist/migrations/20221220160345-user-pat-permissions.js.map +1 -1
  157. package/dist/migrations/20221221144132-service-account-users.js +1 -0
  158. package/dist/migrations/20221221144132-service-account-users.js.map +1 -1
  159. package/dist/migrations/20230125065315-project-stats-table.js +1 -0
  160. package/dist/migrations/20230125065315-project-stats-table.js.map +1 -1
  161. package/dist/migrations/20230127111638-new-project-stats-field.js +1 -0
  162. package/dist/migrations/20230127111638-new-project-stats-field.js.map +1 -1
  163. package/dist/migrations/20230130113337-revert-user-pat-permissions.js +1 -0
  164. package/dist/migrations/20230130113337-revert-user-pat-permissions.js.map +1 -1
  165. package/dist/migrations/20230208084046-project-api-token-permissions.js +1 -0
  166. package/dist/migrations/20230208084046-project-api-token-permissions.js.map +1 -1
  167. package/dist/migrations/20230208093627-assign-project-api-token-permissions-editor.js +1 -0
  168. package/dist/migrations/20230208093627-assign-project-api-token-permissions-editor.js.map +1 -1
  169. package/dist/migrations/20230208093750-assign-project-api-token-permissions-owner.js +1 -0
  170. package/dist/migrations/20230208093750-assign-project-api-token-permissions-owner.js.map +1 -1
  171. package/dist/migrations/20230208093942-assign-project-api-token-permissions-member.js +1 -0
  172. package/dist/migrations/20230208093942-assign-project-api-token-permissions-member.js.map +1 -1
  173. package/dist/migrations/20230222084211-add-login-events-table.js +1 -0
  174. package/dist/migrations/20230222084211-add-login-events-table.js.map +1 -1
  175. package/dist/migrations/20230222154915-create-notiications-table.js +4 -4
  176. package/dist/migrations/20230224093446-drop-createdBy-from-notifications-table.d.ts +2 -0
  177. package/dist/migrations/20230224093446-drop-createdBy-from-notifications-table.js +14 -0
  178. package/dist/migrations/20230224093446-drop-createdBy-from-notifications-table.js.map +1 -0
  179. package/dist/migrations/20230227115320-rename-login-events-table-to-sign-on-log.d.ts +2 -0
  180. package/dist/migrations/20230227115320-rename-login-events-table-to-sign-on-log.js +8 -0
  181. package/dist/migrations/20230227115320-rename-login-events-table-to-sign-on-log.js.map +1 -0
  182. package/dist/migrations/20230227120500-change-display-name-for-variants-per-env-permission.d.ts +2 -0
  183. package/dist/migrations/20230227120500-change-display-name-for-variants-per-env-permission.js +15 -0
  184. package/dist/migrations/20230227120500-change-display-name-for-variants-per-env-permission.js.map +1 -0
  185. package/dist/migrations/20230227123106-add-setting-for-sign-on-log-retention.d.ts +2 -0
  186. package/dist/migrations/20230227123106-add-setting-for-sign-on-log-retention.js +8 -0
  187. package/dist/migrations/20230227123106-add-setting-for-sign-on-log-retention.js.map +1 -0
  188. package/dist/migrations/20230302133740-rename-sign-on-log-table-to-login-history.d.ts +2 -0
  189. package/dist/migrations/20230302133740-rename-sign-on-log-table-to-login-history.js +12 -0
  190. package/dist/migrations/20230302133740-rename-sign-on-log-table-to-login-history.js.map +1 -0
  191. package/dist/server-dev.js +0 -1
  192. package/dist/server-dev.js.map +1 -1
  193. package/dist/test/e2e/api/admin/maintenance.e2e.test.js +2 -49
  194. package/dist/test/e2e/api/admin/maintenance.e2e.test.js.map +1 -1
  195. package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js +3 -3
  196. package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js.map +1 -1
  197. package/dist/test/e2e/stores/setting-store.e2e.test.js +1 -1
  198. package/dist/test/fixtures/fake-event-store.d.ts +8 -2
  199. package/dist/test/fixtures/fake-event-store.js +17 -5
  200. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  201. package/frontend/build/index.html +1 -1
  202. package/frontend/build/static/{CreateProject-ca648018.js → CreateProject-5d3bc797.js} +1 -1
  203. package/frontend/build/static/{Error-e0c241b7.js → Error-3664395d.js} +1 -1
  204. package/frontend/build/static/{ExpandMore-f34bbc97.js → ExpandMore-659c474b.js} +1 -1
  205. package/frontend/build/static/{FeatureArchiveDialog-52c2ffc6.js → FeatureArchiveDialog-5ad803b9.js} +1 -1
  206. package/frontend/build/static/{FeatureMetricsChart-86fa4af3.js → FeatureMetricsChart-00f05a3a.js} +1 -1
  207. package/frontend/build/static/{FeatureViewLazyExport-29e4a5d4.js → FeatureViewLazyExport-de25597c.js} +2 -2
  208. package/frontend/build/static/LazyAdminExport-89008a18.js +43 -0
  209. package/frontend/build/static/{LazyProjectExport-437b2521.js → LazyProjectExport-aa6b5769.js} +8 -8
  210. package/frontend/build/static/{NetworkOverview-e4ab3ad0.js → NetworkOverview-bc3b161d.js} +1 -1
  211. package/frontend/build/static/{NetworkTraffic-bb582cb8.js → NetworkTraffic-3ff91833.js} +1 -1
  212. package/frontend/build/static/{Playground-b92ad7f0.js → Playground-9c8cebb1.js} +1 -1
  213. package/frontend/build/static/{StrategyItemContainer-76a5c7b3.js → StrategyItemContainer-9d9a9648.js} +1 -1
  214. package/frontend/build/static/{chartjs-adapter-date-fns.esm-4dc257e6.js → chartjs-adapter-date-fns.esm-e38b02cd.js} +7 -7
  215. package/frontend/build/static/{index-309b2fdf.js → index-0661e111.js} +1 -1
  216. package/frontend/build/static/index-1f5137d1.js +392 -0
  217. package/frontend/build/static/{index-eaadb5f1.js → index-f4f1203b.js} +1 -1
  218. package/frontend/build/static/{unknownify-69077f7b.js → unknownify-cd07e475.js} +1 -1
  219. package/frontend/build/static/{useProjectRole-994bf8e8.js → useProjectRole-c8f8478a.js} +1 -1
  220. package/frontend/package.json +7 -7
  221. package/package.json +7 -7
  222. package/dist/lib/openapi/spec/proxy-metrics-schema.d.ts +0 -71
  223. package/dist/lib/openapi/spec/proxy-metrics-schema.js +0 -55
  224. package/dist/lib/openapi/spec/proxy-metrics-schema.js.map +0 -1
  225. package/frontend/build/static/LazyAdminExport-83dd64eb.js +0 -43
  226. package/frontend/build/static/index-47b2f93e.js +0 -392
@@ -1,4 +1,4 @@
1
- import { IEvent } from '../types/events';
1
+ import { IEvent } from '../types';
2
2
  export interface FeatureEventFormatter {
3
3
  format: (event: IEvent) => string;
4
4
  featureLink: (event: IEvent) => string;
@@ -8,14 +8,23 @@ export declare enum LinkStyle {
8
8
  MD = 1
9
9
  }
10
10
  export declare class FeatureEventFormatterMd implements FeatureEventFormatter {
11
- private unleashUrl;
12
- private linkStyle;
11
+ private readonly unleashUrl;
12
+ private readonly linkStyle;
13
13
  constructor(unleashUrl: string, linkStyle?: LinkStyle);
14
14
  generateArchivedText(event: IEvent): string;
15
15
  generateFeatureLink(event: IEvent): string;
16
16
  generateStaleText(event: IEvent): string;
17
17
  generateEnvironmentToggleText(event: IEvent): string;
18
18
  generateStrategyChangeText(event: IEvent): string;
19
+ private applicationHostnameStrategyChangeText;
20
+ private remoteAddressStrategyChangeText;
21
+ private userWithIdStrategyChangeText;
22
+ private listOfValuesStrategyChangeText;
23
+ private flexibleRolloutStrategyChangeText;
24
+ private defaultStrategyChangeText;
25
+ private constraintChangeText;
26
+ generateStrategyRemoveText(event: IEvent): string;
27
+ generateStrategyAddText(event: IEvent): string;
19
28
  generateMetadataText(event: IEvent): string;
20
29
  generateProjectChangeText(event: IEvent): string;
21
30
  featureLink(event: IEvent): string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FeatureEventFormatterMd = exports.LinkStyle = void 0;
4
- const events_1 = require("../types/events");
4
+ const types_1 = require("../types");
5
5
  var LinkStyle;
6
6
  (function (LinkStyle) {
7
7
  LinkStyle[LinkStyle["SLACK"] = 0] = "SLACK";
@@ -14,7 +14,7 @@ class FeatureEventFormatterMd {
14
14
  }
15
15
  generateArchivedText(event) {
16
16
  const { createdBy, type } = event;
17
- const action = type === events_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
17
+ const action = type === types_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
18
18
  const feature = this.generateFeatureLink(event);
19
19
  return ` ${createdBy} just ${action} feature toggle *${feature}*`;
20
20
  }
@@ -28,7 +28,7 @@ class FeatureEventFormatterMd {
28
28
  }
29
29
  generateStaleText(event) {
30
30
  const { createdBy, type } = event;
31
- const isStale = type === events_1.FEATURE_STALE_ON;
31
+ const isStale = type === types_1.FEATURE_STALE_ON;
32
32
  const feature = this.generateFeatureLink(event);
33
33
  if (isStale) {
34
34
  return `${createdBy} marked ${feature} as stale and this feature toggle is now *ready to be removed* from the code.`;
@@ -37,24 +37,126 @@ class FeatureEventFormatterMd {
37
37
  }
38
38
  generateEnvironmentToggleText(event) {
39
39
  const { createdBy, environment, type, project } = event;
40
- const toggleStatus = type === events_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
40
+ const toggleStatus = type === types_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
41
41
  const feature = this.generateFeatureLink(event);
42
42
  return `${createdBy} *${toggleStatus}* ${feature} in *${environment}* environment in project *${project}*`;
43
43
  }
44
44
  generateStrategyChangeText(event) {
45
- const { createdBy, environment, project, data, preData, type } = event;
45
+ const { createdBy, environment, project, data, preData } = event;
46
46
  const feature = this.generateFeatureLink(event);
47
- let strategyText = '';
48
- if (events_1.FEATURE_STRATEGY_UPDATE === type) {
49
- strategyText = `by updating strategy ${data?.name} in *${environment}*`;
50
- }
51
- else if (events_1.FEATURE_STRATEGY_ADD === type) {
52
- strategyText = `by adding strategy ${data?.name} in *${environment}*`;
53
- }
54
- else if (events_1.FEATURE_STRATEGY_REMOVE === type) {
55
- strategyText = `by removing strategy ${preData?.name} in *${environment}*`;
56
- }
57
- return `${createdBy} updated *${feature}* in project *${project}* ${strategyText}`;
47
+ const strategyText = () => {
48
+ switch (data.name) {
49
+ case 'flexibleRollout':
50
+ return this.flexibleRolloutStrategyChangeText(preData, data, environment);
51
+ case 'default':
52
+ return this.defaultStrategyChangeText(preData, data, environment);
53
+ case 'userWithId':
54
+ return this.userWithIdStrategyChangeText(preData, data, environment);
55
+ case 'remoteAddress':
56
+ return this.remoteAddressStrategyChangeText(preData, data, environment);
57
+ case 'applicationHostname':
58
+ return this.applicationHostnameStrategyChangeText(preData, data, environment);
59
+ default:
60
+ return `by updating strategy ${data?.name} in *${environment}*`;
61
+ }
62
+ };
63
+ return `${createdBy} updated *${feature}* in project *${project}* ${strategyText()}`;
64
+ }
65
+ applicationHostnameStrategyChangeText(preData, data, environment) {
66
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'hostNames');
67
+ }
68
+ remoteAddressStrategyChangeText(preData, data, environment) {
69
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'IPs');
70
+ }
71
+ userWithIdStrategyChangeText(preData, data, environment) {
72
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'userIds');
73
+ }
74
+ listOfValuesStrategyChangeText(preData, data, environment, propertyName) {
75
+ const userIdText = (values) => values.length === 0
76
+ ? `empty set of ${propertyName}`
77
+ : `[${values}]`;
78
+ const usersText = preData.parameters[propertyName] === data.parameters[propertyName]
79
+ ? ''
80
+ : ` ${propertyName} from ${userIdText(preData.parameters[propertyName])} to ${userIdText(data.parameters[propertyName])}`;
81
+ const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
82
+ const strategySpecificText = [usersText, constraintText]
83
+ .filter((x) => x.length)
84
+ .join(';');
85
+ return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
86
+ }
87
+ flexibleRolloutStrategyChangeText(preData, data, environment) {
88
+ const { rollout: oldRollout, stickiness: oldStickiness, groupId: oldGroupId, } = preData.parameters;
89
+ const { rollout, stickiness, groupId } = data.parameters;
90
+ const stickinessText = oldStickiness === stickiness
91
+ ? ''
92
+ : ` stickiness from ${oldStickiness} to ${stickiness}`;
93
+ const rolloutText = oldRollout === rollout
94
+ ? ''
95
+ : ` rollout from ${oldRollout}% to ${rollout}%`;
96
+ const groupIdText = oldGroupId === groupId
97
+ ? ''
98
+ : ` groupId from ${oldGroupId} to ${groupId}`;
99
+ const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
100
+ const strategySpecificText = [
101
+ stickinessText,
102
+ rolloutText,
103
+ groupIdText,
104
+ constraintText,
105
+ ]
106
+ .filter((txt) => txt.length)
107
+ .join(';');
108
+ return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
109
+ }
110
+ defaultStrategyChangeText(preData, data, environment) {
111
+ return `by updating strategy ${data?.name} in *${environment}*${this.constraintChangeText(preData.constraints, data.constraints)}`;
112
+ }
113
+ constraintChangeText(oldConstraints, newConstraints) {
114
+ const formatConstraints = (constraints) => {
115
+ const constraintOperatorDescriptions = {
116
+ IN: 'is one of',
117
+ NOT_IN: 'is not one of',
118
+ STR_CONTAINS: 'is a string that contains',
119
+ STR_STARTS_WITH: 'is a string that starts with',
120
+ STR_ENDS_WITH: 'is a string that ends with',
121
+ NUM_EQ: 'is a number equal to',
122
+ NUM_GT: 'is a number greater than',
123
+ NUM_GTE: 'is a number greater than or equal to',
124
+ NUM_LT: 'is a number less than',
125
+ NUM_LTE: 'is a number less than or equal to',
126
+ DATE_BEFORE: 'is a date before',
127
+ DATE_AFTER: 'is a date after',
128
+ SEMVER_EQ: 'is a SemVer equal to',
129
+ SEMVER_GT: 'is a SemVer greater than',
130
+ SEMVER_LT: 'is a SemVer less than',
131
+ };
132
+ const formatConstraint = (constraint) => {
133
+ const val = constraint.hasOwnProperty('value')
134
+ ? constraint.value
135
+ : `(${constraint.values.join(',')})`;
136
+ const operator = constraintOperatorDescriptions.hasOwnProperty(constraint.operator)
137
+ ? constraintOperatorDescriptions[constraint.operator]
138
+ : constraint.operator;
139
+ return `${constraint.contextName} ${constraint.inverted ? 'not ' : ''}${operator} ${val}`;
140
+ };
141
+ return constraints.length === 0
142
+ ? 'empty set of constraints'
143
+ : `[${constraints.map(formatConstraint).join(', ')}]`;
144
+ };
145
+ const oldConstraintText = formatConstraints(oldConstraints);
146
+ const newConstraintText = formatConstraints(newConstraints);
147
+ return oldConstraintText === newConstraintText
148
+ ? ''
149
+ : ` constraints from ${oldConstraintText} to ${newConstraintText}`;
150
+ }
151
+ generateStrategyRemoveText(event) {
152
+ const { createdBy, environment, project, preData } = event;
153
+ const feature = this.generateFeatureLink(event);
154
+ return `${createdBy} updated *${feature}* in project *${project}* by removing strategy ${preData?.name} in *${environment}*`;
155
+ }
156
+ generateStrategyAddText(event) {
157
+ const { createdBy, environment, project, data } = event;
158
+ const feature = this.generateFeatureLink(event);
159
+ return `${createdBy} updated *${feature}* in project *${project}* by adding strategy ${data?.name} in *${environment}*`;
58
160
  }
59
161
  generateMetadataText(event) {
60
162
  const { createdBy, project } = event;
@@ -67,7 +169,7 @@ class FeatureEventFormatterMd {
67
169
  }
68
170
  featureLink(event) {
69
171
  const { type, project = '', featureName } = event;
70
- if (type === events_1.FEATURE_ARCHIVED) {
172
+ if (type === types_1.FEATURE_ARCHIVED) {
71
173
  if (project) {
72
174
  return `${this.unleashUrl}/projects/${project}/archive`;
73
175
  }
@@ -77,11 +179,11 @@ class FeatureEventFormatterMd {
77
179
  }
78
180
  getAction(type) {
79
181
  switch (type) {
80
- case events_1.FEATURE_CREATED:
182
+ case types_1.FEATURE_CREATED:
81
183
  return 'created';
82
- case events_1.FEATURE_UPDATED:
184
+ case types_1.FEATURE_UPDATED:
83
185
  return 'updated';
84
- case events_1.FEATURE_VARIANTS_UPDATED:
186
+ case types_1.FEATURE_VARIANTS_UPDATED:
85
187
  return 'updated variants for';
86
188
  default:
87
189
  return type;
@@ -95,22 +197,24 @@ class FeatureEventFormatterMd {
95
197
  }
96
198
  format(event) {
97
199
  switch (event.type) {
98
- case events_1.FEATURE_ARCHIVED:
99
- case events_1.FEATURE_REVIVED:
200
+ case types_1.FEATURE_ARCHIVED:
201
+ case types_1.FEATURE_REVIVED:
100
202
  return this.generateArchivedText(event);
101
- case events_1.FEATURE_STALE_ON:
102
- case events_1.FEATURE_STALE_OFF:
203
+ case types_1.FEATURE_STALE_ON:
204
+ case types_1.FEATURE_STALE_OFF:
103
205
  return this.generateStaleText(event);
104
- case events_1.FEATURE_ENVIRONMENT_DISABLED:
105
- case events_1.FEATURE_ENVIRONMENT_ENABLED:
206
+ case types_1.FEATURE_ENVIRONMENT_DISABLED:
207
+ case types_1.FEATURE_ENVIRONMENT_ENABLED:
106
208
  return this.generateEnvironmentToggleText(event);
107
- case events_1.FEATURE_STRATEGY_ADD:
108
- case events_1.FEATURE_STRATEGY_REMOVE:
109
- case events_1.FEATURE_STRATEGY_UPDATE:
209
+ case types_1.FEATURE_STRATEGY_REMOVE:
210
+ return this.generateStrategyRemoveText(event);
211
+ case types_1.FEATURE_STRATEGY_ADD:
212
+ return this.generateStrategyAddText(event);
213
+ case types_1.FEATURE_STRATEGY_UPDATE:
110
214
  return this.generateStrategyChangeText(event);
111
- case events_1.FEATURE_METADATA_UPDATED:
215
+ case types_1.FEATURE_METADATA_UPDATED:
112
216
  return this.generateMetadataText(event);
113
- case events_1.FEATURE_PROJECT_CHANGE:
217
+ case types_1.FEATURE_PROJECT_CHANGE:
114
218
  return this.generateProjectChangeText(event);
115
219
  default:
116
220
  return this.defaultText(event);
@@ -1 +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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"}
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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"}