From 162357223000ba49ccba9266d3cf09d33d385326 Mon Sep 17 00:00:00 2001 From: wolfganggreschus Date: Thu, 15 Feb 2024 15:28:00 +0000 Subject: [PATCH] BC - 6386 Upgrade mikro-orm to 5.6.16 (#4727) * updated microORM * added date type in base.entity and submission-container-element * declared boolean fields in file-entity * declared preferences as object * added date-declaration to User Entity * defined Date and boolean Fields * type removed to decorator * declared boolean in entities --------- Co-authored-by: virgilchiriac --- .../api-test/card-update-title.api.spec.ts | 4 +- .../content-element-update-content.spec.ts | 4 +- .../board/repo/recursive-save.visitor.spec.ts | 5 +- .../entity/file-security-check.entity.ts | 4 +- .../src/modules/files/entity/file.entity.ts | 6 +- .../api-test/import-user.api.spec.ts | 2 +- .../src/shared/domain/entity/base.entity.ts | 4 +- ...ubmission-container-element-node.entity.ts | 2 +- .../column-board-target.entity.ts | 2 +- .../src/shared/domain/entity/lesson.entity.ts | 2 +- .../src/shared/domain/entity/task.entity.ts | 2 +- .../src/shared/domain/entity/user.entity.ts | 4 +- .../repo/user/user.repo.integration.spec.ts | 53 +++--- apps/server/src/shared/repo/user/user.repo.ts | 8 +- .../shared/testing/factory/base.factory.ts | 2 +- package-lock.json | 166 +++++++----------- package.json | 8 +- 17 files changed, 121 insertions(+), 157 deletions(-) diff --git a/apps/server/src/modules/board/controller/api-test/card-update-title.api.spec.ts b/apps/server/src/modules/board/controller/api-test/card-update-title.api.spec.ts index 8067b17eb3a..91077ed9476 100644 --- a/apps/server/src/modules/board/controller/api-test/card-update-title.api.spec.ts +++ b/apps/server/src/modules/board/controller/api-test/card-update-title.api.spec.ts @@ -5,13 +5,13 @@ import { Test, TestingModule } from '@nestjs/testing'; import { BoardExternalReferenceType } from '@shared/domain/domainobject'; import { CardNode } from '@shared/domain/entity'; import { - TestApiClient, - UserAndAccountTestFactory, cardNodeFactory, cleanupCollections, columnBoardNodeFactory, columnNodeFactory, courseFactory, + TestApiClient, + UserAndAccountTestFactory, } from '@shared/testing'; const baseRouteName = '/cards'; diff --git a/apps/server/src/modules/board/controller/api-test/content-element-update-content.spec.ts b/apps/server/src/modules/board/controller/api-test/content-element-update-content.spec.ts index 77678a3ac0c..b05b453cdf4 100644 --- a/apps/server/src/modules/board/controller/api-test/content-element-update-content.spec.ts +++ b/apps/server/src/modules/board/controller/api-test/content-element-update-content.spec.ts @@ -7,8 +7,6 @@ import { BoardExternalReferenceType, ContentElementType } from '@shared/domain/d import { FileElementNode, RichTextElementNode, SubmissionContainerElementNode } from '@shared/domain/entity'; import { InputFormat } from '@shared/domain/types'; import { - TestApiClient, - UserAndAccountTestFactory, cardNodeFactory, cleanupCollections, columnBoardNodeFactory, @@ -17,6 +15,8 @@ import { fileElementNodeFactory, richTextElementNodeFactory, submissionContainerElementNodeFactory, + TestApiClient, + UserAndAccountTestFactory, } from '@shared/testing'; describe(`content element update content (api)`, () => { diff --git a/apps/server/src/modules/board/repo/recursive-save.visitor.spec.ts b/apps/server/src/modules/board/repo/recursive-save.visitor.spec.ts index 23129cd2288..efdf1488923 100644 --- a/apps/server/src/modules/board/repo/recursive-save.visitor.spec.ts +++ b/apps/server/src/modules/board/repo/recursive-save.visitor.spec.ts @@ -5,11 +5,11 @@ import { CardNode, ColumnBoardNode, ColumnNode, + DrawingElementNode, ExternalToolElementNodeEntity, FileElementNode, LinkElementNode, RichTextElementNode, - DrawingElementNode, SubmissionContainerElementNode, SubmissionItemNode, } from '@shared/domain/entity'; @@ -19,12 +19,12 @@ import { columnBoardNodeFactory, columnFactory, contextExternalToolEntityFactory, + drawingElementFactory, externalToolElementFactory, fileElementFactory, linkElementFactory, richTextElementFactory, setupEntities, - drawingElementFactory, submissionContainerElementFactory, submissionItemFactory, } from '@shared/testing'; @@ -265,6 +265,7 @@ describe(RecursiveSaveVisitor.name, () => { it('should persist the board node', () => { const board = columnBoardFactory.build(); const boardNode = columnBoardNodeFactory.build(); + em.getUnitOfWork().getById.mockReturnValue(boardNode); visitor.visitColumnBoard(board); diff --git a/apps/server/src/modules/files/entity/file-security-check.entity.ts b/apps/server/src/modules/files/entity/file-security-check.entity.ts index a3fb5dd0fb3..21348339f47 100644 --- a/apps/server/src/modules/files/entity/file-security-check.entity.ts +++ b/apps/server/src/modules/files/entity/file-security-check.entity.ts @@ -19,10 +19,10 @@ export class FileSecurityCheckEntity { @Property() requestToken?: string = uuid(); - @Property() + @Property({ type: Date }) createdAt = new Date(); - @Property() + @Property({ type: Date, onUpdate: () => new Date() }) updatedAt = new Date(); constructor(props: FileSecurityCheckEntityProps) { diff --git a/apps/server/src/modules/files/entity/file.entity.ts b/apps/server/src/modules/files/entity/file.entity.ts index 335e0f4d4b1..8b4fb8f2aa6 100644 --- a/apps/server/src/modules/files/entity/file.entity.ts +++ b/apps/server/src/modules/files/entity/file.entity.ts @@ -39,10 +39,12 @@ export class FileEntity extends BaseEntityWithTimestamps { @Property({ nullable: true }) deletedAt?: Date; - @Property() + // you have to set the type explicitly to boolean, otherwise metadata will be wrong + @Property({ type: 'boolean' }) deleted = false; - @Property() + // you have to set the type explicitly to boolean, otherwise metadata will be wrong + @Property({ type: 'boolean' }) isDirectory = false; @Property() diff --git a/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts b/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts index 5ee8494ccb6..d42a788395a 100644 --- a/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts +++ b/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts @@ -1,5 +1,6 @@ import { SanisResponse, schulconnexResponseFactory } from '@infra/schulconnex-client'; import { EntityManager, ObjectId } from '@mikro-orm/mongodb'; +import { OauthTokenResponse } from '@modules/oauth/service/dto'; import { ServerTestModule } from '@modules/server/server.module'; import { FilterImportUserParams, @@ -36,7 +37,6 @@ import { } from '@shared/testing'; import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; -import { OauthTokenResponse } from '@modules/oauth/service/dto'; import { IUserImportFeatures, UserImportFeatures } from '../../config'; describe('ImportUser Controller (API)', () => { diff --git a/apps/server/src/shared/domain/entity/base.entity.ts b/apps/server/src/shared/domain/entity/base.entity.ts index 5508ab6a3dc..3e41b7dc7a2 100644 --- a/apps/server/src/shared/domain/entity/base.entity.ts +++ b/apps/server/src/shared/domain/entity/base.entity.ts @@ -29,10 +29,10 @@ export abstract class BaseEntityWithTimestamps implements Auth @SerializedPrimaryKey() id!: string; - @Property() + @Property({ type: Date }) createdAt = new Date(); - @Property({ onUpdate: () => new Date() }) + @Property({ type: Date, onUpdate: () => new Date() }) updatedAt = new Date(); } diff --git a/apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts b/apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts index 0dc60b67539..b47cf916784 100644 --- a/apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts +++ b/apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts @@ -5,7 +5,7 @@ import { BoardDoBuilder, BoardNodeType } from './types'; @Entity({ discriminatorValue: BoardNodeType.SUBMISSION_CONTAINER_ELEMENT }) export class SubmissionContainerElementNode extends BoardNode { - @Property({ nullable: true }) + @Property({ type: Date, nullable: true }) dueDate: Date | null; constructor(props: SubmissionContainerNodeProps) { diff --git a/apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts b/apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts index 6008c97c550..f52dda806b6 100644 --- a/apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts +++ b/apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts @@ -28,7 +28,7 @@ export class ColumnBoardTarget extends BaseEntityWithTimestamps implements Learn this.published = false; } - @Property() + @Property({ type: 'boolean' }) published = false; @Property({ fieldName: 'columnBoard' }) diff --git a/apps/server/src/shared/domain/entity/lesson.entity.ts b/apps/server/src/shared/domain/entity/lesson.entity.ts index eae1cb6169b..f3eb4aa1d9e 100644 --- a/apps/server/src/shared/domain/entity/lesson.entity.ts +++ b/apps/server/src/shared/domain/entity/lesson.entity.ts @@ -87,7 +87,7 @@ export class LessonEntity extends BaseEntityWithTimestamps implements LearnroomE name: string; @Index() - @Property() + @Property({ type: 'boolean' }) hidden = false; @Index() diff --git a/apps/server/src/shared/domain/entity/task.entity.ts b/apps/server/src/shared/domain/entity/task.entity.ts index c5ae56b7286..b1537a9a387 100644 --- a/apps/server/src/shared/domain/entity/task.entity.ts +++ b/apps/server/src/shared/domain/entity/task.entity.ts @@ -57,7 +57,7 @@ export class Task extends BaseEntityWithTimestamps implements LearnroomElement, @Index() dueDate?: Date; - @Property() + @Property({ type: 'boolean' }) private = true; @Property({ nullable: true }) diff --git a/apps/server/src/shared/domain/entity/user.entity.ts b/apps/server/src/shared/domain/entity/user.entity.ts index f10dbf50d81..f7db14599d4 100644 --- a/apps/server/src/shared/domain/entity/user.entity.ts +++ b/apps/server/src/shared/domain/entity/user.entity.ts @@ -1,10 +1,10 @@ import { Collection, Embedded, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core'; import { EntityWithSchool } from '../interface'; +import { EntityId } from '../types'; import { BaseEntityWithTimestamps } from './base.entity'; import { Role } from './role.entity'; import { SchoolEntity } from './school.entity'; import { UserParentsEntity } from './user-parents.entity'; -import { EntityId } from '../types'; export enum LanguageType { DE = 'de', @@ -96,7 +96,7 @@ export class User extends BaseEntityWithTimestamps implements EntityWithSchool { @Property({ nullable: true }) forcePasswordChange?: boolean; - @Property({ nullable: true }) + @Property({ type: 'object', nullable: true }) preferences?: Record; @Property({ nullable: true }) diff --git a/apps/server/src/shared/repo/user/user.repo.integration.spec.ts b/apps/server/src/shared/repo/user/user.repo.integration.spec.ts index 56c36caee3e..a91ed146d34 100644 --- a/apps/server/src/shared/repo/user/user.repo.integration.spec.ts +++ b/apps/server/src/shared/repo/user/user.repo.integration.spec.ts @@ -462,7 +462,7 @@ describe('user repo', () => { }; }; - it('should return empty array', async () => { + it('should return zero', async () => { const { user } = setup(); const result = await repo.deleteUser(user.id); @@ -476,47 +476,42 @@ describe('user repo', () => { const user2: User = userFactory.buildWithId(); const user3: User = userFactory.buildWithId(); await em.persistAndFlush([user1, user2, user3]); - - const expectedUser2 = { - firstName: user2.firstName, - lastName: user2.lastName, - email: user2.email, - roles: user2.roles, - school: user2.school, - }; - - const expectedUser3 = { - firstName: user3.firstName, - lastName: user3.lastName, - email: user3.email, - roles: user3.roles, - school: user3.school, - }; - - const expectedResult = 1; + em.clear(); return { - expectedResult, - expectedUser2, - expectedUser3, user1, user2, user3, }; }; it('should delete user', async () => { - const { expectedResult, expectedUser2, expectedUser3, user1, user2, user3 } = await setup(); - const deleteResult = await repo.deleteUser(user1.id); - expect(deleteResult).toEqual(expectedResult); + const { user1 } = await setup(); + await repo.deleteUser(user1.id); const result1 = await em.find(User, { id: user1.id }); expect(result1).toHaveLength(0); + }); + + it('should return one deleted user', async () => { + const { user1 } = await setup(); + const result = await repo.deleteUser(user1.id); + expect(result).toEqual(1); + }); + + it('should not affect other users', async () => { + const { user1, user2, user3 } = await setup(); + await repo.deleteUser(user1.id); + + const emUser2 = await em.find(User, { id: user2.id }); + const emUser3 = await em.find(User, { id: user3.id }); + expect(emUser2).toHaveLength(1); + expect(emUser3).toHaveLength(1); - const result2 = await repo.findById(user2.id); - expect(result2).toMatchObject(expectedUser2); + const resultUser2 = await repo.findById(user2.id); + const resultUser3 = await repo.findById(user3.id); - const result3 = await repo.findById(user3.id); - expect(result3).toMatchObject(expectedUser3); + expect(resultUser2.id).toEqual(user2.id); + expect(resultUser3.id).toEqual(user3.id); }); }); }); diff --git a/apps/server/src/shared/repo/user/user.repo.ts b/apps/server/src/shared/repo/user/user.repo.ts index a37cd70c498..529df5569f1 100644 --- a/apps/server/src/shared/repo/user/user.repo.ts +++ b/apps/server/src/shared/repo/user/user.repo.ts @@ -157,7 +157,13 @@ export class UserRepo extends BaseRepo { const userDocuments = await this._em.aggregate(User, pipeline); // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - const users = userDocuments.map((userDocument) => this._em.map(User, userDocument)); + const users = userDocuments.map((userDocument) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const { createdAt, updatedAt, ...newUserDocument } = userDocument; + + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + return this._em.map(User, newUserDocument); + }); await this._em.populate(users, ['roles']); return [users, count]; } diff --git a/apps/server/src/shared/testing/factory/base.factory.ts b/apps/server/src/shared/testing/factory/base.factory.ts index eadf61b5b1d..0c9153bb2da 100644 --- a/apps/server/src/shared/testing/factory/base.factory.ts +++ b/apps/server/src/shared/testing/factory/base.factory.ts @@ -1,5 +1,5 @@ +import { ObjectId } from '@mikro-orm/mongodb'; import { BuildOptions, DeepPartial, Factory, GeneratorFn, HookFn } from 'fishery'; -import { ObjectId } from 'mongodb'; /** * Entity factory based on thoughtbot/fishery diff --git a/package-lock.json b/package-lock.json index 4c989c5cdfd..abe3ede4318 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,10 +22,10 @@ "@hpi-schul-cloud/commons": "^1.3.4", "@keycloak/keycloak-admin-client": "^23.0.6", "@lumieducation/h5p-server": "^9.2.0", - "@mikro-orm/cli": "^5.6.8", - "@mikro-orm/core": "^5.6.8", - "@mikro-orm/migrations-mongodb": "^5.6.8", - "@mikro-orm/mongodb": "^5.6.8", + "@mikro-orm/cli": "^5.6.16", + "@mikro-orm/core": "^5.6.16", + "@mikro-orm/migrations-mongodb": "^5.6.16", + "@mikro-orm/mongodb": "^5.6.16", "@mikro-orm/nestjs": "^5.2.1", "@nestjs/axios": "^3.0.0", "@nestjs/cache-manager": "^2.1.0", @@ -4596,15 +4596,15 @@ } }, "node_modules/@mikro-orm/cli": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.6.8.tgz", - "integrity": "sha512-IUd719fLY+eH2rKgoS7RbyY1yWwKFJeJ1Vea3lYA5ab3y1LlxOmEDl6tSOSfmsGH7mdUStoBrssWDtYYMjzknw==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.6.16.tgz", + "integrity": "sha512-ebYoSEf2fr4j2W6a/3zUW+Umi9abj6qOwuxSuKcCk6Uj9zJaC86urypHmnEbrMED0VbYeU9xX+rRpy3OdvaIPQ==", "dependencies": { "@jercle/yargonaut": "1.1.5", - "@mikro-orm/core": "~5.6.8", - "@mikro-orm/knex": "~5.6.8", - "fs-extra": "11.1.0", - "tsconfig-paths": "4.1.2", + "@mikro-orm/core": "~5.6.16", + "@mikro-orm/knex": "~5.6.16", + "fs-extra": "11.1.1", + "tsconfig-paths": "4.2.0", "yargs": "15.4.1" }, "bin": { @@ -4700,9 +4700,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@mikro-orm/cli/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4717,27 +4717,6 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "node_modules/@mikro-orm/cli/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@mikro-orm/cli/node_modules/tsconfig-paths": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", - "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@mikro-orm/cli/node_modules/which-module": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", @@ -4795,16 +4774,16 @@ } }, "node_modules/@mikro-orm/core": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.6.8.tgz", - "integrity": "sha512-R0ex3+3DNXuVm6eZz7t8pXowYkfOH3SU7WsdIeUVvV8I1KLsv3nJqA6ZcrYbyeW68ULho4gWjbkLeiLee88idQ==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.6.16.tgz", + "integrity": "sha512-JTrVS4Rb5uVKbf/d26Ni/YgJjMyoHapPEUklr4H+4c+6xlRXbfpPDN6o4ESWNXTc4ubwRGLMI1haMXg0bh6uVQ==", "dependencies": { "acorn-loose": "8.3.0", "acorn-walk": "8.2.0", "dotenv": "16.0.3", - "fs-extra": "11.1.0", + "fs-extra": "11.1.1", "globby": "11.1.0", - "mikro-orm": "~5.6.8", + "mikro-orm": "~5.6.16", "reflect-metadata": "0.1.13" }, "engines": { @@ -4872,9 +4851,9 @@ } }, "node_modules/@mikro-orm/core/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4948,12 +4927,12 @@ } }, "node_modules/@mikro-orm/migrations-mongodb": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/migrations-mongodb/-/migrations-mongodb-5.6.8.tgz", - "integrity": "sha512-fyV7LESRQ0CF9Sr9h6q0HORhmLhCw9VRJeJSvX7dIGQjC1NC2Wep1FvKgiLx4fJoxiLfRYpgWRQ30+NbO+FQJQ==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/migrations-mongodb/-/migrations-mongodb-5.6.16.tgz", + "integrity": "sha512-c1/sKAvX2WZH/Wiq+CAfuB4Fv0A1rw9vslkPEB043/Kpvb3fn4lbV3/2O/hlaH4juzvfDC9kF+o72zQ69uu05A==", "dependencies": { - "@mikro-orm/mongodb": "~5.6.8", - "fs-extra": "11.1.0", + "@mikro-orm/mongodb": "~5.6.16", + "fs-extra": "11.1.1", "mongodb": "4.13.0", "umzug": "3.2.1" }, @@ -4965,9 +4944,9 @@ } }, "node_modules/@mikro-orm/migrations-mongodb/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4978,9 +4957,9 @@ } }, "node_modules/@mikro-orm/mongodb": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-5.6.8.tgz", - "integrity": "sha512-uLQMFWAfs6rXdJFFm7g1Nd8ZsS7j6xOoLEmGBRAzWs8tswuEGsf/jTPhSnf8w+y197muWEKVP5cV8tJkaf6QGA==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-5.6.16.tgz", + "integrity": "sha512-MH7B4+OkQedLkv+ecTDRD41La8255LfpCuuwHNOnE8+XjF0tCXiD1XO4Cpcau98ubLR959HRs88OtulQwzgCQw==", "dependencies": { "bson": "^4.7.0", "mongodb": "4.13.0" @@ -24500,7 +24479,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", @@ -24589,7 +24567,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, "engines": { "node": ">=4" } @@ -29505,15 +29482,15 @@ } }, "@mikro-orm/cli": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.6.8.tgz", - "integrity": "sha512-IUd719fLY+eH2rKgoS7RbyY1yWwKFJeJ1Vea3lYA5ab3y1LlxOmEDl6tSOSfmsGH7mdUStoBrssWDtYYMjzknw==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.6.16.tgz", + "integrity": "sha512-ebYoSEf2fr4j2W6a/3zUW+Umi9abj6qOwuxSuKcCk6Uj9zJaC86urypHmnEbrMED0VbYeU9xX+rRpy3OdvaIPQ==", "requires": { "@jercle/yargonaut": "1.1.5", - "@mikro-orm/core": "~5.6.8", - "@mikro-orm/knex": "~5.6.8", - "fs-extra": "11.1.0", - "tsconfig-paths": "4.1.2", + "@mikro-orm/core": "~5.6.16", + "@mikro-orm/knex": "~5.6.16", + "fs-extra": "11.1.1", + "tsconfig-paths": "4.2.0", "yargs": "15.4.1" }, "dependencies": { @@ -29549,9 +29526,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -29563,21 +29540,6 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" - }, - "tsconfig-paths": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", - "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", - "requires": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, "which-module": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", @@ -29628,16 +29590,16 @@ } }, "@mikro-orm/core": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.6.8.tgz", - "integrity": "sha512-R0ex3+3DNXuVm6eZz7t8pXowYkfOH3SU7WsdIeUVvV8I1KLsv3nJqA6ZcrYbyeW68ULho4gWjbkLeiLee88idQ==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.6.16.tgz", + "integrity": "sha512-JTrVS4Rb5uVKbf/d26Ni/YgJjMyoHapPEUklr4H+4c+6xlRXbfpPDN6o4ESWNXTc4ubwRGLMI1haMXg0bh6uVQ==", "requires": { "acorn-loose": "8.3.0", "acorn-walk": "8.2.0", "dotenv": "16.0.3", - "fs-extra": "11.1.0", + "fs-extra": "11.1.1", "globby": "11.1.0", - "mikro-orm": "~5.6.8", + "mikro-orm": "~5.6.16", "reflect-metadata": "0.1.13" }, "dependencies": { @@ -29652,9 +29614,9 @@ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" }, "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -29686,20 +29648,20 @@ } }, "@mikro-orm/migrations-mongodb": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/migrations-mongodb/-/migrations-mongodb-5.6.8.tgz", - "integrity": "sha512-fyV7LESRQ0CF9Sr9h6q0HORhmLhCw9VRJeJSvX7dIGQjC1NC2Wep1FvKgiLx4fJoxiLfRYpgWRQ30+NbO+FQJQ==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/migrations-mongodb/-/migrations-mongodb-5.6.16.tgz", + "integrity": "sha512-c1/sKAvX2WZH/Wiq+CAfuB4Fv0A1rw9vslkPEB043/Kpvb3fn4lbV3/2O/hlaH4juzvfDC9kF+o72zQ69uu05A==", "requires": { - "@mikro-orm/mongodb": "~5.6.8", - "fs-extra": "11.1.0", + "@mikro-orm/mongodb": "~5.6.16", + "fs-extra": "11.1.1", "mongodb": "4.13.0", "umzug": "3.2.1" }, "dependencies": { "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -29709,9 +29671,9 @@ } }, "@mikro-orm/mongodb": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-5.6.8.tgz", - "integrity": "sha512-uLQMFWAfs6rXdJFFm7g1Nd8ZsS7j6xOoLEmGBRAzWs8tswuEGsf/jTPhSnf8w+y197muWEKVP5cV8tJkaf6QGA==", + "version": "5.6.16", + "resolved": "https://registry.npmjs.org/@mikro-orm/mongodb/-/mongodb-5.6.16.tgz", + "integrity": "sha512-MH7B4+OkQedLkv+ecTDRD41La8255LfpCuuwHNOnE8+XjF0tCXiD1XO4Cpcau98ubLR959HRs88OtulQwzgCQw==", "requires": { "bson": "^4.7.0", "mongodb": "4.13.0" @@ -44482,7 +44444,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, "requires": { "json5": "^2.2.2", "minimist": "^1.2.6", @@ -44492,8 +44453,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } }, diff --git a/package.json b/package.json index 241a94db511..92f43d66b35 100644 --- a/package.json +++ b/package.json @@ -122,10 +122,10 @@ "@hpi-schul-cloud/commons": "^1.3.4", "@keycloak/keycloak-admin-client": "^23.0.6", "@lumieducation/h5p-server": "^9.2.0", - "@mikro-orm/cli": "^5.6.8", - "@mikro-orm/core": "^5.6.8", - "@mikro-orm/migrations-mongodb": "^5.6.8", - "@mikro-orm/mongodb": "^5.6.8", + "@mikro-orm/cli": "^5.6.16", + "@mikro-orm/core": "^5.6.16", + "@mikro-orm/migrations-mongodb": "^5.6.16", + "@mikro-orm/mongodb": "^5.6.16", "@mikro-orm/nestjs": "^5.2.1", "@nestjs/axios": "^3.0.0", "@nestjs/cache-manager": "^2.1.0",