From 1b75dbbb60aa9178f63b097d2790ca52734e65d5 Mon Sep 17 00:00:00 2001 From: danoswaltCL <97542869+danoswaltCL@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:01:37 -0400 Subject: [PATCH] Bugfix/throw toggle around experiment metrics view with warning msg (#1698) * disable-analysis-metrics-view-with-env-toggle * toggle the view was opposite condition * flip-flop the direction of the boolean naming and logic, avoid double negative yuck * version bump --- backend/package-lock.json | 4 +- backend/package.json | 2 +- backend/packages/Scheduler/package-lock.json | 4 +- backend/packages/Scheduler/package.json | 2 +- backend/packages/Upgrade/package-lock.json | 4 +- backend/packages/Upgrade/package.json | 2 +- clientlibs/java/pom.xml | 2 +- clientlibs/js/package-lock.json | 4 +- clientlibs/js/package.json | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- .../projects/upgrade/src/app/app.module.ts | 5 +- .../core/analysis/analysis.service.spec.ts | 31 ++++++- .../src/app/core/analysis/analysis.service.ts | 14 ++- .../view-experiment.component.html | 93 +++++++++++-------- .../view-experiment.component.scss | 11 +++ .../view-experiment.component.ts | 12 ++- .../projects/upgrade/src/assets/i18n/en.json | 1 + .../src/environments/environment-types.ts | 6 +- .../src/environments/environment.bsnl.ts | 1 + .../src/environments/environment.demo.prod.ts | 1 + .../src/environments/environment.prod.ts | 1 + .../src/environments/environment.staging.ts | 1 + .../upgrade/src/environments/environment.ts | 1 + package-lock.json | 4 +- package.json | 2 +- types/package-lock.json | 4 +- types/package.json | 2 +- 28 files changed, 147 insertions(+), 75 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 9a72589ee7..80fac16495 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "license": "ISC", "dependencies": { "dayjs": "^1.11.10", diff --git a/backend/package.json b/backend/package.json index 03edd04e1d..07972be406 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "description": "Backend for A/B Testing Project", "scripts": { "install:all": "npm ci && cd packages/Scheduler && npm ci && cd ../Upgrade && npm ci", diff --git a/backend/packages/Scheduler/package-lock.json b/backend/packages/Scheduler/package-lock.json index 48107b5069..59d90a0e80 100644 --- a/backend/packages/Scheduler/package-lock.json +++ b/backend/packages/Scheduler/package-lock.json @@ -1,12 +1,12 @@ { "name": "ppl-upgrade-serverless", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ppl-upgrade-serverless", - "version": "5.1.15", + "version": "5.1.16", "license": "MIT", "dependencies": { "jsonwebtoken": "^9.0.0", diff --git a/backend/packages/Scheduler/package.json b/backend/packages/Scheduler/package.json index 75e6f39db0..76762b4426 100644 --- a/backend/packages/Scheduler/package.json +++ b/backend/packages/Scheduler/package.json @@ -1,6 +1,6 @@ { "name": "ppl-upgrade-serverless", - "version": "5.1.15", + "version": "5.1.16", "description": "Serverless webpack example using Typescript", "main": "handler.js", "scripts": { diff --git a/backend/packages/Upgrade/package-lock.json b/backend/packages/Upgrade/package-lock.json index 1ae5e5deba..6caa14e455 100644 --- a/backend/packages/Upgrade/package-lock.json +++ b/backend/packages/Upgrade/package-lock.json @@ -1,12 +1,12 @@ { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "license": "ISC", "dependencies": { "@aws-sdk/client-s3": "^3.485.0", diff --git a/backend/packages/Upgrade/package.json b/backend/packages/Upgrade/package.json index 805067a7c5..e05bf222d7 100644 --- a/backend/packages/Upgrade/package.json +++ b/backend/packages/Upgrade/package.json @@ -1,6 +1,6 @@ { "name": "ab_testing_backend", - "version": "5.1.15", + "version": "5.1.16", "description": "Backend for A/B Testing Project", "main": "index.js", "scripts": { diff --git a/clientlibs/java/pom.xml b/clientlibs/java/pom.xml index 717c6902e9..765e7cc367 100644 --- a/clientlibs/java/pom.xml +++ b/clientlibs/java/pom.xml @@ -9,7 +9,7 @@ at the same time that happen to rev to the same new version will be caught by a merge conflict. --> - 5.1.15 + 5.1.16 diff --git a/clientlibs/js/package-lock.json b/clientlibs/js/package-lock.json index 4131c43ce7..37ba52ae6e 100644 --- a/clientlibs/js/package-lock.json +++ b/clientlibs/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "upgrade_client_lib", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "upgrade_client_lib", - "version": "5.1.15", + "version": "5.1.16", "license": "ISC", "dependencies": { "axios": "^1.4.0", diff --git a/clientlibs/js/package.json b/clientlibs/js/package.json index 02dd47f537..3194adb5f8 100644 --- a/clientlibs/js/package.json +++ b/clientlibs/js/package.json @@ -1,6 +1,6 @@ { "name": "upgrade_client_lib", - "version": "5.1.15", + "version": "5.1.16", "description": "Client library to communicate with the Upgrade server", "files": [ "dist/*" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 3241b8b817..5664f2bb0f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "ab-testing", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ab-testing", - "version": "5.1.15", + "version": "5.1.16", "license": "MIT", "dependencies": { "@angular/animations": "^17.1.2", diff --git a/frontend/package.json b/frontend/package.json index dd75456ead..08e61b1e83 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "ab-testing", - "version": "5.1.15", + "version": "5.1.16", "license": "MIT", "scripts": { "ng": "ng", diff --git a/frontend/projects/upgrade/src/app/app.module.ts b/frontend/projects/upgrade/src/app/app.module.ts index 9e8e135f40..8b1588337c 100755 --- a/frontend/projects/upgrade/src/app/app.module.ts +++ b/frontend/projects/upgrade/src/app/app.module.ts @@ -29,7 +29,10 @@ export const getEnvironmentConfig = (http: HttpClient, env: Environment) => { .then((config: RuntimeEnvironmentConfig) => { env.apiBaseUrl = config.endpointApi || config.apiBaseUrl; env.googleClientId = config.gapiClientId || config.googleClientId; - env.withinSubjectExperimentSupportToggle = config.withinSubjectExperimentSupportToggle ?? env.withinSubjectExperimentSupportToggle ?? false; + env.withinSubjectExperimentSupportToggle = + config.withinSubjectExperimentSupportToggle ?? env.withinSubjectExperimentSupportToggle ?? false; + env.metricAnalyticsExperimentDisplayToggle = + config.metricAnalyticsExperimentDisplayToggle ?? env.metricAnalyticsExperimentDisplayToggle ?? false; }) .catch((error) => { console.log({ error }); diff --git a/frontend/projects/upgrade/src/app/core/analysis/analysis.service.spec.ts b/frontend/projects/upgrade/src/app/core/analysis/analysis.service.spec.ts index 3d6b0e85e3..69d5740828 100644 --- a/frontend/projects/upgrade/src/app/core/analysis/analysis.service.spec.ts +++ b/frontend/projects/upgrade/src/app/core/analysis/analysis.service.spec.ts @@ -8,6 +8,7 @@ import { actionUpsertMetrics, } from './store/analysis.actions'; import { UpsertMetrics } from './store/analysis.models'; +import { Environment } from '../../../environments/environment-types'; const mockStateStore$ = new BehaviorSubject({}); (mockStateStore$ as any).dispatch = jest.fn(); @@ -22,10 +23,12 @@ jest.mock('./store/analysis.selectors', () => ({ describe('AnalysisService', () => { const mockStore: any = mockStateStore$; + let mockEnvironment: Environment = { metricAnalyticsExperimentDisplayToggle: true } as Environment; let service: AnalysisService; beforeEach(() => { - service = new AnalysisService(mockStore); + service = new AnalysisService(mockStore, mockEnvironment); + jest.resetAllMocks(); }); describe('#queryResultById$', () => { @@ -78,12 +81,34 @@ describe('AnalysisService', () => { }); describe('#executeQuery', () => { - it('should dispatch executeQuery with the supplied string input array', () => { + let originalEnvironment; + + beforeEach(() => { + // Save the original environment to restore it after tests + originalEnvironment = { ...mockEnvironment }; + }); + + afterEach(() => { + // Restore the original environment after each test + mockEnvironment = { ...originalEnvironment }; + }); + + it('should dispatch executeQuery with the supplied string input array when metricAnalyticsExperimentDisplayToggle is true', () => { + mockEnvironment = { metricAnalyticsExperimentDisplayToggle: true } as Environment; const mockQueryIds = ['test', 'test2']; service.executeQuery(mockQueryIds); - expect(mockStore.dispatch).toHaveBeenLastCalledWith(actionExecuteQuery({ queryIds: mockQueryIds })); + expect(mockStore.dispatch).toHaveBeenCalledWith(actionExecuteQuery({ queryIds: mockQueryIds })); + }); + + it('should not dispatch executeQuery and log a warning when metricAnalyticsExperimentDisplayToggle is false', () => { + mockEnvironment = { metricAnalyticsExperimentDisplayToggle: false } as Environment; + const mockQueryIds = ['test3', 'test4']; + + service.executeQuery(mockQueryIds); + + expect(mockStore.dispatch).not.toHaveBeenCalledWith(mockQueryIds); }); }); diff --git a/frontend/projects/upgrade/src/app/core/analysis/analysis.service.ts b/frontend/projects/upgrade/src/app/core/analysis/analysis.service.ts index b527b4d521..4522bc1aca 100644 --- a/frontend/projects/upgrade/src/app/core/analysis/analysis.service.ts +++ b/frontend/projects/upgrade/src/app/core/analysis/analysis.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Inject, Injectable } from '@angular/core'; import { AppState } from '../core.module'; import { Store, select } from '@ngrx/store'; import { @@ -11,10 +11,11 @@ import { import * as AnalysisActions from './store/analysis.actions'; import { UpsertMetrics } from './store/analysis.models'; import { selectExperimentQueries } from '../experiments/store/experiments.selectors'; +import { ENV, Environment } from '../../../environments/environment-types'; @Injectable() export class AnalysisService { - constructor(private store$: Store) {} + constructor(private store$: Store, @Inject(ENV) private environment: Environment) {} isMetricsLoading$ = this.store$.pipe(select(selectIsMetricsLoading)); isQueryExecuting$ = this.store$.pipe(select(selectIsQueryExecuting)); @@ -35,7 +36,14 @@ export class AnalysisService { } executeQuery(queryIds: string[]) { - this.store$.dispatch(AnalysisActions.actionExecuteQuery({ queryIds })); + if (this.environment.metricAnalyticsExperimentDisplayToggle) { + this.store$.dispatch(AnalysisActions.actionExecuteQuery({ queryIds })); + } else { + console.warn( + 'executeQuery is currently disabled via metricAnalyticsExperimentDisplayToggle:', + this.environment.metricAnalyticsExperimentDisplayToggle + ); + } } experimentQueryResult$(experimentId: string) { diff --git a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.html b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.html index 6d2cc99a76..5ca417823c 100644 --- a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.html +++ b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.html @@ -80,16 +80,11 @@ - + - {{ 'home.view-experiment.mattab.overview.text' | translate }} + {{ 'home.view-experiment.mattab.overview.text' | translate }}
@@ -195,9 +190,7 @@
- + {{ 'home-global.design-type.text' | translate | uppercase }} {{ experiment.type | titlecase }} Experiment @@ -247,9 +240,7 @@
- + {{ 'home-global.assignment-algorithm.text' | translate | uppercase }} {{ experiment.assignmentAlgorithm | titlecase }} @@ -269,7 +260,9 @@ ( ) - + create @@ -327,7 +327,12 @@ {{ experiment.endOn | formatDate: 'medium date' }} @@ -346,7 +351,9 @@ @@ -369,8 +376,7 @@ {{ 'home.new-experiment.design.exclude-if-reached.text' | translate }} - - + @@ -388,14 +394,13 @@
-
- +
+ {{ 'home-global.stratification-factor.text' | translate | uppercase }} - {{ experiment.stratificationFactor.stratificationFactorName }} + {{ experiment.stratificationFactor.stratificationFactorName }} +
@@ -405,10 +410,7 @@ {{ 'global.context.text' | translate }} - + {{ context }} @@ -420,10 +422,7 @@ {{ 'global.tags.text' | translate }} - + {{ tag }} @@ -436,7 +435,9 @@ [checked]="experiment.logging" color="primary" (change)="toggleVerboseLogging($event)" - [disabled]="experiment.state === ExperimentState.CANCELLED || experiment.state === ExperimentState.ARCHIVED" + [disabled]=" + experiment.state === ExperimentState.CANCELLED || experiment.state === ExperimentState.ARCHIVED + " > {{ 'home.view-experiment.logging.text' | translate | uppercase }} @@ -449,7 +450,7 @@ - {{ 'home.view-experiment.mattab.design.text' | translate }} + {{ 'home.view-experiment.mattab.design.text' | translate }}
@@ -497,8 +498,7 @@ {{ 'home.new-experiment.design.exclude-if-reached.text' | translate }} - - + @@ -767,7 +767,7 @@ - {{ 'home.view-experiment.mattab.participants.text' | translate }} + {{ 'home.view-experiment.mattab.participants.text' | translate }}
@@ -862,7 +862,7 @@ - {{ 'home.view-experiment.mattab.metrics.text' | translate }} + {{ 'home.view-experiment.mattab.metrics.text' | translate }}
@@ -925,7 +925,7 @@ - {{ 'home.view-experiment.mattab.data.text' | translate }} + {{ 'home.view-experiment.mattab.data.text' | translate }}
@@ -945,7 +945,18 @@
- + + + + +
+ warning +

+ {{ 'home.view-experiment.metrics-analysis-unavailable.text' | translate }} +

+
+
+
diff --git a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.scss b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.scss index c34bc88e35..f514f00f8e 100644 --- a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.scss +++ b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.scss @@ -393,6 +393,17 @@ $font-size-small: 15px; margin-bottom: 24px; padding: 10px; } + + .disabled-analysis-view-messsage-container { + padding-top: 50px; + padding-bottom: 20px; + display: flex; + justify-content: center; + + .mat-icon { + margin-right: 20px; + } + } } ::ng-deep .owl-dt-calendar-table .owl-dt-calendar-cell-selected { diff --git a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.ts b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.ts index 404c8d8b77..73316916a3 100644 --- a/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.ts +++ b/frontend/projects/upgrade/src/app/features/dashboard/home/pages/view-experiment/view-experiment.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core'; +import { Component, OnInit, OnDestroy, ViewEncapsulation, Inject } from '@angular/core'; import { ExperimentService } from '../../../../../core/experiments/experiments.service'; import { MatDialog } from '@angular/material/dialog'; import { ExperimentStatusComponent } from '../../components/modal/experiment-status/experiment-status.component'; @@ -33,6 +33,7 @@ import { FactorialConditionTableDataFromConditionPayload, SimpleExperimentPayloadTableRowData, } from '../../../../../core/experiment-design-stepper/store/experiment-design-stepper.model'; +import { ENV, Environment } from '../../../../../../environments/environment-types'; // Used in view-experiment component only enum DialogType { CHANGE_STATUS = 'Change status', @@ -102,7 +103,8 @@ export class ViewExperimentComponent implements OnInit, OnDestroy { private dialog: MatDialog, private authService: AuthService, private router: Router, - private _Activatedroute: ActivatedRoute + private _Activatedroute: ActivatedRoute, + @Inject(ENV) private environment: Environment ) {} get DialogType() { @@ -125,6 +127,10 @@ export class ViewExperimentComponent implements OnInit, OnDestroy { return this.experiment.state === EXPERIMENT_STATE.CANCELLED; } + get showMetricAnalysisDisplay() { + return this.environment.metricAnalyticsExperimentDisplayToggle; + } + ngOnInit() { this.isLoadingExperimentDetailStats$ = this.experimentService.isLoadingExperimentDetailStats$; this.isPollingExperimentDetailStats$ = this.experimentService.isPollingExperimentDetailStats$; @@ -276,7 +282,7 @@ export class ViewExperimentComponent implements OnInit, OnDestroy { statisticOperation.push(compareFn); statisticOperation.push(query.query.compareValue); } - const operationObject = this.queryOperations.find(op => op.value === query.query.operationType); + const operationObject = this.queryOperations.find((op) => op.value === query.query.operationType); statisticOperation.push(operationObject.viewValue); this.displayMetrics.push({ metric_Key: rootKey, diff --git a/frontend/projects/upgrade/src/assets/i18n/en.json b/frontend/projects/upgrade/src/assets/i18n/en.json index 68a3fd42d0..c13ffce922 100644 --- a/frontend/projects/upgrade/src/assets/i18n/en.json +++ b/frontend/projects/upgrade/src/assets/i18n/en.json @@ -248,6 +248,7 @@ "home.view-experiment.experiment-payloads.column-label.target": "TARGET", "home.view-experiment.experiment-payloads.column-label.condition": "CONDITION", "home.view-experiment.experiment-payloads.column-label.payload": "PAYLOAD", + "home.view-experiment.metrics-analysis-unavailable.text": "Experiment metrics analysis has been temporarily disabled in this view. This information is still available when exporting the experiment data.", "home.view-experiment.graph-type.text": "Type", "home.view-experiment.graph-conditions.text": "Conditions", "home.view-experiment.graph-decision-point.text": "Sites", diff --git a/frontend/projects/upgrade/src/environments/environment-types.ts b/frontend/projects/upgrade/src/environments/environment-types.ts index d58d1d24f9..ee06822faa 100644 --- a/frontend/projects/upgrade/src/environments/environment-types.ts +++ b/frontend/projects/upgrade/src/environments/environment-types.ts @@ -56,7 +56,8 @@ export interface Environment { pollingInterval: number; pollingLimit: number; api: APIEndpoints; - withinSubjectExperimentSupportToggle: boolean, + withinSubjectExperimentSupportToggle: boolean; + metricAnalyticsExperimentDisplayToggle: boolean; } export interface RuntimeEnvironmentConfig { @@ -64,5 +65,6 @@ export interface RuntimeEnvironmentConfig { googleClientId?: string; endpointApi?: string; apiBaseUrl?: string; - withinSubjectExperimentSupportToggle?: boolean, + withinSubjectExperimentSupportToggle?: boolean; + metricAnalyticsExperimentDisplayToggle?: boolean; } diff --git a/frontend/projects/upgrade/src/environments/environment.bsnl.ts b/frontend/projects/upgrade/src/environments/environment.bsnl.ts index 3794163615..c13ab7c75f 100644 --- a/frontend/projects/upgrade/src/environments/environment.bsnl.ts +++ b/frontend/projects/upgrade/src/environments/environment.bsnl.ts @@ -11,6 +11,7 @@ export const environment = { pollingInterval: 10 * 1000, pollingLimit: 600, withinSubjectExperimentSupportToggle: false, + metricAnalyticsExperimentDisplayToggle: true, api: { getAllExperiments: '/experiments/paginated', createNewExperiments: '/experiments', diff --git a/frontend/projects/upgrade/src/environments/environment.demo.prod.ts b/frontend/projects/upgrade/src/environments/environment.demo.prod.ts index 78c4f4ae52..5b682a73fd 100755 --- a/frontend/projects/upgrade/src/environments/environment.demo.prod.ts +++ b/frontend/projects/upgrade/src/environments/environment.demo.prod.ts @@ -11,6 +11,7 @@ export const environment = { pollingInterval: 10 * 1000, pollingLimit: 600, withinSubjectExperimentSupportToggle: false, + metricAnalyticsExperimentDisplayToggle: false, api: { getAllExperiments: '/experiments/paginated', createNewExperiments: '/experiments', diff --git a/frontend/projects/upgrade/src/environments/environment.prod.ts b/frontend/projects/upgrade/src/environments/environment.prod.ts index a6fb6a025d..8723794278 100755 --- a/frontend/projects/upgrade/src/environments/environment.prod.ts +++ b/frontend/projects/upgrade/src/environments/environment.prod.ts @@ -11,6 +11,7 @@ export const environment = { pollingInterval: 10 * 1000, pollingLimit: 600, withinSubjectExperimentSupportToggle: false, + metricAnalyticsExperimentDisplayToggle: false, api: { getAllExperiments: '/experiments/paginated', createNewExperiments: '/experiments', diff --git a/frontend/projects/upgrade/src/environments/environment.staging.ts b/frontend/projects/upgrade/src/environments/environment.staging.ts index 0dd7d54d7d..23b63952cd 100644 --- a/frontend/projects/upgrade/src/environments/environment.staging.ts +++ b/frontend/projects/upgrade/src/environments/environment.staging.ts @@ -11,6 +11,7 @@ export const environment = { pollingInterval: 10 * 1000, pollingLimit: 600, withinSubjectExperimentSupportToggle: false, + metricAnalyticsExperimentDisplayToggle: false, api: { getAllExperiments: '/experiments/paginated', createNewExperiments: '/experiments', diff --git a/frontend/projects/upgrade/src/environments/environment.ts b/frontend/projects/upgrade/src/environments/environment.ts index f41b1b5503..fc4bc2193e 100755 --- a/frontend/projects/upgrade/src/environments/environment.ts +++ b/frontend/projects/upgrade/src/environments/environment.ts @@ -16,6 +16,7 @@ export const environment = { pollingInterval: 10 * 1000, pollingLimit: 600, withinSubjectExperimentSupportToggle: false, + metricAnalyticsExperimentDisplayToggle: false, api: { getAllExperiments: '/experiments/paginated', createNewExperiments: '/experiments', diff --git a/package-lock.json b/package-lock.json index d430e36fc1..367cf40baa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "UpGrade", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "UpGrade", - "version": "5.1.15", + "version": "5.1.16", "license": "ISC", "devDependencies": { "@angular-eslint/eslint-plugin": "^14.1.2", diff --git a/package.json b/package.json index 544d54e4b3..b44483b9e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "UpGrade", - "version": "5.1.15", + "version": "5.1.16", "description": "This is a combined repository for UpGrade, an open-source platform to support large-scale A/B testing in educational applications. Learn more at www.upgradeplatform.org", "main": "index.js", "devDependencies": { diff --git a/types/package-lock.json b/types/package-lock.json index 683c96e92b..cf7fa2badb 100644 --- a/types/package-lock.json +++ b/types/package-lock.json @@ -1,12 +1,12 @@ { "name": "upgrade_types", - "version": "5.1.15", + "version": "5.1.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "upgrade_types", - "version": "5.1.15", + "version": "5.1.16", "license": "ISC", "devDependencies": { "eslint": "^8.27.0", diff --git a/types/package.json b/types/package.json index 6afd04b460..563233b324 100644 --- a/types/package.json +++ b/types/package.json @@ -1,6 +1,6 @@ { "name": "upgrade_types", - "version": "5.1.15", + "version": "5.1.16", "description": "", "main": "src/index.ts", "types": "src/index.ts",