unleash-server 4.2.0 → 4.3.0-beta.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 (263) hide show
  1. package/README.md +1 -0
  2. package/dist/lib/addons/addon.d.ts +2 -1
  3. package/dist/lib/addons/addon.js.map +1 -1
  4. package/dist/lib/addons/datadog.d.ts +2 -1
  5. package/dist/lib/addons/datadog.js.map +1 -1
  6. package/dist/lib/addons/datadog.test.js +3 -0
  7. package/dist/lib/addons/datadog.test.js.map +1 -1
  8. package/dist/lib/addons/feature-event-formatter-md.d.ts +1 -1
  9. package/dist/lib/addons/feature-event-formatter-md.js +13 -14
  10. package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
  11. package/dist/lib/addons/slack.d.ts +2 -1
  12. package/dist/lib/addons/slack.js.map +1 -1
  13. package/dist/lib/addons/slack.test.js +6 -0
  14. package/dist/lib/addons/slack.test.js.map +1 -1
  15. package/dist/lib/addons/teams.d.ts +2 -1
  16. package/dist/lib/addons/teams.js.map +1 -1
  17. package/dist/lib/addons/teams.test.js +3 -0
  18. package/dist/lib/addons/teams.test.js.map +1 -1
  19. package/dist/lib/addons/webhook.d.ts +8 -2
  20. package/dist/lib/addons/webhook.js +0 -1
  21. package/dist/lib/addons/webhook.js.map +1 -1
  22. package/dist/lib/addons/webhook.test.js +2 -0
  23. package/dist/lib/addons/webhook.test.js.map +1 -1
  24. package/dist/lib/create-config.js +11 -20
  25. package/dist/lib/create-config.js.map +1 -1
  26. package/dist/lib/create-config.test.js +0 -37
  27. package/dist/lib/create-config.test.js.map +1 -1
  28. package/dist/lib/db/client-instance-store.js +2 -2
  29. package/dist/lib/db/client-instance-store.js.map +1 -1
  30. package/dist/lib/db/client-metrics-db.js +2 -2
  31. package/dist/lib/db/client-metrics-db.js.map +1 -1
  32. package/dist/lib/db/client-metrics-store-v2.js +5 -1
  33. package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
  34. package/dist/lib/db/client-metrics-store.js +2 -2
  35. package/dist/lib/db/client-metrics-store.js.map +1 -1
  36. package/dist/lib/db/event-store.d.ts +10 -6
  37. package/dist/lib/db/event-store.js +21 -1
  38. package/dist/lib/db/event-store.js.map +1 -1
  39. package/dist/lib/db/feature-strategy-store.js +1 -0
  40. package/dist/lib/db/feature-strategy-store.js.map +1 -1
  41. package/dist/lib/db/feature-toggle-store.d.ts +4 -1
  42. package/dist/lib/db/feature-toggle-store.js +27 -2
  43. package/dist/lib/db/feature-toggle-store.js.map +1 -1
  44. package/dist/lib/db/index.js +2 -0
  45. package/dist/lib/db/index.js.map +1 -1
  46. package/dist/lib/db/session-store.js +2 -1
  47. package/dist/lib/db/session-store.js.map +1 -1
  48. package/dist/lib/db/user-splash-store.d.ts +19 -0
  49. package/dist/lib/db/user-splash-store.js +70 -0
  50. package/dist/lib/db/user-splash-store.js.map +1 -0
  51. package/dist/lib/error/minimum-one-environment-error.d.ts +5 -0
  52. package/dist/lib/error/minimum-one-environment-error.js +24 -0
  53. package/dist/lib/error/minimum-one-environment-error.js.map +1 -0
  54. package/dist/lib/error/operation-denied-error.d.ts +4 -0
  55. package/dist/lib/error/operation-denied-error.js +24 -0
  56. package/dist/lib/error/operation-denied-error.js.map +1 -0
  57. package/dist/lib/metrics.js +20 -12
  58. package/dist/lib/metrics.js.map +1 -1
  59. package/dist/lib/metrics.test.js +1 -0
  60. package/dist/lib/metrics.test.js.map +1 -1
  61. package/dist/lib/middleware/rbac-middleware.js +2 -17
  62. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  63. package/dist/lib/middleware/rbac-middleware.test.js +0 -21
  64. package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
  65. package/dist/lib/middleware/secure-headers.js +2 -1
  66. package/dist/lib/middleware/secure-headers.js.map +1 -1
  67. package/dist/lib/middleware/session-db.js +2 -3
  68. package/dist/lib/middleware/session-db.js.map +1 -1
  69. package/dist/lib/routes/admin-api/event.d.ts +8 -4
  70. package/dist/lib/routes/admin-api/event.js +8 -10
  71. package/dist/lib/routes/admin-api/event.js.map +1 -1
  72. package/dist/lib/routes/admin-api/feature.js +7 -3
  73. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  74. package/dist/lib/routes/admin-api/index.js +2 -0
  75. package/dist/lib/routes/admin-api/index.js.map +1 -1
  76. package/dist/lib/routes/admin-api/project/features.js +11 -8
  77. package/dist/lib/routes/admin-api/project/features.js.map +1 -1
  78. package/dist/lib/routes/admin-api/project/index.js +2 -0
  79. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  80. package/dist/lib/routes/admin-api/project/variants.d.ts +21 -0
  81. package/dist/lib/routes/admin-api/project/variants.js +41 -0
  82. package/dist/lib/routes/admin-api/project/variants.js.map +1 -0
  83. package/dist/lib/routes/admin-api/state.js +2 -3
  84. package/dist/lib/routes/admin-api/state.js.map +1 -1
  85. package/dist/lib/routes/admin-api/user-splash-controller.d.ts +10 -0
  86. package/dist/lib/routes/admin-api/user-splash-controller.js +28 -0
  87. package/dist/lib/routes/admin-api/user-splash-controller.js.map +1 -0
  88. package/dist/lib/routes/admin-api/user.d.ts +2 -1
  89. package/dist/lib/routes/admin-api/user.js +7 -2
  90. package/dist/lib/routes/admin-api/user.js.map +1 -1
  91. package/dist/lib/routes/client-api/feature.test.js +3 -2
  92. package/dist/lib/routes/client-api/feature.test.js.map +1 -1
  93. package/dist/lib/routes/client-api/metrics.d.ts +0 -1
  94. package/dist/lib/routes/client-api/metrics.js +2 -10
  95. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  96. package/dist/lib/routes/util.js +18 -14
  97. package/dist/lib/routes/util.js.map +1 -1
  98. package/dist/lib/schema/feature-schema.d.ts +1 -0
  99. package/dist/lib/schema/feature-schema.js +6 -7
  100. package/dist/lib/schema/feature-schema.js.map +1 -1
  101. package/dist/lib/services/addon-service-test-simple-addon.d.ts +1 -1
  102. package/dist/lib/services/addon-service-test-simple-addon.js.map +1 -1
  103. package/dist/lib/services/addon-service.js +2 -2
  104. package/dist/lib/services/addon-service.js.map +1 -1
  105. package/dist/lib/services/api-token-service.js +2 -2
  106. package/dist/lib/services/api-token-service.js.map +1 -1
  107. package/dist/lib/services/client-metrics/client-metrics-service-v2.js +5 -6
  108. package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -1
  109. package/dist/lib/services/client-metrics/client-metrics.test.js +74 -41
  110. package/dist/lib/services/client-metrics/client-metrics.test.js.map +1 -1
  111. package/dist/lib/services/client-metrics/index.d.ts +6 -5
  112. package/dist/lib/services/client-metrics/index.js +13 -10
  113. package/dist/lib/services/client-metrics/index.js.map +1 -1
  114. package/dist/lib/services/client-metrics/list.d.ts +19 -16
  115. package/dist/lib/services/client-metrics/list.js +6 -4
  116. package/dist/lib/services/client-metrics/list.js.map +1 -1
  117. package/dist/lib/services/client-metrics/list.test.js +9 -5
  118. package/dist/lib/services/client-metrics/list.test.js.map +1 -1
  119. package/dist/lib/services/client-metrics/ttl-list.d.ts +20 -13
  120. package/dist/lib/services/client-metrics/ttl-list.js +26 -15
  121. package/dist/lib/services/client-metrics/ttl-list.js.map +1 -1
  122. package/dist/lib/services/client-metrics/ttl-list.test.js +33 -9
  123. package/dist/lib/services/client-metrics/ttl-list.test.js.map +1 -1
  124. package/dist/lib/services/environment-service.d.ts +2 -1
  125. package/dist/lib/services/environment-service.js +10 -3
  126. package/dist/lib/services/environment-service.js.map +1 -1
  127. package/dist/lib/services/event-service.d.ts +1 -1
  128. package/dist/lib/services/event-service.js +1 -1
  129. package/dist/lib/services/event-service.js.map +1 -1
  130. package/dist/lib/services/feature-tag-service.js +7 -11
  131. package/dist/lib/services/feature-tag-service.js.map +1 -1
  132. package/dist/lib/services/{feature-toggle-service-v2.d.ts → feature-toggle-service.d.ts} +39 -20
  133. package/dist/lib/services/{feature-toggle-service-v2.js → feature-toggle-service.js} +233 -146
  134. package/dist/lib/services/feature-toggle-service.js.map +1 -0
  135. package/dist/lib/services/index.js +6 -2
  136. package/dist/lib/services/index.js.map +1 -1
  137. package/dist/lib/services/project-health-service.d.ts +2 -2
  138. package/dist/lib/services/project-health-service.js +4 -3
  139. package/dist/lib/services/project-health-service.js.map +1 -1
  140. package/dist/lib/services/project-service.d.ts +2 -3
  141. package/dist/lib/services/project-service.js +12 -18
  142. package/dist/lib/services/project-service.js.map +1 -1
  143. package/dist/lib/services/reset-token-service.js +2 -2
  144. package/dist/lib/services/reset-token-service.js.map +1 -1
  145. package/dist/lib/services/state-util.js +1 -1
  146. package/dist/lib/services/state-util.js.map +1 -1
  147. package/dist/lib/services/user-service.d.ts +3 -2
  148. package/dist/lib/services/user-service.js +37 -21
  149. package/dist/lib/services/user-service.js.map +1 -1
  150. package/dist/lib/services/user-splash-service.d.ts +12 -0
  151. package/dist/lib/services/user-splash-service.js +33 -0
  152. package/dist/lib/services/user-splash-service.js.map +1 -0
  153. package/dist/lib/services/version-service.js +2 -2
  154. package/dist/lib/services/version-service.js.map +1 -1
  155. package/dist/lib/types/events.d.ts +165 -2
  156. package/dist/lib/types/events.js +124 -4
  157. package/dist/lib/types/events.js.map +1 -1
  158. package/dist/lib/types/model.d.ts +4 -12
  159. package/dist/lib/types/model.js +6 -1
  160. package/dist/lib/types/model.js.map +1 -1
  161. package/dist/lib/types/services.d.ts +5 -2
  162. package/dist/lib/types/stores/event-store.d.ts +4 -3
  163. package/dist/lib/types/stores/feature-toggle-store.d.ts +3 -1
  164. package/dist/lib/types/stores/user-splash-store.d.ts +15 -0
  165. package/dist/lib/types/stores/user-splash-store.js +3 -0
  166. package/dist/lib/types/stores/user-splash-store.js.map +1 -0
  167. package/dist/lib/types/stores.d.ts +2 -0
  168. package/dist/lib/util/constants.d.ts +0 -2
  169. package/dist/lib/util/constants.js +1 -3
  170. package/dist/lib/util/constants.js.map +1 -1
  171. package/dist/migrations/20211105104316-add-feature-name-column-to-events.d.ts +2 -0
  172. package/dist/migrations/20211105104316-add-feature-name-column-to-events.js +16 -0
  173. package/dist/migrations/20211105104316-add-feature-name-column-to-events.js.map +1 -0
  174. package/dist/migrations/20211105105509-add-predata-column-to-events.d.ts +2 -0
  175. package/dist/migrations/20211105105509-add-predata-column-to-events.js +8 -0
  176. package/dist/migrations/20211105105509-add-predata-column-to-events.js.map +1 -0
  177. package/dist/migrations/20211108130333-create-user-splash-table.d.ts +2 -0
  178. package/dist/migrations/20211108130333-create-user-splash-table.js +18 -0
  179. package/dist/migrations/20211108130333-create-user-splash-table.js.map +1 -0
  180. package/dist/migrations/20211109103930-add-splash-entry-for-users.d.ts +2 -0
  181. package/dist/migrations/20211109103930-add-splash-entry-for-users.js +7 -0
  182. package/dist/migrations/20211109103930-add-splash-entry-for-users.js.map +1 -0
  183. package/dist/migrations/20211126112551-disable-default-environment.d.ts +2 -0
  184. package/dist/migrations/20211126112551-disable-default-environment.js +24 -0
  185. package/dist/migrations/20211126112551-disable-default-environment.js.map +1 -0
  186. package/dist/migrator.js +9 -2
  187. package/dist/migrator.js.map +1 -1
  188. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +18 -14
  189. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -1
  190. package/dist/test/e2e/api/admin/feature-archive.e2e.test.js +1 -2
  191. package/dist/test/e2e/api/admin/feature-archive.e2e.test.js.map +1 -1
  192. package/dist/test/e2e/api/admin/feature.e2e.test.js +43 -20
  193. package/dist/test/e2e/api/admin/feature.e2e.test.js.map +1 -1
  194. package/dist/test/e2e/api/admin/metrics.e2e.test.js +5 -3
  195. package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
  196. package/dist/test/e2e/api/admin/project/environments.e2e.test.js +10 -0
  197. package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
  198. package/dist/test/e2e/api/admin/project/features.e2e.test.js +145 -8
  199. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
  200. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +60 -0
  201. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
  202. package/dist/{lib/event-differ.test.d.ts → test/e2e/api/admin/project/variants.e2e.test.d.ts} +0 -0
  203. package/dist/test/e2e/api/admin/project/variants.e2e.test.js +727 -0
  204. package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -0
  205. package/dist/test/e2e/api/admin/splash.e2e.test.d.ts +1 -0
  206. package/dist/test/e2e/api/admin/splash.e2e.test.js +51 -0
  207. package/dist/test/e2e/api/admin/splash.e2e.test.js.map +1 -0
  208. package/dist/test/e2e/api/admin/state.e2e.test.js +17 -13
  209. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  210. package/dist/test/e2e/api/admin/user-admin.e2e.test.js +2 -16
  211. package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
  212. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +8 -4
  213. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -1
  214. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +4 -4
  215. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  216. package/dist/test/e2e/api/client/register.e2e.test.js +1 -1
  217. package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
  218. package/dist/test/e2e/services/addon-service.e2e.test.js +1 -1
  219. package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
  220. package/dist/test/e2e/services/api-token-service.e2e.test.js +5 -3
  221. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  222. package/dist/test/e2e/services/client-metrics-service.e2e.test.js +5 -2
  223. package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
  224. package/dist/test/e2e/services/environment-service.test.js +1 -1
  225. package/dist/test/e2e/services/environment-service.test.js.map +1 -1
  226. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +14 -11
  227. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  228. package/dist/test/e2e/services/project-health-service.e2e.test.js +2 -2
  229. package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
  230. package/dist/test/e2e/services/project-service.e2e.test.js +2 -32
  231. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  232. package/dist/test/e2e/services/session-service.e2e.test.js +5 -4
  233. package/dist/test/e2e/services/session-service.e2e.test.js.map +1 -1
  234. package/dist/test/e2e/services/user-service.e2e.test.js +3 -2
  235. package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
  236. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +4 -6
  237. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -1
  238. package/dist/test/e2e/stores/event-store.e2e.test.js +1 -1
  239. package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
  240. package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js +1 -1
  241. package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js.map +1 -1
  242. package/dist/test/e2e/stores/user-splash-store.e2e.test.d.ts +1 -0
  243. package/dist/test/e2e/stores/user-splash-store.e2e.test.js +74 -0
  244. package/dist/test/e2e/stores/user-splash-store.e2e.test.js.map +1 -0
  245. package/dist/test/fixtures/fake-event-store.d.ts +2 -1
  246. package/dist/test/fixtures/fake-event-store.js +3 -0
  247. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  248. package/dist/test/fixtures/fake-feature-toggle-store.d.ts +3 -1
  249. package/dist/test/fixtures/fake-feature-toggle-store.js +9 -0
  250. package/dist/test/fixtures/fake-feature-toggle-store.js.map +1 -1
  251. package/dist/test/fixtures/fake-user-splash-store.d.ts +12 -0
  252. package/dist/test/fixtures/fake-user-splash-store.js +40 -0
  253. package/dist/test/fixtures/fake-user-splash-store.js.map +1 -0
  254. package/dist/test/fixtures/store.js +2 -0
  255. package/dist/test/fixtures/store.js.map +1 -1
  256. package/docs/api/oas/openapi.yaml +35 -55
  257. package/package.json +17 -18
  258. package/dist/lib/event-differ.d.ts +0 -1
  259. package/dist/lib/event-differ.js +0 -117
  260. package/dist/lib/event-differ.js.map +0 -1
  261. package/dist/lib/event-differ.test.js +0 -142
  262. package/dist/lib/event-differ.test.js.map +0 -1
  263. package/dist/lib/services/feature-toggle-service-v2.js.map +0 -1
