From 3c7b616e27aa48b12ee3546f8863c7d28792e283 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 08:19:15 +0000 Subject: [PATCH 01/12] Bump @nestjs/swagger from 7.1.14 to 7.1.15 (#85) Bumps [@nestjs/swagger](https://github.com/nestjs/swagger) from 7.1.14 to 7.1.15. - [Release notes](https://github.com/nestjs/swagger/releases) - [Changelog](https://github.com/nestjs/swagger/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/swagger/compare/7.1.14...7.1.15) --- updated-dependencies: - dependency-name: "@nestjs/swagger" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 466288812..3a6549c43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@nestjs/core": "^9.0.0", "@nestjs/passport": "^10.0.2", "@nestjs/platform-express": "^9.0.0", - "@nestjs/swagger": "^7.1.14", + "@nestjs/swagger": "^7.1.15", "@nestjs/terminus": "^9.0.0", "@s3pweb/keycloak-admin-client-cjs": "^22.0.1", "axios": "^1.5.0", @@ -2060,9 +2060,9 @@ } }, "node_modules/@nestjs/mapped-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.2.tgz", - "integrity": "sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.3.tgz", + "integrity": "sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==", "peerDependencies": { "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", "class-transformer": "^0.4.0 || ^0.5.0", @@ -2181,15 +2181,15 @@ } }, "node_modules/@nestjs/swagger": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.1.14.tgz", - "integrity": "sha512-2Ol4S6qHeYVVmkshkWBM8E/qkmEqEOUj2QIewr0jLSyo30H7f3v81pJyks6pTLy4PK0LGUXojMvIfFIE3mmGQQ==", + "version": "7.1.15", + "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.1.15.tgz", + "integrity": "sha512-ZaAO90R9MQXk4iLQLijIH6jrsllkUSYoh0Su6DECGgu8Y4Q/9LfdESwsZ9nmzr/48aLOu+wrv+cdI5Wr6fLKJw==", "dependencies": { - "@nestjs/mapped-types": "2.0.2", + "@nestjs/mapped-types": "2.0.3", "js-yaml": "4.1.0", "lodash": "4.17.21", "path-to-regexp": "3.2.0", - "swagger-ui-dist": "5.9.0" + "swagger-ui-dist": "5.9.1" }, "peerDependencies": { "@fastify/static": "^6.0.0", @@ -10753,9 +10753,9 @@ } }, "node_modules/swagger-ui-dist": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.9.0.tgz", - "integrity": "sha512-NUHSYoe5XRTk/Are8jPJ6phzBh3l9l33nEyXosM17QInoV95/jng8+PuSGtbD407QoPf93MH3Bkh773OgesJpA==" + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.9.1.tgz", + "integrity": "sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==" }, "node_modules/symbol-observable": { "version": "4.0.0", diff --git a/package.json b/package.json index 9d474fa97..b38d326d0 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@nestjs/core": "^9.0.0", "@nestjs/passport": "^10.0.2", "@nestjs/platform-express": "^9.0.0", - "@nestjs/swagger": "^7.1.14", + "@nestjs/swagger": "^7.1.15", "@nestjs/terminus": "^9.0.0", "@s3pweb/keycloak-admin-client-cjs": "^22.0.1", "axios": "^1.5.0", From 559eb3d92cc360e6c37d88273eebf51f5fa18aa0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:32:26 +0100 Subject: [PATCH 02/12] Bump nest-commander from 3.11.0 to 3.12.2 (#88) Bumps [nest-commander](https://github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander) from 3.11.0 to 3.12.2. - [Release notes](https://github.com/jmcdo29/nest-commander/releases) - [Commits](https://github.com/jmcdo29/nest-commander/commits/nest-commander@3.12.2/pacakges/nest-commander) --- updated-dependencies: - dependency-name: nest-commander dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 122 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 105 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a6549c43..40475a55f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "express-session": "^1.17.3", "lodash": "^4.17.21", "lodash-es": "^4.17.21", - "nest-commander": "^3.11.0", + "nest-commander": "^3.12.2", "nest-keycloak-connect": "^1.9.2", "openid-client": "^5.6.0", "passport": "^0.6.0", @@ -1080,12 +1080,29 @@ "node": ">=10" } }, - "node_modules/@golevelup/nestjs-discovery": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@golevelup/nestjs-discovery/-/nestjs-discovery-3.0.0.tgz", - "integrity": "sha512-ZvkXtobTKxXB1LJanP/l6Z/Fing88IMBr3uabQpU2IWjfsstjh02qYDSU2cfD6CSmNldX5ewW5Pd+SdK2lU8Sw==", + "node_modules/@fig/complete-commander": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@fig/complete-commander/-/complete-commander-2.0.1.tgz", + "integrity": "sha512-AbGETely7iwD4F7XHe4g7pW6icWYYqJMdQog8CdEi9syU/av5L0O24BvCfgEeGO6TRPMpC+rFL7ZDJsqRtckOA==", "dependencies": { - "lodash": "^4.17.15" + "prettier": "^2.3.2" + }, + "peerDependencies": { + "commander": "^8.0.0" + } + }, + "node_modules/@fig/complete-commander/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/@golevelup/ts-jest": { @@ -4472,6 +4489,15 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "peer": true, + "engines": { + "node": ">= 12" + } + }, "node_modules/comment-json": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", @@ -6992,6 +7018,7 @@ "version": "8.2.5", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -8705,14 +8732,15 @@ "dev": true }, "node_modules/nest-commander": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/nest-commander/-/nest-commander-3.11.0.tgz", - "integrity": "sha512-/i5LiPQh9ldxiML+umybnStB+/WrYBt6vrWxl4JtZHRKHe7MyAHJFDOmVd1U7dO04vfoHyjlHtxqde+eihmteg==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/nest-commander/-/nest-commander-3.12.2.tgz", + "integrity": "sha512-iOIVzwepP21fFfU629lxGeWABhDRXfOmJeNsuqmdonx/TEYUpWuPJCPYMKRKOpv/UQj0vf/8hjbzq25VfU+0xQ==", "dependencies": { - "@golevelup/nestjs-discovery": "3.0.0", + "@fig/complete-commander": "^2.0.1", + "@golevelup/nestjs-discovery": "4.0.0", "commander": "11.0.0", - "cosmiconfig": "8.2.0", - "inquirer": "8.2.5" + "cosmiconfig": "8.3.6", + "inquirer": "8.2.6" }, "peerDependencies": { "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", @@ -8720,6 +8748,18 @@ "@types/inquirer": "^8.1.3" } }, + "node_modules/nest-commander/node_modules/@golevelup/nestjs-discovery": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@golevelup/nestjs-discovery/-/nestjs-discovery-4.0.0.tgz", + "integrity": "sha512-iyZLYip9rhVMR0C93vo860xmboRrD5g5F5iEOfpeblGvYSz8ymQrL9RAST7x/Fp3n+TAXSeOLzDIASt+rak68g==", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "@nestjs/common": "^10.x", + "@nestjs/core": "^10.x" + } + }, "node_modules/nest-commander/node_modules/commander": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", @@ -8729,13 +8769,13 @@ } }, "node_modules/nest-commander/node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { @@ -8743,6 +8783,52 @@ }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/nest-commander/node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/nest-commander/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/nest-keycloak-connect": { @@ -11408,7 +11494,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index b38d326d0..c26761fe3 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "express-session": "^1.17.3", "lodash": "^4.17.21", "lodash-es": "^4.17.21", - "nest-commander": "^3.11.0", + "nest-commander": "^3.12.2", "nest-keycloak-connect": "^1.9.2", "openid-client": "^5.6.0", "passport": "^0.6.0", From 13cddb88fe37949f2f64387381ff81776e6c7200 Mon Sep 17 00:00:00 2001 From: Kristoff Kiefer <31993948+kristoff-kiefer@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:49:24 +0100 Subject: [PATCH 03/12] Spsh 141 redis into helm (#61) * Inital Redis template * Inital service * Script to create self signed certificates * Script to copy the certificates * Configure Redis to enable TLS, disable unencrypted * Make config files and scripts available to pods * Introduce init pod and build certificates * Added comments and a little more structure * Changed name to fit with others * Added comments and removed unecessary config params * Add test user * Add password-requirement * Preserve line endings * Corrected ingress to point to BFF * Fixed User-ID * Added timestamp of creation --------- Co-authored-by: DPDS93CT <144817755+DPDS93CT@users.noreply.github.com> --- .gitattributes | 2 + charts/dbildungs-iam/Chart.yaml | 7 ++- .../dev-realm-spsh.json | 22 ++++++- .../charts/dbildungs-iam-redis/Chart.yaml | 23 ++++++++ .../charts/dbildungs-iam-redis/copy-tls.sh | 28 +++++++++ .../charts/dbildungs-iam-redis/gencert.sh | 59 +++++++++++++++++++ .../charts/dbildungs-iam-redis/redis.conf | 8 +++ .../templates/configmap-tls.yaml | 8 +++ .../templates/deployment.yaml | 44 ++++++++++++++ .../templates/service.yaml | 15 +++++ .../charts/dbildungs-iam-redis/values.yaml | 0 charts/dbildungs-iam/values.yaml | 7 ++- 12 files changed, 217 insertions(+), 6 deletions(-) create mode 100644 .gitattributes create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/Chart.yaml create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/copy-tls.sh create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/gencert.sh create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/redis.conf create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/configmap-tls.yaml create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/deployment.yaml create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/service.yaml create mode 100644 charts/dbildungs-iam/charts/dbildungs-iam-redis/values.yaml diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..99d5dc977 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +redis.conf eol=lf \ No newline at end of file diff --git a/charts/dbildungs-iam/Chart.yaml b/charts/dbildungs-iam/Chart.yaml index 4a944d980..df8cd9028 100644 --- a/charts/dbildungs-iam/Chart.yaml +++ b/charts/dbildungs-iam/Chart.yaml @@ -1,11 +1,16 @@ apiVersion: v2 name: dbildungs-iam -version: 0.1.1 +version: 0.2.0 description: dBildungs-IAM type: application dependencies: + # In non-test-deployments we expect keycloak to be provided for us thus it needs to be enabled - name: dbildungs-iam-keycloak-dev version: "*" condition: keycloakEnabled + # In non-test-deployments we expect redis to be provided for us thus it needs to be enabled + - name: dbildungs-iam-redis + version: latest + condition: redisEnabled diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-keycloak-dev/dev-realm-spsh.json b/charts/dbildungs-iam/charts/dbildungs-iam-keycloak-dev/dev-realm-spsh.json index 32dcfcb4b..83dfa1415 100644 --- a/charts/dbildungs-iam/charts/dbildungs-iam-keycloak-dev/dev-realm-spsh.json +++ b/charts/dbildungs-iam/charts/dbildungs-iam-keycloak-dev/dev-realm-spsh.json @@ -467,6 +467,22 @@ ], "notBefore": 0, "groups": [] + }, + { + "id": "22207262-196f-4995-8011-6830091ebdca", + "username": "test", + "createdTimestamp": 1697087666332, + "enabled": true, + "emailVerified": true, + "firstName": "Testus", + "lastName": "Experimentus", + "email": "testuser@example.com", + "credentials": [ + { + "type": "password", + "value": "test" + } + ] } ], "scopeMappings": [ @@ -778,7 +794,6 @@ "enabled": true, "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", - "secret": "YDp6fYkbUcj4ZkyAOnbAHGQ9O72htc5M", "redirectUris": [ "/*" ], @@ -791,14 +806,15 @@ "standardFlowEnabled": true, "implicitFlowEnabled": false, "directAccessGrantsEnabled": true, - "serviceAccountsEnabled": true, - "publicClient": false, + "serviceAccountsEnabled": false, + "publicClient": true, "frontchannelLogout": true, "protocol": "openid-connect", "attributes": { "oidc.ciba.grant.enabled": "false", "client.secret.creation.time": "1696586327", "backchannel.logout.session.required": "true", + "post.logout.redirect.uris": "+", "oauth2.device.authorization.grant.enabled": "false", "display.on.consent.screen": "false", "backchannel.logout.revoke.offline.tokens": "false" diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/Chart.yaml b/charts/dbildungs-iam/charts/dbildungs-iam-redis/Chart.yaml new file mode 100644 index 000000000..9e9a94dcf --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +name: dbildungs-iam-redis +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 1.16.0 diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/copy-tls.sh b/charts/dbildungs-iam/charts/dbildungs-iam-redis/copy-tls.sh new file mode 100644 index 000000000..6d4261f91 --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/copy-tls.sh @@ -0,0 +1,28 @@ +#!/bin/bash +STAGING_DIR="/staging" +MOUNTED_FILES_DIR="/tls" +CONFIG_DIR=/data/tls + +# Setup working environment + +mkdir -p $STAGING_DIR +mkdir -p $CONFIG_DIR +# Copy generator script +cp -v $MOUNTED_FILES_DIR/gencert.sh /staging + +# Begin Bracket +pushd $STAGING_DIR || exit 1 + +chmod ugo+x gencert.sh +./gencert.sh + +# We have generated our certificates, now we put them in their right place +cp -v tls/redis.crt tls/redis.key tls/ca.crt $CONFIG_DIR +# Pre-Made config, correct certs and disabling of non-tls included +cp -v $MOUNTED_FILES_DIR/redis.conf $CONFIG_DIR + +# End Bracket +popd || exit 1 + +# $CONFIG_DIR remains behind, that is the point of this script, Staging is cleaned away +rm -rf $STAGING_DIR \ No newline at end of file diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/gencert.sh b/charts/dbildungs-iam/charts/dbildungs-iam-redis/gencert.sh new file mode 100644 index 000000000..2c20c4f72 --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/gencert.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# COPIED/MODIFIED from the redis server gen-certs util + +# Generate some test certificates which are used by the regression test suite: +# +# tls/ca.{crt,key} Self signed CA certificate. +# tls/redis.{crt,key} A certificate with no key usage/policy restrictions. +# tls/client.{crt,key} A certificate restricted for SSL client usage. +# tls/server.{crt,key} A certificate restricted for SSL server usage. +# tls/redis.dh DH Params file. + +generate_cert() { + local name=$1 + local cn="$2" + local opts="$3" + + local keyfile=tls/${name}.key + local certfile=tls/${name}.crt + + [ -f $keyfile ] || openssl genrsa -out $keyfile 2048 + openssl req \ + -new -sha256 \ + -subj "/O=Redis Test/CN=$cn" \ + -key $keyfile | \ + openssl x509 \ + -req -sha256 \ + -CA tls/ca.crt \ + -CAkey tls/ca.key \ + -CAserial tls/ca.txt \ + -CAcreateserial \ + -days 365 \ + $opts \ + -out $certfile +} + +mkdir -p tls +[ -f tls/ca.key ] || openssl genrsa -out tls/ca.key 4096 +openssl req \ + -x509 -new -nodes -sha256 \ + -key tls/ca.key \ + -days 3650 \ + -subj '/O=Redis Test/CN=Certificate Authority' \ + -out tls/ca.crt + +cat > tls/openssl.cnf <<_END_ +[ server_cert ] +keyUsage = digitalSignature, keyEncipherment +nsCertType = server +[ client_cert ] +keyUsage = digitalSignature, keyEncipherment +nsCertType = client +_END_ + +generate_cert server "Server-only" "-extfile tls/openssl.cnf -extensions server_cert" +generate_cert client "Client-only" "-extfile tls/openssl.cnf -extensions client_cert" +generate_cert redis "Generic-cert" + +[ -f tls/redis.dh ] || openssl dhparam -out tls/redis.dh 2048 \ No newline at end of file diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/redis.conf b/charts/dbildungs-iam/charts/dbildungs-iam-redis/redis.conf new file mode 100644 index 000000000..d8f7b92de --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/redis.conf @@ -0,0 +1,8 @@ +tls-cert-file /data/tls/redis.crt +tls-key-file /data/tls/redis.key +tls-ca-cert-file /data/tls/ca.crt + +requirepass password + +tls-port 6379 +port 0 \ No newline at end of file diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/configmap-tls.yaml b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/configmap-tls.yaml new file mode 100644 index 000000000..aea95d149 --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/configmap-tls.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: dbiam-redis-tls-config +data: +{{(.Files.Glob "gencert.sh").AsConfig | indent 2}} +{{(.Files.Glob "copy-tls.sh").AsConfig | indent 2}} +{{(.Files.Glob "redis.conf").AsConfig | indent 2}} \ No newline at end of file diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/deployment.yaml b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/deployment.yaml new file mode 100644 index 000000000..662dc3c1b --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dbiam-server-redis-deployment + labels: + app.kubernetes.io/name: dbildungs-iam +spec: + selector: + matchLabels: + layer: dbildungs-iam-redis + replicas: 1 + template: + metadata: + name: dbildungs-iam-redis + labels: + layer: dbildungs-iam-redis + spec: + initContainers: + - name: copy-tls-data + image: alpine + command: ["/bin/sh","-c", "apk add --no-cache openssl bash;/bin/bash /tls/copy-tls.sh"] + volumeMounts: + - mountPath: "/tls" + name: tls-data + - mountPath: "/data" + name: data + containers: + - name: redis + image: redis:7.2.2 + volumeMounts: + - mountPath: "/data" + name: data + ports: + - name: redis-port + containerPort: 6379 + hostPort: 6379 + args: + - "/data/tls/redis.conf" + volumes: + - name: tls-data + configMap: + name: dbiam-redis-tls-config + - name: data + emptyDir: {} \ No newline at end of file diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/service.yaml b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/service.yaml new file mode 100644 index 000000000..215def17b --- /dev/null +++ b/charts/dbildungs-iam/charts/dbildungs-iam-redis/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-service + labels: + app.kubernetes.io/name: dbiam-server +spec: + type: ClusterIP + ports: + - port: 6379 + targetPort: redis-port + protocol: TCP + name: redis-port + selector: + layer: dbildungs-iam-redis diff --git a/charts/dbildungs-iam/charts/dbildungs-iam-redis/values.yaml b/charts/dbildungs-iam/charts/dbildungs-iam-redis/values.yaml new file mode 100644 index 000000000..e69de29bb diff --git a/charts/dbildungs-iam/values.yaml b/charts/dbildungs-iam/values.yaml index ba1ed691e..27ef292ec 100644 --- a/charts/dbildungs-iam/values.yaml +++ b/charts/dbildungs-iam/values.yaml @@ -1,4 +1,4 @@ -dbildungsIamContainer: "ghcr.io/dbildungsplattform/dbildungs-iam-server/feature/bff_to_helm:latest" +dbildungsIamContainer: "ghcr.io/dbildungsplattform/dbildungs-iam-server:kc_healthprobe" dbildungsIamExternalPort: 80 dbildungsIamCpuMax: 2 @@ -25,4 +25,7 @@ enableServiceMonitor: false # Both of these are disabled as to make them intentional keycloakEnabled: false dbildungs-iam-keycloak-dev: - keycloakPublic: false \ No newline at end of file + keycloakPublic: false + +# do we use a development redis? +redisEnabled: false From b92837e8e9c0bd9b0aefe25cda88ce048561697e Mon Sep 17 00:00:00 2001 From: mkreuzkam-cap <144103168+mkreuzkam-cap@users.noreply.github.com> Date: Tue, 14 Nov 2023 10:44:47 +0100 Subject: [PATCH 04/12] EW-525: Add GET /personenkontexte endpoint (#82) * Add endpoint GET /api/personenkontexte to get all Personenkontexte (supports filters and pagination) * /api/person/{personId}/personenkontexte now also supports pagination * Add PersonenkontextScope and use it in findAll for Personenkontexte * Use SichtfreigabeType instead of boolean in personenkontext entity and DO (requires re-initializing the database) --- .../person/api/created-personenkontext.dto.ts | 3 +- .../person/api/find-personendatensatz.dto.ts | 2 +- .../person/api/find-personenkontext.dto.ts | 8 +-- .../api/person-api.mapper.profile.spec.ts | 26 +++---- .../person/api/person-api.mapper.profile.ts | 59 +++++++--------- src/modules/person/api/person-id.response.ts | 12 ++++ .../person/api/person.controller.spec.ts | 40 ++++++----- src/modules/person/api/person.controller.ts | 34 +++++---- src/modules/person/api/person.uc.spec.ts | 22 +++--- src/modules/person/api/person.uc.ts | 21 +++--- .../person/api/personen-query.param.spec.ts | 5 +- .../person/api/personen-query.param.ts | 10 +-- .../api/personenkontext-query.params.spec.ts | 3 +- .../api/personenkontext-query.params.ts | 14 ++-- .../api/personenkontext.controller.spec.ts | 63 +++++++++++++++-- .../person/api/personenkontext.controller.ts | 44 +++++++++++- src/modules/person/api/personenkontext.dto.ts | 6 +- .../person/api/personenkontext.response.ts | 3 +- .../person/api/personenkontext.uc.spec.ts | 30 ++++---- src/modules/person/api/personenkontext.uc.ts | 29 +++++--- .../api/personenkontextdatensatz.response.ts | 14 ++++ .../person/domain/personenkontext.do.ts | 6 +- .../person/domain/personenkontext.enums.ts | 5 ++ .../domain/personenkontext.service.spec.ts | 35 ++++++---- .../person/domain/personenkontext.service.ts | 30 ++++++-- .../persistence/personenkontext.entity.ts | 8 +-- .../personenkontext.repo.integration-spec.ts | 29 ++++---- .../persistence/personenkontext.repo.ts | 30 ++------ .../personenkontext.scope.integration-spec.ts | 69 +++++++++++++++++++ .../persistence/personenkontext.scope.ts | 34 +++++++++ test/utils/do-factory.ts | 9 ++- 31 files changed, 475 insertions(+), 228 deletions(-) create mode 100644 src/modules/person/api/person-id.response.ts create mode 100644 src/modules/person/api/personenkontextdatensatz.response.ts create mode 100644 src/modules/person/persistence/personenkontext.scope.integration-spec.ts create mode 100644 src/modules/person/persistence/personenkontext.scope.ts diff --git a/src/modules/person/api/created-personenkontext.dto.ts b/src/modules/person/api/created-personenkontext.dto.ts index 0a9f04331..7d135cac6 100644 --- a/src/modules/person/api/created-personenkontext.dto.ts +++ b/src/modules/person/api/created-personenkontext.dto.ts @@ -1,8 +1,7 @@ import { AutoMap } from '@automapper/classes'; -import { Jahrgangsstufe, Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { CreatedPersonenkontextOrganisationDto } from './created-personenkontext-organisation.dto.js'; import { LoeschungDto } from './loeschung.dto.js'; -import { SichtfreigabeType } from './personen-query.param.js'; export class CreatedPersonenkontextDto { @AutoMap() diff --git a/src/modules/person/api/find-personendatensatz.dto.ts b/src/modules/person/api/find-personendatensatz.dto.ts index 16eee1f92..c47355efc 100644 --- a/src/modules/person/api/find-personendatensatz.dto.ts +++ b/src/modules/person/api/find-personendatensatz.dto.ts @@ -1,6 +1,6 @@ import { AutoMap } from '@automapper/classes'; import { PagedDto } from '../../../shared/paging/index.js'; -import { SichtfreigabeType } from './personen-query.param.js'; +import { SichtfreigabeType } from '../domain/personenkontext.enums.js'; export class FindPersonendatensatzDto extends PagedDto { @AutoMap() diff --git a/src/modules/person/api/find-personenkontext.dto.ts b/src/modules/person/api/find-personenkontext.dto.ts index 2074e975a..e1500bc42 100644 --- a/src/modules/person/api/find-personenkontext.dto.ts +++ b/src/modules/person/api/find-personenkontext.dto.ts @@ -1,10 +1,10 @@ import { AutoMap } from '@automapper/classes'; -import { Rolle, Personenstatus } from '../domain/personenkontext.enums.js'; -import { SichtfreigabeType } from './personen-query.param.js'; +import { PagedDto } from '../../../shared/paging/paged.dto.js'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; -export class FindPersonenkontextDto { +export class FindPersonenkontextDto extends PagedDto { @AutoMap() - public personId!: string; + public personId?: string; @AutoMap() public readonly referrer?: string; diff --git a/src/modules/person/api/person-api.mapper.profile.spec.ts b/src/modules/person/api/person-api.mapper.profile.spec.ts index 7d2f90964..db2390385 100644 --- a/src/modules/person/api/person-api.mapper.profile.spec.ts +++ b/src/modules/person/api/person-api.mapper.profile.spec.ts @@ -4,11 +4,11 @@ import { faker } from '@faker-js/faker'; import { Test, TestingModule } from '@nestjs/testing'; import { DoFactory, MapperTestModule } from '../../../../test/utils/index.js'; import { MappingError } from '../../../shared/error/index.js'; -import { CreatePersonDto } from './create-person.dto.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; -import { Jahrgangsstufe, Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { CreatePersonBodyParams } from './create-person.body.params.js'; +import { CreatePersonDto } from './create-person.dto.js'; import { CreatePersonenkontextBodyParams } from './create-personenkontext.body.params.js'; import { CreatePersonenkontextDto } from './create-personenkontext.dto.js'; import { CreatedPersonenkontextDto } from './created-personenkontext.dto.js'; @@ -17,19 +17,19 @@ import { FindPersonenkontextByIdParams } from './find-personenkontext-by-id.para import { FindPersonenkontextDto } from './find-personenkontext.dto.js'; import { LoeschungDto } from './loeschung.dto.js'; import { LoeschungResponse } from './loeschung.response.js'; -import { PersonApiMapperProfile, personVisibilityToBooleanConverter } from './person-api.mapper.profile.js'; +import { PersonApiMapperProfile } from './person-api.mapper.profile.js'; import { PersonBirthParams } from './person-birth.params.js'; import { PersonGeburtDto } from './person-geburt.dto.js'; import { PersonNameDto } from './person-name.dto.js'; import { PersonNameParams } from './person-name.params.js'; import { PersonDto } from './person.dto.js'; import { PersonResponse } from './person.response.js'; -import { SichtfreigabeType } from './personen-query.param.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonendatensatzResponse } from './personendatensatz.response.js'; import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; import { PersonenkontextDto } from './personenkontext.dto.js'; import { PersonenkontextResponse } from './personenkontext.response.js'; +import { PersonenkontextdatensatzResponse } from './personenkontextdatensatz.response.js'; describe('PersonApiMapperProfile', () => { let module: TestingModule; @@ -51,18 +51,6 @@ describe('PersonApiMapperProfile', () => { expect(sut).toBeDefined(); }); - describe('personVisibilityToBooleanConverter', () => { - describe('when converting Visibility type to boolean', () => { - it('should convert VisibilityType.JA to true', () => { - expect(personVisibilityToBooleanConverter.convert(SichtfreigabeType.JA)).toBe(true); - }); - - it('should convert VisibilityType.NEIN to false', () => { - expect(personVisibilityToBooleanConverter.convert(SichtfreigabeType.NEIN)).toBe(false); - }); - }); - }); - describe('when mapper is initialized', () => { it('should map CreatePersonBodyParams to CreatePersonDTO', () => { const params: CreatePersonBodyParams = { @@ -205,5 +193,11 @@ describe('PersonApiMapperProfile', () => { sut.map({} as PersonendatensatzDto, PersonendatensatzDto, PersonendatensatzResponse), ).not.toThrowError(MappingError); }); + + it('should map PersonenkontextDto to PersonenkontextdatensatzResponse', () => { + expect(() => + sut.map({} as PersonenkontextDto, PersonenkontextDto, PersonenkontextdatensatzResponse), + ).not.toThrowError(MappingError); + }); }); }); diff --git a/src/modules/person/api/person-api.mapper.profile.ts b/src/modules/person/api/person-api.mapper.profile.ts index 96ce9d358..dd3b32164 100644 --- a/src/modules/person/api/person-api.mapper.profile.ts +++ b/src/modules/person/api/person-api.mapper.profile.ts @@ -1,21 +1,12 @@ -import { - Converter, - Mapper, - MappingProfile, - convertUsing, - createMap, - forMember, - ignore, - mapFrom, -} from '@automapper/core'; +import { Mapper, MappingProfile, createMap, forMember, ignore, mapFrom } from '@automapper/core'; import { AutomapperProfile, getMapperToken } from '@automapper/nestjs'; import { Inject, Injectable } from '@nestjs/common'; import { UserDo } from '../../keycloak-administration/index.js'; import { OrganisationDo } from '../../organisation/domain/organisation.do.js'; -import { CreatePersonDto } from './create-person.dto.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; import { CreatePersonBodyParams } from './create-person.body.params.js'; +import { CreatePersonDto } from './create-person.dto.js'; import { CreatePersonenkontextBodyParams } from './create-personenkontext.body.params.js'; import { CreatePersonenkontextDto } from './create-personenkontext.dto.js'; import { CreatedPersonenkontextOrganisationDto } from './created-personenkontext-organisation.dto.js'; @@ -28,28 +19,18 @@ import { LoeschungDto } from './loeschung.dto.js'; import { LoeschungResponse } from './loeschung.response.js'; import { PersonBirthParams } from './person-birth.params.js'; import { PersonGeburtDto } from './person-geburt.dto.js'; +import { PersonIdResponse } from './person-id.response.js'; import { PersonNameDto } from './person-name.dto.js'; import { PersonNameParams } from './person-name.params.js'; import { PersonDto } from './person.dto.js'; import { PersonResponse } from './person.response.js'; -import { PersonenQueryParams, SichtfreigabeType } from './personen-query.param.js'; +import { PersonenQueryParams } from './personen-query.param.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonendatensatzResponse } from './personendatensatz.response.js'; import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; import { PersonenkontextDto } from './personenkontext.dto.js'; import { PersonenkontextResponse } from './personenkontext.response.js'; - -export const personVisibilityToBooleanConverter: Converter = { - convert(source: SichtfreigabeType) { - switch (source) { - case SichtfreigabeType.JA: - return true; - case SichtfreigabeType.NEIN: - default: - return false; - } - }, -}; +import { PersonenkontextdatensatzResponse } from './personenkontextdatensatz.response.js'; @Injectable() export class PersonApiMapperProfile extends AutomapperProfile { @@ -241,6 +222,7 @@ export class PersonApiMapperProfile extends AutomapperProfile { forMember((dest: PersonenkontextDo) => dest.organisation, ignore()), forMember((dest: PersonenkontextDo) => dest.loeschungZeitpunkt, ignore()), forMember((dest: PersonenkontextDo) => dest.revision, ignore()), + forMember((dest: PersonenkontextDo) => dest.sichtfreigabe, ignore()), ); createMap( @@ -248,7 +230,7 @@ export class PersonApiMapperProfile extends AutomapperProfile { PersonenkontextDo, CreatedPersonenkontextDto, forMember( - (dest: PersonenkontextDto) => dest.loeschung, + (dest: CreatedPersonenkontextDto) => dest.loeschung, mapFrom((src: PersonenkontextDo) => src.loeschungZeitpunkt ? new LoeschungDto({ zeitpunkt: src.loeschungZeitpunkt }) : undefined, ), @@ -280,17 +262,6 @@ export class PersonApiMapperProfile extends AutomapperProfile { forMember((dest: PersonenkontextDo) => dest.id, ignore()), forMember((dest: PersonenkontextDo) => dest.createdAt, ignore()), forMember((dest: PersonenkontextDo) => dest.updatedAt, ignore()), - forMember( - (dest: PersonenkontextDo) => dest.id, - mapFrom((src: FindPersonenkontextDto) => src.personId), - ), - forMember( - (dest: PersonenkontextDo) => dest.sichtfreigabe, - convertUsing( - personVisibilityToBooleanConverter, - (src: FindPersonenkontextDto) => src.sichtfreigabe, - ), - ), ); createMap(mapper, FindPersonenkontextByIdParams, FindPersonenkontextByIdDto); @@ -365,6 +336,22 @@ export class PersonApiMapperProfile extends AutomapperProfile { createMap(mapper, PersonGeburtDto, PersonBirthParams); createMap(mapper, PersonendatensatzDto, PersonendatensatzResponse); + + createMap( + mapper, + PersonenkontextDto, + PersonenkontextdatensatzResponse, + forMember( + (dest: PersonenkontextdatensatzResponse) => dest.person, + mapFrom((src: PersonenkontextDto) => new PersonIdResponse({ id: src.personId })), + ), + forMember( + (dest: PersonenkontextdatensatzResponse) => dest.personenkontexte, + mapFrom((src: PersonenkontextDto) => [ + mapper.map(src, PersonenkontextDto, PersonenkontextResponse), + ]), + ), + ); }; } } diff --git a/src/modules/person/api/person-id.response.ts b/src/modules/person/api/person-id.response.ts new file mode 100644 index 000000000..6e029a018 --- /dev/null +++ b/src/modules/person/api/person-id.response.ts @@ -0,0 +1,12 @@ +import { AutoMap } from '@automapper/classes'; +import { ApiProperty } from '@nestjs/swagger'; + +export class PersonIdResponse { + @AutoMap() + @ApiProperty() + public id!: string; + + public constructor(props: Readonly) { + Object.assign(this, props); + } +} diff --git a/src/modules/person/api/person.controller.spec.ts b/src/modules/person/api/person.controller.spec.ts index de1d98a5c..65c32a7d0 100644 --- a/src/modules/person/api/person.controller.spec.ts +++ b/src/modules/person/api/person.controller.spec.ts @@ -1,27 +1,27 @@ import { faker } from '@faker-js/faker'; import { DeepMocked, createMock } from '@golevelup/ts-jest'; +import { HttpException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { MapperTestModule } from '../../../../test/utils/index.js'; +import { Paged, PagedResponse } from '../../../shared/paging/index.js'; +import { Geschlecht, Vertrauensstufe } from '../domain/person.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { CreatePersonBodyParams } from './create-person.body.params.js'; +import { CreatePersonenkontextBodyParams } from './create-personenkontext.body.params.js'; +import { CreatedPersonenkontextDto } from './created-personenkontext.dto.js'; import { PersonApiMapperProfile } from './person-api.mapper.profile.js'; +import { PersonBirthParams } from './person-birth.params.js'; +import { PersonByIdParams } from './person-by-id.param.js'; import { PersonController } from './person.controller.js'; +import { PersonDto } from './person.dto.js'; import { PersonUc } from './person.uc.js'; -import { PersonByIdParams } from './person-by-id.param.js'; -import { HttpException } from '@nestjs/common'; -import { PersonenQueryParams, SichtfreigabeType } from './personen-query.param.js'; -import { PersonBirthParams } from './person-birth.params.js'; -import { Geschlecht, Vertrauensstufe } from '../domain/person.enums.js'; +import { PersonenQueryParams } from './personen-query.param.js'; +import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonendatensatzResponse } from './personendatensatz.response.js'; -import { PersonenkontextUc } from './personenkontext.uc.js'; -import { CreatePersonenkontextBodyParams } from './create-personenkontext.body.params.js'; -import { CreatedPersonenkontextDto } from './created-personenkontext.dto.js'; -import { Jahrgangsstufe, Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; -import { PagedResponse } from '../../../shared/paging/index.js'; -import { PersonenkontextResponse } from './personenkontext.response.js'; import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; -import { PersonendatensatzDto } from './personendatensatz.dto.js'; -import { PersonDto } from './person.dto.js'; import { PersonenkontextDto } from './personenkontext.dto.js'; +import { PersonenkontextResponse } from './personenkontext.response.js'; +import { PersonenkontextUc } from './personenkontext.uc.js'; describe('PersonController', () => { let module: TestingModule; @@ -226,6 +226,7 @@ describe('PersonController', () => { }; const personenkontextResponse: PersonenkontextDto = { id: faker.string.uuid(), + personId: faker.string.uuid(), organisation: { id: faker.string.uuid(), }, @@ -237,18 +238,23 @@ describe('PersonController', () => { personenstatus: Personenstatus.AKTIV, loeschung: { zeitpunkt: faker.date.past() }, }; - const personenkontextDtos: PersonenkontextDto[] = [personenkontextResponse]; + const personenkontextDtos: Paged = { + items: [personenkontextResponse], + total: 1, + offset: 0, + limit: 1, + }; personenkontextUcMock.findAll.mockResolvedValue(personenkontextDtos); - const result: PersonenkontextResponse[] = await personController.findPersonenkontexte( + const result: PagedResponse = await personController.findPersonenkontexte( pathParams, queryParams, ); expect(personenkontextUcMock.findAll).toHaveBeenCalledTimes(1); - expect(result.length).toBe(1); - expect(result[0]?.id).toBe(personenkontextDtos[0]?.id); + expect(result.items.length).toBe(1); + expect(result.items[0]?.id).toBe(personenkontextDtos.items[0]?.id); }); }); }); diff --git a/src/modules/person/api/person.controller.ts b/src/modules/person/api/person.controller.ts index 172c7e7cf..8d0e7c752 100644 --- a/src/modules/person/api/person.controller.ts +++ b/src/modules/person/api/person.controller.ts @@ -4,14 +4,14 @@ import { Body, Controller, Get, - Inject, - Post, - Param, + HttpCode, HttpException, HttpStatus, - Query, - HttpCode, + Inject, + Param, Patch, + Post, + Query, UseInterceptors, } from '@nestjs/common'; import { @@ -27,9 +27,10 @@ import { } from '@nestjs/swagger'; import { Public } from 'nest-keycloak-connect'; import { Paged, PagedResponse, PagingHeadersObject } from '../../../shared/paging/index.js'; +import { ResultInterceptor } from '../../../shared/util/result-interceptor.js'; import { PersonUc } from '../api/person.uc.js'; -import { CreatePersonDto } from './create-person.dto.js'; import { CreatePersonBodyParams } from './create-person.body.params.js'; +import { CreatePersonDto } from './create-person.dto.js'; import { CreatePersonenkontextBodyParams } from './create-personenkontext.body.params.js'; import { CreatePersonenkontextDto } from './create-personenkontext.dto.js'; import { CreatedPersonenkontextDto } from './created-personenkontext.dto.js'; @@ -40,10 +41,9 @@ import { PersonenQueryParams } from './personen-query.param.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonendatensatzResponse } from './personendatensatz.response.js'; import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; +import { PersonenkontextDto } from './personenkontext.dto.js'; import { PersonenkontextResponse } from './personenkontext.response.js'; import { PersonenkontextUc } from './personenkontext.uc.js'; -import { ResultInterceptor } from '../../../shared/util/result-interceptor.js'; -import { PersonenkontextDto } from './personenkontext.dto.js'; @ApiTags('personen') @Controller({ path: 'personen' }) @@ -111,7 +111,7 @@ export class PersonController { } @Get(':personId/personenkontexte') - @ApiOkResponse({ description: 'The personenkontexte were successfully pulled.' }) + @ApiOkResponse({ description: 'The personenkontexte were successfully pulled.', headers: PagingHeadersObject }) @ApiUnauthorizedResponse({ description: 'Not authorized to get personenkontexte.' }) @ApiForbiddenResponse({ description: 'Insufficient permissions to get personenkontexte.' }) @ApiNotFoundResponse({ description: 'No personenkontexte were found.' }) @@ -119,7 +119,7 @@ export class PersonController { public async findPersonenkontexte( @Param() pathParams: PersonByIdParams, @Query() queryParams: PersonenkontextQueryParams, - ): Promise { + ): Promise> { const findPersonenkontextDto: FindPersonenkontextDto = this.mapper.map( queryParams, PersonenkontextQueryParams, @@ -128,15 +128,21 @@ export class PersonController { findPersonenkontextDto.personId = pathParams.personId; - const personenkontextDtos: PersonenkontextDto[] = await this.personenkontextUc.findAll(findPersonenkontextDto); + const personenkontextDtos: Paged = + await this.personenkontextUc.findAll(findPersonenkontextDto); // AI next 5 lines - const response: PersonenkontextResponse[] = this.mapper.mapArray( - personenkontextDtos, + const responseItems: PersonenkontextResponse[] = this.mapper.mapArray( + personenkontextDtos.items, PersonenkontextDto, PersonenkontextResponse, ); - return response; + return new PagedResponse({ + items: responseItems, + offset: personenkontextDtos.offset, + limit: personenkontextDtos.limit, + total: personenkontextDtos.total, + }); } @Get() diff --git a/src/modules/person/api/person.uc.spec.ts b/src/modules/person/api/person.uc.spec.ts index 0df02b50c..6dad575b6 100644 --- a/src/modules/person/api/person.uc.spec.ts +++ b/src/modules/person/api/person.uc.spec.ts @@ -5,14 +5,14 @@ import { DoFactory, MapperTestModule } from '../../../../test/utils/index.js'; import { EntityNotFoundError, KeycloakClientError, PersonAlreadyExistsError } from '../../../shared/error/index.js'; import { Paged } from '../../../shared/paging/index.js'; import { KeycloakUserService } from '../../keycloak-administration/index.js'; -import { CreatePersonDto } from './create-person.dto.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonService } from '../domain/person.service.js'; +import { SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { PersonenkontextService } from '../domain/personenkontext.service.js'; +import { CreatePersonDto } from './create-person.dto.js'; import { FindPersonendatensatzDto } from './find-personendatensatz.dto.js'; import { PersonApiMapperProfile } from './person-api.mapper.profile.js'; import { PersonUc } from './person.uc.js'; -import { SichtfreigabeType } from './personen-query.param.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; describe('PersonUc', () => { @@ -131,8 +131,10 @@ describe('PersonUc', () => { }); personenkontextServiceMock.findAllPersonenkontexte.mockResolvedValue({ - ok: true, - value: [DoFactory.createPersonenkontext(true)], + items: [DoFactory.createPersonenkontext(true)], + total: 1, + limit: 1, + offset: 0, }); await expect(personUc.findPersonById(id)).resolves.not.toThrow(); expect(personenkontextServiceMock.findAllPersonenkontexte).toHaveBeenCalledTimes(1); @@ -157,8 +159,10 @@ describe('PersonUc', () => { }); personenkontextServiceMock.findAllPersonenkontexte.mockResolvedValue({ - ok: false, - error: new EntityNotFoundError('Personenkontext'), + items: [], + total: 0, + limit: 0, + offset: 0, }); await expect(personUc.findPersonById(id)).resolves.not.toThrow(); expect(personenkontextServiceMock.findAllPersonenkontexte).toHaveBeenCalledTimes(1); @@ -186,8 +190,10 @@ describe('PersonUc', () => { personServiceMock.findAllPersons.mockResolvedValue(persons); personenkontextServiceMock.findAllPersonenkontexte.mockResolvedValue({ - ok: true, - value: [DoFactory.createPersonenkontext(true)], + items: [DoFactory.createPersonenkontext(true)], + total: 1, + limit: 1, + offset: 0, }); const result: Paged = await personUc.findAll(personDTO); diff --git a/src/modules/person/api/person.uc.ts b/src/modules/person/api/person.uc.ts index 36438267d..b1ebf1e4d 100644 --- a/src/modules/person/api/person.uc.ts +++ b/src/modules/person/api/person.uc.ts @@ -1,18 +1,17 @@ import { Mapper } from '@automapper/core'; import { getMapperToken } from '@automapper/nestjs'; import { Inject, Injectable } from '@nestjs/common'; -import { DomainError } from '../../../shared/error/domain.error.js'; import { Paged } from '../../../shared/paging/index.js'; import { KeycloakUserService, UserDo } from '../../keycloak-administration/index.js'; -import { CreatePersonDto } from './create-person.dto.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonService } from '../domain/person.service.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; +import { SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { PersonenkontextService } from '../domain/personenkontext.service.js'; +import { CreatePersonDto } from './create-person.dto.js'; import { FindPersonendatensatzDto } from './find-personendatensatz.dto.js'; import { FindPersonenkontextDto } from './find-personenkontext.dto.js'; import { PersonDto } from './person.dto.js'; -import { SichtfreigabeType } from './personen-query.param.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonenkontextDto } from './personenkontext.dto.js'; @@ -126,17 +125,15 @@ export class PersonUc { personId: personId, sichtfreigabe: sichtfreigabe, }; - const result: Result[], DomainError> = - await this.personenkontextService.findAllPersonenkontexte( - this.mapper.map(personenkontextFilter, FindPersonenkontextDto, PersonenkontextDo), - ); - if (!result.ok) { - return []; - } + const result: Paged> = await this.personenkontextService.findAllPersonenkontexte( + this.mapper.map(personenkontextFilter, FindPersonenkontextDto, PersonenkontextDo), + ); - const personenkontextDtos: PersonenkontextDto[] = result.value.map((personenkontext: PersonenkontextDo) => - this.mapper.map(personenkontext, PersonenkontextDo, PersonenkontextDto), + const personenkontextDtos: PersonenkontextDto[] = this.mapper.mapArray( + result.items, + PersonenkontextDo, + PersonenkontextDto, ); return personenkontextDtos; diff --git a/src/modules/person/api/personen-query.param.spec.ts b/src/modules/person/api/personen-query.param.spec.ts index 678ac6e7b..29a4ff25c 100644 --- a/src/modules/person/api/personen-query.param.spec.ts +++ b/src/modules/person/api/personen-query.param.spec.ts @@ -1,7 +1,8 @@ +import { faker } from '@faker-js/faker'; import { plainToInstance } from 'class-transformer'; import 'reflect-metadata'; -import { PersonenQueryParams, SichtfreigabeType } from './personen-query.param.js'; -import { faker } from '@faker-js/faker'; +import { SichtfreigabeType } from '../domain/personenkontext.enums.js'; +import { PersonenQueryParams } from './personen-query.param.js'; describe('PersonenQueryParam', () => { const referenceParams: PersonenQueryParams = { diff --git a/src/modules/person/api/personen-query.param.ts b/src/modules/person/api/personen-query.param.ts index 895d22f01..080be1701 100644 --- a/src/modules/person/api/personen-query.param.ts +++ b/src/modules/person/api/personen-query.param.ts @@ -1,12 +1,8 @@ +import { AutoMap } from '@automapper/classes'; import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsOptional, IsString } from 'class-validator'; -import { AutoMap } from '@automapper/classes'; import { PagedQueryParams } from '../../../shared/paging/index.js'; - -export enum SichtfreigabeType { - JA = 'ja', - NEIN = 'nein', -} +import { SichtfreigabeType } from '../domain/personenkontext.enums.js'; export class PersonenQueryParams extends PagedQueryParams { @AutoMap() @@ -36,7 +32,7 @@ export class PersonenQueryParams extends PagedQueryParams { }) public readonly vorname?: string; - @AutoMap() + @AutoMap(() => String) @IsOptional() @IsEnum(SichtfreigabeType) @ApiProperty({ diff --git a/src/modules/person/api/personenkontext-query.params.spec.ts b/src/modules/person/api/personenkontext-query.params.spec.ts index 14ca3b8c5..1477fea51 100644 --- a/src/modules/person/api/personenkontext-query.params.spec.ts +++ b/src/modules/person/api/personenkontext-query.params.spec.ts @@ -1,8 +1,7 @@ import { plainToInstance } from 'class-transformer'; import 'reflect-metadata'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; -import { SichtfreigabeType } from './personen-query.param.js'; -import { Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; describe('PersonenkontextQueryParams', () => { const referenceParams: PersonenkontextQueryParams = { diff --git a/src/modules/person/api/personenkontext-query.params.ts b/src/modules/person/api/personenkontext-query.params.ts index 310ea1dc4..10ce9b852 100644 --- a/src/modules/person/api/personenkontext-query.params.ts +++ b/src/modules/person/api/personenkontext-query.params.ts @@ -1,10 +1,10 @@ import { AutoMap } from '@automapper/classes'; import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsOptional, IsString } from 'class-validator'; -import { Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; -import { SichtfreigabeType } from './personen-query.param.js'; +import { PagedQueryParams } from '../../../shared/paging/paged.query.params.js'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; -export class PersonenkontextQueryParams { +export class PersonenkontextQueryParams extends PagedQueryParams { @AutoMap() @IsOptional() @IsString() @@ -14,25 +14,27 @@ export class PersonenkontextQueryParams { }) public readonly referrer?: string; - @AutoMap() + @AutoMap(() => String) @IsOptional() @IsEnum(Rolle) @ApiProperty({ required: false, nullable: true, + enum: Rolle, }) public readonly rolle?: Rolle; - @AutoMap() + @AutoMap(() => String) @IsOptional() @IsEnum(Personenstatus) @ApiProperty({ required: false, nullable: true, + enum: Personenstatus, }) public readonly personenstatus?: Personenstatus; - @AutoMap() + @AutoMap(() => String) @IsOptional() @IsEnum(SichtfreigabeType) @ApiProperty({ diff --git a/src/modules/person/api/personenkontext.controller.spec.ts b/src/modules/person/api/personenkontext.controller.spec.ts index c90caeae1..98dc3fc1c 100644 --- a/src/modules/person/api/personenkontext.controller.spec.ts +++ b/src/modules/person/api/personenkontext.controller.spec.ts @@ -1,16 +1,22 @@ import { faker } from '@faker-js/faker'; import { DeepMocked, createMock } from '@golevelup/ts-jest'; +import { HttpException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { MapperTestModule } from '../../../../test/utils/index.js'; -import { PersonenkontextController } from './personenkontext.controller.js'; -import { PersonenkontextUc } from './personenkontext.uc.js'; +import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; +import { Paged } from '../../../shared/paging/paged.js'; +import { PagedResponse } from '../../../shared/paging/paged.response.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { FindPersonenkontextByIdParams } from './find-personenkontext-by-id.params.js'; import { PersonApiMapperProfile } from './person-api.mapper.profile.js'; -import { PersonendatensatzResponse } from './personendatensatz.response.js'; -import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonDto } from './person.dto.js'; -import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; -import { HttpException } from '@nestjs/common'; +import { PersonendatensatzDto } from './personendatensatz.dto.js'; +import { PersonendatensatzResponse } from './personendatensatz.response.js'; +import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; +import { PersonenkontextController } from './personenkontext.controller.js'; +import { PersonenkontextDto } from './personenkontext.dto.js'; +import { PersonenkontextUc } from './personenkontext.uc.js'; +import { PersonenkontextdatensatzResponse } from './personenkontextdatensatz.response.js'; describe('PersonenkontextController', () => { let module: TestingModule; @@ -87,4 +93,49 @@ describe('PersonenkontextController', () => { }); }); }); + + describe('findPersonenkontexte', () => { + describe('when finding personenkontexte', () => { + it('should return personenkontext', async () => { + const queryParams: PersonenkontextQueryParams = { + referrer: 'referrer', + sichtfreigabe: SichtfreigabeType.JA, + personenstatus: Personenstatus.AKTIV, + rolle: Rolle.LERNENDER, + offset: 0, + limit: 10, + }; + const personenkontext: PersonenkontextDto = { + id: faker.string.uuid(), + personId: faker.string.uuid(), + mandant: faker.string.uuid(), + referrer: queryParams.referrer, + sichtfreigabe: queryParams.sichtfreigabe, + rolle: queryParams.rolle ?? Rolle.LERNENDER, + jahrgangsstufe: Jahrgangsstufe.JAHRGANGSSTUFE_1, + personenstatus: Personenstatus.AKTIV, + organisation: { + id: faker.string.uuid(), + }, + revision: '1', + }; + const personenkontexte: Paged = { + offset: queryParams.offset ?? 0, + limit: queryParams.limit ?? 1, + total: 1, + items: [personenkontext], + }; + personenkontextUcMock.findAll.mockResolvedValue(personenkontexte); + + const result: PagedResponse = + await sut.findPersonenkontexte(queryParams); + + expect(personenkontextUcMock.findAll).toBeCalledTimes(1); + expect(result.items.length).toBe(1); + expect(result.items[0]?.person.id).toBe(personenkontext.personId); + expect(result.items[0]?.personenkontexte.length).toBe(1); + expect(result.items[0]?.personenkontexte[0]?.id).toBe(personenkontext.id); + }); + }); + }); }); diff --git a/src/modules/person/api/personenkontext.controller.ts b/src/modules/person/api/personenkontext.controller.ts index 8a9b7645c..a8661d2e8 100644 --- a/src/modules/person/api/personenkontext.controller.ts +++ b/src/modules/person/api/personenkontext.controller.ts @@ -1,6 +1,6 @@ import { Mapper } from '@automapper/core'; import { getMapperToken } from '@automapper/nestjs'; -import { Controller, Get, HttpException, HttpStatus, Inject, Param } from '@nestjs/common'; +import { Controller, Get, HttpException, HttpStatus, Inject, Param, Query } from '@nestjs/common'; import { ApiBadRequestResponse, ApiForbiddenResponse, @@ -12,11 +12,18 @@ import { } from '@nestjs/swagger'; import { Public } from 'nest-keycloak-connect'; import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; +import { Paged } from '../../../shared/paging/paged.js'; +import { PagedResponse } from '../../../shared/paging/paged.response.js'; import { FindPersonenkontextByIdDto } from './find-personenkontext-by-id.dto.js'; import { FindPersonenkontextByIdParams } from './find-personenkontext-by-id.params.js'; +import { FindPersonenkontextDto } from './find-personenkontext.dto.js'; import { PersonendatensatzDto } from './personendatensatz.dto.js'; import { PersonendatensatzResponse } from './personendatensatz.response.js'; +import { PersonenkontextQueryParams } from './personenkontext-query.params.js'; +import { PersonenkontextDto } from './personenkontext.dto.js'; import { PersonenkontextUc } from './personenkontext.uc.js'; +import { PersonenkontextdatensatzResponse } from './personenkontextdatensatz.response.js'; +import { PagingHeadersObject } from '../../../shared/paging/paging.enums.js'; @Public() @ApiTags('personenkontexte') @@ -62,4 +69,39 @@ export class PersonenkontextController { throw error; } } + + @Get() + @ApiOkResponse({ + description: 'The personenkontexte were successfully returned.', + type: [PersonendatensatzResponse], + headers: PagingHeadersObject, + }) + @ApiBadRequestResponse({ description: 'Request has wrong format.' }) + @ApiUnauthorizedResponse({ description: 'Request is not authorized.' }) + @ApiNotFoundResponse({ description: 'The personenkontexte were not found.' }) + @ApiForbiddenResponse({ description: 'Insufficient permissions to perform operation.' }) + @ApiInternalServerErrorResponse({ description: 'An internal server error occurred.' }) + public async findPersonenkontexte( + @Query() queryParams: PersonenkontextQueryParams, + ): Promise> { + const findPersonenkontextDto: FindPersonenkontextDto = this.mapper.map( + queryParams, + PersonenkontextQueryParams, + FindPersonenkontextDto, + ); + const result: Paged = await this.personenkontextUc.findAll(findPersonenkontextDto); + const responseItems: PersonenkontextdatensatzResponse[] = this.mapper.mapArray( + result.items, + PersonenkontextDto, + PersonenkontextdatensatzResponse, + ); + const response: PagedResponse = new PagedResponse({ + items: responseItems, + total: result.total, + offset: result.offset, + limit: result.limit, + }); + + return response; + } } diff --git a/src/modules/person/api/personenkontext.dto.ts b/src/modules/person/api/personenkontext.dto.ts index f5c10aac0..6aa703656 100644 --- a/src/modules/person/api/personenkontext.dto.ts +++ b/src/modules/person/api/personenkontext.dto.ts @@ -1,13 +1,15 @@ import { AutoMap } from '@automapper/classes'; -import { Rolle, Personenstatus, Jahrgangsstufe } from '../domain/personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { CreatedPersonenkontextOrganisationDto } from './created-personenkontext-organisation.dto.js'; -import { SichtfreigabeType } from './personen-query.param.js'; import { LoeschungDto } from './loeschung.dto.js'; export class PersonenkontextDto { @AutoMap() public readonly id!: string; + @AutoMap() + public readonly personId!: string; + @AutoMap() public readonly referrer?: string; diff --git a/src/modules/person/api/personenkontext.response.ts b/src/modules/person/api/personenkontext.response.ts index e4bb47959..c3bc49538 100644 --- a/src/modules/person/api/personenkontext.response.ts +++ b/src/modules/person/api/personenkontext.response.ts @@ -1,9 +1,8 @@ import { AutoMap } from '@automapper/classes'; import { ApiProperty } from '@nestjs/swagger'; -import { Jahrgangsstufe, Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { CreatedPersonenkontextOrganisationDto } from './created-personenkontext-organisation.dto.js'; import { LoeschungResponse } from './loeschung.response.js'; -import { SichtfreigabeType } from './personen-query.param.js'; export class PersonenkontextResponse { @AutoMap() diff --git a/src/modules/person/api/personenkontext.uc.spec.ts b/src/modules/person/api/personenkontext.uc.spec.ts index d4b612e46..3fc8995a7 100644 --- a/src/modules/person/api/personenkontext.uc.spec.ts +++ b/src/modules/person/api/personenkontext.uc.spec.ts @@ -2,20 +2,19 @@ import { faker } from '@faker-js/faker'; import { DeepMocked, createMock } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { DoFactory, MapperTestModule } from '../../../../test/utils/index.js'; -import { DomainError } from '../../../shared/error/domain.error.js'; import { EntityCouldNotBeCreated } from '../../../shared/error/entity-could-not-be-created.error.js'; import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; +import { Paged } from '../../../shared/paging/paged.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonService } from '../domain/person.service.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; -import { Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { PersonenkontextService } from '../domain/personenkontext.service.js'; import { CreatePersonenkontextDto } from './create-personenkontext.dto.js'; import { CreatedPersonenkontextDto } from './created-personenkontext.dto.js'; import { FindPersonenkontextByIdDto } from './find-personenkontext-by-id.dto.js'; import { FindPersonenkontextDto } from './find-personenkontext.dto.js'; import { PersonApiMapperProfile } from './person-api.mapper.profile.js'; -import { SichtfreigabeType } from './personen-query.param.js'; import { PersonenkontextDto } from './personenkontext.dto.js'; import { PersonenkontextUc } from './personenkontext.uc.js'; @@ -107,15 +106,17 @@ describe('PersonenkontextUc', () => { const secondPersonenkontext: PersonenkontextDo = DoFactory.createPersonenkontext(true); const personenkontexte: PersonenkontextDo[] = [firstPersonenkontext, secondPersonenkontext]; personenkontextServiceMock.findAllPersonenkontexte.mockResolvedValue({ - ok: true, - value: personenkontexte, + items: personenkontexte, + total: personenkontexte.length, + limit: personenkontexte.length, + offset: 0, }); - const result: PersonenkontextDto[] = await sut.findAll(findPersonenkontextDto); - expect(result).toHaveLength(2); + const result: Paged = await sut.findAll(findPersonenkontextDto); + expect(result.items).toHaveLength(2); }); - it('should throw EntityNotFoundError when no matching persons are found', async () => { + it('should return empty array when no matching persons are found', async () => { const findPersonenkontextDto: FindPersonenkontextDto = { personId: faker.string.uuid(), referrer: 'referrer', @@ -124,12 +125,17 @@ describe('PersonenkontextUc', () => { rolle: Rolle.LERNENDER, }; - const emptyResult: Result[], DomainError> = { - ok: false, - error: new EntityNotFoundError('Personenkontext'), + const emptyResult: Paged> = { + items: [], + total: 0, + limit: 0, + offset: 0, }; personenkontextServiceMock.findAllPersonenkontexte.mockResolvedValue(emptyResult); - await expect(sut.findAll(findPersonenkontextDto)).rejects.toThrow(EntityNotFoundError); + + const result: Paged = await sut.findAll(findPersonenkontextDto); + + expect(result.items).toHaveLength(0); }); }); }); diff --git a/src/modules/person/api/personenkontext.uc.ts b/src/modules/person/api/personenkontext.uc.ts index 2931dc0aa..f20078de3 100644 --- a/src/modules/person/api/personenkontext.uc.ts +++ b/src/modules/person/api/personenkontext.uc.ts @@ -1,7 +1,7 @@ import { Mapper } from '@automapper/core'; import { getMapperToken } from '@automapper/nestjs'; import { Inject, Injectable } from '@nestjs/common'; -import { DomainError } from '../../../shared/error/domain.error.js'; +import { Paged } from '../../../shared/paging/paged.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonService } from '../domain/person.service.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; @@ -38,24 +38,31 @@ export class PersonenkontextUc { throw result.error; } - // TODO refactor after EW-561 is done - public async findAll(findPersonenkontextDto: FindPersonenkontextDto): Promise { + public async findAll(findPersonenkontextDto: FindPersonenkontextDto): Promise> { const personenkontextDo: PersonenkontextDo = this.mapper.map( findPersonenkontextDto, FindPersonenkontextDto, PersonenkontextDo, ); - const result: Result[], DomainError> = - await this.personenkontextService.findAllPersonenkontexte(personenkontextDo); - if (!result.ok) { - throw result.error; - } + const result: Paged> = await this.personenkontextService.findAllPersonenkontexte( + personenkontextDo, + findPersonenkontextDto.offset, + findPersonenkontextDto.limit, + ); - const personenkontexte: PersonenkontextDto[] = result.value.map((personenkontext: PersonenkontextDo) => - this.mapper.map(personenkontext, PersonenkontextDo, PersonenkontextDto), + const personenkontexte: PersonenkontextDto[] = this.mapper.mapArray( + result.items, + PersonenkontextDo, + PersonenkontextDto, ); - return personenkontexte; + + return { + total: result.total, + offset: result.offset, + limit: result.limit, + items: personenkontexte, + }; } public async findPersonenkontextById(dto: FindPersonenkontextByIdDto): Promise { diff --git a/src/modules/person/api/personenkontextdatensatz.response.ts b/src/modules/person/api/personenkontextdatensatz.response.ts new file mode 100644 index 000000000..ae591f35a --- /dev/null +++ b/src/modules/person/api/personenkontextdatensatz.response.ts @@ -0,0 +1,14 @@ +import { AutoMap } from '@automapper/classes'; +import { ApiProperty } from '@nestjs/swagger'; +import { PersonIdResponse } from './person-id.response.js'; +import { PersonenkontextResponse } from './personenkontext.response.js'; + +export class PersonenkontextdatensatzResponse { + @AutoMap(() => PersonIdResponse) + @ApiProperty({ type: PersonIdResponse }) + public person!: PersonIdResponse; + + @AutoMap(() => [PersonenkontextResponse]) + @ApiProperty({ type: [PersonenkontextResponse] }) + public personenkontexte!: PersonenkontextResponse[]; +} diff --git a/src/modules/person/domain/personenkontext.do.ts b/src/modules/person/domain/personenkontext.do.ts index dba5a534e..0ab592d9f 100644 --- a/src/modules/person/domain/personenkontext.do.ts +++ b/src/modules/person/domain/personenkontext.do.ts @@ -1,7 +1,7 @@ import { AutoMap } from '@automapper/classes'; import { DoBase } from '../../../shared/types/index.js'; import { OrganisationDo } from '../../organisation/domain/organisation.do.js'; -import { Jahrgangsstufe, Personenstatus, Rolle } from './personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from './personenkontext.enums.js'; export class PersonenkontextDo implements DoBase { /** @@ -40,8 +40,8 @@ export class PersonenkontextDo implements DoBase String) public jahrgangsstufe?: Jahrgangsstufe; - @AutoMap() - public sichtfreigabe?: boolean = false; + @AutoMap(() => String) + public sichtfreigabe?: SichtfreigabeType; @AutoMap(() => Date) public loeschungZeitpunkt?: Date; diff --git a/src/modules/person/domain/personenkontext.enums.ts b/src/modules/person/domain/personenkontext.enums.ts index 70391841e..810e35b7f 100644 --- a/src/modules/person/domain/personenkontext.enums.ts +++ b/src/modules/person/domain/personenkontext.enums.ts @@ -23,3 +23,8 @@ export enum Rolle { ORGANISATIONSLEITUNG = 'LEIT', SYSTEMADMINISTRATOR = 'SYSADMIN', } + +export enum SichtfreigabeType { + JA = 'ja', + NEIN = 'nein', +} diff --git a/src/modules/person/domain/personenkontext.service.spec.ts b/src/modules/person/domain/personenkontext.service.spec.ts index 0cd0bca49..b82ca5e83 100644 --- a/src/modules/person/domain/personenkontext.service.spec.ts +++ b/src/modules/person/domain/personenkontext.service.spec.ts @@ -5,12 +5,13 @@ import { Test, TestingModule } from '@nestjs/testing'; import { DoFactory } from '../../../../test/utils/do-factory.js'; import { DomainError } from '../../../shared/error/domain.error.js'; import { EntityCouldNotBeCreated } from '../../../shared/error/entity-could-not-be-created.error.js'; +import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; +import { Paged } from '../../../shared/paging/paged.js'; import { PersonRepo } from '../persistence/person.repo.js'; import { PersonenkontextRepo } from '../persistence/personenkontext.repo.js'; +import { PersonDo } from './person.do.js'; import { PersonenkontextDo } from './personenkontext.do.js'; import { PersonenkontextService } from './personenkontext.service.js'; -import { EntityNotFoundError } from '../../../shared/error/entity-not-found.error.js'; -import { PersonDo } from './person.do.js'; describe('PersonenkontextService', () => { let module: TestingModule; @@ -118,16 +119,20 @@ describe('PersonenkontextService', () => { personenkontext1 as unknown as PersonenkontextDo, personenkontext2 as unknown as PersonenkontextDo, ]; - personenkontextRepoMock.findAll.mockResolvedValue(personenkontexte); + personenkontextRepoMock.findBy.mockResolvedValue([personenkontexte, personenkontexte.length]); mapperMock.map.mockReturnValue(personenkontexte as unknown as Dictionary); const personenkontextDoWithQueryParam: PersonenkontextDo = DoFactory.createPersonenkontext(false); - const result: Result[], DomainError> = - await personenkontextService.findAllPersonenkontexte(personenkontextDoWithQueryParam); - expect(result).toEqual[], DomainError>>({ - ok: true, - value: personenkontexte, + const result: Paged> = await personenkontextService.findAllPersonenkontexte( + personenkontextDoWithQueryParam, + ); + + expect(result).toEqual>>({ + items: personenkontexte, + total: personenkontexte.length, + offset: 0, + limit: personenkontexte.length, }); }); }); @@ -135,13 +140,17 @@ describe('PersonenkontextService', () => { describe('When no personenkontexte are found', () => { it('should return a result with an empty array', async () => { const personenkontext: PersonenkontextDo = DoFactory.createPersonenkontext(false); - personenkontextRepoMock.findAll.mockResolvedValue([]); + personenkontextRepoMock.findBy.mockResolvedValue([[], 0]); mapperMock.map.mockReturnValue(personenkontext as unknown as Dictionary); - const result: Result[], DomainError> = + + const result: Paged> = await personenkontextService.findAllPersonenkontexte(personenkontext); - expect(result).toEqual[], DomainError>>({ - ok: true, - value: [], + + expect(result).toEqual>>({ + items: [], + total: 0, + offset: 0, + limit: 0, }); }); }); diff --git a/src/modules/person/domain/personenkontext.service.ts b/src/modules/person/domain/personenkontext.service.ts index 89eff0b82..bd7e47e83 100644 --- a/src/modules/person/domain/personenkontext.service.ts +++ b/src/modules/person/domain/personenkontext.service.ts @@ -1,10 +1,13 @@ import { Injectable } from '@nestjs/common'; import { EntityCouldNotBeCreated } from '../../../shared/error/entity-could-not-be-created.error.js'; import { DomainError, EntityNotFoundError } from '../../../shared/error/index.js'; +import { Paged } from '../../../shared/paging/paged.js'; +import { ScopeOrder } from '../../../shared/persistence/scope.enums.js'; import { PersonRepo } from '../persistence/person.repo.js'; import { PersonenkontextRepo } from '../persistence/personenkontext.repo.js'; -import { PersonenkontextDo } from './personenkontext.do.js'; +import { PersonenkontextScope } from '../persistence/personenkontext.scope.js'; import { PersonDo } from './person.do.js'; +import { PersonenkontextDo } from './personenkontext.do.js'; @Injectable() export class PersonenkontextService { @@ -30,10 +33,29 @@ export class PersonenkontextService { public async findAllPersonenkontexte( personenkontextDo: PersonenkontextDo, - ): Promise[], DomainError>> { - const personenkontexte: PersonenkontextDo[] = await this.personenkontextRepo.findAll(personenkontextDo); + offset?: number, + limit?: number, + ): Promise>> { + const scope: PersonenkontextScope = new PersonenkontextScope() + .findBy({ + personId: personenkontextDo.personId, + referrer: personenkontextDo.referrer, + rolle: personenkontextDo.rolle, + personenstatus: personenkontextDo.personenstatus, + sichtfreigabe: personenkontextDo.sichtfreigabe, + }) + .sortBy('id', ScopeOrder.ASC) + .paged(offset, limit); + + const [personenkontexte, total]: Counted> = + await this.personenkontextRepo.findBy(scope); - return { ok: true, value: personenkontexte }; + return { + offset: offset ?? 0, + limit: limit ?? total, + total, + items: personenkontexte, + }; } public async findPersonenkontextById(id: string): Promise, DomainError>> { diff --git a/src/modules/person/persistence/personenkontext.entity.ts b/src/modules/person/persistence/personenkontext.entity.ts index 04cd09eef..fb47842ab 100644 --- a/src/modules/person/persistence/personenkontext.entity.ts +++ b/src/modules/person/persistence/personenkontext.entity.ts @@ -1,7 +1,7 @@ import { AutoMap } from '@automapper/classes'; import { DateTimeType, Entity, Enum, Property } from '@mikro-orm/core'; import { TimestampedEntity } from '../../../persistence/timestamped.entity.js'; -import { Rolle, Personenstatus, Jahrgangsstufe } from '../domain/personenkontext.enums.js'; +import { Jahrgangsstufe, Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; @Entity({ tableName: 'personenkontext' }) export class PersonenkontextEntity extends TimestampedEntity { @@ -39,9 +39,9 @@ export class PersonenkontextEntity extends TimestampedEntity Jahrgangsstufe }) public jahrgangsstufe?: Jahrgangsstufe; - @AutoMap() - @Property({ nullable: true }) - public sichtfreigabe?: boolean = false; + @AutoMap(() => String) + @Property({ nullable: true, default: SichtfreigabeType.NEIN }) + public sichtfreigabe?: SichtfreigabeType; @AutoMap(() => Date) @Property({ nullable: true, type: DateTimeType }) diff --git a/src/modules/person/persistence/personenkontext.repo.integration-spec.ts b/src/modules/person/persistence/personenkontext.repo.integration-spec.ts index d8ba998b7..a96616371 100644 --- a/src/modules/person/persistence/personenkontext.repo.integration-spec.ts +++ b/src/modules/person/persistence/personenkontext.repo.integration-spec.ts @@ -12,11 +12,12 @@ import { } from '../../../../test/utils/index.js'; import { PersonDo } from '../domain/person.do.js'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; -import { Personenstatus, Rolle } from '../domain/personenkontext.enums.js'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; import { PersonPersistenceMapperProfile } from './person-persistence.mapper.profile.js'; import { PersonEntity } from './person.entity.js'; import { PersonenkontextEntity } from './personenkontext.entity.js'; import { PersonenkontextRepo } from './personenkontext.repo.js'; +import { PersonenkontextScope } from './personenkontext.scope.js'; describe('PersonenkontextRepo', () => { let module: TestingModule; @@ -111,14 +112,14 @@ describe('PersonenkontextRepo', () => { }); }); - describe('findAll', () => { + describe('findBy', () => { describe('When personenkontext for person exists', () => { it('should find all personenkontexte for this person', async () => { const props: Partial> = { referrer: 'referrer', personenstatus: Personenstatus.AKTIV, rolle: Rolle.LERNENDER, - sichtfreigabe: false, + sichtfreigabe: SichtfreigabeType.NEIN, }; const person1Id: string = faker.string.uuid(); const personenkontextDo1: PersonenkontextDo = DoFactory.createPersonenkontext(false, { @@ -129,15 +130,15 @@ describe('PersonenkontextRepo', () => { await em.persistAndFlush(mapper.map(personenkontextDo1, PersonenkontextDo, PersonenkontextEntity)); await em.persistAndFlush(mapper.map(personenkontextDo2, PersonenkontextDo, PersonenkontextEntity)); - const personenkontextDoFromQueryParam: PersonenkontextDo = DoFactory.createPersonenkontext( - false, - { - ...props, + const [result]: Counted> = await sut.findBy( + new PersonenkontextScope().findBy({ + referrer: 'referrer', + personenstatus: Personenstatus.AKTIV, + rolle: Rolle.LERNENDER, + sichtfreigabe: SichtfreigabeType.NEIN, personId: person1Id, - }, + }), ); - - const result: PersonenkontextDo[] = await sut.findAll(personenkontextDoFromQueryParam); expect(result).not.toBeNull(); expect(result).toHaveLength(1); await expect(em.find(PersonenkontextEntity, {})).resolves.toHaveLength(2); @@ -146,12 +147,8 @@ describe('PersonenkontextRepo', () => { describe('When no personenkontext matches', () => { it('should return an empty list', async () => { - const props: Partial> = {}; - const personenkontextDoFromQueryParam: PersonenkontextDo = DoFactory.createPersonenkontext( - false, - props, - ); - const result: PersonenkontextDo[] = await sut.findAll(personenkontextDoFromQueryParam); + const [result]: Counted> = await sut.findBy(new PersonenkontextScope()); + expect(result).not.toBeNull(); expect(result).toHaveLength(0); await expect(em.find(PersonenkontextEntity, {})).resolves.toHaveLength(0); diff --git a/src/modules/person/persistence/personenkontext.repo.ts b/src/modules/person/persistence/personenkontext.repo.ts index ac708f868..8cca74185 100644 --- a/src/modules/person/persistence/personenkontext.repo.ts +++ b/src/modules/person/persistence/personenkontext.repo.ts @@ -5,6 +5,7 @@ import { EntityManager } from '@mikro-orm/postgresql'; import { Inject, Injectable } from '@nestjs/common'; import { PersonenkontextDo } from '../domain/personenkontext.do.js'; import { PersonenkontextEntity } from './personenkontext.entity.js'; +import { PersonenkontextScope } from './personenkontext.scope.js'; @Injectable() export class PersonenkontextRepo { @@ -20,32 +21,11 @@ export class PersonenkontextRepo { return this.create(personenkontextDo); } - // TODO refactor after EW-561 is done, use Scope - public async findAll(personenkontextDo: PersonenkontextDo): Promise[]> { - const query: Record = {}; + public async findBy(scope: PersonenkontextScope): Promise>> { + const [entities, total]: Counted = await scope.executeQuery(this.em); + const dos: PersonenkontextDo[] = this.mapper.mapArray(entities, PersonenkontextEntity, PersonenkontextDo); - query['personId'] = personenkontextDo.personId; - - if (personenkontextDo.referrer) { - query['referrer'] = personenkontextDo.referrer; - } - - if (personenkontextDo.rolle) { - query['rolle'] = personenkontextDo.rolle; - } - - if (personenkontextDo.personenstatus) { - query['personenstatus'] = personenkontextDo.personenstatus; - } - - if (personenkontextDo.sichtfreigabe !== undefined) { - query['sichtfreigabe'] = personenkontextDo.sichtfreigabe; - } - - const result: PersonenkontextEntity[] = await this.em.find(PersonenkontextEntity, query); - return result.map((person: PersonenkontextEntity) => - this.mapper.map(person, PersonenkontextEntity, PersonenkontextDo), - ); + return [dos, total]; } public async findById(id: string): Promise>> { diff --git a/src/modules/person/persistence/personenkontext.scope.integration-spec.ts b/src/modules/person/persistence/personenkontext.scope.integration-spec.ts new file mode 100644 index 000000000..05d2e52c4 --- /dev/null +++ b/src/modules/person/persistence/personenkontext.scope.integration-spec.ts @@ -0,0 +1,69 @@ +import { Mapper } from '@automapper/core'; +import { getMapperToken } from '@automapper/nestjs'; +import { MikroORM } from '@mikro-orm/core'; +import { EntityManager } from '@mikro-orm/postgresql'; +import { Test, TestingModule } from '@nestjs/testing'; +import { + ConfigTestModule, + DEFAULT_TIMEOUT_FOR_TESTCONTAINERS, + DatabaseTestModule, + DoFactory, + MapperTestModule, +} from '../../../../test/utils/index.js'; +import { ScopeOrder } from '../../../shared/persistence/scope.enums.js'; +import { PersonenkontextDo } from '../domain/personenkontext.do.js'; +import { PersonPersistenceMapperProfile } from './person-persistence.mapper.profile.js'; +import { PersonenkontextEntity } from './personenkontext.entity.js'; +import { PersonenkontextScope } from './personenkontext.scope.js'; + +describe('PersonenkontextScope', () => { + let module: TestingModule; + let orm: MikroORM; + let em: EntityManager; + let mapper: Mapper; + + beforeAll(async () => { + module = await Test.createTestingModule({ + imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true }), MapperTestModule], + providers: [PersonPersistenceMapperProfile], + }).compile(); + orm = module.get(MikroORM); + em = module.get(EntityManager); + mapper = module.get(getMapperToken()); + + await DatabaseTestModule.setupDatabase(orm); + }, DEFAULT_TIMEOUT_FOR_TESTCONTAINERS); + + afterAll(async () => { + await module.close(); + }); + + beforeEach(async () => { + await DatabaseTestModule.clearDatabase(orm); + }); + + describe('findBy', () => { + describe('when filtering for personenkontexte', () => { + beforeEach(async () => { + const dos: PersonenkontextDo[] = DoFactory.createMany( + 30, + false, + DoFactory.createPersonenkontext, + ); + + await em.persistAndFlush(mapper.mapArray(dos, PersonenkontextDo, PersonenkontextEntity)); + }); + + it('should return found personenkontexte', async () => { + const scope: PersonenkontextScope = new PersonenkontextScope() + .findBy({ referrer: 'referrer' }) + .sortBy('id', ScopeOrder.ASC) + .paged(10, 10); + const [personenkontext, total]: Counted = await scope.executeQuery(em); + + expect(total).toBe(30); + expect(personenkontext).toHaveLength(10); + }); + }); + }); +}); diff --git a/src/modules/person/persistence/personenkontext.scope.ts b/src/modules/person/persistence/personenkontext.scope.ts new file mode 100644 index 000000000..010aff79c --- /dev/null +++ b/src/modules/person/persistence/personenkontext.scope.ts @@ -0,0 +1,34 @@ +import { EntityName } from '@mikro-orm/core'; +import { ScopeBase } from '../../../shared/persistence/scope-base.js'; +import { ScopeOperator } from '../../../shared/persistence/scope.enums.js'; +import { Personenstatus, Rolle, SichtfreigabeType } from '../domain/personenkontext.enums.js'; +import { PersonenkontextEntity } from './personenkontext.entity.js'; + +type FindProps = { + personId: string; + referrer: string; + rolle: Rolle; + personenstatus: Personenstatus; + sichtfreigabe: SichtfreigabeType; +}; + +export class PersonenkontextScope extends ScopeBase { + public override get entityName(): EntityName { + return PersonenkontextEntity; + } + + public findBy(findProps: Findable, operator: ScopeOperator = ScopeOperator.AND): this { + this.findByInternal( + { + personId: findProps.personId, + referrer: findProps.referrer, + rolle: findProps.rolle, + personenstatus: findProps.personenstatus, + sichtfreigabe: findProps.sichtfreigabe, + }, + operator, + ); + + return this; + } +} diff --git a/test/utils/do-factory.ts b/test/utils/do-factory.ts index 078400ead..fc8a6d951 100644 --- a/test/utils/do-factory.ts +++ b/test/utils/do-factory.ts @@ -4,7 +4,12 @@ import { OrganisationDo } from '../../src/modules/organisation/domain/organisati import { OrganisationsTyp } from '../../src/modules/organisation/domain/organisation.enum.js'; import { PersonDo } from '../../src/modules/person/domain/person.do.js'; import { PersonenkontextDo } from '../../src/modules/person/domain/personenkontext.do.js'; -import { Jahrgangsstufe, Personenstatus, Rolle } from '../../src/modules/person/domain/personenkontext.enums.js'; +import { + Jahrgangsstufe, + Personenstatus, + Rolle, + SichtfreigabeType, +} from '../../src/modules/person/domain/personenkontext.enums.js'; import { PersonRollenZuweisungDo } from '../../src/modules/rolle/domain/person-rollen-zuweisung.do.js'; import { RolleBerechtigungsZuweisungDo } from '../../src/modules/rolle/domain/rolle-berechtigungs-zuweisung.do.js'; import { RolleRechtDo } from '../../src/modules/rolle/domain/rolle-recht.do.js'; @@ -91,7 +96,7 @@ export class DoFactory { jahrgangsstufe: Jahrgangsstufe.JAHRGANGSSTUFE_1, personenstatus: Personenstatus.AKTIV, referrer: 'referrer', - sichtfreigabe: true, + sichtfreigabe: SichtfreigabeType.JA, loeschungZeitpunkt: faker.date.anytime(), }; From 1fb159a3e63a18c7175a372e5910c54a3009e1d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:54:02 +0100 Subject: [PATCH 05/12] Bump @nestjs/cli from 9.5.0 to 10.2.1 (#73) * Bump @nestjs/cli from 9.5.0 to 10.2.1 Bumps [@nestjs/cli](https://github.com/nestjs/nest-cli) from 9.5.0 to 10.2.1. - [Release notes](https://github.com/nestjs/nest-cli/releases) - [Changelog](https://github.com/nestjs/nest-cli/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/nest-cli/compare/9.5.0...10.2.1) --- updated-dependencies: - dependency-name: "@nestjs/cli" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump @types/passport from 1.0.14 to 1.0.15 (#76) Bumps [@types/passport](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/passport) from 1.0.14 to 1.0.15. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/passport) --- updated-dependencies: - dependency-name: "@types/passport" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump prettier from 2.8.8 to 3.0.3 (#75) * Bump prettier from 2.8.8 to 3.0.3 Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.0.3. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.0.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Updating peer dependency eslint-plugin-prettier * Fixing linter errors --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump @types/express from 4.17.20 to 4.17.21 (#77) Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.20 to 4.17.21. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express) --- updated-dependencies: - dependency-name: "@types/express" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump ts-loader from 9.4.4 to 9.5.0 (#71) Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.4.4 to 9.5.0. - [Release notes](https://github.com/TypeStrong/ts-loader/releases) - [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md) - [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.4.4...v9.5.0) --- updated-dependencies: - dependency-name: ts-loader dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump @nestjs/swagger from 7.1.13 to 7.1.14 (#74) Bumps [@nestjs/swagger](https://github.com/nestjs/swagger) from 7.1.13 to 7.1.14. - [Release notes](https://github.com/nestjs/swagger/releases) - [Changelog](https://github.com/nestjs/swagger/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/swagger/compare/7.1.13...7.1.14) --- updated-dependencies: - dependency-name: "@nestjs/swagger" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump @nestjs/axios from 3.0.0 to 3.0.1 (#72) Bumps [@nestjs/axios](https://github.com/nestjs/axios) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/nestjs/axios/releases) - [Changelog](https://github.com/nestjs/axios/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/axios/compare/3.0.0...3.0.1) --- updated-dependencies: - dependency-name: "@nestjs/axios" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump @nestjs/schematics from 9.2.0 to 10.0.3 (#78) Bumps [@nestjs/schematics](https://github.com/nestjs/schematics) from 9.2.0 to 10.0.3. - [Release notes](https://github.com/nestjs/schematics/releases) - [Changelog](https://github.com/nestjs/schematics/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/schematics/compare/9.2.0...10.0.3) --- updated-dependencies: - dependency-name: "@nestjs/schematics" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: YannickEvers <112076936+YannickEvers@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump @nestjs/config from 2.3.4 to 3.1.1 (#70) Bumps [@nestjs/config](https://github.com/nestjs/config) from 2.3.4 to 3.1.1. - [Release notes](https://github.com/nestjs/config/releases) - [Changelog](https://github.com/nestjs/config/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/config/compare/2.3.4...3.1.1) --- updated-dependencies: - dependency-name: "@nestjs/config" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Pull up node and alpine version as well as libraries (#83) * Pull up node and alpine version * Triggered package update * Bump @faker-js/faker from 8.1.0 to 8.2.0 (#91) Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 8.1.0 to 8.2.0. - [Release notes](https://github.com/faker-js/faker/releases) - [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md) - [Commits](https://github.com/faker-js/faker/compare/v8.1.0...v8.2.0) --- updated-dependencies: - dependency-name: "@faker-js/faker" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/express-session from 1.17.9 to 1.17.10 (#89) Bumps [@types/express-session](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express-session) from 1.17.9 to 1.17.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express-session) --- updated-dependencies: - dependency-name: "@types/express-session" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann * Bump prettier from 3.0.3 to 3.1.0 (#87) Bumps [prettier](https://github.com/prettier/prettier) from 3.0.3 to 3.1.0. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.0.3...3.1.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint-plugin-jest from 27.4.2 to 27.6.0 (#86) Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.4.2 to 27.6.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.4.2...v27.6.0) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @nestjs/swagger from 7.1.14 to 7.1.15 (#85) Bumps [@nestjs/swagger](https://github.com/nestjs/swagger) from 7.1.14 to 7.1.15. - [Release notes](https://github.com/nestjs/swagger/releases) - [Changelog](https://github.com/nestjs/swagger/blob/master/.release-it.json) - [Commits](https://github.com/nestjs/swagger/compare/7.1.14...7.1.15) --- updated-dependencies: - dependency-name: "@nestjs/swagger" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump nest-commander from 3.11.0 to 3.12.2 (#88) Bumps [nest-commander](https://github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander) from 3.11.0 to 3.12.2. - [Release notes](https://github.com/jmcdo29/nest-commander/releases) - [Commits](https://github.com/jmcdo29/nest-commander/commits/nest-commander@3.12.2/pacakges/nest-commander) --- updated-dependencies: - dependency-name: nest-commander dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Spsh 141 redis into helm (#61) * Inital Redis template * Inital service * Script to create self signed certificates * Script to copy the certificates * Configure Redis to enable TLS, disable unencrypted * Make config files and scripts available to pods * Introduce init pod and build certificates * Added comments and a little more structure * Changed name to fit with others * Added comments and removed unecessary config params * Add test user * Add password-requirement * Preserve line endings * Corrected ingress to point to BFF * Fixed User-ID * Added timestamp of creation --------- Co-authored-by: DPDS93CT <144817755+DPDS93CT@users.noreply.github.com> * Updating package-lock.json --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann Co-authored-by: YannickEvers <112076936+YannickEvers@users.noreply.github.com> Co-authored-by: Kristoff Kiefer <31993948+kristoff-kiefer@users.noreply.github.com> Co-authored-by: DPDS93CT <144817755+DPDS93CT@users.noreply.github.com> --- package-lock.json | 41 ++++++++--------------------------------- package.json | 1 + 2 files changed, 9 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 40475a55f..ae0ce0149 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,9 +2769,9 @@ "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==" }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/passport": { @@ -6513,20 +6513,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "devOptional": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -8779,18 +8765,7 @@ "path-type": "^4.0.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=12.0.0" } }, "node_modules/nest-commander/node_modules/inquirer": { @@ -11494,7 +11469,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "devOptional": true, + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11713,9 +11688,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "peer": true, "dependencies": { diff --git a/package.json b/package.json index c26761fe3..581b1785e 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "devDependencies": { "@golevelup/ts-jest": "^0.3.7", "@mikro-orm/cli": "^5.7.12", + "@nestjs/cli": "^10.2.1", "@nestjs/cli": "^9.0.0", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^9.4.2", From 37dd2e776023c511cd2acf06487b682ce49710cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:52:31 +0100 Subject: [PATCH 06/12] Bump @mikro-orm/core from 5.8.6 to 5.9.3 (#90) * Bump @mikro-orm/core from 5.8.6 to 5.9.3 Bumps [@mikro-orm/core](https://github.com/mikro-orm/mikro-orm) from 5.8.6 to 5.9.3. - [Release notes](https://github.com/mikro-orm/mikro-orm/releases) - [Changelog](https://github.com/mikro-orm/mikro-orm/blob/v5.9.3/CHANGELOG.md) - [Commits](https://github.com/mikro-orm/mikro-orm/compare/v5.8.6...v5.9.3) --- updated-dependencies: - dependency-name: "@mikro-orm/core" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Updating all mikro orm dependencies --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann --- package-lock.json | 1815 +++++++++++++++++++++++++-------------------- package.json | 7 +- 2 files changed, 1010 insertions(+), 812 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae0ce0149..779746344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,9 @@ "@automapper/core": "^8.7.7", "@automapper/nestjs": "^8.7.7", "@faker-js/faker": "^8.2.0", - "@mikro-orm/core": "^5.7.11", - "@mikro-orm/nestjs": "^5.1.8", - "@mikro-orm/postgresql": "^5.7.11", + "@mikro-orm/core": "^5.9.3", + "@mikro-orm/nestjs": "^5.2.2", + "@mikro-orm/postgresql": "^5.9.3", "@nestjs/axios": "^3.0.1", "@nestjs/common": "^9.0.0", "@nestjs/config": "^3.1.1", @@ -44,7 +44,7 @@ "devDependencies": { "@golevelup/ts-jest": "^0.3.7", "@mikro-orm/cli": "^5.7.12", - "@nestjs/cli": "^9.0.0", + "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^9.4.2", "@types/express": "^4.17.21", @@ -98,14 +98,15 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.1.tgz", - "integrity": "sha512-2uz98IqkKJlgnHbWQ7VeL4pb+snGAZXIama2KXi+k9GsRntdcw+udX8rL3G9SdUGUF+m6+147Y1oRBMHsO/v4w==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.8.tgz", + "integrity": "sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", + "picomatch": "2.3.1", "rxjs": "7.8.1", "source-map": "0.7.4" }, @@ -124,14 +125,14 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.1.tgz", - "integrity": "sha512-A9D0LTYmiqiBa90GKcSuWb7hUouGIbm/AHbJbjL85WLLRbQA2PwKl7P5Mpd6nS/ZC0kfG4VQY3VOaDvb3qpI9g==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.8.tgz", + "integrity": "sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.1", + "@angular-devkit/core": "16.2.8", "jsonc-parser": "3.2.0", - "magic-string": "0.30.0", + "magic-string": "0.30.1", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -142,13 +143,13 @@ } }, "node_modules/@angular-devkit/schematics-cli": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-16.0.1.tgz", - "integrity": "sha512-6KLA125dpgd6oJGtiO2JpZAb92uOG3njQGIt7NFcuQGW/5GO7J41vMXH9cBAfdtbV8SIggSmR/cIEE9ijfj6YQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-16.2.8.tgz", + "integrity": "sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.1", - "@angular-devkit/schematics": "16.0.1", + "@angular-devkit/core": "16.2.8", + "@angular-devkit/schematics": "16.2.8", "ansi-colors": "4.1.3", "inquirer": "8.2.4", "symbol-observable": "4.0.0", @@ -299,30 +300,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/generator": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", - "@babel/parser": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -347,12 +348,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -433,9 +434,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -511,13 +512,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", + "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0" }, "engines": { @@ -602,9 +603,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -674,9 +675,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -776,9 +777,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -805,19 +806,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/generator": "^7.23.3", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -835,9 +836,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -908,18 +909,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -962,9 +963,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -985,164 +986,140 @@ "npm": ">=6.14.13" } }, - "node_modules/@fastify/accept-negotiator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", - "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=14" - } + "node_modules/@golevelup/ts-jest": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.3.8.tgz", + "integrity": "sha512-2H4XzpCHwoUs2P13tzwVzj+AYspbFGKwMr94WK5eHiDBKgx0j4QGgLQh1wgM18DjhN7jdntrzVMoQRie6kZhnw==", + "dev": true }, - "node_modules/@fastify/send": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.1.0.tgz", - "integrity": "sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==", - "optional": true, - "peer": true, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, "dependencies": { - "@lukeed/ms": "^2.0.1", - "escape-html": "~1.0.3", - "fast-decode-uri-component": "^1.0.1", - "http-errors": "2.0.0", - "mime": "^3.0.0" - } - }, - "node_modules/@fastify/send/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "optional": true, - "peer": true, - "bin": { - "mime": "cli.js" + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.10.0" } }, - "node_modules/@fastify/static": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.11.2.tgz", - "integrity": "sha512-EH7mh7q4MfNdT7N07ZVlwsX/ObngMvQ7KBP0FXAuPov99Fjn80KSJMdxQhhYKAKWW1jXiFdrk8X7d6uGWdZFxg==", - "optional": true, - "peer": true, - "dependencies": { - "@fastify/accept-negotiator": "^1.0.0", - "@fastify/send": "^2.0.0", - "content-disposition": "^0.5.3", - "fastify-plugin": "^4.0.0", - "glob": "^8.0.1", - "p-limit": "^3.1.0" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@fastify/static/node_modules/brace-expansion": { + "node_modules/@humanwhocodes/object-schema": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "optional": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true }, - "node_modules/@fastify/static/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "optional": true, - "peer": true, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@fastify/static/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "optional": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, "engines": { - "node": ">=10" - } - }, - "node_modules/@fig/complete-commander": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@fig/complete-commander/-/complete-commander-2.0.1.tgz", - "integrity": "sha512-AbGETely7iwD4F7XHe4g7pW6icWYYqJMdQog8CdEi9syU/av5L0O24BvCfgEeGO6TRPMpC+rFL7ZDJsqRtckOA==", - "dependencies": { - "prettier": "^2.3.2" + "node": ">=12" }, - "peerDependencies": { - "commander": "^8.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@fig/complete-commander/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "bin": { - "prettier": "bin-prettier.js" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "engines": { - "node": ">=10.13.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@golevelup/ts-jest": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.3.8.tgz", - "integrity": "sha512-2H4XzpCHwoUs2P13tzwVzj+AYspbFGKwMr94WK5eHiDBKgx0j4QGgLQh1wgM18DjhN7jdntrzVMoQRie6kZhnw==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=12.22" + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -1451,6 +1428,26 @@ } } }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -1599,9 +1596,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1630,25 +1627,15 @@ "node": ">=8" } }, - "node_modules/@lukeed/ms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", - "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@mikro-orm/cli": { - "version": "5.8.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.8.6.tgz", - "integrity": "sha512-fkZbWaz6Tk03qq7IW9Urtm1ThqkEQVel1R+viL/mN8hSjP4W7ulTj0Dg7Tp7MXiIViKPohoRnWmzfU6YwT/6Cg==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.9.3.tgz", + "integrity": "sha512-acwn5bH/IdOlGi8i/e1Td2cy2X1zmVRolM9gQGrY0RQJ07k2yg9cJlN579s95T39nFpz1Bi2wuVyLgLyCkpDlA==", "dev": true, "dependencies": { "@jercle/yargonaut": "1.1.5", - "@mikro-orm/core": "5.8.6", - "@mikro-orm/knex": "5.8.6", + "@mikro-orm/core": "5.9.3", + "@mikro-orm/knex": "5.9.3", "fs-extra": "11.1.1", "tsconfig-paths": "4.2.0", "yargs": "17.7.2" @@ -1706,16 +1693,16 @@ } }, "node_modules/@mikro-orm/core": { - "version": "5.8.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.8.6.tgz", - "integrity": "sha512-AgjJoIIO8yOMuak6/jNkmGQmKfP4AO57DGVFO6SGtYlo/hEi5iZ7nfKMHLlxiH/bw9wsXY2/mQmixwNdWfrtfA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.9.3.tgz", + "integrity": "sha512-SYcRa4Rmi6GSPAvaXIsrBrhHLCieZtnFHYXtcUVMRpJRBxUbqv8RfhUedhYZGty8eTd44nNY9+zn6auv1x8IoA==", "dependencies": { "acorn-loose": "8.3.0", "acorn-walk": "8.2.0", "dotenv": "16.3.1", "fs-extra": "11.1.1", "globby": "11.1.0", - "mikro-orm": "5.8.6", + "mikro-orm": "5.9.3", "reflect-metadata": "0.1.13" }, "engines": { @@ -1770,9 +1757,9 @@ } }, "node_modules/@mikro-orm/knex": { - "version": "5.8.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-5.8.6.tgz", - "integrity": "sha512-UAamqxQ2kLLUkzyvhEVKsGWnU+2i9uA50jkjrdo9A2K40rbC/4uctqsnpgwsjcxEIRzSCeXaB9K9ijEq6lkNhg==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-5.9.3.tgz", + "integrity": "sha512-4M+4XniLaCD3q9fFxNmVgMtQXs3jzLOCqnOzKC3R5QGwlYA14HEopkbcXX0ljv1HXg4LrlMkE2kPi/eVpX5UqQ==", "dependencies": { "fs-extra": "11.1.1", "knex": "2.5.1", @@ -1833,11 +1820,11 @@ } }, "node_modules/@mikro-orm/postgresql": { - "version": "5.8.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-5.8.6.tgz", - "integrity": "sha512-vsRYdGflEgrwDxKuzw1dRO9wp1kD9qdjSB2iuk+v3qQX2pwfnEdzD+DUwf0RQAd3ix4dWaM02Mx7XxomFpVz+Q==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-5.9.3.tgz", + "integrity": "sha512-iXdHd4xe7u3JRy/g1FkfYxDoAWunme7iDEyk7eniVtzA7UQ1EphHbYJcaXCbvU5a5bSNk8JEplEHo4Cy/Dg3dQ==", "dependencies": { - "@mikro-orm/knex": "5.8.6", + "@mikro-orm/knex": "5.9.3", "pg": "8.11.3" }, "engines": { @@ -1873,21 +1860,22 @@ } }, "node_modules/@nestjs/cli": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.5.0.tgz", - "integrity": "sha512-Z7q+3vNsQSG2d2r2Hl/OOj5EpfjVx3OfnJ9+KuAsOdw1sKLm7+Zc6KbhMFTd/eIvfx82ww3Nk72xdmfPYCulWA==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.2.1.tgz", + "integrity": "sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.1", - "@angular-devkit/schematics": "16.0.1", - "@angular-devkit/schematics-cli": "16.0.1", - "@nestjs/schematics": "^9.0.4", + "@angular-devkit/core": "16.2.8", + "@angular-devkit/schematics": "16.2.8", + "@angular-devkit/schematics-cli": "16.2.8", + "@nestjs/schematics": "^10.0.1", "chalk": "4.1.2", "chokidar": "3.5.3", "cli-table3": "0.6.3", "commander": "4.1.1", - "fork-ts-checker-webpack-plugin": "8.0.0", - "inquirer": "8.2.5", + "fork-ts-checker-webpack-plugin": "9.0.2", + "glob": "10.3.10", + "inquirer": "8.2.6", "node-emoji": "1.11.0", "ora": "5.4.1", "os-name": "4.0.1", @@ -1896,98 +1884,26 @@ "source-map-support": "0.5.21", "tree-kill": "1.2.2", "tsconfig-paths": "4.2.0", - "tsconfig-paths-webpack-plugin": "4.0.1", - "typescript": "4.9.5", - "webpack": "5.82.1", + "tsconfig-paths-webpack-plugin": "4.1.0", + "typescript": "5.2.2", + "webpack": "5.89.0", "webpack-node-externals": "3.0.0" }, "bin": { "nest": "bin/nest.js" }, "engines": { - "node": ">= 12.9.0" - } - }, - "node_modules/@nestjs/cli/node_modules/@nestjs/schematics": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.2.0.tgz", - "integrity": "sha512-wHpNJDPzM6XtZUOB3gW0J6mkFCSJilzCM3XrHI1o0C8vZmFE1snbmkIXNyoi1eV0Nxh1BMymcgz5vIMJgQtTqw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "16.0.1", - "@angular-devkit/schematics": "16.0.1", - "jsonc-parser": "3.2.0", - "pluralize": "8.0.0" + "node": ">= 16.14" }, "peerDependencies": { - "typescript": ">=4.3.5" - } - }, - "node_modules/@nestjs/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@nestjs/cli/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@nestjs/cli/node_modules/webpack": { - "version": "5.82.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", - "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.14.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "@swc/cli": "^0.1.62", + "@swc/core": "^1.3.62" }, "peerDependenciesMeta": { - "webpack-cli": { + "@swc/cli": { + "optional": true + }, + "@swc/core": { "optional": true } } @@ -2140,63 +2056,6 @@ "typescript": ">=4.8.2" } }, - "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { - "version": "16.2.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.8.tgz", - "integrity": "sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { - "version": "16.2.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.8.tgz", - "integrity": "sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "16.2.8", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.1", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@nestjs/schematics/node_modules/magic-string": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@nestjs/swagger": { "version": "7.1.15", "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.1.15.tgz", @@ -2369,6 +2228,16 @@ "npm": ">=5.0.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/utils": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", @@ -2517,18 +2386,18 @@ "dev": true }, "node_modules/@types/archiver": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.3.tgz", - "integrity": "sha512-0ABdVcXL6jOwNGY+hjWPqrxUvKelBEwNLcuv/SV2vZ4YCH8w9NttFCt+/QqI5zgMX+iX/XqVy89/r7EmLJmMpQ==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz", + "integrity": "sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==", "dev": true, "dependencies": { "@types/readdir-glob": "*" } }, "node_modules/@types/babel__core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -2539,18 +2408,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -2558,18 +2427,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/body-parser": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { "@types/connect": "*", @@ -2577,24 +2446,24 @@ } }, "node_modules/@types/connect": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-b698BLJ6kPVd6uhHsY7wlebZdrWPXYied883PDSzpJZYOP97EOn/oGdLCH3jJf157srkFReIZY5v0H1s8Dozrg==", "dev": true }, "node_modules/@types/docker-modem": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.4.tgz", - "integrity": "sha512-INK4TOrJ9hbgaSqHA1HaEOCcYVftJRH0v03gCg6R57JGKgltkDvdFYBtoN4lHrJ3h8aF1upvEPN2eWVLIvKStQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==", "dev": true, "dependencies": { "@types/node": "*", @@ -2602,9 +2471,9 @@ } }, "node_modules/@types/dockerode": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.20.tgz", - "integrity": "sha512-Q+1e3z6SPWXR/Sk+WIyJFVsSDg78S7MDaGcwAh1WKlveO1tVO8TF1rOzJir5GLnqzEdUbclFKlw/4rhwESxwPw==", + "version": "3.3.23", + "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.23.tgz", + "integrity": "sha512-Lz5J+NFgZS4cEVhquwjIGH4oQwlVn2h7LXD3boitujBnzOE5o7s9H8hchEjoDK2SlRsJTogdKnQeiJgPPKLIEw==", "dev": true, "dependencies": { "@types/docker-modem": "*", @@ -2612,9 +2481,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.3.tgz", - "integrity": "sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==", + "version": "8.44.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", + "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2622,9 +2491,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", - "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -2632,9 +2501,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/express": { @@ -2650,9 +2519,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, "dependencies": { "@types/node": "*", @@ -2671,24 +2540,24 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", - "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, "node_modules/@types/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-3uT88kxg8lNzY8ay2ZjP44DKcRaTGztqeIvN2zHvhzIBH/uAPaL75aBtdNRKbA7xXoMbBt5kX0M00VKAnfOYlA==", + "version": "8.2.10", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz", + "integrity": "sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==", "peer": true, "dependencies": { "@types/through": "*", @@ -2696,33 +2565,33 @@ } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "29.5.5", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", - "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", + "version": "29.5.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.8.tgz", + "integrity": "sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -2730,9 +2599,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { @@ -2743,36 +2612,33 @@ "peer": true }, "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", + "version": "4.14.201", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz", + "integrity": "sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==", "dev": true }, "node_modules/@types/lodash-es": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", - "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.11.tgz", + "integrity": "sha512-eCw8FYAWHt2DDl77s+AMLLzPn310LKohruumpucZI4oOFJkIgnlaJcy23OKMJxx4r9PeTF13Gv6w+jqjWQaYUg==", "dev": true, "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "node_modules/@types/node": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", - "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/passport": { "version": "1.0.15", @@ -2784,36 +2650,36 @@ } }, "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "node_modules/@types/readdir-glob": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.2.tgz", - "integrity": "sha512-vwAYrNN/8yhp/FJRU6HUSD0yk6xfoOS8HrZa8ZL7j+X8hJpaC1hTcAiXX2IxaAkkvrz9mLyoEhYZTE3cEYvA9Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.4.tgz", + "integrity": "sha512-uEJsErL2wFCTcbbmJpIuD8OWYNabgv1oaYP2bOkzZXKtk3c6LCYQEKngIqBj2VR2NMv9DOAXSkxSYOWtHxh2gQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", "dev": true }, "node_modules/@types/send": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "dependencies": { "@types/mime": "^1", @@ -2821,9 +2687,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", - "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, "dependencies": { "@types/http-errors": "*", @@ -2832,39 +2698,42 @@ } }, "node_modules/@types/ssh2": { - "version": "1.11.14", - "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.14.tgz", - "integrity": "sha512-O/U38mvV4jVVrdtZz8KpmitkmeD/PUDeDNNueQhm34166dmaqb1iZ3sfarSxBArM2/iX4PZVJY3EOta0Zks9hw==", + "version": "1.11.16", + "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.16.tgz", + "integrity": "sha512-Y1WuSL16TSlfsqTVyOkfnUsxHrdZsQQGq0AG6XFqs0hU3jO++cc6PdU+UCyG/0AVg9ez5qRNR8xfkouJv+gdgw==", "dev": true, "dependencies": { "@types/node": "^18.11.18" } }, "node_modules/@types/ssh2-streams": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.10.tgz", - "integrity": "sha512-r3HYPL0kPxRwk7Nk1P4JxaWPyJ2Mfnfm5efuK0vYgYZu16RerZUTyun6Yqu5KEfc3AR7BvTL1x+nzf7+kbKftQ==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.12.tgz", + "integrity": "sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/ssh2/node_modules/@types/node": { - "version": "18.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz", - "integrity": "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==", - "dev": true + "version": "18.18.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", + "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, "node_modules/@types/superagent": { - "version": "4.1.19", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.19.tgz", - "integrity": "sha512-McM1mlc7PBZpCaw0fw/36uFqo0YeA6m8JqoyE4OfqXsZCIg0hPP2xdE6FM7r6fdprDZHlJwDpydUj1R++93hCA==", + "version": "4.1.21", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.21.tgz", + "integrity": "sha512-yrbAccEEY9+BSa1wji3ry8R3/BdW9kyWnjkRKctrtw5ebn/k2a2CsMeaQ7dD4iLfomgHkomBVIVgOFRMV4XYHA==", "dev": true, "dependencies": { "@types/cookiejar": "*", @@ -2872,47 +2741,47 @@ } }, "node_modules/@types/supertest": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.14.tgz", - "integrity": "sha512-Q900DeeHNFF3ZYYepf/EyJfZDA2JrnWLaSQ0YNV7+2GTo8IlJzauEnDGhya+hauncpBYTYGpVHwGdssJeAQ7eA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.16.tgz", + "integrity": "sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==", "dev": true, "dependencies": { "@types/superagent": "*" } }, "node_modules/@types/through": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.31.tgz", - "integrity": "sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w==", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", + "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", "peer": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/validator": { - "version": "13.11.2", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.2.tgz", - "integrity": "sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==" + "version": "13.11.6", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.6.tgz", + "integrity": "sha512-HUgHujPhKuNzgNXBRZKYexwoG+gHKU+tnfPqjWXFghZAnn73JElicMkuSKJyLGr9JgyA8IgK7fj88IyA9rwYeQ==" }, "node_modules/@types/yargs": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz", - "integrity": "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==", + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "node_modules/@types/yauzl": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz", - "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "optional": true, "peer": true, "dependencies": { @@ -3107,6 +2976,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -3278,9 +3153,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -3492,6 +3367,26 @@ "node": ">= 6" } }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/archiver/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -3676,9 +3571,9 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/async-lock": { @@ -3705,9 +3600,9 @@ } }, "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", + "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -3834,7 +3729,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -4159,12 +4054,13 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4198,9 +4094,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001546", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz", - "integrity": "sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==", + "version": "1.0.30001562", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001562.tgz", + "integrity": "sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==", "dev": true, "funding": [ { @@ -4297,20 +4193,20 @@ } }, "node_modules/chromedriver": { - "version": "117.0.3", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-117.0.3.tgz", - "integrity": "sha512-c2rk2eGK5zZFBJMdviUlAJfQEBuPNIKfal4+rTFVYAmrWbMPYAqPozB+rIkc1lDP/Ryw44lPiqKglrI01ILhTQ==", + "version": "119.0.1", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-119.0.1.tgz", + "integrity": "sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg==", "hasInstallScript": true, "optional": true, "peer": true, "dependencies": { - "@testim/chrome-version": "^1.1.3", - "axios": "^1.4.0", - "compare-versions": "^6.0.0", + "@testim/chrome-version": "^1.1.4", + "axios": "^1.6.0", + "compare-versions": "^6.1.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" + "tcp-port-used": "^1.0.2" }, "bin": { "chromedriver": "bin/chromedriver" @@ -4490,12 +4386,12 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "peer": true, + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "engines": { - "node": ">= 12" + "node": ">= 6" } }, "node_modules/comment-json": { @@ -4660,19 +4556,28 @@ } }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cpu-features": { @@ -4947,6 +4852,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-browser/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/default-browser/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -4971,10 +4882,9 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -5087,9 +4997,9 @@ } }, "node_modules/docker-compose": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.2.tgz", - "integrity": "sha512-2/WLvA7UZ6A2LDLQrYW0idKipmNBWhtfvrn2yzjC5PnHDzuFVj1zAZN6MJxVMKP0zZH8uzAK6OwVZYHGuyCmTw==", + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.3.tgz", + "integrity": "sha512-x3/QN3AIOMe7j2c8f/jcycizMft7dl8MluoB9OGPAYCyKHHiPUFqI9GjCcsU0kYy24vYKMCcfR6+5ZaEyQlrxg==", "dev": true, "dependencies": { "yaml": "^2.2.2" @@ -5098,15 +5008,6 @@ "node": ">= 6.0.0" } }, - "node_modules/docker-compose/node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/docker-modem": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz", @@ -5193,15 +5094,21 @@ "node": ">=12" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.542", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.542.tgz", - "integrity": "sha512-6+cpa00G09N3sfh2joln4VUXHquWrOFx3FLZqiVQvl45+zS9DskDBTPvob+BhvFRmTBkyDSk0vvLMMRo/qc6mQ==", + "version": "1.4.582", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.582.tgz", + "integrity": "sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA==", "dev": true }, "node_modules/elliptic": { @@ -5275,26 +5182,26 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -5304,7 +5211,7 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", @@ -5318,7 +5225,7 @@ "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -5328,33 +5235,33 @@ } }, "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "peer": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -5400,18 +5307,19 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -5559,27 +5467,27 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "peer": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -5935,6 +5843,12 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -6145,13 +6059,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "optional": true, - "peer": true - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6165,9 +6072,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6196,13 +6103,6 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, - "node_modules/fastify-plugin": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", - "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==", - "optional": true, - "peer": true - }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -6231,9 +6131,9 @@ } }, "node_modules/figlet": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.6.0.tgz", - "integrity": "sha512-31EQGhCEITv6+hi2ORRPyn3bulaV9Fl4xOdR169cBzH/n1UqcxsiSB/noo6SJdD7Kfb1Ljit+IgR1USvF/XbdA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==", "dev": true, "bin": { "figlet": "bin/index.js" @@ -6334,17 +6234,37 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/flat-cache/node_modules/rimraf": { @@ -6396,16 +6316,32 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", - "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz", + "integrity": "sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "chalk": "^4.1.2", "chokidar": "^3.5.3", - "cosmiconfig": "^7.0.1", + "cosmiconfig": "^8.2.0", "deepmerge": "^4.2.2", "fs-extra": "^10.0.0", "memfs": "^3.4.1", @@ -6511,12 +6447,29 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "devOptional": true + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -6572,14 +6525,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6639,20 +6592,22 @@ "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6675,6 +6630,30 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", @@ -6728,7 +6707,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -6747,14 +6725,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -6782,12 +6752,11 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6840,6 +6809,17 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hexoid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", @@ -6989,7 +6969,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "devOptional": true, + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7001,10 +6981,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -7020,20 +6999,33 @@ "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.0.1" }, "engines": { "node": ">=12.0.0" } }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -7138,11 +7130,11 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7453,9 +7445,9 @@ "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -7535,16 +7527,34 @@ "node": ">=6" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", - "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.2" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -7684,6 +7694,26 @@ } } }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -7983,6 +8013,26 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", @@ -8098,9 +8148,9 @@ } }, "node_modules/jose": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.2.tgz", - "integrity": "sha512-IY73F228OXRl9ar3jJagh7Vnuhj/GzBunPiZP13K0lOl7Am9SoWW3kEzq3MCllJMTtZqHTiDXQvoRd4U95aU6A==", + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -8197,10 +8247,9 @@ } }, "node_modules/keycloak-connect": { - "version": "21.1.2", - "resolved": "https://registry.npmjs.org/keycloak-connect/-/keycloak-connect-21.1.2.tgz", - "integrity": "sha512-ydRauaPu3lIlug1xlweAkV4N0InYf8QhkeWz0jzmjEyuPD88DHkGSQ5NcGyySAhMPPvKHISj1dty1Zs2uVu+EQ==", - "deprecated": "This package is deprecated and will be removed in the future. We will shortly provide more details on removal date, and recommended alternatives.", + "version": "22.0.5", + "resolved": "https://registry.npmjs.org/keycloak-connect/-/keycloak-connect-22.0.5.tgz", + "integrity": "sha512-3aTU3m/hA9to6NhC1pLK6Rv/9zqJuvmX5J5C4LkKXF64ejQk/nlUnPw2hrBky+s6eJneFQ/sCWf4OSNGsenAYw==", "peer": true, "dependencies": { "jwk-to-pem": "^2.0.0" @@ -8213,9 +8262,9 @@ } }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -8331,9 +8380,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.46", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.46.tgz", - "integrity": "sha512-xJqWqMV5hM/6vWj68yqUejkzM9KkYjWFfqimVL4QG4dS5Rij2EXWus/s248x4zUpXeX2gwbLBzQW+aPqUitxIg==" + "version": "1.10.49", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.49.tgz", + "integrity": "sha512-gvLtyC3tIuqfPzjvYLH9BmVdqzGDiSi4VjtWe2fAgSdBf0yt8yPmbNnRIHNbR5IdtVkm0ayGuzwQKTWmU0hdjQ==" }, "node_modules/lines-and-columns": { "version": "1.2.4", @@ -8453,12 +8502,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" @@ -8554,9 +8603,9 @@ } }, "node_modules/mikro-orm": { - "version": "5.8.6", - "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-5.8.6.tgz", - "integrity": "sha512-nPblmYANSTJludfTxz1CklR9xrbVsQP/WygzSm3lp+2q4rsjFfHXtvhOMBTaDrHczUeI4BIeSszYQYUhcgZVkA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-5.9.3.tgz", + "integrity": "sha512-lLBWENtV7yUE5KraqJEMaaKDPotnab6i/uf+wOyjILxYPjaXivH+oq7g9U3WS7K1fLUpQlR+bdQTOExHLy1FtQ==", "engines": { "node": ">= 14.0.0" } @@ -8632,12 +8681,12 @@ } }, "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp": { @@ -8734,6 +8783,17 @@ "@types/inquirer": "^8.1.3" } }, + "node_modules/nest-commander/node_modules/@fig/complete-commander": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@fig/complete-commander/-/complete-commander-2.0.1.tgz", + "integrity": "sha512-AbGETely7iwD4F7XHe4g7pW6icWYYqJMdQog8CdEi9syU/av5L0O24BvCfgEeGO6TRPMpC+rFL7ZDJsqRtckOA==", + "dependencies": { + "prettier": "^2.3.2" + }, + "peerDependencies": { + "commander": "^8.0.0" + } + }, "node_modules/nest-commander/node_modules/@golevelup/nestjs-discovery": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@golevelup/nestjs-discovery/-/nestjs-discovery-4.0.0.tgz", @@ -8754,67 +8814,29 @@ "node": ">=16" } }, - "node_modules/nest-commander/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/nest-commander/node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" + "node_modules/nest-commander/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/nest-commander/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "node": ">=10.13.0" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/nest-keycloak-connect": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/nest-keycloak-connect/-/nest-keycloak-connect-1.9.2.tgz", - "integrity": "sha512-O3dq2PL2AVk9zohMgAFL8IfFzpS6wvr24m30rit6eg34nmAI/zJIkfvVjmd/KSZ1Z685ADlI3GCOeHe7CArizA==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/nest-keycloak-connect/-/nest-keycloak-connect-1.9.4.tgz", + "integrity": "sha512-8XHTBwd80czwqZt80+Su4++ymZoWels+cv6Eg58UpxPnRkVmO+gbXpjbBQ3cUZVdYOsHB0jlITOatDTAhQsg/w==", "peerDependencies": { "@nestjs/common": ">=6.0.0 <11.0.0", "@nestjs/core": ">=6.0.0 <11.0.0", "@nestjs/graphql": ">=6", - "keycloak-connect": ">=10.0.0 <22.0.0" + "keycloak-connect": ">=10.0.0 <23.0.0" }, "peerDependenciesMeta": { "@nestjs/graphql": { @@ -8906,9 +8928,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9072,9 +9094,9 @@ } }, "node_modules/openid-client": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.6.0.tgz", - "integrity": "sha512-uFTkN/iqgKvSnmpVAS/T6SNThukRMBcmymTQ71Ngus1F60tdtKVap7zCrleocY+fogPtpmoxi5Q1YdrgYuTlkA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.6.1.tgz", + "integrity": "sha512-PtrWsY+dXg6y8mtMPyL/namZSYVz8pjXz3yJiBNZsEdCnu9miHLB4ELVC85WvneMKo2Rg62Ay7NkuCpM0bgiLQ==", "dependencies": { "jose": "^4.15.1", "lru-cache": "^6.0.0", @@ -9168,7 +9190,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "devOptional": true, + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -9327,23 +9349,17 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.2.tgz", + "integrity": "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==", "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, "engines": { "node": "14 || >=16.14" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/path-to-regexp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", @@ -9682,6 +9698,12 @@ "signal-exit": "^3.0.2" } }, + "node_modules/proper-lockfile/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/properties-reader": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/properties-reader/-/properties-reader-2.3.0.tgz", @@ -9738,9 +9760,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -9975,9 +9997,9 @@ } }, "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -10040,6 +10062,11 @@ "node": ">=8" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -10118,6 +10145,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/run-applescript": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", @@ -10379,6 +10415,20 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -10436,6 +10486,26 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/shelljs/node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -10471,9 +10541,16 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sisteransi": { "version": "1.0.5", @@ -10659,6 +10736,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", @@ -10715,6 +10807,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -10932,9 +11037,9 @@ } }, "node_modules/terser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz", - "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11032,6 +11137,26 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/testcontainers": { "version": "9.12.0", "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-9.12.0.tgz", @@ -11059,6 +11184,26 @@ "node": ">= 10.16" } }, + "node_modules/testcontainers/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/testcontainers/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -11297,9 +11442,9 @@ } }, "node_modules/tsconfig-paths-webpack-plugin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.1.tgz", - "integrity": "sha512-m5//KzLoKmqu2MVix+dgLKq70MnFi8YL8sdzQZ6DblmCdfuq/y3OqvJd5vMndg2KEVCOeNz8Es4WVZhYInteLw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -11469,7 +11614,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11515,10 +11660,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -11692,7 +11842,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", @@ -11794,13 +11943,13 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" @@ -11885,6 +12034,12 @@ "node": ">=8.12.0" } }, + "node_modules/windows-release/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -11901,6 +12056,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -11920,6 +12093,12 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -11944,12 +12123,12 @@ "dev": true }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/yargs": { @@ -12003,7 +12182,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -12046,6 +12225,26 @@ "node": ">= 10" } }, + "node_modules/zip-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/zip-stream/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", diff --git a/package.json b/package.json index 581b1785e..7b50cf4ba 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,9 @@ "@automapper/core": "^8.7.7", "@automapper/nestjs": "^8.7.7", "@faker-js/faker": "^8.2.0", - "@mikro-orm/core": "^5.7.11", - "@mikro-orm/nestjs": "^5.1.8", - "@mikro-orm/postgresql": "^5.7.11", + "@mikro-orm/core": "^5.9.3", + "@mikro-orm/nestjs": "^5.2.2", + "@mikro-orm/postgresql": "^5.9.3", "@nestjs/axios": "^3.0.1", "@nestjs/common": "^9.0.0", "@nestjs/config": "^3.1.1", @@ -67,7 +67,6 @@ "@golevelup/ts-jest": "^0.3.7", "@mikro-orm/cli": "^5.7.12", "@nestjs/cli": "^10.2.1", - "@nestjs/cli": "^9.0.0", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^9.4.2", "@types/express": "^4.17.21", From b7df9d71c6697725d47fe437b80c70256bdcbad7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 13:38:41 +0100 Subject: [PATCH 07/12] Bump @typescript-eslint/eslint-plugin from 5.62.0 to 6.11.0 (#84) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.62.0 to 6.11.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.11.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-major --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann --- .github/dependabot.yml | 13 +- package-lock.json | 356 ++++++++++++++++-- package.json | 4 +- .../global-paging-headers.interceptor.ts | 2 +- 4 files changed, 327 insertions(+), 48 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 36d923c25..ee021c947 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,11 +1,10 @@ version: 2 updates: - - package-ecosystem: "npm" - directory: "/" + - package-ecosystem: 'npm' + directory: '/' open-pull-requests-limit: 10 - versioning-strategy: "auto" + versioning-strategy: 'auto' schedule: - interval: "weekly" - labels: ["dependencies"] - - + interval: 'daily' + labels: + - 'dependencies' diff --git a/package-lock.json b/package-lock.json index 779746344..02a653f5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,8 +54,8 @@ "@types/node": "^20.3.1", "@types/passport": "^1.0.15", "@types/supertest": "^2.0.11", - "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.0.1", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.8.0", @@ -2789,32 +2789,33 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -2822,26 +2823,183 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { @@ -2849,6 +3007,23 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", @@ -2867,25 +3042,82 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { @@ -2893,6 +3125,48 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", @@ -8746,12 +9020,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -11321,6 +11589,18 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", diff --git a/package.json b/package.json index 7b50cf4ba..1c22f6421 100644 --- a/package.json +++ b/package.json @@ -76,8 +76,8 @@ "@types/node": "^20.3.1", "@types/passport": "^1.0.15", "@types/supertest": "^2.0.11", - "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.0.1", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.8.0", diff --git a/src/shared/paging/global-paging-headers.interceptor.ts b/src/shared/paging/global-paging-headers.interceptor.ts index efaaeead1..f1f270a36 100644 --- a/src/shared/paging/global-paging-headers.interceptor.ts +++ b/src/shared/paging/global-paging-headers.interceptor.ts @@ -5,7 +5,7 @@ import { PagedResponse } from './paged.response.js'; import { PagingHeaders } from './paging.enums.js'; export class GlobalPagingHeadersInterceptor implements NestInterceptor { - public intercept(context: ExecutionContext, next: CallHandler): Observable { + public intercept(context: ExecutionContext, next: CallHandler): Observable { return next.handle().pipe( map((value: unknown) => { if (value instanceof PagedResponse) { From f91c7218cef24954c7c47f531b6cb6a6a2bc009c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 13:48:28 +0100 Subject: [PATCH 08/12] Bump @nestjs/terminus from 9.2.2 to 10.1.1 (#94) Bumps [@nestjs/terminus](https://github.com/nestjs/terminus) from 9.2.2 to 10.1.1. - [Release notes](https://github.com/nestjs/terminus/releases) - [Changelog](https://github.com/nestjs/terminus/blob/master/CHANGELOG.md) - [Commits](https://github.com/nestjs/terminus/compare/9.2.2...10.1.1) --- updated-dependencies: - dependency-name: "@nestjs/terminus" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 36 ++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02a653f5d..dbdc62ba1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@nestjs/passport": "^10.0.2", "@nestjs/platform-express": "^9.0.0", "@nestjs/swagger": "^7.1.15", - "@nestjs/terminus": "^9.0.0", + "@nestjs/terminus": "^10.1.1", "@s3pweb/keycloak-admin-client-cjs": "^22.0.1", "axios": "^1.5.0", "class-transformer": "^0.5.1", @@ -2088,25 +2088,26 @@ } }, "node_modules/@nestjs/terminus": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@nestjs/terminus/-/terminus-9.2.2.tgz", - "integrity": "sha512-AWUA8XLcgxWUjUFYHDqi42M7CZn2e+DEWxP+MqNAbMzz4ybB5jGcFK5Fy8qwaNBoWg6KMF1JiXOOygGXgk9ydg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@nestjs/terminus/-/terminus-10.1.1.tgz", + "integrity": "sha512-aDoPK/uaR9PHn56xzand6zqpp+S3Ibm+y/OrG3M01F1WnScLfo29hbS6MdnIMqmVRAS11r/8X3xWTSo8TT/Lig==", "dependencies": { "boxen": "5.1.2", - "check-disk-space": "3.3.1" + "check-disk-space": "3.4.0" }, "peerDependencies": { "@grpc/grpc-js": "*", "@grpc/proto-loader": "*", "@mikro-orm/core": "*", "@mikro-orm/nestjs": "*", - "@nestjs/axios": "*", - "@nestjs/common": "9.x", - "@nestjs/core": "9.x", - "@nestjs/microservices": "*", - "@nestjs/mongoose": "*", - "@nestjs/sequelize": "*", - "@nestjs/typeorm": "*", + "@nestjs/axios": "^1.0.0 || ^2.0.0 || ^3.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "@nestjs/microservices": "^9.0.0 || ^10.0.0", + "@nestjs/mongoose": "^9.0.0 || ^10.0.0", + "@nestjs/sequelize": "^9.0.0 || ^10.0.0", + "@nestjs/typeorm": "^9.0.0 || ^10.0.0", + "@prisma/client": "*", "mongoose": "*", "reflect-metadata": "0.1.x", "rxjs": "7.x", @@ -2141,6 +2142,9 @@ "@nestjs/typeorm": { "optional": true }, + "@prisma/client": { + "optional": true + }, "mongoose": { "optional": true }, @@ -4417,11 +4421,11 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/check-disk-space": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/check-disk-space/-/check-disk-space-3.3.1.tgz", - "integrity": "sha512-iOrT8yCZjSnyNZ43476FE2rnssvgw5hnuwOM0hm8Nj1qa0v4ieUUEbCyxxsEliaoDUb/75yCOL71zkDiDBLbMQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/check-disk-space/-/check-disk-space-3.4.0.tgz", + "integrity": "sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==", "engines": { - "node": ">=12" + "node": ">=16" } }, "node_modules/chokidar": { diff --git a/package.json b/package.json index 1c22f6421..e1b9513c1 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@nestjs/passport": "^10.0.2", "@nestjs/platform-express": "^9.0.0", "@nestjs/swagger": "^7.1.15", - "@nestjs/terminus": "^9.0.0", + "@nestjs/terminus": "^10.1.1", "@s3pweb/keycloak-admin-client-cjs": "^22.0.1", "axios": "^1.5.0", "class-transformer": "^0.5.1", From 39f7d3f4837c8b05d6e7cce85c87123de8fa1e72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:00:01 +0100 Subject: [PATCH 09/12] Bump eslint-config-prettier from 8.10.0 to 9.0.0 (#95) Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.10.0 to 9.0.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.10.0...v9.0.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dbdc62ba1..fb5991dd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,7 +58,7 @@ "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.0.1", "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-prettier": "^5.0.1", "jest": "^29.6.2", @@ -5683,9 +5683,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" diff --git a/package.json b/package.json index e1b9513c1..c11aec604 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.0.1", "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-prettier": "^5.0.1", "jest": "^29.6.2", From a2d9de588e79810f3de011f46a3c284689fbdab0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:09:50 +0100 Subject: [PATCH 10/12] Bump @golevelup/ts-jest from 0.3.8 to 0.4.0 (#93) Bumps [@golevelup/ts-jest](https://github.com/golevelup/nestjs) from 0.3.8 to 0.4.0. - [Commits](https://github.com/golevelup/nestjs/compare/@golevelup/ts-jest@0.3.8...@golevelup/ts-jest@0.4.0) --- updated-dependencies: - dependency-name: "@golevelup/ts-jest" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb5991dd8..a7f17dcbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "rxjs": "^7.2.0" }, "devDependencies": { - "@golevelup/ts-jest": "^0.3.7", + "@golevelup/ts-jest": "^0.4.0", "@mikro-orm/cli": "^5.7.12", "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", @@ -987,9 +987,9 @@ } }, "node_modules/@golevelup/ts-jest": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.3.8.tgz", - "integrity": "sha512-2H4XzpCHwoUs2P13tzwVzj+AYspbFGKwMr94WK5eHiDBKgx0j4QGgLQh1wgM18DjhN7jdntrzVMoQRie6kZhnw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.4.0.tgz", + "integrity": "sha512-ehgllV/xU8PC+yVyEUtTzhiSQKsr7k5Jz74B6dtCaVJz7/Vo7JiaACsCLvD7/iATlJUAEqvBson0OHewD3JDzQ==", "dev": true }, "node_modules/@humanwhocodes/config-array": { diff --git a/package.json b/package.json index c11aec604..24d8f2acc 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "rxjs": "^7.2.0" }, "devDependencies": { - "@golevelup/ts-jest": "^0.3.7", + "@golevelup/ts-jest": "^0.4.0", "@mikro-orm/cli": "^5.7.12", "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", From 8834e20274e6ebfee06ce17fd846e8a1770f84e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:42:11 +0100 Subject: [PATCH 11/12] Bump testcontainers from 9.12.0 to 10.2.2 (#69) * Bump testcontainers from 9.12.0 to 10.2.2 Bumps [testcontainers](https://github.com/testcontainers/testcontainers-node) from 9.12.0 to 10.2.2. - [Release notes](https://github.com/testcontainers/testcontainers-node/releases) - [Commits](https://github.com/testcontainers/testcontainers-node/compare/v9.12.0...v10.2.2) --- updated-dependencies: - dependency-name: testcontainers dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Adding package @testcontainers/postgresql --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick Sachmann --- package-lock.json | 278 ++++++++++++++++++++--------- package.json | 3 +- test/utils/database-test.module.ts | 13 +- 3 files changed, 202 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index a7f17dcbd..1c0c99a9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,7 @@ "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^9.4.2", + "@testcontainers/postgresql": "^10.2.2", "@types/express": "^4.17.21", "@types/express-session": "^1.17.10", "@types/jest": "^29.2.4", @@ -65,7 +66,7 @@ "prettier": "^3.1.0", "source-map-support": "^0.5.20", "supertest": "^6.1.3", - "testcontainers": "^9.9.0", + "testcontainers": "^10.2.2", "ts-jest": "^29.1.0", "ts-loader": "^9.5.0", "ts-node": "^10.0.0", @@ -986,6 +987,101 @@ "npm": ">=6.14.13" } }, + "node_modules/@fastify/accept-negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", + "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", + "optional": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@fastify/send": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.1.0.tgz", + "integrity": "sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==", + "optional": true, + "peer": true, + "dependencies": { + "@lukeed/ms": "^2.0.1", + "escape-html": "~1.0.3", + "fast-decode-uri-component": "^1.0.1", + "http-errors": "2.0.0", + "mime": "^3.0.0" + } + }, + "node_modules/@fastify/send/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@fastify/static": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.11.2.tgz", + "integrity": "sha512-EH7mh7q4MfNdT7N07ZVlwsX/ObngMvQ7KBP0FXAuPov99Fjn80KSJMdxQhhYKAKWW1jXiFdrk8X7d6uGWdZFxg==", + "optional": true, + "peer": true, + "dependencies": { + "@fastify/accept-negotiator": "^1.0.0", + "@fastify/send": "^2.0.0", + "content-disposition": "^0.5.3", + "fastify-plugin": "^4.0.0", + "glob": "^8.0.1", + "p-limit": "^3.1.0" + } + }, + "node_modules/@fastify/static/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "optional": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@fastify/static/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "optional": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@fastify/static/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "optional": true, + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@golevelup/ts-jest": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.4.0.tgz", @@ -1627,6 +1723,16 @@ "node": ">=8" } }, + "node_modules/@lukeed/ms": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", + "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@mikro-orm/cli": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-5.9.3.tgz", @@ -2358,6 +2464,15 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@testcontainers/postgresql": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@testcontainers/postgresql/-/postgresql-10.2.2.tgz", + "integrity": "sha512-G1xJKe8omeNzngK0dj4R2cSYxWyOUdTXD/oBA03AqIwdReq/gi4WjT6CJqGbkqQy9opXZV6ug3gHMja+wM5BCA==", + "dev": true, + "dependencies": { + "testcontainers": "^10.2.2" + } + }, "node_modules/@testim/chrome-version": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", @@ -2389,15 +2504,6 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@types/archiver": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz", - "integrity": "sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==", - "dev": true, - "dependencies": { - "@types/readdir-glob": "*" - } - }, "node_modules/@types/babel__core": { "version": "7.20.4", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", @@ -2464,26 +2570,6 @@ "integrity": "sha512-b698BLJ6kPVd6uhHsY7wlebZdrWPXYied883PDSzpJZYOP97EOn/oGdLCH3jJf157srkFReIZY5v0H1s8Dozrg==", "dev": true }, - "node_modules/@types/docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/ssh2": "*" - } - }, - "node_modules/@types/dockerode": { - "version": "3.3.23", - "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.23.tgz", - "integrity": "sha512-Lz5J+NFgZS4cEVhquwjIGH4oQwlVn2h7LXD3boitujBnzOE5o7s9H8hchEjoDK2SlRsJTogdKnQeiJgPPKLIEw==", - "dev": true, - "dependencies": { - "@types/docker-modem": "*", - "@types/node": "*" - } - }, "node_modules/@types/eslint": { "version": "8.44.7", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", @@ -2665,15 +2751,6 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, - "node_modules/@types/readdir-glob": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.4.tgz", - "integrity": "sha512-uEJsErL2wFCTcbbmJpIuD8OWYNabgv1oaYP2bOkzZXKtk3c6LCYQEKngIqBj2VR2NMv9DOAXSkxSYOWtHxh2gQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", @@ -2701,15 +2778,6 @@ "@types/node": "*" } }, - "node_modules/@types/ssh2": { - "version": "1.11.16", - "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.16.tgz", - "integrity": "sha512-Y1WuSL16TSlfsqTVyOkfnUsxHrdZsQQGq0AG6XFqs0hU3jO++cc6PdU+UCyG/0AVg9ez5qRNR8xfkouJv+gdgw==", - "dev": true, - "dependencies": { - "@types/node": "^18.11.18" - } - }, "node_modules/@types/ssh2-streams": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.12.tgz", @@ -2719,15 +2787,6 @@ "@types/node": "*" } }, - "node_modules/@types/ssh2/node_modules/@types/node": { - "version": "18.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", - "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -3887,6 +3946,12 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4007,7 +4072,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "devOptional": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -6337,6 +6402,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "optional": true, + "peer": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6349,6 +6421,12 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -6381,6 +6459,13 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, + "node_modules/fastify-plugin": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", + "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==", + "optional": true, + "peer": true + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -6725,7 +6810,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "devOptional": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -7247,7 +7332,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, + "devOptional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8658,9 +8743,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.49", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.49.tgz", - "integrity": "sha512-gvLtyC3tIuqfPzjvYLH9BmVdqzGDiSi4VjtWe2fAgSdBf0yt8yPmbNnRIHNbR5IdtVkm0ayGuzwQKTWmU0hdjQ==" + "version": "1.10.46", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.46.tgz", + "integrity": "sha512-xJqWqMV5hM/6vWj68yqUejkzM9KkYjWFfqimVL4QG4dS5Rij2EXWus/s248x4zUpXeX2gwbLBzQW+aPqUitxIg==" }, "node_modules/lines-and-columns": { "version": "1.2.4", @@ -9462,7 +9547,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "devOptional": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10032,9 +10117,9 @@ } }, "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -10089,6 +10174,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -10969,6 +11060,16 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", + "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -11230,15 +11331,25 @@ } }, "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, "dependencies": { - "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-fs/node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/tar-stream": { @@ -11430,30 +11541,25 @@ } }, "node_modules/testcontainers": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-9.12.0.tgz", - "integrity": "sha512-zmjLTAUqCiDvhDq7TCwcyhI3m/cXXKGnhyLLJ9pgh53VgG9O+P+opX1pIx28aYTUQ7Yu6b5sJf0xoIuxoiclWg==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-10.2.2.tgz", + "integrity": "sha512-5GZ93rtoVXMx/s3xZjydftrKLnv1Yf+ETzGkXYRCm16LB60W48SGodxuiouYvNlVy0y0ogoQhdOw3DqsPActEA==", "dev": true, "dependencies": { "@balena/dockerignore": "^1.0.2", - "@types/archiver": "^5.3.2", - "@types/dockerode": "^3.3.19", - "archiver": "^5.3.1", + "archiver": "^5.3.2", "async-lock": "^1.4.0", "byline": "^5.0.0", "debug": "^4.3.4", - "docker-compose": "^0.24.1", + "docker-compose": "^0.24.2", "dockerode": "^3.3.5", "get-port": "^5.1.1", - "node-fetch": "^2.6.12", + "node-fetch": "^2.7.0", "proper-lockfile": "^4.1.2", - "properties-reader": "^2.2.0", + "properties-reader": "^2.3.0", "ssh-remote-port-forward": "^1.0.4", - "tar-fs": "^2.1.1", + "tar-fs": "^3.0.4", "tmp": "^0.2.1" - }, - "engines": { - "node": ">= 10.16" } }, "node_modules/testcontainers/node_modules/glob": { @@ -12466,7 +12572,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, + "devOptional": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 24d8f2acc..3cda3ad1a 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^9.4.2", + "@testcontainers/postgresql": "^10.2.2", "@types/express": "^4.17.21", "@types/express-session": "^1.17.10", "@types/jest": "^29.2.4", @@ -87,7 +88,7 @@ "prettier": "^3.1.0", "source-map-support": "^0.5.20", "supertest": "^6.1.3", - "testcontainers": "^9.9.0", + "testcontainers": "^10.2.2", "ts-jest": "^29.1.0", "ts-loader": "^9.5.0", "ts-node": "^10.0.0", diff --git a/test/utils/database-test.module.ts b/test/utils/database-test.module.ts index 0e9b5ade3..71508fea6 100644 --- a/test/utils/database-test.module.ts +++ b/test/utils/database-test.module.ts @@ -1,10 +1,11 @@ -import { randomUUID } from 'crypto'; -import { DefaultPullPolicy, PostgreSqlContainer, StartedPostgreSqlContainer } from 'testcontainers'; -import { DynamicModule, OnModuleDestroy } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; import { MikroORM } from '@mikro-orm/core'; import { MikroOrmModule } from '@mikro-orm/nestjs'; import { defineConfig } from '@mikro-orm/postgresql'; +import { DynamicModule, OnModuleDestroy } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { PostgreSqlContainer, StartedPostgreSqlContainer } from '@testcontainers/postgresql'; +import { randomUUID } from 'crypto'; +import { PullPolicy } from 'testcontainers'; import { DbConfig, ServerConfig } from '../../src/shared/config/index.js'; type DatabaseTestModuleOptions = { isDatabaseRequired: boolean; databaseName?: string }; @@ -21,13 +22,15 @@ export class DatabaseTestModule implements OnModuleDestroy { const dbName: string = options?.databaseName || `${configService.getOrThrow('DB').DB_NAME}-${randomUUID()}`; + if (options?.isDatabaseRequired) { this.postgres = await new PostgreSqlContainer('docker.io/postgres:15.3-alpine') .withDatabase(dbName) - .withPullPolicy(new DefaultPullPolicy()) + .withPullPolicy(PullPolicy.defaultPolicy()) .withReuse() .start(); } + return defineConfig({ clientUrl: this.postgres?.getConnectionUri() || From f0940ae3dc12dbb29c83546476ef6e979d0e6bf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 08:12:24 +0100 Subject: [PATCH 12/12] Bump @faker-js/faker from 8.2.0 to 8.3.0 (#98) Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 8.2.0 to 8.3.0. - [Release notes](https://github.com/faker-js/faker/releases) - [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md) - [Commits](https://github.com/faker-js/faker/compare/v8.2.0...v8.3.0) --- updated-dependencies: - dependency-name: "@faker-js/faker" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c0c99a9b..c14e5e5b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@automapper/classes": "^8.7.7", "@automapper/core": "^8.7.7", "@automapper/nestjs": "^8.7.7", - "@faker-js/faker": "^8.2.0", + "@faker-js/faker": "^8.3.0", "@mikro-orm/core": "^5.9.3", "@mikro-orm/nestjs": "^5.2.2", "@mikro-orm/postgresql": "^5.9.3", @@ -973,9 +973,9 @@ } }, "node_modules/@faker-js/faker": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.2.0.tgz", - "integrity": "sha512-VacmzZqVxdWdf9y64lDOMZNDMM/FQdtM9IsaOPKOm2suYwEatb8VkdHqOzXcDnZbk7YDE2BmsJmy/2Hmkn563g==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.0.tgz", + "integrity": "sha512-1Ibx6hdxIvJB6fT56daVJND/8uw5G3hi2Fw2Bjm8EW7jsUNI4wV3D1dvyqHYR2RIRU6mWIroZmoGvl76mlnFrg==", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 3cda3ad1a..051c5ca1a 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@automapper/classes": "^8.7.7", "@automapper/core": "^8.7.7", "@automapper/nestjs": "^8.7.7", - "@faker-js/faker": "^8.2.0", + "@faker-js/faker": "^8.3.0", "@mikro-orm/core": "^5.9.3", "@mikro-orm/nestjs": "^5.2.2", "@mikro-orm/postgresql": "^5.9.3",