diff --git a/.circleci/config.yml b/.circleci/config.yml index d4de5ede7c..6d3917a239 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -124,9 +124,7 @@ jobs: - *install-deps - run: name: Prepare tests - command: | - bash ./scripts/prepare.sh - sleep 10 + command: bash ./scripts/prepare.sh - run: name: List containers command: docker ps diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 528740cec5..06873fcbc2 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,7 +56,7 @@ Please consider what kind of change it is: Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. -We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using a repository or [Gist](https://gist.github.com/). Having a live, reproducible scenario gives us wealth of important information without going back & forth to you with additional questions like: +We want to fix all the issues as soon as possible, but before fixing a bug, we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using a repository or [Gist](https://gist.github.com/). Having a live, reproducible scenario gives us a wealth of important information without going back & forth to you with additional questions like: - version of NestJS used - 3rd-party libraries and their versions @@ -202,7 +202,7 @@ To ensure consistency throughout the source code, keep these rules in mind as yo // We're working on auto-documentation. * All public API methods **must be documented**. (Details TBC). --> -- All features or bug fixes **must be tested** by one or more specs (unit-tests). +- All features or bug fixes **must be tested** by one or more specs (unit tests). - We follow [Google's JavaScript Style Guide][js-style-guide], but wrap all code at **100 characters**. An automated formatter is available (`npm run format`). diff --git a/Readme.md b/Readme.md index 9d631e4797..99efbbfd78 100644 --- a/Readme.md +++ b/Readme.md @@ -29,7 +29,7 @@ Nest is a framework for building efficient, scalable Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
+In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.
Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.
## Getting started @@ -95,6 +95,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
-近年、Node.jsの発展によって、JavaScriptはフロントエンドとバックエンドの両方でWebの「共通言語」になりました。そしてフロントエンドでは、Angular、React、Vueなどの素晴らしいプロジェクトが生まれ、開発効率が飛躍的に向上しました。一方で、サーバーサイドでは、Node.jsエコシステム上に優れたライブラリ、ヘルパー、ツールがたくさんありますが、それらのどれもが主要な問題であるアーキテクチャを効果的に解決するものではありませんでした。 +近年、Node.jsの発展によって、JavaScriptはフロントエンドとバックエンドの両方でWebの「共通言語」になりました。そしてフロントエンドでは、Angular、React、Vueなどの素晴らしいプロジェクトが生まれ、開発効率が飛躍的に向上しました。一方で、サーバーサイドでは、Node.jsエコシステム上に優れたライブラリ、ヘルパー、ツールがたくさんありますが、それらのどれもが主要な問題であるアーキテクチャを効果的に解決するものではありませんでした。
Nestは、実用的なアーキテクチャをすぐに構築できることを目的としています。具体的には、テストフレンドリーで、スケーラブルで、疎結合で、運用にやさしいアプリケーションを構築できるようになっています。また、アーキテクチャはAngularにインスパイアされています。
diff --git a/readme_kr.md b/readme_kr.md index 8da72a5776..9d5128b72f 100644 --- a/readme_kr.md +++ b/readme_kr.md @@ -30,7 +30,7 @@ Nest는 효율적이고 확장 가능한 Angular와 React, Vue와 같이 멋진 프로젝트들이 등장하여 개발자의 생산성을 향상시켰으며, 빠르고 테스트와 확장이 가능한 프론트엔드 애플리케이션을 만들 수 있게 해주었습니다. 하지만 서버 사이드에서는 Node.js를 위한 우수한 라이브러리와 툴이 많은 가운데, 주요 문제를 효과적으로 해결하는 것은 없었습니다. 그 주요 문제란 바로 아키텍처(architecture)입니다. +최근 몇 년간 Javascript는 Node.js의 발전에 따라 웹의 프론트엔드와 백엔드에 있어서 "공용어"가 되었습니다. 그리고 프론트엔드에서는 Angular와 React, Vue와 같이 멋진 프로젝트들이 등장하여 개발자의 생산성을 향상시켰으며, 빠르고 테스트와 확장이 가능한 프론트엔드 애플리케이션을 만들 수 있게 해주었습니다. 하지만 서버 사이드에서는 Node.js를 위한 우수한 라이브러리와 툴이 많은 가운데, 주요 문제를 효과적으로 해결하는 것은 없었습니다. 그 주요 문제란 바로 아키텍처(architecture)입니다.
Nest는 테스트 친화적이면서 확장이 가능하고 결합이 느슨하며, 유지 관리가 용이한 애플리케이션을 손쉽게 만들 수 있는 애플리케이션 아키텍처 제공을 목표로 합니다. 이 아키텍처는 Angular에서 많은 영감을 받았습니다.
## 시작하기 diff --git a/readme_zh.md b/readme_zh.md index 0959d0a1ed..d6d2a63787 100644 --- a/readme_zh.md +++ b/readme_zh.md @@ -31,7 +31,7 @@ ## 设计哲学 -近几年,由于 Node.js,JavaScript 已经成为 Web 前端和后端应用程序的「通用语言」,从而产生了像Angular、React、Vue等令人耳目一新的项目,这些项目提高了开发人员的生产力,使得可以快速构建可测试的且可扩展的前端应用程序。 然而,在服务器端,虽然有很多优秀的库、helper 和 Node 工具,但是它们都没有有效地解决主要问题 - 架构。
+近几年,由于 Node.js,JavaScript 已经成为 Web 前端和后端应用程序的「通用语言」,从而产生了像Angular、React、Vue等令人耳目一新的项目,这些项目提高了开发人员的生产力,使得可以快速构建可测试的且可扩展的前端应用程序。 然而,在服务器端,虽然有很多优秀的库、helper 和 Node 工具,但是它们都没有有效地解决主要问题 - 架构。
Nest 旨在提供一个开箱即用的应用程序体系结构,允许轻松创建高度可测试,可扩展,松散耦合且易于维护的应用程序。
diff --git a/sample/02-gateways/src/adapters/redis-io.adapter.ts b/sample/02-gateways/src/adapters/redis-io.adapter.ts index e8c4467d00..38e3bf1b4d 100644 --- a/sample/02-gateways/src/adapters/redis-io.adapter.ts +++ b/sample/02-gateways/src/adapters/redis-io.adapter.ts @@ -7,7 +7,10 @@ export class RedisIoAdapter extends IoAdapter { private adapterConstructor: ReturnTypeA progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
+A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
diff --git a/sample/26-queues/README.md b/sample/26-queues/README.md
index ac4f775266..8bc03c325c 100644
--- a/sample/26-queues/README.md
+++ b/sample/26-queues/README.md
@@ -7,7 +7,7 @@
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
[linux-url]: https://travis-ci.org/nestjs/nest
-
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
+A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
diff --git a/sample/27-scheduling/README.md b/sample/27-scheduling/README.md
index ac4f775266..8bc03c325c 100644
--- a/sample/27-scheduling/README.md
+++ b/sample/27-scheduling/README.md
@@ -7,7 +7,7 @@
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
[linux-url]: https://travis-ci.org/nestjs/nest
-
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
+A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
diff --git a/sample/28-sse/README.md b/sample/28-sse/README.md
index ac4f775266..8bc03c325c 100644
--- a/sample/28-sse/README.md
+++ b/sample/28-sse/README.md
@@ -7,7 +7,7 @@
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
[linux-url]: https://travis-ci.org/nestjs/nest
-
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
+A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
diff --git a/sample/34-using-esm-packages/package.json b/sample/34-using-esm-packages/package.json
new file mode 100644
index 0000000000..826393ffb9
--- /dev/null
+++ b/sample/34-using-esm-packages/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "34-using-esm-packages",
+ "version": "0.0.1",
+ "description": "",
+ "author": "",
+ "private": true,
+ "license": "UNLICENSED",
+ "type": "module",
+ "engines": {
+ "node": ">=18.8"
+ },
+ "scripts": {
+ "build": "nest build",
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
+ "start": "nest start",
+ "start:dev": "nest start --watch",
+ "start:debug": "nest start --debug --watch",
+ "start:prod": "node dist/main",
+ "lint": "oxlint src --fix",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "test:cov": "vitest run --coverage",
+ "test:debug": "vitest --inspect-brk --no-file-parallelism",
+ "test:e2e": "vitest run --config ./vitest.config.e2e.mts"
+ },
+ "dependencies": {
+ "@nestjs/common": "11.1.13",
+ "@nestjs/core": "11.1.13",
+ "@nestjs/platform-express": "11.1.13",
+ "delay": "7.x",
+ "reflect-metadata": "0.2.2",
+ "rimraf": "6.1.2",
+ "rxjs": "7.8.2",
+ "superjson": "2.x"
+ },
+ "devDependencies": {
+ "@nestjs/cli": "11.0.16",
+ "@nestjs/schematics": "11.0.9",
+ "@nestjs/testing": "11.1.13",
+ "@types/express": "5.0.6",
+ "@types/node": "24.10.11",
+ "@types/supertest": "6.0.3",
+ "oxlint": "1.58.0",
+ "prettier": "3.8.1",
+ "source-map-support": "0.5.21",
+ "supertest": "7.2.2",
+ "ts-loader": "9.5.4",
+ "ts-node": "10.9.2",
+ "tsconfig-paths": "4.2.0",
+ "typescript": "6.0.2",
+ "vitest": "4.1.2"
+ }
+}
diff --git a/sample/35-use-esm-package-after-node22/package.json b/sample/35-use-esm-package-after-node22/package.json
new file mode 100644
index 0000000000..4a581df1a0
--- /dev/null
+++ b/sample/35-use-esm-package-after-node22/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "35-use-esm-package-after-node22",
+ "version": "0.0.1",
+ "description": "",
+ "author": "",
+ "private": true,
+ "license": "UNLICENSED",
+ "type": "module",
+ "engines": {
+ "node": ">=22"
+ },
+ "scripts": {
+ "build": "nest build",
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
+ "start": "nest start --exec \"node --experimental-require-module\"",
+ "start:dev": "nest start --exec \"node --experimental-require-module\" --watch",
+ "start:debug": "nest start --exec \"node --experimental-require-module\" --debug --watch",
+ "start:prod": "node --experimental-require-module dist/main",
+ "lint": "oxlint src --fix",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "test:cov": "vitest run --coverage",
+ "test:debug": "vitest --inspect-brk --no-file-parallelism",
+ "test:e2e": "vitest run --config ./vitest.config.e2e.mts"
+ },
+ "dependencies": {
+ "@nestjs/common": "11.1.13",
+ "@nestjs/core": "11.1.13",
+ "@nestjs/platform-express": "11.1.13",
+ "reflect-metadata": "0.2.2",
+ "rimraf": "6.1.2",
+ "rxjs": "7.8.2",
+ "superjson": "2.x"
+ },
+ "devDependencies": {
+ "@nestjs/cli": "11.0.16",
+ "@nestjs/schematics": "11.0.9",
+ "@nestjs/testing": "11.1.13",
+ "@types/express": "5.0.6",
+ "@types/node": "24.10.11",
+ "@types/supertest": "6.0.3",
+ "oxlint": "1.58.0",
+ "prettier": "3.8.1",
+ "source-map-support": "0.5.21",
+ "supertest": "7.2.2",
+ "ts-loader": "9.5.4",
+ "ts-node": "10.9.2",
+ "tsconfig-paths": "4.2.0",
+ "typescript": "6.0.2",
+ "vitest": "4.1.2"
+ }
+}
diff --git a/scripts/docker-compose.js b/scripts/docker-compose.js
new file mode 100644
index 0000000000..86fd339bc4
--- /dev/null
+++ b/scripts/docker-compose.js
@@ -0,0 +1,59 @@
+/**
+ * Cross-platform wrapper that forwards arguments to whichever Docker Compose
+ * implementation is available on the host:
+ *
+ * 1. `docker compose` (Compose V2 plugin, shipped with modern Docker Desktop)
+ * 2. `docker-compose` (legacy standalone V1 binary)
+ *
+ * This exists because contributors run a mix of both and neither is guaranteed
+ * to be installed. The wrapper prefers V2 when available and transparently
+ * falls back to V1, so npm scripts like `test:docker:up` work everywhere.
+ */
+
+import { spawnSync } from 'node:child_process';
+
+const forwardedArgs = process.argv.slice(2);
+const isWindows = process.platform === 'win32';
+
+function hasComposeV2() {
+ const result = spawnSync('docker', ['compose', 'version'], {
+ stdio: 'ignore',
+ shell: isWindows,
+ });
+ return result.status === 0;
+}
+
+function hasComposeV1() {
+ const probe = isWindows ? 'where' : 'which';
+ const result = spawnSync(probe, ['docker-compose'], {
+ stdio: 'ignore',
+ shell: isWindows,
+ });
+ return result.status === 0;
+}
+
+function run(command, args) {
+ const result = spawnSync(command, args, {
+ stdio: 'inherit',
+ shell: isWindows,
+ });
+ if (result.error) {
+ console.error(
+ `[docker-compose] Failed to execute: ${result.error.message}`,
+ );
+ process.exit(1);
+ }
+ process.exit(result.status == null ? 1 : result.status);
+}
+
+if (hasComposeV2()) {
+ run('docker', ['compose', ...forwardedArgs]);
+} else if (hasComposeV1()) {
+ run('docker-compose', forwardedArgs);
+} else {
+ console.error(
+ "[docker-compose] Neither 'docker compose' (V2) nor 'docker-compose' (V1) was found on PATH.\n" +
+ 'Install Docker Desktop or the Docker Compose plugin and try again.',
+ );
+ process.exit(1);
+}
diff --git a/scripts/prepare.sh b/scripts/prepare.sh
index 8d2d278328..8f7abdb64b 100644
--- a/scripts/prepare.sh
+++ b/scripts/prepare.sh
@@ -2,4 +2,7 @@
npm run build &>/dev/null
# 2. Start docker containers to perform integration tests
-npm run test:docker:up
\ No newline at end of file
+npm run test:docker:up
+
+# 3. Wait for RabbitMQ to accept AMQP connections
+npm run test:docker:wait:rmq
diff --git a/scripts/run-integration.sh b/scripts/run-integration.sh
index 4a3c15fa2b..345a98fff2 100755
--- a/scripts/run-integration.sh
+++ b/scripts/run-integration.sh
@@ -4,5 +4,8 @@ npm run build &>/dev/null
# 2. Start docker containers to perform integration tests
npm run test:docker:up
-# 3. Run integration tests
-npm run test:integration
\ No newline at end of file
+# 3. Wait for RabbitMQ to accept AMQP connections
+npm run test:docker:wait:rmq
+
+# 4. Run integration tests
+npm run test:integration
diff --git a/scripts/wait-for-rabbitmq.js b/scripts/wait-for-rabbitmq.js
new file mode 100644
index 0000000000..6d077ac861
--- /dev/null
+++ b/scripts/wait-for-rabbitmq.js
@@ -0,0 +1,46 @@
+import amqp from 'amqplib';
+
+const url = process.env.RABBITMQ_URL || 'amqp://localhost:5672';
+const readPositiveInteger = (value, fallback) => {
+ const parsed = Number.parseInt(value, 10);
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
+};
+
+const timeoutMs = readPositiveInteger(
+ process.env.RABBITMQ_WAIT_TIMEOUT_MS,
+ 60000,
+);
+const intervalMs = readPositiveInteger(
+ process.env.RABBITMQ_WAIT_INTERVAL_MS,
+ 1000,
+);
+const startedAt = Date.now();
+
+const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+
+async function waitForRabbitMQ() {
+ let lastError;
+
+ while (Date.now() - startedAt < timeoutMs) {
+ try {
+ const connection = await amqp.connect(url);
+ await connection.close();
+ console.log(`[rabbitmq] Ready at ${url}`);
+ return;
+ } catch (err) {
+ lastError = err;
+ console.log(`[rabbitmq] Waiting for ${url}...`);
+ await sleep(intervalMs);
+ }
+ }
+
+ console.error(
+ `[rabbitmq] Timed out waiting for ${url} after ${timeoutMs}ms.`,
+ );
+ if (lastError) {
+ console.error(lastError);
+ }
+ process.exit(1);
+}
+
+void waitForRabbitMQ();
diff --git a/tools/benchmarks/package-lock.json b/tools/benchmarks/package-lock.json
index 349a0678e6..fbb966bafe 100644
--- a/tools/benchmarks/package-lock.json
+++ b/tools/benchmarks/package-lock.json
@@ -223,12 +223,12 @@
}
},
"node_modules/@nestjs/common": {
- "version": "11.1.13",
- "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.13.tgz",
- "integrity": "sha512-ieqWtipT+VlyDWLz5Rvz0f3E5rXcVAnaAi+D53DEHLjc1kmFxCgZ62qVfTX2vwkywwqNkTNXvBgGR72hYqV//Q==",
+ "version": "11.1.20",
+ "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.20.tgz",
+ "integrity": "sha512-uivaQnTwnfnW1cam8rlh9Xpxvvq+9zKs5ywHWtHRHu1CSQ2FnsLvDewP9Ybhyuf6l075BXKgbixxyW9OKZGpmA==",
"license": "MIT",
"dependencies": {
- "file-type": "21.3.0",
+ "file-type": "21.3.4",
"iterare": "1.2.1",
"load-esm": "1.0.3",
"tslib": "2.8.1",
@@ -254,16 +254,16 @@
}
},
"node_modules/@nestjs/core": {
- "version": "11.1.13",
- "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.13.tgz",
- "integrity": "sha512-Tq9EIKiC30EBL8hLK93tNqaToy0hzbuVGYt29V8NhkVJUsDzlmiVf6c3hSPtzx2krIUVbTgQ2KFeaxr72rEyzQ==",
+ "version": "11.1.20",
+ "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.20.tgz",
+ "integrity": "sha512-RlaeQctEtSNrc3SxwQDnAxv/R22ww2t5dbP8OMzaghXofUPRCe2dXhXZSlKMkCyCSEWX+tMhESlGRB5rcJhYTQ==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@nuxt/opencollective": "0.4.1",
"fast-safe-stringify": "2.1.1",
"iterare": "1.2.1",
- "path-to-regexp": "8.3.0",
+ "path-to-regexp": "8.4.2",
"tslib": "2.8.1",
"uid": "2.0.2"
},
@@ -295,15 +295,15 @@
}
},
"node_modules/@nestjs/platform-express": {
- "version": "11.1.13",
- "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.13.tgz",
- "integrity": "sha512-LYmi43BrAs1n74kLCUfXcHag7s1CmGETcFbf9IVyA/KWXAuAH95G3wEaZZiyabOLFNwq4ifnRGnIwUwW7cz3+w==",
+ "version": "11.1.20",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.20.tgz",
+ "integrity": "sha512-HFJ/bf189AGziCp7o9DPdPEgj7LXvCWswR3hBNiVCIo3SwOwTIss1BsQWCCJVAtVYTmwIHOI0i0k9dMGXh3Hew==",
"license": "MIT",
"dependencies": {
"cors": "2.8.6",
"express": "5.2.1",
- "multer": "2.0.2",
- "path-to-regexp": "8.3.0",
+ "multer": "2.1.1",
+ "path-to-regexp": "8.4.2",
"tslib": "2.8.1"
},
"funding": {
@@ -316,19 +316,19 @@
}
},
"node_modules/@nestjs/platform-fastify": {
- "version": "11.1.13",
- "resolved": "https://registry.npmjs.org/@nestjs/platform-fastify/-/platform-fastify-11.1.13.tgz",
- "integrity": "sha512-08VkZt5SVRtRyuEzRxY5KzrtsTSiqTSQlySUI8GUVhINHV/iziB6GKOWJc3upTmxvYG/5LSmDO4hv8kDnsWNCQ==",
+ "version": "11.1.20",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-fastify/-/platform-fastify-11.1.20.tgz",
+ "integrity": "sha512-2dmSTnGisXEzzZ6NvdVwL43VRIfWe2v22tgyH/pD/6Qb6vj58Q8zp6nhU43uoxu2sgLOxq+9ZdS6izeUFJRcEQ==",
"license": "MIT",
"dependencies": {
"@fastify/cors": "11.2.0",
"@fastify/formbody": "8.0.2",
"fast-querystring": "1.1.2",
- "fastify": "5.7.4",
+ "fastify": "5.8.5",
"fastify-plugin": "5.1.0",
- "find-my-way": "9.4.0",
+ "find-my-way": "9.6.0",
"light-my-request": "6.6.0",
- "path-to-regexp": "8.3.0",
+ "path-to-regexp": "8.4.2",
"reusify": "1.1.0",
"tslib": "2.8.1"
},
@@ -436,9 +436,9 @@
}
},
"node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -1094,9 +1094,9 @@
"license": "MIT"
},
"node_modules/fast-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
- "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
+ "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
"funding": [
{
"type": "github",
@@ -1110,9 +1110,9 @@
"license": "BSD-3-Clause"
},
"node_modules/fastify": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.7.4.tgz",
- "integrity": "sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==",
+ "version": "5.8.5",
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.8.5.tgz",
+ "integrity": "sha512-Yqptv59pQzPgQUSIm87hMqHJmdkb1+GPxdE6vW6FRyVE9G86mt7rOghitiU4JHRaTyDUk9pfeKmDeu70lAwM4Q==",
"funding": [
{
"type": "github",
@@ -1134,7 +1134,7 @@
"fast-json-stringify": "^6.0.0",
"find-my-way": "^9.0.0",
"light-my-request": "^6.0.0",
- "pino": "^10.1.0",
+ "pino": "^9.14.0 || ^10.1.0",
"process-warning": "^5.0.0",
"rfdc": "^1.3.1",
"secure-json-parse": "^4.0.0",
@@ -1168,9 +1168,9 @@
}
},
"node_modules/file-type": {
- "version": "21.3.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.0.tgz",
- "integrity": "sha512-8kPJMIGz1Yt/aPEwOsrR97ZyZaD1Iqm8PClb1nYFclUCkBi0Ma5IsYNQzvSFS9ib51lWyIw5mIT9rWzI/xjpzA==",
+ "version": "21.3.4",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.4.tgz",
+ "integrity": "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==",
"license": "MIT",
"dependencies": {
"@tokenizer/inflate": "^0.4.1",
@@ -1207,9 +1207,9 @@
}
},
"node_modules/find-my-way": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.4.0.tgz",
- "integrity": "sha512-5Ye4vHsypZRYtS01ob/iwHzGRUDELlsoCftI/OZFhcLs1M0tkGPcXldE80TAZC5yYuJMBPJQQ43UHlqbJWiX2w==",
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.6.0.tgz",
+ "integrity": "sha512-Zf4Xve4RymLl7NgaavNebZ01joJ8MfVerOG43wy7SHLO+r+K0C6d/SE0BiR7AV5V1VOCFlOP7ecdo+I4qmiHrQ==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -1711,23 +1711,12 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "license": "MIT",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -1735,21 +1724,22 @@
"license": "MIT"
},
"node_modules/multer": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz",
- "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz",
+ "integrity": "sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A==",
"license": "MIT",
"dependencies": {
"append-field": "^1.0.0",
"busboy": "^1.6.0",
"concat-stream": "^2.0.0",
- "mkdirp": "^0.5.6",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.18",
- "xtend": "^4.0.2"
+ "type-is": "^1.6.18"
},
"engines": {
"node": ">= 10.16.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/multer/node_modules/media-typer": {
@@ -1882,9 +1872,9 @@
}
},
"node_modules/path-to-regexp": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
- "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
+ "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -2623,15 +2613,6 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"license": "ISC"
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- }
}
}
}