diff --git a/apps/api/package.json b/apps/api/package.json
index 6c807719271..b394999aa90 100644
--- a/apps/api/package.json
+++ b/apps/api/package.json
@@ -114,7 +114,7 @@
"lru-cache": "^11.2.4",
"nanoid": "^3.1.20",
"nest-raven": "10.1.0",
- "newrelic": "^13.19.2",
+ "newrelic": "13.18.0",
"nimma": "^0.6.0",
"passport": "0.7.0",
"passport-github2": "^0.1.12",
diff --git a/apps/api/src/app/workflows-v2/e2e/test-http-endpoint.e2e.ts b/apps/api/src/app/workflows-v2/e2e/test-http-endpoint.e2e.ts
index 4111230e453..3821fc019b2 100644
--- a/apps/api/src/app/workflows-v2/e2e/test-http-endpoint.e2e.ts
+++ b/apps/api/src/app/workflows-v2/e2e/test-http-endpoint.e2e.ts
@@ -1,6 +1,9 @@
import { UserSession } from '@novu/testing';
import { expect } from 'chai';
+/** Public HTTPS URL for outbound tests (localhost is blocked by SSRF validation). */
+const HTTP_TEST_POST_URL = 'https://httpbin.org/post';
+
describe('Test HTTP Request Endpoint - /v2/workflows/steps/test-http-request (POST) #novu-v2', () => {
let session: UserSession;
@@ -9,10 +12,25 @@ describe('Test HTTP Request Endpoint - /v2/workflows/steps/test-http-request (PO
await session.initialize();
});
- it('should resolve canonical raw JSON string body controls', async () => {
+ it('should reject localhost URLs blocked by SSRF validation', async () => {
const response = await session.testAgent.post('/v2/workflows/steps/test-http-request').send({
controlValues: {
url: `http://localhost:${process.env.PORT}/v1/health-check`,
+ method: 'GET',
+ },
+ });
+
+ expect(response.status).to.equal(201);
+ expect(response.body.data.statusCode).to.equal(400);
+ expect(response.body.data.body).to.deep.include({
+ error: 'Requests to "localhost" are not allowed.',
+ });
+ });
+
+ it('should resolve canonical raw JSON string body controls', async () => {
+ const response = await session.testAgent.post('/v2/workflows/steps/test-http-request').send({
+ controlValues: {
+ url: HTTP_TEST_POST_URL,
method: 'POST',
headers: [{ key: 'content-type', value: 'application/json' }],
body: JSON.stringify({
@@ -42,7 +60,7 @@ describe('Test HTTP Request Endpoint - /v2/workflows/steps/test-http-request (PO
it('should resolve legacy key-value array body controls', async () => {
const response = await session.testAgent.post('/v2/workflows/steps/test-http-request').send({
controlValues: {
- url: `http://localhost:${process.env.PORT}/v1/health-check`,
+ url: HTTP_TEST_POST_URL,
method: 'POST',
headers: [{ key: 'content-type', value: 'application/json' }],
body: [
diff --git a/apps/api/src/app/workflows-v2/usecases/test-http-endpoint/test-http-endpoint.usecase.ts b/apps/api/src/app/workflows-v2/usecases/test-http-endpoint/test-http-endpoint.usecase.ts
index e155d7b90f3..8914071320d 100644
--- a/apps/api/src/app/workflows-v2/usecases/test-http-endpoint/test-http-endpoint.usecase.ts
+++ b/apps/api/src/app/workflows-v2/usecases/test-http-endpoint/test-http-endpoint.usecase.ts
@@ -11,6 +11,7 @@ import {
KeyValuePair,
resolveHttpRequestBody,
shouldIncludeBody,
+ validateUrlSsrf,
} from '@novu/application-generic';
import { createLiquidEngine } from '@novu/framework/internal';
import { Liquid } from 'liquidjs';
@@ -89,6 +90,25 @@ export class TestHttpEndpointUsecase {
const hasBody = shouldIncludeBody(resolvedBody, method);
+ const ssrfValidationError = await validateUrlSsrf(resolvedUrl);
+
+ if (ssrfValidationError) {
+ const durationMs = Math.round(performance.now() - startTime);
+
+ return {
+ statusCode: 400,
+ body: { error: ssrfValidationError },
+ headers: {},
+ durationMs,
+ resolvedRequest: {
+ url: resolvedUrl,
+ method,
+ headers: resolvedHeaders,
+ ...(hasBody ? { body: resolvedBody } : {}),
+ },
+ };
+ }
+
const secretKey = await this.getDecryptedSecretKey.execute(
GetDecryptedSecretKeyCommand.create({ environmentId: command.user.environmentId })
);
diff --git a/apps/dashboard/src/components/agents/setup-guide-primitives.tsx b/apps/dashboard/src/components/agents/setup-guide-primitives.tsx
index c2cf83ef6d0..5932379ac4f 100644
--- a/apps/dashboard/src/components/agents/setup-guide-primitives.tsx
+++ b/apps/dashboard/src/components/agents/setup-guide-primitives.tsx
@@ -64,7 +64,7 @@ export function SetupStep({
diff --git a/apps/dashboard/src/components/agents/slack-setup-guide.tsx b/apps/dashboard/src/components/agents/slack-setup-guide.tsx index 352f1cabffc..77e10ea2fb8 100644 --- a/apps/dashboard/src/components/agents/slack-setup-guide.tsx +++ b/apps/dashboard/src/components/agents/slack-setup-guide.tsx @@ -219,7 +219,7 @@ export function SlackSetupGuide({ description={ { - 'Paste the App Credentials block from your Slack app — the App ID, Client ID, Client Secret and Signing Secret are filled automatically.' + 'Paste the App Credentials block from your Slack app (You can also CMD+A and CMD+C the whole page!) — the App ID, Client ID, Client Secret and Signing Secret are filled automatically in the configure tab.' } } diff --git a/apps/inbound-mail/package.json b/apps/inbound-mail/package.json index fdab0067bc0..5cfcf2da62f 100644 --- a/apps/inbound-mail/package.json +++ b/apps/inbound-mail/package.json @@ -35,7 +35,7 @@ "languagedetect": "^1.1.1", "lodash": "^4.17.23", "mailparser": "^0.6.0", - "newrelic": "^13.12.0", + "newrelic": "13.18.0", "pino": "^8.17.2", "rimraf": "^3.0.2", "shelljs": "^0.8.5", diff --git a/apps/worker/package.json b/apps/worker/package.json index d5906eb8961..ff6c029731d 100644 --- a/apps/worker/package.json +++ b/apps/worker/package.json @@ -63,7 +63,7 @@ "lodash": "^4.18.0", "lru-cache": "^11.2.4", "nest-raven": "10.1.0", - "newrelic": "^13.19.2", + "newrelic": "13.18.0", "reflect-metadata": "0.2.2", "rimraf": "^3.0.2", "rxjs": "7.8.2", diff --git a/apps/ws/package.json b/apps/ws/package.json index 291728d8fe9..0282a547743 100644 --- a/apps/ws/package.json +++ b/apps/ws/package.json @@ -53,7 +53,7 @@ "jsonwebtoken": "9.0.3", "lodash": "^4.18.0", "nest-raven": "10.1.0", - "newrelic": "^13.19.2", + "newrelic": "13.18.0", "reflect-metadata": "0.2.2", "rimraf": "^3.0.2", "rxjs": "7.8.2", diff --git a/libs/application-generic/package.json b/libs/application-generic/package.json index 05032e9d333..baf5ddfba9e 100644 --- a/libs/application-generic/package.json +++ b/libs/application-generic/package.json @@ -33,7 +33,7 @@ "@nestjs/terminus": "10.2.3", "@nestjs/testing": "10.4.18", "jsonwebtoken": "9.0.3", - "newrelic": "^13.19.2", + "newrelic": "13.18.0", "reflect-metadata": "0.2.2" }, "dependencies": { diff --git a/package.json b/package.json index 924fdf11a78..922306d798f 100644 --- a/package.json +++ b/package.json @@ -276,7 +276,8 @@ "@clerk/shared@>=2.20.17 <2.22.1": "^2.22.1", "@clerk/shared@>=3.0.0-canary.v20250225091530 <3.47.4": "^3.47.4", "protobufjs@<7.5.5": "^7.5.5", - "protobufjs@>=8.0.0 <8.0.1": "^8.0.1" + "protobufjs@>=8.0.0 <8.0.1": "^8.0.1", + "newrelic": "13.18.0" }, "onlyBuiltDependencies": [ "@clerk/shared", diff --git a/packages/framework/package.json b/packages/framework/package.json index 7539619341a..0e760fa25a9 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -1,6 +1,6 @@ { "name": "@novu/framework", - "version": "2.10.1-alpha.4", + "version": "2.10.1-alpha.5", "description": "The Code-First Notifications Workflow SDK.", "main": "./dist/cjs/index.cjs", "types": "./dist/cjs/index.d.cts", diff --git a/packages/novu/package.json b/packages/novu/package.json index e0f8fe578d4..c9f8af92c96 100644 --- a/packages/novu/package.json +++ b/packages/novu/package.json @@ -1,6 +1,6 @@ { "name": "novu", - "version": "2.8.1-rc.5", + "version": "2.8.1-rc.6", "description": "Novu CLI. Run Novu Studio and sync workflows with Novu Cloud", "main": "src/index.js", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ff7dc47123..8437317ddc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,6 +129,7 @@ overrides: '@clerk/shared@>=3.0.0-canary.v20250225091530 <3.47.4': ^3.47.4 protobufjs@<7.5.5: ^7.5.5 protobufjs@>=8.0.0 <8.0.1: ^8.0.1 + newrelic: 13.18.0 patchedDependencies: smtp-server@1.17.0: @@ -531,8 +532,8 @@ importers: specifier: 10.1.0 version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.2)(ts-morph@24.0.0) newrelic: - specifier: ^13.19.2 - version: 13.19.2 + specifier: 13.18.0 + version: 13.18.0 nimma: specifier: ^0.6.0 version: 0.6.0 @@ -1239,8 +1240,8 @@ importers: specifier: ^0.6.0 version: 0.6.2 newrelic: - specifier: ^13.12.0 - version: 13.12.0 + specifier: 13.18.0 + version: 13.18.0 pino: specifier: ^8.17.2 version: 8.17.2 @@ -1381,8 +1382,8 @@ importers: specifier: 10.1.0 version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.2)(ts-morph@24.0.0) newrelic: - specifier: ^13.12.0 - version: 13.12.0 + specifier: 13.18.0 + version: 13.18.0 reflect-metadata: specifier: 0.2.2 version: 0.2.2 @@ -1586,8 +1587,8 @@ importers: specifier: 10.1.0 version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.2)(ts-morph@24.0.0) newrelic: - specifier: ^13.19.2 - version: 13.19.2 + specifier: 13.18.0 + version: 13.18.0 reflect-metadata: specifier: 0.2.2 version: 0.2.2 @@ -1789,8 +1790,8 @@ importers: specifier: 10.1.0 version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.2)(ts-morph@24.0.0) newrelic: - specifier: ^13.19.2 - version: 13.19.2 + specifier: 13.18.0 + version: 13.18.0 reflect-metadata: specifier: 0.2.2 version: 0.2.2 @@ -2609,8 +2610,8 @@ importers: specifier: 4.2.0 version: 4.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(pino-http@8.3.3) newrelic: - specifier: ^13.19.2 - version: 13.19.2 + specifier: 13.18.0 + version: 13.18.0 node-fetch: specifier: ^3.2.10 version: 3.3.2 @@ -4472,17 +4473,11 @@ packages: resolution: {integrity: sha512-JgG32LQRLphHRWsn64vIt7wD2m+JH46swM6ZrY7g1rdiGiKV5m+A+TBrJKoUUQRmS14azMgePNZY30NauWqzLg==} engines: {node: '>=10.4.0'} - '@apm-js-collab/code-transformer@0.12.0': - resolution: {integrity: sha512-5F2ob4cMYezbaUGAk+YltbDvb9BFIghN92ubct9Ho/0MFx4FkChCxYV99NkU6Kx+RAgaqBV6yxKuWreQ6K8SOw==} + '@apm-js-collab/code-transformer@0.10.0': + resolution: {integrity: sha512-6Y0pDhTIiVetgioIiHeFQ+vwpxd7Pz2h5xI33n0R9juRbxBaFUfhBfGOAUF+Y4TdcT5ccpjS6/5sLLYDDS3FHw==} - '@apm-js-collab/code-transformer@0.8.2': - resolution: {integrity: sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA==} - - '@apm-js-collab/tracing-hooks@0.3.1': - resolution: {integrity: sha512-Vu1CbmPURlN5fTboVuKMoJjbO5qcq9fA5YXpskx3dXe/zTBvjODFoerw+69rVBlRLrJpwPqSDqEuJDEKIrTldw==} - - '@apm-js-collab/tracing-hooks@0.6.0': - resolution: {integrity: sha512-akdKDRbvPWC7mRfyoJ2f/tpmKqn5rLDPJMQ3+ZImgtiRJsC3LSoDJF3enrEufURIieH/H0S7Le6KLnRaCTk9rQ==} + '@apm-js-collab/tracing-hooks@0.5.0': + resolution: {integrity: sha512-Fj2E03RnXtMkn5/XupRnNRC7CJcXRPVPmlTcw1ZJ3F/2iDyTXYMVKImuhU+Q9R7L0nxnuvwaP3ITpl2Y8mtXng==} '@arethetypeswrong/cli@0.17.4': resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} @@ -7402,10 +7397,6 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@grpc/grpc-js@1.13.4': - resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} - engines: {node: '>=12.10.0'} - '@grpc/grpc-js@1.14.3': resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==} engines: {node: '>=12.10.0'} @@ -18104,10 +18095,6 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} - esrap@2.2.4: resolution: {integrity: sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==} @@ -19310,10 +19297,6 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -21514,10 +21497,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - meriyah@6.1.4: - resolution: {integrity: sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==} - engines: {node: '>=18.0.0'} - mermaid@11.12.2: resolution: {integrity: sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==} @@ -21823,9 +21802,6 @@ packages: engines: {node: '>=18'} hasBin: true - module-details-from-path@1.0.3: - resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} @@ -22107,13 +22083,8 @@ packages: new-date@1.0.3: resolution: {integrity: sha512-0fsVvQPbo2I18DT2zVHpezmeeNYV2JaJSrseiHLc17GNOxJzUdx5mvSigPu8LtIfZSij5i1wXnXFspEs2CD6hA==} - newrelic@13.12.0: - resolution: {integrity: sha512-tLIhkHK2+5nYGeeuTMiKI/F0qUnk5rK4m6UV0M4bk7D5r80+FV0EbB9eUtepkFRSp1hqPO4SfumlraAKRJuDAw==} - engines: {node: '>=20', npm: '>=6.0.0'} - hasBin: true - - newrelic@13.19.2: - resolution: {integrity: sha512-PfiLkjjsz1tBrTqnPtHbiRcC44r+U9numOhPQztH5jnTf+xksqMoH7mlyTZi7BtD1Pkm6c+zY3SVnWjyzSNG0w==} + newrelic@13.18.0: + resolution: {integrity: sha512-9GYhtXTzjcsH4HUPeGwN6i24z6YZuB/ikWced3h9D/SH984MH9GxpWJjlurouA92GP667fIN0TjGuTNIfYa54Q==} engines: {node: '>=20', npm: '>=6.0.0'} hasBin: true @@ -24677,9 +24648,6 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - semifies@1.0.0: - resolution: {integrity: sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==} - semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -27652,28 +27620,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@apm-js-collab/code-transformer@0.12.0': - dependencies: - '@types/estree': 1.0.8 - astring: 1.9.0 - esquery: 1.7.0 - meriyah: 6.1.4 - semifies: 1.0.0 - source-map: 0.6.1 - - '@apm-js-collab/code-transformer@0.8.2': {} + '@apm-js-collab/code-transformer@0.10.0': {} - '@apm-js-collab/tracing-hooks@0.3.1': + '@apm-js-collab/tracing-hooks@0.5.0': dependencies: - '@apm-js-collab/code-transformer': 0.8.2 - debug: 4.4.3(supports-color@8.1.1) - module-details-from-path: 1.0.4 - transitivePeerDependencies: - - supports-color - - '@apm-js-collab/tracing-hooks@0.6.0': - dependencies: - '@apm-js-collab/code-transformer': 0.12.0 + '@apm-js-collab/code-transformer': 0.10.0 debug: 4.4.3(supports-color@8.1.1) module-details-from-path: 1.0.4 transitivePeerDependencies: @@ -31337,7 +31288,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.39.0 '@standard-schema/spec': 1.1.0 - better-call: 1.3.2(zod@4.3.6) + better-call: 1.3.2(zod@4.3.5) jose: 6.1.3 kysely: 0.28.14 nanostores: 1.2.0 @@ -32817,11 +32768,6 @@ snapshots: dependencies: graphql: 16.9.0 - '@grpc/grpc-js@1.13.4': - dependencies: - '@grpc/proto-loader': 0.7.13 - '@js-sdsl/ordered-map': 4.4.2 - '@grpc/grpc-js@1.14.3': dependencies: '@grpc/proto-loader': 0.8.0 @@ -44996,7 +44942,7 @@ snapshots: '@better-fetch/fetch': 1.1.21 '@noble/ciphers': 2.1.1 '@noble/hashes': 2.0.1 - better-call: 1.3.2(zod@4.3.6) + better-call: 1.3.2(zod@4.3.5) defu: 6.1.6 jose: 6.1.3 kysely: 0.28.14 @@ -45015,6 +44961,15 @@ snapshots: - '@cloudflare/workers-types' - '@opentelemetry/api' + better-call@1.3.2(zod@4.3.5): + dependencies: + '@better-auth/utils': 0.3.1 + '@better-fetch/fetch': 1.1.21 + rou3: 0.7.12 + set-cookie-parser: 3.1.0 + optionalDependencies: + zod: 4.3.5 + better-call@1.3.2(zod@4.3.6): dependencies: '@better-auth/utils': 0.3.1 @@ -46624,6 +46579,7 @@ snapshots: ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 + optional: true debug@4.3.1(supports-color@8.1.1): dependencies: @@ -47486,10 +47442,6 @@ snapshots: dependencies: estraverse: 5.3.0 - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - esrap@2.2.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -48103,7 +48055,7 @@ snapshots: minimatch: 3.1.5 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.3 + semver: 7.7.4 tapable: 2.2.1 typescript: 5.3.3 webpack: 5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) @@ -49192,13 +49144,6 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.5: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -52238,8 +52183,6 @@ snapshots: merge2@1.4.1: {} - meriyah@6.1.4: {} - mermaid@11.12.2: dependencies: '@braintree/sanitize-url': 7.1.1 @@ -52723,8 +52666,6 @@ snapshots: ast-module-types: 6.0.0 node-source-walk: 7.0.0 - module-details-from-path@1.0.3: {} - module-details-from-path@1.0.4: {} module-lookup-amd@9.0.2: @@ -52950,7 +52891,7 @@ snapshots: needle@3.2.0: dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7(supports-color@5.5.0) iconv-lite: 0.6.3 sax: 1.5.0 transitivePeerDependencies: @@ -53002,44 +52943,9 @@ snapshots: dependencies: '@segment/isodate': 1.0.3 - newrelic@13.12.0: - dependencies: - '@apm-js-collab/tracing-hooks': 0.3.1 - '@grpc/grpc-js': 1.13.4 - '@grpc/proto-loader': 0.7.13 - '@newrelic/security-agent': 3.0.1 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.201.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@tyriar/fibonacci-heap': 2.0.9 - concat-stream: 2.0.0 - https-proxy-agent: 7.0.5 - import-in-the-middle: 1.14.2 - json-bigint: 1.0.0 - json-stringify-safe: 5.0.1 - module-details-from-path: 1.0.3 - readable-stream: 3.6.2 - require-in-the-middle: 7.4.0 - semver: 7.7.3 - winston-transport: 4.5.0 - optionalDependencies: - '@newrelic/fn-inspect': 4.4.0 - '@newrelic/native-metrics': 12.0.0 - '@prisma/prisma-fmt-wasm': 4.17.0-16.27eb2449f178cd9fe1a4b892d732cc4795f75085 - transitivePeerDependencies: - - bare-buffer - - bufferutil - - supports-color - - utf-8-validate - - newrelic@13.19.2: + newrelic@13.18.0: dependencies: - '@apm-js-collab/tracing-hooks': 0.6.0 + '@apm-js-collab/tracing-hooks': 0.5.0 '@grpc/grpc-js': 1.14.3 '@grpc/proto-loader': 0.7.13 '@newrelic/security-agent': 3.0.1 @@ -54276,7 +54182,7 @@ snapshots: portfinder@1.0.32: dependencies: async: 2.6.4 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7(supports-color@5.5.0) mkdirp: 0.5.6 transitivePeerDependencies: - supports-color @@ -56123,8 +56029,6 @@ snapshots: dependencies: parseley: 0.12.1 - semifies@1.0.0: {} - semver-compare@1.0.0: {} semver-regex@4.0.5: {}