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.
- package/README.md +1 -0
- package/dist/lib/addons/addon.d.ts +2 -1
- package/dist/lib/addons/addon.js.map +1 -1
- package/dist/lib/addons/datadog.d.ts +2 -1
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +3 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.d.ts +1 -1
- package/dist/lib/addons/feature-event-formatter-md.js +13 -14
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/slack.d.ts +2 -1
- package/dist/lib/addons/slack.js.map +1 -1
- package/dist/lib/addons/slack.test.js +6 -0
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams.d.ts +2 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +3 -0
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/webhook.d.ts +8 -2
- package/dist/lib/addons/webhook.js +0 -1
- package/dist/lib/addons/webhook.js.map +1 -1
- package/dist/lib/addons/webhook.test.js +2 -0
- package/dist/lib/addons/webhook.test.js.map +1 -1
- package/dist/lib/create-config.js +11 -20
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/create-config.test.js +0 -37
- package/dist/lib/create-config.test.js.map +1 -1
- package/dist/lib/db/client-instance-store.js +2 -2
- package/dist/lib/db/client-instance-store.js.map +1 -1
- package/dist/lib/db/client-metrics-db.js +2 -2
- package/dist/lib/db/client-metrics-db.js.map +1 -1
- package/dist/lib/db/client-metrics-store-v2.js +5 -1
- package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/db/client-metrics-store.js +2 -2
- package/dist/lib/db/client-metrics-store.js.map +1 -1
- package/dist/lib/db/event-store.d.ts +10 -6
- package/dist/lib/db/event-store.js +21 -1
- package/dist/lib/db/event-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.js +1 -0
- package/dist/lib/db/feature-strategy-store.js.map +1 -1
- package/dist/lib/db/feature-toggle-store.d.ts +4 -1
- package/dist/lib/db/feature-toggle-store.js +27 -2
- package/dist/lib/db/feature-toggle-store.js.map +1 -1
- package/dist/lib/db/index.js +2 -0
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/session-store.js +2 -1
- package/dist/lib/db/session-store.js.map +1 -1
- package/dist/lib/db/user-splash-store.d.ts +19 -0
- package/dist/lib/db/user-splash-store.js +70 -0
- package/dist/lib/db/user-splash-store.js.map +1 -0
- package/dist/lib/error/minimum-one-environment-error.d.ts +5 -0
- package/dist/lib/error/minimum-one-environment-error.js +24 -0
- package/dist/lib/error/minimum-one-environment-error.js.map +1 -0
- package/dist/lib/error/operation-denied-error.d.ts +4 -0
- package/dist/lib/error/operation-denied-error.js +24 -0
- package/dist/lib/error/operation-denied-error.js.map +1 -0
- package/dist/lib/metrics.js +20 -12
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +1 -0
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.js +2 -17
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +0 -21
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/middleware/secure-headers.js +2 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/middleware/session-db.js +2 -3
- package/dist/lib/middleware/session-db.js.map +1 -1
- package/dist/lib/routes/admin-api/event.d.ts +8 -4
- package/dist/lib/routes/admin-api/event.js +8 -10
- package/dist/lib/routes/admin-api/event.js.map +1 -1
- package/dist/lib/routes/admin-api/feature.js +7 -3
- package/dist/lib/routes/admin-api/feature.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -0
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/project/features.js +11 -8
- package/dist/lib/routes/admin-api/project/features.js.map +1 -1
- package/dist/lib/routes/admin-api/project/index.js +2 -0
- package/dist/lib/routes/admin-api/project/index.js.map +1 -1
- package/dist/lib/routes/admin-api/project/variants.d.ts +21 -0
- package/dist/lib/routes/admin-api/project/variants.js +41 -0
- package/dist/lib/routes/admin-api/project/variants.js.map +1 -0
- package/dist/lib/routes/admin-api/state.js +2 -3
- package/dist/lib/routes/admin-api/state.js.map +1 -1
- package/dist/lib/routes/admin-api/user-splash-controller.d.ts +10 -0
- package/dist/lib/routes/admin-api/user-splash-controller.js +28 -0
- package/dist/lib/routes/admin-api/user-splash-controller.js.map +1 -0
- package/dist/lib/routes/admin-api/user.d.ts +2 -1
- package/dist/lib/routes/admin-api/user.js +7 -2
- package/dist/lib/routes/admin-api/user.js.map +1 -1
- package/dist/lib/routes/client-api/feature.test.js +3 -2
- package/dist/lib/routes/client-api/feature.test.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.d.ts +0 -1
- package/dist/lib/routes/client-api/metrics.js +2 -10
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/util.js +18 -14
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/schema/feature-schema.d.ts +1 -0
- package/dist/lib/schema/feature-schema.js +6 -7
- package/dist/lib/schema/feature-schema.js.map +1 -1
- package/dist/lib/services/addon-service-test-simple-addon.d.ts +1 -1
- package/dist/lib/services/addon-service-test-simple-addon.js.map +1 -1
- package/dist/lib/services/addon-service.js +2 -2
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/api-token-service.js +2 -2
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js +5 -6
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics.test.js +74 -41
- package/dist/lib/services/client-metrics/client-metrics.test.js.map +1 -1
- package/dist/lib/services/client-metrics/index.d.ts +6 -5
- package/dist/lib/services/client-metrics/index.js +13 -10
- package/dist/lib/services/client-metrics/index.js.map +1 -1
- package/dist/lib/services/client-metrics/list.d.ts +19 -16
- package/dist/lib/services/client-metrics/list.js +6 -4
- package/dist/lib/services/client-metrics/list.js.map +1 -1
- package/dist/lib/services/client-metrics/list.test.js +9 -5
- package/dist/lib/services/client-metrics/list.test.js.map +1 -1
- package/dist/lib/services/client-metrics/ttl-list.d.ts +20 -13
- package/dist/lib/services/client-metrics/ttl-list.js +26 -15
- package/dist/lib/services/client-metrics/ttl-list.js.map +1 -1
- package/dist/lib/services/client-metrics/ttl-list.test.js +33 -9
- package/dist/lib/services/client-metrics/ttl-list.test.js.map +1 -1
- package/dist/lib/services/environment-service.d.ts +2 -1
- package/dist/lib/services/environment-service.js +10 -3
- package/dist/lib/services/environment-service.js.map +1 -1
- package/dist/lib/services/event-service.d.ts +1 -1
- package/dist/lib/services/event-service.js +1 -1
- package/dist/lib/services/event-service.js.map +1 -1
- package/dist/lib/services/feature-tag-service.js +7 -11
- package/dist/lib/services/feature-tag-service.js.map +1 -1
- package/dist/lib/services/{feature-toggle-service-v2.d.ts → feature-toggle-service.d.ts} +39 -20
- package/dist/lib/services/{feature-toggle-service-v2.js → feature-toggle-service.js} +233 -146
- package/dist/lib/services/feature-toggle-service.js.map +1 -0
- package/dist/lib/services/index.js +6 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-health-service.d.ts +2 -2
- package/dist/lib/services/project-health-service.js +4 -3
- package/dist/lib/services/project-health-service.js.map +1 -1
- package/dist/lib/services/project-service.d.ts +2 -3
- package/dist/lib/services/project-service.js +12 -18
- package/dist/lib/services/project-service.js.map +1 -1
- package/dist/lib/services/reset-token-service.js +2 -2
- package/dist/lib/services/reset-token-service.js.map +1 -1
- package/dist/lib/services/state-util.js +1 -1
- package/dist/lib/services/state-util.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +3 -2
- package/dist/lib/services/user-service.js +37 -21
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/user-splash-service.d.ts +12 -0
- package/dist/lib/services/user-splash-service.js +33 -0
- package/dist/lib/services/user-splash-service.js.map +1 -0
- package/dist/lib/services/version-service.js +2 -2
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/types/events.d.ts +165 -2
- package/dist/lib/types/events.js +124 -4
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/model.d.ts +4 -12
- package/dist/lib/types/model.js +6 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/services.d.ts +5 -2
- package/dist/lib/types/stores/event-store.d.ts +4 -3
- package/dist/lib/types/stores/feature-toggle-store.d.ts +3 -1
- package/dist/lib/types/stores/user-splash-store.d.ts +15 -0
- package/dist/lib/types/stores/user-splash-store.js +3 -0
- package/dist/lib/types/stores/user-splash-store.js.map +1 -0
- package/dist/lib/types/stores.d.ts +2 -0
- package/dist/lib/util/constants.d.ts +0 -2
- package/dist/lib/util/constants.js +1 -3
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/migrations/20211105104316-add-feature-name-column-to-events.d.ts +2 -0
- package/dist/migrations/20211105104316-add-feature-name-column-to-events.js +16 -0
- package/dist/migrations/20211105104316-add-feature-name-column-to-events.js.map +1 -0
- package/dist/migrations/20211105105509-add-predata-column-to-events.d.ts +2 -0
- package/dist/migrations/20211105105509-add-predata-column-to-events.js +8 -0
- package/dist/migrations/20211105105509-add-predata-column-to-events.js.map +1 -0
- package/dist/migrations/20211108130333-create-user-splash-table.d.ts +2 -0
- package/dist/migrations/20211108130333-create-user-splash-table.js +18 -0
- package/dist/migrations/20211108130333-create-user-splash-table.js.map +1 -0
- package/dist/migrations/20211109103930-add-splash-entry-for-users.d.ts +2 -0
- package/dist/migrations/20211109103930-add-splash-entry-for-users.js +7 -0
- package/dist/migrations/20211109103930-add-splash-entry-for-users.js.map +1 -0
- package/dist/migrations/20211126112551-disable-default-environment.d.ts +2 -0
- package/dist/migrations/20211126112551-disable-default-environment.js +24 -0
- package/dist/migrations/20211126112551-disable-default-environment.js.map +1 -0
- package/dist/migrator.js +9 -2
- package/dist/migrator.js.map +1 -1
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +18 -14
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feature-archive.e2e.test.js +1 -2
- package/dist/test/e2e/api/admin/feature-archive.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feature.e2e.test.js +43 -20
- package/dist/test/e2e/api/admin/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/metrics.e2e.test.js +5 -3
- package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js +10 -0
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +145 -8
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +60 -0
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
- package/dist/{lib/event-differ.test.d.ts → test/e2e/api/admin/project/variants.e2e.test.d.ts} +0 -0
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js +727 -0
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/splash.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/splash.e2e.test.js +51 -0
- package/dist/test/e2e/api/admin/splash.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/state.e2e.test.js +17 -13
- package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js +2 -16
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +8 -4
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +4 -4
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/register.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js +5 -3
- package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js +5 -2
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/environment-service.test.js +1 -1
- package/dist/test/e2e/services/environment-service.test.js.map +1 -1
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +14 -11
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-health-service.e2e.test.js +2 -2
- package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-service.e2e.test.js +2 -32
- package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/session-service.e2e.test.js +5 -4
- package/dist/test/e2e/services/session-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/user-service.e2e.test.js +3 -2
- package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +4 -6
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js +1 -1
- package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/user-splash-store.e2e.test.d.ts +1 -0
- package/dist/test/e2e/stores/user-splash-store.e2e.test.js +74 -0
- package/dist/test/e2e/stores/user-splash-store.e2e.test.js.map +1 -0
- package/dist/test/fixtures/fake-event-store.d.ts +2 -1
- package/dist/test/fixtures/fake-event-store.js +3 -0
- package/dist/test/fixtures/fake-event-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-toggle-store.d.ts +3 -1
- package/dist/test/fixtures/fake-feature-toggle-store.js +9 -0
- package/dist/test/fixtures/fake-feature-toggle-store.js.map +1 -1
- package/dist/test/fixtures/fake-user-splash-store.d.ts +12 -0
- package/dist/test/fixtures/fake-user-splash-store.js +40 -0
- package/dist/test/fixtures/fake-user-splash-store.js.map +1 -0
- package/dist/test/fixtures/store.js +2 -0
- package/dist/test/fixtures/store.js.map +1 -1
- package/docs/api/oas/openapi.yaml +35 -55
- package/package.json +17 -18
- package/dist/lib/event-differ.d.ts +0 -1
- package/dist/lib/event-differ.js +0 -117
- package/dist/lib/event-differ.js.map +0 -1
- package/dist/lib/event-differ.test.js +0 -142
- package/dist/lib/event-differ.test.js.map +0 -1
- 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,
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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/
|
|
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":";;;;;
|
|
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;
|
|
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
|
|
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-
|
|
669
|
-
- strategy-
|
|
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:
|
|
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-
|
|
1559
|
-
- strategy-
|
|
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
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
125
|
-
"@types/js-yaml": "4.0.
|
|
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.
|
|
134
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
135
|
-
"@typescript-eslint/parser": "5.
|
|
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.
|
|
140
|
-
"eslint-config-airbnb-base": "
|
|
141
|
-
"eslint-config-airbnb-typescript": "
|
|
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.
|
|
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.
|
|
150
|
+
"prettier": "2.5.0",
|
|
152
151
|
"proxyquire": "2.1.3",
|
|
153
|
-
"source-map-support": "0.5.
|
|
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.
|
|
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;
|
package/dist/lib/event-differ.js
DELETED
|
@@ -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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"}
|