@@ -9,6 +9,7 @@ let stores;
9
9
  let db;
10
10
  let featureToggleStore;
11
11
  beforeAll(async () => {
12
+ no_logger_1.default.setMuteError(true);
12
13
  db = await (0, database_init_1.default)('feature_toggle_store_serial', no_logger_1.default);
13
14
  stores = db.stores;
14
15
  featureToggleStore = stores.featureToggleStore;
@@ -21,7 +22,6 @@ test('should not crash for unknown toggle', async () => {
21
22
  expect(project).toBe(undefined);
22
23
  });
23
24
  test('should not crash for undefined toggle name', async () => {
24
- no_logger_1.default.setMuteError(true);
25
25
  const project = await featureToggleStore.getProjectId(undefined);
26
26
  expect(project).toBe(undefined);
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"feature-toggle-store.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/stores/feature-toggle-store.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,6EAA8C;AAC9C,yEAAiD;AAEjD,IAAI,MAAM,CAAC;AACX,IAAI,EAAE,CAAC;AACP,IAAI,kBAAkB,CAAC;AAEvB,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,EAAE,GAAG,MAAM,IAAA,uBAAM,EAAC,6BAA6B,EAAE,mBAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACnB,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CACjD,qBAAqB,CACxB,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,mBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"feature-toggle-store.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/stores/feature-toggle-store.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,6EAA8C;AAC9C,yEAAiD;AAEjD,IAAI,MAAM,CAAC;AACX,IAAI,EAAE,CAAC;AACP,IAAI,kBAAkB,CAAC;AAEvB,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,mBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,EAAE,GAAG,MAAM,IAAA,uBAAM,EAAC,6BAA6B,EAAE,mBAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACnB,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CACjD,qBAAqB,CACxB,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const database_init_1 = __importDefault(require("../helpers/database-init"));
7
+ const no_logger_1 = __importDefault(require("../../fixtures/no-logger"));
8
+ let stores;
9
+ let db;
10
+ let userSplashStore;
11
+ let userStore;
12
+ let currentUser;
13
+ beforeAll(async () => {
14
+ db = await (0, database_init_1.default)('user_splash_store', no_logger_1.default);
15
+ stores = db.stores;
16
+ userSplashStore = stores.userSplashStore;
17
+ userStore = stores.userStore;
18
+ currentUser = await userStore.upsert({ email: 'me.feedback@mail.com' });
19
+ });
20
+ afterAll(async () => {
21
+ await db.destroy();
22
+ });
23
+ afterEach(async () => {
24
+ await userSplashStore.deleteAll();
25
+ });
26
+ test('should create userSplash', async () => {
27
+ await userSplashStore.updateSplash({
28
+ splashId: 'some-id',
29
+ userId: currentUser.id,
30
+ seen: false,
31
+ });
32
+ const userSplashs = await userSplashStore.getAllUserSplashs(currentUser.id);
33
+ expect(userSplashs).toHaveLength(1);
34
+ expect(userSplashs[0].splashId).toBe('some-id');
35
+ });
36
+ test('should get userSplash', async () => {
37
+ await userSplashStore.updateSplash({
38
+ splashId: 'some-id',
39
+ userId: currentUser.id,
40
+ seen: false,
41
+ });
42
+ const userSplash = await userSplashStore.getSplash(currentUser.id, 'some-id');
43
+ expect(userSplash.splashId).toBe('some-id');
44
+ });
45
+ test('should exists', async () => {
46
+ await userSplashStore.updateSplash({
47
+ splashId: 'some-id-3',
48
+ userId: currentUser.id,
49
+ seen: false,
50
+ });
51
+ const exists = await userSplashStore.exists({
52
+ userId: currentUser.id,
53
+ splashId: 'some-id-3',
54
+ });
55
+ expect(exists).toBe(true);
56
+ });
57
+ test('should not exists', async () => {
58
+ const exists = await userSplashStore.exists({
59
+ userId: currentUser.id,
60
+ splashId: 'some-id-not-here',
61
+ });
62
+ expect(exists).toBe(false);
63
+ });
64
+ test('should get all userSplashs', async () => {
65
+ await userSplashStore.updateSplash({
66
+ splashId: 'some-id-2',
67
+ userId: currentUser.id,
68
+ seen: false,
69
+ });
70
+ const userSplashs = await userSplashStore.getAll();
71
+ expect(userSplashs).toHaveLength(1);
72
+ expect(userSplashs[0].splashId).toBe('some-id-2');
73
+ });
74
+ //# sourceMappingURL=user-splash-store.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-splash-store.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/stores/user-splash-store.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import EventEmitter from 'events';
3
3
  import { IEventStore } from '../../lib/types/stores/event-store';
4
- import { IEvent } from '../../lib/types/model';
4
+ import { IEvent } from '../../lib/types/events';
5
5
  declare class FakeEventStore extends EventEmitter implements IEventStore {
6
6
  events: IEvent[];
7
7
  constructor();
8
+ getEventsForFeature(featureName: string): Promise<IEvent[]>;
8
9
  store(event: IEvent): Promise<void>;
9
10
  batchStore(events: IEvent[]): Promise<void>;
10
11
  getEvents(): Promise<IEvent[]>;
@@ -10,6 +10,9 @@ class FakeEventStore extends events_1.default {
10
10
  this.setMaxListeners(0);
11
11
  this.events = [];
12
12
  }
13
+ async getEventsForFeature(featureName) {
14
+ return this.events.filter((e) => e.featureName === featureName);
15
+ }
13
16
  store(event) {
14
17
  this.events.push(event);
15
18
  this.emit(event.type, event);
@@ -1 +1 @@
1
- {"version":3,"file":"fake-event-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-event-store.ts"],"names":[],"mappings":";;;;;AAAA,oDAAkC;AAIlC,MAAM,cAAe,SAAQ,gBAAY;IAGrC;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAa;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,MAAgB;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAC1C,CAAC,CACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAe;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;AAChC,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"fake-event-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-event-store.ts"],"names":[],"mappings":";;;;;AAAA,oDAAkC;AAIlC,MAAM,cAAe,SAAQ,gBAAY;IAGrC;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,WAAmB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,KAAa;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,MAAgB;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAC1C,CAAC,CACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAe;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC5D,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;AAChC,kBAAe,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { IFeatureToggleQuery, IFeatureToggleStore } from '../../lib/types/stores/feature-toggle-store';
2
- import { FeatureToggle, FeatureToggleDTO } from '../../lib/types/model';
2
+ import { FeatureToggle, FeatureToggleDTO, IVariant } from '../../lib/types/model';
3
3
  export default class FakeFeatureToggleStore implements IFeatureToggleStore {
4
4
  features: FeatureToggle[];
5
5
  archive(featureName: string): Promise<FeatureToggle>;
@@ -18,4 +18,6 @@ export default class FakeFeatureToggleStore implements IFeatureToggleStore {
18
18
  revive(featureName: string): Promise<FeatureToggle>;
19
19
  update(project: string, data: FeatureToggleDTO): Promise<FeatureToggle>;
20
20
  setLastSeen(toggleNames: string[]): Promise<void>;
21
+ getVariants(featureName: string): Promise<IVariant[]>;
22
+ saveVariants(featureName: string, newVariants: IVariant[]): Promise<FeatureToggle>;
21
23
  }
@@ -97,6 +97,15 @@ class FakeFeatureToggleStore {
97
97
  }
98
98
  });
99
99
  }
100
+ async getVariants(featureName) {
101
+ const feature = await this.get(featureName);
102
+ return feature.variants;
103
+ }
104
+ async saveVariants(featureName, newVariants) {
105
+ const feature = await this.get(featureName);
106
+ feature.variants = newVariants;
107
+ return feature;
108
+ }
100
109
  }
101
110
  exports.default = FakeFeatureToggleStore;
102
111
  //# sourceMappingURL=fake-feature-toggle-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-feature-toggle-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-feature-toggle-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-feature-toggle-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-feature-toggle-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { IUserSplashKey, IUserSplash, IUserSplashStore } from '../../lib/types/stores/user-splash-store';
2
+ export default class FakeUserSplashStore implements IUserSplashStore {
3
+ getAllUserSplashs(userId: number): Promise<IUserSplash[]>;
4
+ getSplash(userId: number, splashId: string): Promise<IUserSplash>;
5
+ updateSplash(splash: IUserSplash): Promise<IUserSplash>;
6
+ exists(key: IUserSplashKey): Promise<boolean>;
7
+ get(key: IUserSplashKey): Promise<IUserSplash>;
8
+ getAll(): Promise<IUserSplash[]>;
9
+ delete(key: IUserSplashKey): Promise<void>;
10
+ deleteAll(): Promise<void>;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class FakeUserSplashStore {
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ getAllUserSplashs(userId) {
6
+ return Promise.resolve([]);
7
+ }
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ getSplash(userId, splashId) {
10
+ return Promise.resolve(undefined);
11
+ }
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ updateSplash(splash) {
14
+ return Promise.resolve(undefined);
15
+ }
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ exists(key) {
18
+ return Promise.resolve(false);
19
+ }
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ get(key) {
22
+ return Promise.resolve(undefined);
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ getAll() {
26
+ return Promise.resolve([]);
27
+ }
28
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
+ delete(key) {
30
+ return Promise.resolve(undefined);
31
+ }
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ deleteAll() {
34
+ return Promise.resolve(undefined);
35
+ }
36
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
+ destroy() { }
38
+ }
39
+ exports.default = FakeUserSplashStore;
40
+ //# sourceMappingURL=fake-user-splash-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-user-splash-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-user-splash-store.ts"],"names":[],"mappings":";;AAMA,MAAqB,mBAAmB;IACpC,6DAA6D;IAC7D,iBAAiB,CAAC,MAAc;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,MAAc,EAAE,QAAgB;QACtC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,MAAmB;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,GAAmB;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,6DAA6D;IAC7D,GAAG,CAAC,GAAmB;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,MAAM;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,GAAmB;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,SAAS;QACL,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,OAAO,KAAU,CAAC;CACrB;AA3CD,sCA2CC"}
@@ -28,6 +28,7 @@ const fake_feature_type_store_1 = __importDefault(require("./fake-feature-type-s
28
28
  const fake_reset_token_store_1 = __importDefault(require("./fake-reset-token-store"));
29
29
  const fake_feature_toggle_client_store_1 = __importDefault(require("./fake-feature-toggle-client-store"));
30
30
  const fake_client_metrics_store_v2_1 = __importDefault(require("./fake-client-metrics-store-v2"));
31
+ const fake_user_splash_store_1 = __importDefault(require("./fake-user-splash-store"));
31
32
  const createStores = () => {
32
33
  const db = {
33
34
  select: () => ({
@@ -61,6 +62,7 @@ const createStores = () => {
61
62
  featureTypeStore: new fake_feature_type_store_1.default(),
62
63
  resetTokenStore: new fake_reset_token_store_1.default(),
63
64
  sessionStore: new fake_session_store_1.default(),
65
+ userSplashStore: new fake_user_splash_store_1.default(),
64
66
  };
65
67
  };
66
68
  exports.default = createStores;
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/test/fixtures/store.ts"],"names":[],"mappings":";;;;;AAAA,oGAAyE;AACzE,4FAAiE;AACjE,8FAAmE;AACnE,sGAA2E;AAC3E,4FAAiE;AACjE,sEAA4C;AAC5C,gFAAqD;AACrD,0EAAgD;AAChD,0FAA+D;AAC/D,8EAAoD;AACpD,0EAAgD;AAChD,8EAAoD;AACpD,wEAA8C;AAC9C,4EAAkD;AAClD,0FAA+D;AAC/D,sFAA2D;AAC3D,sFAA4D;AAC5D,oFAA0D;AAE1D,8EAAoD;AACpD,sGAA2E;AAC3E,kFAAuD;AACvD,wFAA6D;AAC7D,sFAA2D;AAC3D,0GAA8E;AAC9E,kGAAsE;AAEtE,MAAM,YAAY,GAAyB,GAAG,EAAE;IAC5C,MAAM,EAAE,GAAG;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;SAChC,CAAC;KACL,CAAC;IAEF,OAAO;QACH,EAAE;QACF,uBAAuB,EAAE,IAAI,wCAA2B,EAAE;QAC1D,kBAAkB,EAAE,IAAI,mCAAsB,EAAE;QAChD,oBAAoB,EAAE,IAAI,sCAAwB,EAAE;QACpD,mBAAmB,EAAE,IAAI,oCAAuB,EAAE;QAClD,kBAAkB,EAAE,IAAI,mCAAsB,EAAE;QAChD,wBAAwB,EAAE,IAAI,0CAA4B,EAAE;QAC5D,QAAQ,EAAE,IAAI,wBAAY,EAAE;QAC5B,YAAY,EAAE,IAAI,6BAAgB,EAAE;QACpC,UAAU,EAAE,IAAI,0BAAc,EAAE;QAChC,aAAa,EAAE,IAAI,+BAAmB,EAAE;QACxC,iBAAiB,EAAE,IAAI,kCAAqB,EAAE;QAC9C,YAAY,EAAE,IAAI,4BAAgB,EAAE;QACpC,UAAU,EAAE,IAAI,0BAAc,EAAE;QAChC,YAAY,EAAE,IAAI,4BAAgB,EAAE;QACpC,SAAS,EAAE,IAAI,yBAAa,EAAE;QAC9B,WAAW,EAAE,IAAI,2BAAe,EAAE;QAClC,iBAAiB,EAAE,IAAI,kCAAqB,EAAE;QAC9C,sBAAsB,EAAE,IAAI,uCAA0B,EAAE;QACxD,eAAe,EAAE,IAAI,gCAAmB,EAAE;QAC1C,gBAAgB,EAAE,IAAI,gCAAoB,EAAE;QAC5C,uBAAuB,EAAE,IAAI,wCAA2B,EAAE;QAC1D,aAAa,EAAE,IAAI,8BAAiB,EAAE;QACtC,gBAAgB,EAAE,IAAI,iCAAoB,EAAE;QAC5C,eAAe,EAAE,IAAI,gCAAmB,EAAE;QAC1C,YAAY,EAAE,IAAI,4BAAgB,EAAE;KACvC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/test/fixtures/store.ts"],"names":[],"mappings":";;;;;AAAA,oGAAyE;AACzE,4FAAiE;AACjE,8FAAmE;AACnE,sGAA2E;AAC3E,4FAAiE;AACjE,sEAA4C;AAC5C,gFAAqD;AACrD,0EAAgD;AAChD,0FAA+D;AAC/D,8EAAoD;AACpD,0EAAgD;AAChD,8EAAoD;AACpD,wEAA8C;AAC9C,4EAAkD;AAClD,0FAA+D;AAC/D,sFAA2D;AAC3D,sFAA4D;AAC5D,oFAA0D;AAE1D,8EAAoD;AACpD,sGAA2E;AAC3E,kFAAuD;AACvD,wFAA6D;AAC7D,sFAA2D;AAC3D,0GAA8E;AAC9E,kGAAsE;AACtE,sFAA2D;AAE3D,MAAM,YAAY,GAAyB,GAAG,EAAE;IAC5C,MAAM,EAAE,GAAG;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;SAChC,CAAC;KACL,CAAC;IAEF,OAAO;QACH,EAAE;QACF,uBAAuB,EAAE,IAAI,wCAA2B,EAAE;QAC1D,kBAAkB,EAAE,IAAI,mCAAsB,EAAE;QAChD,oBAAoB,EAAE,IAAI,sCAAwB,EAAE;QACpD,mBAAmB,EAAE,IAAI,oCAAuB,EAAE;QAClD,kBAAkB,EAAE,IAAI,mCAAsB,EAAE;QAChD,wBAAwB,EAAE,IAAI,0CAA4B,EAAE;QAC5D,QAAQ,EAAE,IAAI,wBAAY,EAAE;QAC5B,YAAY,EAAE,IAAI,6BAAgB,EAAE;QACpC,UAAU,EAAE,IAAI,0BAAc,EAAE;QAChC,aAAa,EAAE,IAAI,+BAAmB,EAAE;QACxC,iBAAiB,EAAE,IAAI,kCAAqB,EAAE;QAC9C,YAAY,EAAE,IAAI,4BAAgB,EAAE;QACpC,UAAU,EAAE,IAAI,0BAAc,EAAE;QAChC,YAAY,EAAE,IAAI,4BAAgB,EAAE;QACpC,SAAS,EAAE,IAAI,yBAAa,EAAE;QAC9B,WAAW,EAAE,IAAI,2BAAe,EAAE;QAClC,iBAAiB,EAAE,IAAI,kCAAqB,EAAE;QAC9C,sBAAsB,EAAE,IAAI,uCAA0B,EAAE;QACxD,eAAe,EAAE,IAAI,gCAAmB,EAAE;QAC1C,gBAAgB,EAAE,IAAI,gCAAoB,EAAE;QAC5C,uBAAuB,EAAE,IAAI,wCAA2B,EAAE;QAC1D,aAAa,EAAE,IAAI,8BAAiB,EAAE;QACtC,gBAAgB,EAAE,IAAI,iCAAoB,EAAE;QAC5C,eAAe,EAAE,IAAI,gCAAmB,EAAE;QAC1C,YAAY,EAAE,IAAI,4BAAgB,EAAE;QACpC,eAAe,EAAE,IAAI,gCAAmB,EAAE;KAC7C,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -660,13 +660,19 @@ paths:
660
660
  operationId: get-admin-events
661
661
  summary: Fetch all changes in the Unleash system
662
662
  description: |-
663
- Returns one of the six event types:
663
+ Returns one of the twelve event types:
664
664
  - feature-created
665
- - feature-updated
665
+ - feature-metadata-updated
666
+ - feature-project-change
666
667
  - feature-archived
667
668
  - feature-revived
668
- - strategy-created
669
- - strategy-deleted
669
+ - feature-strategy-update
670
+ - feature-strategy-add
671
+ - feature-strategy-remove
672
+ - feature-stale-on
673
+ - feature-stale-off
674
+ - feature-environment-enabled
675
+ - feature-environment-disabled
670
676
  tags:
671
677
  - Events
672
678
  responses:
@@ -1548,15 +1554,21 @@ components:
1548
1554
  type: number
1549
1555
  example: 55
1550
1556
  type:
1551
- description: One of the six event types
1557
+ description: Identifies the event
1552
1558
  type: string
1553
1559
  enum:
1554
1560
  - feature-created
1555
- - feature-updated
1561
+ - feature-metadata-updated
1562
+ - feature-project-change
1556
1563
  - feature-archived
1557
1564
  - feature-revived
1558
- - strategy-created
1559
- - strategy-deleted
1565
+ - feature-strategy-update
1566
+ - feature-strategy-add
1567
+ - feature-strategy-remove
1568
+ - feature-stale-on
1569
+ - feature-stale-off
1570
+ - feature-environment-enabled
1571
+ - feature-environment-disabled
1560
1572
  minLength: 1
1561
1573
  example: feature-updated
1562
1574
  createdBy:
@@ -1568,53 +1580,21 @@ components:
1568
1580
  type: string
1569
1581
  example: '2016-12-09T14:56:36.730Z'
1570
1582
  data:
1571
- $ref: '#/components/schemas/featureToggleSchema'
1572
- diffs:
1573
- description: |-
1574
- The JSON differences between the current and last version of the Feature Toggle.
1575
- (Uses the [deep-diff Node.js module](https://www.npmjs.com/package/deep-diff))
1576
- externalDocs:
1577
- description: Activation strategies
1578
- url: 'https://www.npmjs.com/package/deep-diff#differences'
1579
- type: array
1580
- items:
1581
- required:
1582
- - kind
1583
- - lhs
1584
- - rhs
1585
- properties:
1586
- kind:
1587
- description: |-
1588
- The kind of change:
1589
- - **N** - a newly-added property or element
1590
- - **D** - a property or element was deleted
1591
- - **E** - a property or element was edited
1592
- - **A** - a change occurred within an array
1593
- type: string
1594
- enum:
1595
- - 'N'
1596
- - D
1597
- - E
1598
- - A
1599
- example: E
1600
- path:
1601
- type: array
1602
- items:
1603
- required:
1604
- - pathItem
1605
- properties:
1606
- pathItem:
1607
- description: The property path (from the left-hand-side root)
1608
- type: string
1609
- example: enabled
1610
- lhs:
1611
- description: The value on the left-hand-side of the comparison (*undefined* if **kind** is *N*)
1612
- type: boolean
1613
- example: true
1614
- rhs:
1615
- description: The value on the right-hand-side of the comparison (*undefined* if **kind** is *D*)
1616
- type: boolean
1617
- example: false
1583
+ description: The current state of the updated resource
1584
+ type: object
1585
+ preData:
1586
+ description: The previous state of the updated resource
1587
+ type: object
1588
+ featureName:
1589
+ description: Name of the feature toggle (if event related to a feature toggle)
1590
+ type: string
1591
+ project:
1592
+ description: Name of the project (if event related to a project resource)
1593
+ type: string
1594
+ environment:
1595
+ description: Name of the environment (if event related to a environment resource)
1596
+ type: string
1597
+
1618
1598
  x-tags:
1619
1599
  - Responses
1620
1600
  200export:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unleash-server",
3
3
  "description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
4
- "version": "4.2.0",
4
+ "version": "4.3.0-beta.2",
5
5
  "keywords": [
6
6
  "unleash",
7
7
  "feature toggle",
@@ -82,10 +82,9 @@
82
82
  "cookie-session": "^2.0.0-rc.1",
83
83
  "cors": "^2.8.5",
84
84
  "date-fns": "^2.25.0",
85
- "db-migrate": "0.11.12",
85
+ "db-migrate": "0.11.13",
86
86
  "db-migrate-pg": "1.2.2",
87
87
  "db-migrate-shared": "1.2.0",
88
- "deep-diff": "^1.0.2",
89
88
  "deepmerge": "^4.2.2",
90
89
  "errorhandler": "^1.5.1",
91
90
  "express": "^4.17.1",
@@ -95,11 +94,10 @@
95
94
  "helmet": "^4.1.0",
96
95
  "joi": "^17.3.0",
97
96
  "js-yaml": "^4.1.0",
98
- "knex": "0.95.12",
97
+ "knex": "0.95.14",
99
98
  "log4js": "^6.0.0",
100
99
  "memoizee": "^0.4.15",
101
100
  "mime": "^2.4.2",
102
- "moment": "^2.24.0",
103
101
  "multer": "^1.4.1",
104
102
  "mustache": "^4.1.0",
105
103
  "node-fetch": "^2.6.1",
@@ -113,7 +111,7 @@
113
111
  "response-time": "^2.3.2",
114
112
  "serve-favicon": "^2.5.0",
115
113
  "stoppable": "^1.1.0",
116
- "unleash-frontend": "4.2.11",
114
+ "unleash-frontend": "4.3.0-beta.2",
117
115
  "uuid": "^8.3.2"
118
116
  },
119
117
  "devDependencies": {
@@ -121,26 +119,27 @@
121
119
  "@types/express": "4.17.13",
122
120
  "@types/express-session": "1.17.4",
123
121
  "@types/faker": "5.5.9",
124
- "@types/jest": "27.0.2",
125
- "@types/js-yaml": "4.0.4",
122
+ "@types/jest": "27.0.3",
123
+ "@types/js-yaml": "4.0.5",
126
124
  "@types/memoizee": "0.4.6",
125
+ "@types/mime": "2.0.3",
127
126
  "@types/node": "16.6.1",
128
127
  "@types/node-fetch": "2.5.12",
129
128
  "@types/nodemailer": "6.4.4",
130
129
  "@types/owasp-password-strength-test": "1.3.0",
131
130
  "@types/stoppable": "1.1.1",
132
131
  "@types/supertest": "2.0.11",
133
- "@types/uuid": "8.3.1",
134
- "@typescript-eslint/eslint-plugin": "5.2.0",
135
- "@typescript-eslint/parser": "5.2.0",
132
+ "@types/uuid": "8.3.3",
133
+ "@typescript-eslint/eslint-plugin": "5.4.0",
134
+ "@typescript-eslint/parser": "5.4.0",
136
135
  "copyfiles": "2.4.1",
137
136
  "coveralls": "3.1.1",
138
137
  "del-cli": "4.0.1",
139
- "eslint": "8.1.0",
140
- "eslint-config-airbnb-base": "14.2.1",
141
- "eslint-config-airbnb-typescript": "14.0.1",
138
+ "eslint": "8.3.0",
139
+ "eslint-config-airbnb-base": "15.0.0",
140
+ "eslint-config-airbnb-typescript": "16.0.0",
142
141
  "eslint-config-prettier": "8.3.0",
143
- "eslint-plugin-import": "2.25.2",
142
+ "eslint-plugin-import": "2.25.3",
144
143
  "eslint-plugin-prettier": "4.0.0",
145
144
  "faker": "5.5.3",
146
145
  "fetch-mock": "9.11.0",
@@ -148,15 +147,15 @@
148
147
  "jest": "27.3.1",
149
148
  "jest-fetch-mock": "3.0.3",
150
149
  "lint-staged": "11.2.6",
151
- "prettier": "2.4.1",
150
+ "prettier": "2.5.0",
152
151
  "proxyquire": "2.1.3",
153
- "source-map-support": "0.5.20",
152
+ "source-map-support": "0.5.21",
154
153
  "superagent": "6.1.0",
155
154
  "supertest": "6.1.6",
156
155
  "ts-jest": "27.0.7",
157
156
  "ts-node": "10.4.0",
158
157
  "tsc-watch": "4.5.0",
159
- "typescript": "4.4.4"
158
+ "typescript": "4.5.2"
160
159
  },
161
160
  "resolutions": {
162
161
  "db-migrate/rc/minimist": "^1.2.5",
@@ -1 +0,0 @@
1
- export function addDiffs(events?: any[]): void;
@@ -1,117 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- 'use strict';
3
- const { diff } = require('deep-diff');
4
- const { STRATEGY_CREATED, STRATEGY_DELETED, STRATEGY_UPDATED, STRATEGY_IMPORT, STRATEGY_DEPRECATED, STRATEGY_REACTIVATED, DROP_STRATEGIES, FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, FEATURE_IMPORT, FEATURE_TAGGED, FEATURE_UNTAGGED, DROP_FEATURES, CONTEXT_FIELD_CREATED, CONTEXT_FIELD_UPDATED, CONTEXT_FIELD_DELETED, PROJECT_CREATED, PROJECT_UPDATED, PROJECT_DELETED, TAG_CREATED, TAG_DELETED, TAG_TYPE_CREATED, TAG_TYPE_DELETED, APPLICATION_CREATED, FEATURE_STALE_ON, FEATURE_STALE_OFF, USER_CREATED, USER_UPDATED, USER_DELETED, } = require('./types/events');
5
- const strategyTypes = [
6
- STRATEGY_CREATED,
7
- STRATEGY_DELETED,
8
- STRATEGY_UPDATED,
9
- STRATEGY_IMPORT,
10
- STRATEGY_DEPRECATED,
11
- STRATEGY_REACTIVATED,
12
- DROP_STRATEGIES,
13
- ];
14
- const featureTypes = [
15
- FEATURE_CREATED,
16
- FEATURE_UPDATED,
17
- FEATURE_ARCHIVED,
18
- FEATURE_REVIVED,
19
- FEATURE_IMPORT,
20
- FEATURE_TAGGED,
21
- FEATURE_UNTAGGED,
22
- DROP_FEATURES,
23
- FEATURE_STALE_ON,
24
- FEATURE_STALE_OFF,
25
- ];
26
- const contextTypes = [
27
- CONTEXT_FIELD_CREATED,
28
- CONTEXT_FIELD_DELETED,
29
- CONTEXT_FIELD_UPDATED,
30
- ];
31
- const userTypes = [USER_CREATED, USER_UPDATED, USER_DELETED];
32
- const tagTypes = [TAG_CREATED, TAG_DELETED];
33
- const tagTypeTypes = [TAG_TYPE_CREATED, TAG_TYPE_DELETED];
34
- const projectTypes = [PROJECT_CREATED, PROJECT_UPDATED, PROJECT_DELETED];
35
- function baseTypeFor(event) {
36
- if (featureTypes.indexOf(event.type) !== -1) {
37
- return 'features';
38
- }
39
- if (strategyTypes.indexOf(event.type) !== -1) {
40
- return 'strategies';
41
- }
42
- if (contextTypes.indexOf(event.type) !== -1) {
43
- return 'context';
44
- }
45
- if (projectTypes.indexOf(event.type) !== -1) {
46
- return 'project';
47
- }
48
- if (tagTypes.indexOf(event.type) !== -1) {
49
- return 'tag';
50
- }
51
- if (tagTypeTypes.indexOf(event.type) !== -1) {
52
- return 'tag-type';
53
- }
54
- if (userTypes.indexOf(event.type) !== -1) {
55
- return 'user';
56
- }
57
- if (event.type === APPLICATION_CREATED) {
58
- return 'application';
59
- }
60
- return event.type;
61
- }
62
- const uniqueFieldForType = (baseType) => {
63
- if (baseType === 'user') {
64
- return 'id';
65
- }
66
- return 'name';
67
- };
68
- function groupByBaseTypeAndName(events) {
69
- const groups = {};
70
- events.forEach((event) => {
71
- const baseType = baseTypeFor(event);
72
- const uniqueField = uniqueFieldForType(baseType);
73
- groups[baseType] = groups[baseType] || {};
74
- groups[baseType][event.data[uniqueField]] =
75
- groups[baseType][event.data[uniqueField]] || [];
76
- groups[baseType][event.data[uniqueField]].push(event);
77
- });
78
- return groups;
79
- }
80
- function eachConsecutiveEvent(events, callback) {
81
- const groups = groupByBaseTypeAndName(events);
82
- Object.keys(groups).forEach((baseType) => {
83
- const group = groups[baseType];
84
- Object.keys(group).forEach((name) => {
85
- const currentEvents = group[name];
86
- let left;
87
- let right;
88
- let i;
89
- let l;
90
- for (i = 0, l = currentEvents.length; i < l; i++) {
91
- left = currentEvents[i];
92
- right = currentEvents[i + 1];
93
- callback(left, right);
94
- }
95
- });
96
- });
97
- }
98
- const ignoredProps = ['createdAt', 'lastSeenAt', 'id'];
99
- const filterProps = (path, key) => {
100
- return ignoredProps.includes(key);
101
- };
102
- function addDiffs(events = []) {
103
- // TODO: no-param-reassign
104
- eachConsecutiveEvent(events, (left, right) => {
105
- if (right) {
106
- left.diffs = diff(right.data, left.data, filterProps);
107
- left.diffs = left.diffs || [];
108
- }
109
- else {
110
- left.diffs = null;
111
- }
112
- });
113
- }
114
- module.exports = {
115
- addDiffs,
116
- };
117
- //# sourceMappingURL=event-differ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-differ.js","sourceRoot":"","sources":["../../src/lib/event-differ.js"],"names":[],"mappings":"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"}