diff --git a/.gitignore b/.gitignore
index eb58d44..8f611c2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -134,3 +134,6 @@ dist
# Mac
.DS_Store
+
+# Yalc
+.yalc
diff --git a/apps/express/package.json b/apps/express/package.json
index 78c1de7..8b3ee9b 100644
--- a/apps/express/package.json
+++ b/apps/express/package.json
@@ -15,7 +15,7 @@
"extends": "../../package.json"
},
"dependencies": {
- "@sentry/node": "^7.109.0",
+ "@sentry/node": "^8.0.0-beta.1",
"express": "^4.19.2"
},
"devDependencies": {
diff --git a/apps/express/src/app.ts b/apps/express/src/app.ts
index 90a5575..03cdbcc 100644
--- a/apps/express/src/app.ts
+++ b/apps/express/src/app.ts
@@ -1,4 +1,15 @@
import * as Sentry from '@sentry/node';
+
+Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ includeLocalVariables: true,
+ debug: true,
+ tunnel: `http://localhost:3031/`, // proxy server
+ tracesSampleRate: 1,
+});
+
+// can use `import` instead of `require` because of `'esModuleInterop': true` in tsconfig.json
import express from 'express';
declare global {
@@ -10,19 +21,6 @@ declare global {
const app = express();
const port = 3030;
-Sentry.init({
- environment: 'qa', // dynamic sampling bias to keep transactions
- dsn: process.env.E2E_TEST_DSN,
- includeLocalVariables: true,
- debug: true,
- tunnel: `http://127.0.0.1:3031/`, // proxy server
- tracesSampleRate: 1,
- integrations: [new Sentry.Integrations.Express({ app })],
-});
-
-app.use(Sentry.Handlers.requestHandler());
-app.use(Sentry.Handlers.tracingHandler());
-
app.get('/test-success', function (req, res) {
res.send({ version: 'v1' });
});
@@ -91,7 +89,7 @@ app.get('/test-local-variables-caught', function (req, res) {
res.send({ exceptionId, randomVariableToRecord });
});
-app.use(Sentry.Handlers.errorHandler());
+Sentry.setupExpressErrorHandler(app);
// @ts-ignore
app.use(function onError(err, req, res, next) {
diff --git a/apps/fastify/package.json b/apps/fastify/package.json
new file mode 100644
index 0000000..c90bd72
--- /dev/null
+++ b/apps/fastify/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "fastify-test-application",
+ "version": "1.0.0",
+ "directories": {
+ "lib": "lib"
+ },
+ "scripts": {
+ "build": "tsc",
+ "start": "yarn build && node dist/app.js",
+ "clean": "npx rimraf node_modules,pnpm-lock.yaml"
+ },
+ "license": "MIT",
+ "volta": {
+ "extends": "../../package.json"
+ },
+ "dependencies": {
+ "@sentry/node": "8.0.0-beta.1",
+ "fastify": "4.26.2"
+ }
+}
diff --git a/apps/fastify/src/app.ts b/apps/fastify/src/app.ts
new file mode 100644
index 0000000..95ecfe1
--- /dev/null
+++ b/apps/fastify/src/app.ts
@@ -0,0 +1,94 @@
+import * as Sentry from '@sentry/node';
+
+Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ includeLocalVariables: true,
+ integrations: [],
+ tracesSampleRate: 1,
+ tunnel: 'http://localhost:3031/', // proxy server
+});
+
+import { fastify } from 'fastify';
+
+declare global {
+ namespace globalThis {
+ var transactionIds: string[];
+ }
+}
+
+// Make sure fastify is imported after Sentry is initialized
+const app = fastify();
+
+// @ts-ignore
+Sentry.setupFastifyErrorHandler(app);
+
+app.get('/test-success', function (_req, res) {
+ res.send({ version: 'v1' });
+});
+
+app.get('/test-error', async function (req, res) {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+
+ res.send({ exceptionId });
+});
+
+app.get<{ Params: { param: string } }>('/test-param-success/:param', function (req, res) {
+ res.send({ paramWas: req.params.param });
+});
+
+app.get<{ Params: { param: string } }>('/test-param-error/:param', async function (req, res) {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+
+ res.send({ exceptionId, paramWas: req.params.param });
+});
+
+app.get('/test-success-manual', async function (req, res) {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.startSpan({ name: 'child-span' }, () => {});
+ });
+
+ await Sentry.flush();
+
+ res.send({
+ transactionIds: global.transactionIds || [],
+ });
+});
+
+app.get('/test-error-manual', async function (req, res) {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.startSpan({ name: 'child-span' }, () => {
+ Sentry.captureException(new Error('This is an error'));
+ });
+ });
+
+ await Sentry.flush(2000);
+
+ res.send({
+ transactionIds: global.transactionIds || [],
+ });
+});
+
+app.get('/test-local-variables-uncaught', function (req, res) {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+ throw new Error(`Uncaught Local Variable Error - ${JSON.stringify({ randomVariableToRecord })}`);
+});
+
+app.get('/test-local-variables-caught', function (req, res) {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+
+ let exceptionId: string;
+ try {
+ throw new Error('Local Variable Error');
+ } catch (e) {
+ exceptionId = Sentry.captureException(e);
+ }
+
+ res.send({ exceptionId, randomVariableToRecord });
+});
+
+app.listen({ port: 3030 });
diff --git a/apps/fastify/tsconfig.json b/apps/fastify/tsconfig.json
new file mode 100644
index 0000000..899a860
--- /dev/null
+++ b/apps/fastify/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*.ts"],
+ "compilerOptions": {
+ "outDir": "dist"
+ }
+}
diff --git a/apps/koa/package.json b/apps/koa/package.json
new file mode 100644
index 0000000..1408943
--- /dev/null
+++ b/apps/koa/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "koa-test-application",
+ "version": "1.0.0",
+ "main": "dist/main.js",
+ "directories": {
+ "lib": "lib"
+ },
+ "scripts": {
+ "build": "tsc",
+ "start": "yarn build && node dist/app.js",
+ "clean": "npx rimraf node_modules,pnpm-lock.yaml"
+ },
+ "license": "MIT",
+ "volta": {
+ "extends": "../../package.json"
+ },
+ "dependencies": {
+ "@koa/router": "12.0.1",
+ "@sentry/node": "8.0.0-beta.1",
+ "koa": "2.15.3"
+ },
+ "devDependencies": {
+ "@types/koa": "2.15.0",
+ "@types/koa__router": "12.0.4"
+ }
+}
diff --git a/apps/koa/src/app.ts b/apps/koa/src/app.ts
new file mode 100644
index 0000000..fc76322
--- /dev/null
+++ b/apps/koa/src/app.ts
@@ -0,0 +1,106 @@
+import * as Sentry from '@sentry/node';
+
+Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ includeLocalVariables: true,
+ debug: true,
+ tunnel: `http://localhost:3031/`, // proxy server
+ tracesSampleRate: 1,
+});
+
+import Koa from 'koa';
+import Router from '@koa/router';
+import { stripUrlQueryAndFragment } from '@sentry/utils';
+
+declare global {
+ namespace globalThis {
+ var transactionIds: string[];
+ }
+}
+
+const router = new Router();
+const app = new Koa();
+
+router.get('/test-success', ctx => {
+ ctx.body = { version: 'v1' };
+});
+
+router.get('/test-error', async ctx => {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ Sentry.flush(2000);
+
+ ctx.body = { exceptionId };
+});
+
+router.get('/test-param-success/:param', ctx => {
+ ctx.body = { paramWas: ctx.params.param };
+});
+
+router.get('/test-param-error/:param', async ctx => {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ Sentry.flush(2000);
+
+ ctx.body = { exceptionId, paramWas: ctx.params.param };
+});
+
+router.get('/test-success-manual', async ctx => {
+ Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, () => {
+ Sentry.startSpan({ name: 'test-span' }, () => undefined);
+ });
+
+ Sentry.flush();
+
+ ctx.body = {
+ transactionIds: global.transactionIds || [],
+ };
+});
+
+router.get('/test-error-manual', async ctx => {
+ Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, () => {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.captureException(new Error('This is an error'));
+ });
+ });
+
+ Sentry.flush();
+
+ ctx.body = {
+ transactionIds: global.transactionIds || [],
+ };
+});
+
+router.get('/test-local-variables-uncaught', ctx => {
+ const randomVariableToRecord = 'LOCAL VARIABLE';
+ throw new Error(`Uncaught Local Variable Error - ${JSON.stringify({ randomVariableToRecord })}`);
+});
+
+router.get('/test-local-variables-caught', ctx => {
+ const randomVariableToRecord = 'LOCAL VARIABLE';
+
+ let exceptionId: string;
+ try {
+ throw new Error('Local Variable Error');
+ } catch (e) {
+ exceptionId = Sentry.captureException(e);
+ }
+
+ ctx.body = { exceptionId, randomVariableToRecord };
+});
+
+Sentry.setupKoaErrorHandler(app);
+
+app.on('error', (err, ctx) => {
+ console.log('error', err);
+
+ ctx.body({
+ error: err.message,
+ status: ctx.status,
+ });
+});
+
+app.use(router.routes()).use(router.allowedMethods());
+
+app.listen(3030);
diff --git a/apps/koa/tsconfig.json b/apps/koa/tsconfig.json
new file mode 100644
index 0000000..899a860
--- /dev/null
+++ b/apps/koa/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*.ts"],
+ "compilerOptions": {
+ "outDir": "dist"
+ }
+}
diff --git a/apps/nestjs/nest-cli.json b/apps/nestjs/nest-cli.json
new file mode 100644
index 0000000..f9aa683
--- /dev/null
+++ b/apps/nestjs/nest-cli.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/nest-cli",
+ "collection": "@nestjs/schematics",
+ "sourceRoot": "src",
+ "compilerOptions": {
+ "deleteOutDir": true
+ }
+}
diff --git a/apps/nestjs/package.json b/apps/nestjs/package.json
new file mode 100644
index 0000000..cab98bd
--- /dev/null
+++ b/apps/nestjs/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "nestjs-test-application",
+ "version": "1.0.0",
+ "main": "dist/main.js",
+ "directories": {
+ "lib": "lib"
+ },
+ "scripts": {
+ "build": "nest build",
+ "start": "nest start",
+ "clean": "npx rimraf node_modules,pnpm-lock.yaml"
+ },
+ "license": "MIT",
+ "volta": {
+ "extends": "../../package.json"
+ },
+ "dependencies": {
+ "@nestjs/common": "10.3.7",
+ "@nestjs/core": "10.3.7",
+ "@nestjs/platform-express": "10.3.7",
+ "@sentry/node": "8.0.0-beta.1",
+ "@sentry/types": "8.0.0-beta.1",
+ "reflect-metadata": "0.2.2",
+ "rxjs": "7.8.1"
+ },
+ "devDependencies": {
+ "@nestjs/cli": "10.3.2",
+ "@nestjs/schematics": "10.1.1",
+ "@types/express": "^4.17.17"
+ }
+}
diff --git a/apps/nestjs/src/app.controller.ts b/apps/nestjs/src/app.controller.ts
new file mode 100644
index 0000000..6ea42e2
--- /dev/null
+++ b/apps/nestjs/src/app.controller.ts
@@ -0,0 +1,47 @@
+import { Controller, Get, Param } from '@nestjs/common';
+import { AppService } from './app.service';
+
+@Controller()
+export class AppController {
+ constructor(private readonly appService: AppService) {}
+
+ @Get('test-success')
+ testSuccess() {
+ return this.appService.testSuccess();
+ }
+
+ @Get('test-error')
+ testError() {
+ return this.appService.testError();
+ }
+
+ @Get('test-param-success/:param')
+ testParamSuccess(@Param() param: string) {
+ return this.appService.testParamSuccess(param);
+ }
+
+ @Get('test-param-error/:param')
+ testParamError(@Param() param: string) {
+ return this.appService.testParamError(param);
+ }
+
+ @Get('test-success-manual')
+ testSuccessManual() {
+ return this.appService.testSuccessManual();
+ }
+
+ @Get('test-error-manual')
+ testErrorManual() {
+ return this.appService.testErrorManual();
+ }
+
+ @Get('test-local-variables-uncaught')
+ testLocalVariablesUncaught() {
+ return this.appService.testLocalVariablesUncaught();
+ }
+
+ @Get('test-local-variables-caught')
+ testLocalVariablesCaught() {
+ return this.appService.testLocalVariablesCaught();
+ }
+}
diff --git a/apps/nestjs/src/app.module.ts b/apps/nestjs/src/app.module.ts
new file mode 100644
index 0000000..8662803
--- /dev/null
+++ b/apps/nestjs/src/app.module.ts
@@ -0,0 +1,10 @@
+import { Module } from '@nestjs/common';
+import { AppController } from './app.controller';
+import { AppService } from './app.service';
+
+@Module({
+ imports: [],
+ controllers: [AppController],
+ providers: [AppService],
+})
+export class AppModule {}
diff --git a/apps/nestjs/src/app.service.ts b/apps/nestjs/src/app.service.ts
new file mode 100644
index 0000000..cf55432
--- /dev/null
+++ b/apps/nestjs/src/app.service.ts
@@ -0,0 +1,71 @@
+import { Injectable } from '@nestjs/common';
+import * as Sentry from '@sentry/node';
+
+@Injectable()
+export class AppService {
+ testSuccess() {
+ return { version: 'v1' };
+ }
+
+ async testError() {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+
+ return { exceptionId };
+ }
+
+ testParamSuccess(param: string) {
+ return { paramWas: param };
+ }
+
+ async testParamError(param: string) {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+
+ return { exceptionId, paramWas: param };
+ }
+
+ async testSuccessManual() {
+ Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, () => {
+ Sentry.startSpan({ name: 'test-span' }, () => undefined);
+ });
+
+ await Sentry.flush();
+
+ return 'test-success-body';
+ }
+
+ async testErrorManual() {
+ Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, () => {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.captureException(new Error('This is an error'));
+ });
+ });
+
+ await Sentry.flush();
+
+ return 'test-error-body';
+ }
+
+ testLocalVariablesUncaught() {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+ throw new Error(
+ `Uncaught Local Variable Error - ${JSON.stringify({ randomVariableToRecord })}`,
+ );
+ }
+
+ testLocalVariablesCaught() {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+
+ let exceptionId: string;
+ try {
+ throw new Error('Local Variable Error');
+ } catch (e) {
+ exceptionId = Sentry.captureException(e);
+ }
+
+ return { exceptionId, randomVariableToRecord };
+ }
+}
diff --git a/apps/nestjs/src/main.ts b/apps/nestjs/src/main.ts
new file mode 100644
index 0000000..2ca5b83
--- /dev/null
+++ b/apps/nestjs/src/main.ts
@@ -0,0 +1,19 @@
+import { NestFactory } from '@nestjs/core';
+import * as Sentry from '@sentry/node';
+import { AppModule } from './app.module';
+
+async function bootstrap() {
+ Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ tunnel: `http://localhost:3031/`, // proxy server
+ tracesSampleRate: 1,
+ });
+
+ const app = await NestFactory.create(AppModule);
+ Sentry.setupNestErrorHandler(app);
+
+ await app.listen(3030);
+}
+
+bootstrap();
diff --git a/apps/nestjs/tsconfig.json b/apps/nestjs/tsconfig.json
new file mode 100644
index 0000000..f182c40
--- /dev/null
+++ b/apps/nestjs/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*.ts"],
+ "compilerOptions": {
+ "outDir": "dist",
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true
+ }
+}
diff --git a/apps/nextjs-14_2_1/.gitignore b/apps/nextjs-14_2_1/.gitignore
new file mode 100644
index 0000000..fd3dbb5
--- /dev/null
+++ b/apps/nextjs-14_2_1/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.yarn/install-state.gz
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/apps/nextjs-14_2_1/app/api/test-error-manual/route.ts b/apps/nextjs-14_2_1/app/api/test-error-manual/route.ts
new file mode 100644
index 0000000..fd7fa0d
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-error-manual/route.ts
@@ -0,0 +1,13 @@
+import * as Sentry from '@sentry/nextjs';
+
+export async function GET() {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.startSpan({ name: 'child-span' }, () => {
+ Sentry.captureException(new Error('This is an error'));
+ });
+ });
+
+ await Sentry.flush();
+
+ return Response.json({ data: 'test-error-body' });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-error/route.ts b/apps/nextjs-14_2_1/app/api/test-error/route.ts
new file mode 100644
index 0000000..29c5216
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-error/route.ts
@@ -0,0 +1,8 @@
+import * as Sentry from '@sentry/nextjs';
+
+export async function GET() {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+ return Response.json({ exceptionId });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-local-variables-caught/route.ts b/apps/nextjs-14_2_1/app/api/test-local-variables-caught/route.ts
new file mode 100644
index 0000000..7b26d27
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-local-variables-caught/route.ts
@@ -0,0 +1,14 @@
+import * as Sentry from '@sentry/nextjs';
+
+export async function GET() {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+
+ let exceptionId: string;
+ try {
+ throw new Error('Local Variable Error');
+ } catch (e) {
+ exceptionId = Sentry.captureException(e);
+ }
+
+ return Response.json({ exceptionId, randomVariableToRecord });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-local-variables-uncaught/route.ts b/apps/nextjs-14_2_1/app/api/test-local-variables-uncaught/route.ts
new file mode 100644
index 0000000..3b1a1ca
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-local-variables-uncaught/route.ts
@@ -0,0 +1,4 @@
+export async function GET() {
+ const randomVariableToRecord = 'LOCAL_VARIABLE';
+ throw new Error(`Uncaught Local Variable Error - ${JSON.stringify({ randomVariableToRecord })}`);
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-param-error/[param]/route.ts b/apps/nextjs-14_2_1/app/api/test-param-error/[param]/route.ts
new file mode 100644
index 0000000..76584f6
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-param-error/[param]/route.ts
@@ -0,0 +1,15 @@
+import { NextRequest } from 'next/server';
+import * as Sentry from '@sentry/nextjs';
+
+export async function GET(request: NextRequest) {
+ const exceptionId = Sentry.captureException(new Error('This is an error'));
+
+ await Sentry.flush(2000);
+
+ const { pathname } = new URL(request.url);
+
+ const params = pathname.split('/').filter(Boolean);
+ const param = params[params.length - 1];
+
+ return Response.json({ exceptionId, paramWas: param });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-param-success/[param]/route.ts b/apps/nextjs-14_2_1/app/api/test-param-success/[param]/route.ts
new file mode 100644
index 0000000..46daabb
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-param-success/[param]/route.ts
@@ -0,0 +1,10 @@
+import { NextRequest } from 'next/server';
+
+export async function GET(request: NextRequest) {
+ const { pathname } = new URL(request.url);
+
+ const params = pathname.split('/').filter(Boolean);
+ const param = params[params.length - 1];
+
+ return Response.json({ paramWas: param });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-success-manual/route.ts b/apps/nextjs-14_2_1/app/api/test-success-manual/route.ts
new file mode 100644
index 0000000..ceedc9c
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-success-manual/route.ts
@@ -0,0 +1,11 @@
+import * as Sentry from '@sentry/nextjs';
+
+export async function GET() {
+ Sentry.startSpan({ name: 'test-span' }, () => {
+ Sentry.startSpan({ name: 'child-span' }, () => {});
+ });
+
+ await Sentry.flush();
+
+ return Response.json({ data: 'test-success-body' });
+}
diff --git a/apps/nextjs-14_2_1/app/api/test-success/route.ts b/apps/nextjs-14_2_1/app/api/test-success/route.ts
new file mode 100644
index 0000000..35d264b
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/api/test-success/route.ts
@@ -0,0 +1,3 @@
+export async function GET() {
+ return Response.json({ version: 'v1' });
+}
diff --git a/apps/nextjs-14_2_1/app/favicon.ico b/apps/nextjs-14_2_1/app/favicon.ico
new file mode 100644
index 0000000..718d6fe
Binary files /dev/null and b/apps/nextjs-14_2_1/app/favicon.ico differ
diff --git a/apps/nextjs-14_2_1/app/globals.css b/apps/nextjs-14_2_1/app/globals.css
new file mode 100644
index 0000000..b1d52e3
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/globals.css
@@ -0,0 +1,17 @@
+* {
+ box-sizing: border-box;
+ padding: 0;
+ margin: 0;
+}
+
+html,
+body {
+ max-width: 100vw;
+ overflow-x: hidden;
+ font-family: sans-serif;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
diff --git a/apps/nextjs-14_2_1/app/layout.tsx b/apps/nextjs-14_2_1/app/layout.tsx
new file mode 100644
index 0000000..d729d63
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/layout.tsx
@@ -0,0 +1,14 @@
+import './globals.css';
+import { ReactNode } from 'react';
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: ReactNode;
+}>) {
+ return (
+
+
{children}
+
+ );
+}
diff --git a/apps/nextjs-14_2_1/app/page.tsx b/apps/nextjs-14_2_1/app/page.tsx
new file mode 100644
index 0000000..4af671e
--- /dev/null
+++ b/apps/nextjs-14_2_1/app/page.tsx
@@ -0,0 +1,58 @@
+'use client';
+
+import { useFetchData } from '@/utils/fetchData';
+
+const displayData = (data: any) => (data ? JSON.stringify(data, null, 2) : 'No data');
+
+export default function Home() {
+ const { data: dataSuccess, fetchData: testSuccess } = useFetchData('/api/test-success');
+ const { error: testErrorError, fetchData: testError } = useFetchData('/api/test-error');
+ const { data: dataParamSuccess, fetchData: testParamSuccess } = useFetchData(
+ '/api/test-param-success/1337',
+ );
+ const { data: dataParamError, fetchData: testParamError } = useFetchData(
+ 'api/test-param-error/1337',
+ );
+ const { data: dataSuccessManual, fetchData: testSuccessManual } = useFetchData(
+ '/api/test-success-manual',
+ );
+ const { data: dataErrorManual, fetchData: testErrorManual } =
+ useFetchData('/api/test-error-manual');
+ const { data: dataLocalVariablesUncaught, fetchData: testLocalVariablesUncaught } = useFetchData(
+ '/api/test-local-variables-uncaught',
+ );
+ const { data: dataLocalVariablesCaught, fetchData: testLocalVariablesCaught } = useFetchData(
+ '/api/test-local-variables-caught',
+ );
+
+ return (
+
+
+
Layout (/)
+
+
{displayData(dataSuccess)}
+
+
+
{displayData(testErrorError)}
+
+
+
{displayData(dataParamSuccess)}
+
+
+
{displayData(dataParamError)}
+
+
+
{displayData(dataSuccessManual)}
+
+
+
{displayData(dataErrorManual)}
+
+
+
{displayData(dataLocalVariablesUncaught)}
+
+
+
{displayData(dataLocalVariablesCaught)}
+
+
+ );
+}
diff --git a/apps/nextjs-14_2_1/instrumentation.ts b/apps/nextjs-14_2_1/instrumentation.ts
new file mode 100644
index 0000000..062ba35
--- /dev/null
+++ b/apps/nextjs-14_2_1/instrumentation.ts
@@ -0,0 +1,13 @@
+import * as Sentry from '@sentry/nextjs';
+
+export function register() {
+ if (process.env.NEXT_RUNTIME === 'nodejs' || process.env.NEXT_RUNTIME === 'edge') {
+ Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ includeLocalVariables: true,
+ tunnel: `http://localhost:3031/`, // proxy server
+ tracesSampleRate: 1,
+ });
+ }
+}
diff --git a/apps/nextjs-14_2_1/next.config.mjs b/apps/nextjs-14_2_1/next.config.mjs
new file mode 100644
index 0000000..2e1a77c
--- /dev/null
+++ b/apps/nextjs-14_2_1/next.config.mjs
@@ -0,0 +1,8 @@
+import { withSentryConfig } from '@sentry/nextjs';
+
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ experimental: { instrumentationHook: true },
+};
+
+export default withSentryConfig(nextConfig);
diff --git a/apps/nextjs-14_2_1/package.json b/apps/nextjs-14_2_1/package.json
new file mode 100644
index 0000000..9b191b4
--- /dev/null
+++ b/apps/nextjs-14_2_1/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "next-14_2_1-test-application",
+ "version": "0.1.0",
+ "private": true,
+ "license": "MIT",
+ "scripts": {
+ "dev": "next dev -p 3030",
+ "build": "next build",
+ "start": "next start -p 3030",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@sentry/nextjs": "8.0.0-beta.1",
+ "next": "14.2.1",
+ "react": "^18",
+ "react-dom": "^18"
+ },
+ "devDependencies": {
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "typescript": "^5"
+ },
+ "volta": {
+ "extends": "../../package.json"
+ }
+}
diff --git a/apps/nextjs-14_2_1/sentry.client.config.ts b/apps/nextjs-14_2_1/sentry.client.config.ts
new file mode 100644
index 0000000..6660868
--- /dev/null
+++ b/apps/nextjs-14_2_1/sentry.client.config.ts
@@ -0,0 +1,9 @@
+import * as Sentry from '@sentry/nextjs';
+
+Sentry.init({
+ environment: 'qa', // dynamic sampling bias to keep transactions
+ dsn: process.env.E2E_TEST_DSN,
+ includeLocalVariables: true,
+ tunnel: `http://localhost:3031/`, // proxy server
+ tracesSampleRate: 1,
+});
diff --git a/apps/nextjs-14_2_1/tsconfig.json b/apps/nextjs-14_2_1/tsconfig.json
new file mode 100644
index 0000000..73628d4
--- /dev/null
+++ b/apps/nextjs-14_2_1/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"],
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [{ "name": "next" }],
+ "paths": { "@/*": ["./*"] }
+ }
+}
diff --git a/apps/nextjs-14_2_1/utils/fetchData.ts b/apps/nextjs-14_2_1/utils/fetchData.ts
new file mode 100644
index 0000000..5a6a57f
--- /dev/null
+++ b/apps/nextjs-14_2_1/utils/fetchData.ts
@@ -0,0 +1,26 @@
+import { useState } from 'react';
+
+export function useFetchData(url: string) {
+ const [data, setData] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+
+ const fetchData = async () => {
+ setLoading(true);
+ try {
+ const response = await fetch(url);
+ if (response.ok) {
+ const data = await response.json();
+ setData(data);
+ } else {
+ throw new Error('Error fetching data');
+ }
+ } catch (error) {
+ setError(error as Error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ return { data, loading, error, fetchData };
+}
diff --git a/package.json b/package.json
index 521a96b..01aa68f 100644
--- a/package.json
+++ b/package.json
@@ -10,13 +10,21 @@
"scripts": {
"start:proxy-server": "yarn workspace event-proxy-server run start",
"start:express": "yarn workspace express-test-application run start",
+ "start:fastify": "yarn workspace fastify-test-application run start",
+ "start:nestjs": "yarn workspace nestjs-test-application run start",
+ "start:koa": "yarn workspace koa-test-application run start",
+ "start:nextjs": "yarn workspace nextjs-14_2_1-test-application run dev",
"fix:prettier": "prettier . --write",
"fix:lint": "yarn run eslint --fix",
"lint": "yarn run eslint"
},
"workspaces": [
"utils/event-proxy-server",
- "apps/express"
+ "apps/express",
+ "apps/fastify",
+ "apps/nestjs",
+ "apps/koa",
+ "apps/nextjs-14_2_1"
],
"devDependencies": {
"@eslint/js": "^9.0.0",
diff --git a/utils/event-proxy-server/package.json b/utils/event-proxy-server/package.json
index aece06a..ca68aff 100644
--- a/utils/event-proxy-server/package.json
+++ b/utils/event-proxy-server/package.json
@@ -1,6 +1,6 @@
{
"private": true,
- "version": "8.0.0-alpha.7",
+ "version": "8.0.0-beta.1",
"name": "event-proxy-server",
"author": "Sentry",
"license": "MIT",
@@ -16,8 +16,8 @@
"clean": "rimraf -g ./node_modules ./build"
},
"dependencies": {
- "@sentry/types": "7.109.0",
- "@sentry/utils": "7.109.0"
+ "@sentry/types": "8.0.0-beta.1",
+ "@sentry/utils": "8.0.0-beta.1"
},
"volta": {
"extends": "../../package.json"
diff --git a/utils/event-proxy-server/payload-files/express/test-error--event.json b/utils/event-proxy-server/payload-files/express/test-error--event.json
index 193ea51..7c6e6f1 100644
--- a/utils/event-proxy-server/payload-files/express/test-error--event.json
+++ b/utils/event-proxy-server/payload-files/express/test-error--event.json
@@ -4,17 +4,9 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
- "dsn": "[[dsn]]",
- "trace": {
- "environment": "qa",
- "public_key": "[[publicKey]]",
- "trace_id": "[[ID2]]",
- "sample_rate": "1",
- "transaction": "GET /test-error",
- "sampled": "true"
- }
+ "dsn": "[[dsn]]"
},
{
"type": "event"
@@ -111,14 +103,14 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
- "lineno": 85,
+ "function": "?",
+ "lineno": 83,
"colno": 12,
"in_app": true,
"pre_context": [
+ "var app = (0, express_1.default)();",
+ "var port = 3030;",
"// todo: add express integration to docs",
- "app.use(Sentry.Handlers.requestHandler());",
- "app.use(Sentry.Handlers.tracingHandler());",
"app.get('/test-success', function (req, res) {",
" res.send({ version: 'v1' });",
"});",
@@ -171,7 +163,7 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
+ "function": "?",
"lineno": 31,
"colno": 71,
"in_app": true,
@@ -252,8 +244,8 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
- "lineno": 90,
+ "function": "?",
+ "lineno": 88,
"colno": 59,
"in_app": true,
"pre_context": [
@@ -289,16 +281,8 @@
"platform": "node",
"contexts": {
"trace": {
- "data": {
- "sentry.source": "route",
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
- "sentry.sample_rate": 1
- },
- "op": "http.server",
- "span_id": "[[ID3]]",
"trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "span_id": "[[ID3]]"
},
"runtime": {
"name": "node",
@@ -340,27 +324,34 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
- "tags": {
- "transaction": "GET /test-error"
- },
"breadcrumbs": [
{
"timestamp": "[[timestamp]]",
@@ -384,14 +375,24 @@
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
+ "if-none-match": "[[W/entityTagValue]]"
},
- "query_string": {},
"url": "http://localhost:3030/test-error"
},
"transaction": "GET /test-error",
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -415,8 +416,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -453,7 +452,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-error--transaction.json b/utils/event-proxy-server/payload-files/express/test-error--transaction.json
index b344ea7..95d9cfa 100644
--- a/utils/event-proxy-server/payload-files/express/test-error--transaction.json
+++ b/utils/event-proxy-server/payload-files/express/test-error--transaction.json
@@ -4,7 +4,7 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
"dsn": "[[dsn]]",
"trace": {
@@ -22,23 +22,65 @@
{
"contexts": {
"trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.source": "route",
- "query": {},
- "http.response.status_code": 200,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
"sentry.sample_rate": 1,
- "url": "/test-error"
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
},
+ "origin": "auto.http.otel.http",
"op": "http.server",
- "span_id": "[[ID3]]",
- "status": "ok",
- "tags": {
- "http.status_code": "200"
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
},
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
},
"runtime": {
"name": "node",
@@ -69,11 +111,60 @@
},
"cloud_resource": {}
},
- "spans": [],
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-error",
+ "express.name": "/test-error",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-error",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
"start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "200"
- },
"timestamp": "[[timestamp]]",
"transaction": "GET /test-error",
"type": "transaction",
@@ -92,21 +183,31 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
@@ -118,28 +219,19 @@
"message": "Example app listening on port 3030"
}
],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-error"
- },
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -163,8 +255,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -201,7 +291,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-error-manual--event.json b/utils/event-proxy-server/payload-files/express/test-error-manual--event.json
index c128485..95941e4 100644
--- a/utils/event-proxy-server/payload-files/express/test-error-manual--event.json
+++ b/utils/event-proxy-server/payload-files/express/test-error-manual--event.json
@@ -4,17 +4,9 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
- "dsn": "[[dsn]]",
- "trace": {
- "environment": "qa",
- "public_key": "[[publicKey]]",
- "trace_id": "[[ID2]]",
- "sample_rate": "1",
- "transaction": "GET /test-error-manual",
- "sampled": "true"
- }
+ "dsn": "[[dsn]]"
},
{
"type": "event"
@@ -29,172 +21,172 @@
"frames": [
{
"filename": "[[FILENAME1]]",
- "module": "@sentry.node.cjs.async:hooks",
- "function": "Object.runWithAsyncContext",
- "lineno": 41,
- "colno": 25,
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "Object.startSpan",
+ "lineno": 874,
+ "colno": 17,
"in_app": false,
"pre_context": [
- " // We're already in an async context, so we don't need to create a new one",
- " // just call the callback with the current hub",
- " return callback();",
- " }",
"",
- " const newHub = createNewHub(existingHub);",
+ " const activeCtx = getContext(options.scope, options.forceTransaction);",
+ " const shouldSkipSpan = options.onlyIfParent && !api.trace.getSpan(activeCtx);",
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
""
],
- "context_line": " return asyncStorage.run(newHub, () => {",
+ "context_line": " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
"post_context": [
- " return callback();",
- " });",
- " }",
+ " _applySentryAttributesToSpan(span, options);",
"",
- " core.setAsyncContextStrategy({ getCurrentHub, runWithAsyncContext });",
- "}",
- ""
+ " return core.handleCallbackErrors(",
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {"
]
},
{
"filename": "[[FILENAME2]]",
- "module": "node:async_hooks",
- "function": "AsyncLocalStorage.run",
- "lineno": 346,
- "colno": 14,
- "in_app": false
- },
- {
- "filename": "[[FILENAME1]]",
- "module": "@sentry.node.cjs.async:hooks",
- "function": "",
- "lineno": 42,
- "colno": 14,
+ "module": "@opentelemetry.sdk-trace-base.build.src:Tracer",
+ "function": "Tracer.startActiveSpan",
+ "lineno": 121,
+ "colno": 32,
"in_app": false,
"pre_context": [
- " // just call the callback with the current hub",
- " return callback();",
- " }",
- "",
- " const newHub = createNewHub(existingHub);",
- "",
- " return asyncStorage.run(newHub, () => {"
+ " opts = arg2;",
+ " ctx = arg3;",
+ " fn = arg4;",
+ " }",
+ " const parentContext = ctx !== null && ctx !== void 0 ? ctx : api.context.active();",
+ " const span = this.startSpan(name, opts, parentContext);",
+ " const contextWithSpanSet = api.trace.setSpan(parentContext, span);"
],
- "context_line": " return callback();",
+ "context_line": " return api.context.with(contextWithSpanSet, fn, undefined, span);",
"post_context": [
- " });",
- " }",
- "",
- " core.setAsyncContextStrategy({ getCurrentHub, runWithAsyncContext });",
- "}",
- "",
- "exports.setHooksAsyncContextStrategy = setHooksAsyncContextStrategy;"
+ " }",
+ " /** Returns the active {@link GeneralLimits}. */",
+ " getGeneralLimits() {",
+ " return this._generalLimits;",
+ " }",
+ " /** Returns the active {@link SpanLimits}. */",
+ " getSpanLimits() {"
]
},
{
"filename": "[[FILENAME3]]",
- "module": "@sentry.core.cjs.tracing:trace",
- "function": "",
- "lineno": 83,
- "colno": 22,
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
"in_app": false,
"pre_context": [
- " * or you didn't set `tracesSampleRate`, this function will not generate spans",
- " * and the `span` returned from the callback will be undefined.",
- " */",
- "function startSpan(context, callback) {",
- " const spanContext = normalizeContext(context);",
- "",
- " return hub.runWithAsyncContext(() => {"
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
],
- "context_line": " return exports$1.withScope(context.scope, scope => {",
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
"post_context": [
- " // eslint-disable-next-line deprecation/deprecation",
- " const hub$1 = hub.getCurrentHub();",
- " // eslint-disable-next-line deprecation/deprecation",
- " const parentSpan = scope.getSpan();",
- "",
- " const shouldSkipSpan = context.onlyIfParent && !parentSpan;",
- " const activeSpan = shouldSkipSpan"
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
]
},
{
- "filename": "[[FILENAME4]]",
- "module": "@sentry.core.cjs:exports",
- "function": "Object.withScope",
- "lineno": 170,
- "colno": 20,
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
"in_app": false,
"pre_context": [
- " const hub$1 = hub.getCurrentHub();",
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
"",
- " // If a scope is defined, we want to make this the active scope instead of the default one",
- " if (rest.length === 2) {",
- " const [scope, callback] = rest;",
- " if (!scope) {",
- " // eslint-disable-next-line deprecation/deprecation"
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
],
- "context_line": " return hub$1.withScope(callback);",
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
"post_context": [
" }",
+ " }",
"",
- " // eslint-disable-next-line deprecation/deprecation",
- " return hub$1.withScope(() => {",
- " // eslint-disable-next-line deprecation/deprecation",
- " hub$1.getStackTop().scope = scope ;",
- " return callback(scope );"
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
]
},
{
- "filename": "[[FILENAME5]]",
- "module": "@sentry.core.cjs:hub",
- "function": "Hub.withScope",
- "lineno": 185,
- "colno": 28,
+ "filename": "[[FILENAME4]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
"in_app": false,
"pre_context": [
- " */",
- " withScope(callback) {",
- " // eslint-disable-next-line deprecation/deprecation",
- " const scope = this.pushScope();",
- "",
- " let maybePromiseResult;",
- " try {"
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
],
- "context_line": " maybePromiseResult = callback(scope);",
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
"post_context": [
- " } catch (e) {",
- " // eslint-disable-next-line deprecation/deprecation",
- " this.popScope();",
- " throw e;",
" }",
- "",
- " if (utils.isThenable(maybePromiseResult)) {"
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
]
},
{
- "filename": "[[FILENAME3]]",
- "module": "@sentry.core.cjs.tracing:trace",
- "function": "",
- "lineno": 99,
- "colno": 35,
+ "filename": "[[FILENAME5]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 877,
+ "colno": 17,
"in_app": false,
"pre_context": [
- " : createChildSpanOrTransaction(hub$1, {",
- " parentSpan,",
- " spanContext,",
- " forceTransaction: context.forceTransaction,",
- " scope,",
- " });",
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
""
],
- "context_line": " return handleCallbackErrors.handleCallbackErrors(",
+ "context_line": " return core.handleCallbackErrors(",
"post_context": [
- " () => callback(activeSpan),",
- " () => {",
- " // Only update the span status if it hasn't been changed yet",
- " if (activeSpan) {",
- " const { status } = spanUtils.spanToJSON(activeSpan);",
- " if (!status || status === 'ok') {",
- " activeSpan.setStatus('internal_error');"
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },"
]
},
{
@@ -225,37 +217,37 @@
]
},
{
- "filename": "[[FILENAME3]]",
- "module": "@sentry.core.cjs.tracing:trace",
- "function": "handleCallbackErrors.handleCallbackErrors.status.status",
- "lineno": 100,
- "colno": 15,
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 878,
+ "colno": 13,
"in_app": false,
"pre_context": [
- " parentSpan,",
- " spanContext,",
- " forceTransaction: context.forceTransaction,",
- " scope,",
- " });",
"",
- " return handleCallbackErrors.handleCallbackErrors("
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
+ "",
+ " return core.handleCallbackErrors("
],
- "context_line": " () => callback(activeSpan),",
+ "context_line": " () => callback(span),",
"post_context": [
- " () => {",
- " // Only update the span status if it hasn't been changed yet",
- " if (activeSpan) {",
- " const { status } = spanUtils.spanToJSON(activeSpan);",
- " if (!status || status === 'ok') {",
- " activeSpan.setStatus('internal_error');",
- " }"
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },",
+ " () => span.end(),"
]
},
{
"filename": "[[FILENAME7]]",
"module": "app",
- "function": "",
- "lineno": 145,
+ "function": "?",
+ "lineno": 143,
"colno": 53,
"in_app": true,
"pre_context": [
@@ -291,13 +283,9 @@
"platform": "node",
"contexts": {
"trace": {
- "data": {
- "sentry.origin": "manual"
- },
- "parent_span_id": "[[ID3]]",
- "span_id": "[[ID4]]",
"trace_id": "[[ID2]]",
- "origin": "manual"
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
},
"runtime": {
"name": "node",
@@ -339,27 +327,34 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
- "tags": {
- "transaction": "GET /test-error-manual"
- },
"breadcrumbs": [
{
"timestamp": "[[timestamp]]",
@@ -386,11 +381,22 @@
"pragma": "no-cache",
"cache-control": "no-cache"
},
- "query_string": {},
"url": "http://localhost:3030/test-error-manual"
},
"transaction": "GET /test-error-manual",
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -414,8 +420,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -452,7 +456,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-error-manual--transaction.json b/utils/event-proxy-server/payload-files/express/test-error-manual--transaction.json
index d8a11ff..f743b8b 100644
--- a/utils/event-proxy-server/payload-files/express/test-error-manual--transaction.json
+++ b/utils/event-proxy-server/payload-files/express/test-error-manual--transaction.json
@@ -4,7 +4,7 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
"dsn": "[[dsn]]",
"trace": {
@@ -22,23 +22,65 @@
{
"contexts": {
"trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.source": "route",
- "query": {},
- "http.response.status_code": 200,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
"sentry.sample_rate": 1,
- "url": "/test-error-manual"
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error-manual"
},
+ "origin": "auto.http.otel.http",
"op": "http.server",
- "span_id": "[[ID3]]",
- "status": "ok",
- "tags": {
- "http.status_code": "200"
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-error-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error-manual"
},
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
},
"runtime": {
"name": "node",
@@ -71,36 +113,88 @@
},
"spans": [
{
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-error-manual",
+ "express.name": "/test-error-manual",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-error-manual",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.origin": "manual",
- "sentry.op": "e2e-test"
+ "sentry.op": "e2e-test",
+ "otel.kind": "INTERNAL"
},
"description": "test-transaction",
- "op": "e2e-test",
"parent_span_id": "[[ID3]]",
- "span_id": "[[ID4]]",
"start_timestamp": "[[timestamp]]",
"timestamp": "[[timestamp]]",
- "trace_id": "[[ID2]]",
+ "status": "ok",
+ "op": "e2e-test",
"origin": "manual"
},
{
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
"data": {
- "sentry.origin": "manual"
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
},
"description": "test-span",
- "parent_span_id": "[[ID4]]",
- "span_id": "[[ID5]]",
+ "parent_span_id": "[[ID7]]",
"start_timestamp": "[[timestamp]]",
"timestamp": "[[timestamp]]",
- "trace_id": "[[ID2]]",
+ "status": "ok",
"origin": "manual"
}
],
"start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "200"
- },
"timestamp": "[[timestamp]]",
"transaction": "GET /test-error-manual",
"type": "transaction",
@@ -119,21 +213,31 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
@@ -145,28 +249,19 @@
"message": "Example app listening on port 3030"
}
],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-error-manual"
- },
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -190,8 +285,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -228,7 +321,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-local-variables-caught--event.json b/utils/event-proxy-server/payload-files/express/test-local-variables-caught--event.json
index 6870753..e105e41 100644
--- a/utils/event-proxy-server/payload-files/express/test-local-variables-caught--event.json
+++ b/utils/event-proxy-server/payload-files/express/test-local-variables-caught--event.json
@@ -4,17 +4,9 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
- "dsn": "[[dsn]]",
- "trace": {
- "environment": "qa",
- "public_key": "[[publicKey]]",
- "trace_id": "[[ID2]]",
- "sample_rate": "1",
- "transaction": "GET /test-local-variables-caught",
- "sampled": "true"
- }
+ "dsn": "[[dsn]]"
},
{
"type": "event"
@@ -29,29 +21,29 @@
"frames": [
{
"filename": "[[FILENAME1]]",
- "module": "@sentry-internal.tracing.cjs.node.integrations:express",
- "function": "",
- "lineno": 113,
- "colno": 16,
+ "module": "@opentelemetry.instrumentation-express.build.src:instrumentation",
+ "function": "arguments.",
+ "lineno": 210,
+ "colno": 41,
"in_app": false,
"pre_context": [
- " const span = _optionalChain([transaction, 'optionalAccess', _2 => _2.startChild, 'call', _3 => _3({",
- " description: fn.name,",
- " op: `middleware.express.${method}`,",
- " origin: 'auto.middleware.express',",
- " })]);",
- " fn.call(this, req, res, function ( ...args) {",
- " _optionalChain([span, 'optionalAccess', _4 => _4.end, 'call', _5 => _5()]);"
+ " (_a = req.res) === null || _a === void 0 ? void 0 : _a.removeListener('finish', onResponseFinish);",
+ " span.end();",
+ " }",
+ " if (!(req.route && isError)) {",
+ " req[internal_types_1._LAYERS_STORE_PROPERTY].pop();",
+ " }",
+ " const callback = args[callbackIdx];"
],
- "context_line": " next.call(this, ...args);",
+ "context_line": " return callback.apply(this, arguments);",
"post_context": [
- " });",
- " };",
- " }",
- " case 4: {",
- " return function (",
- "",
- " err,"
+ " };",
+ " }",
+ " try {",
+ " return original.apply(this, arguments);",
+ " }",
+ " catch (anyError) {",
+ " const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);"
]
},
{
@@ -81,33 +73,6 @@
" }"
]
},
- {
- "filename": "[[FILENAME1]]",
- "module": "@sentry-internal.tracing.cjs.node.integrations:express",
- "function": "Function.process_params",
- "lineno": 313,
- "colno": 34,
- "in_app": false,
- "pre_context": [
- "",
- " const [name, source] = utils.extractPathForTransaction(req, { path: true, method: true, customRoute: finalRoute });",
- " transaction.updateName(name);",
- " transaction.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);",
- " }",
- " }",
- ""
- ],
- "context_line": " return originalProcessParams.call(this, layer, called, req, res, done);",
- "post_context": [
- " };",
- "}",
- "",
- "/**",
- " * Recreate layer.route.path from layer.regexp and layer.keys.",
- " * Works until express.js used package path-to-regexp@0.1.7",
- " * or until layer.keys contain offset attribute"
- ]
- },
{
"filename": "[[FILENAME2]]",
"module": "express.lib.router:index",
@@ -138,7 +103,7 @@
{
"filename": "[[FILENAME2]]",
"module": "express.lib.router:index",
- "function": "",
+ "function": "?",
"lineno": 284,
"colno": 15,
"in_app": false,
@@ -189,6 +154,33 @@
" * Check if this route matches `path`, if so"
]
},
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-express.build.src:instrumentation",
+ "function": "?",
+ "lineno": 214,
+ "colno": 37,
+ "in_app": false,
+ "pre_context": [
+ " req[internal_types_1._LAYERS_STORE_PROPERTY].pop();",
+ " }",
+ " const callback = args[callbackIdx];",
+ " return callback.apply(this, arguments);",
+ " };",
+ " }",
+ " try {"
+ ],
+ "context_line": " return original.apply(this, arguments);",
+ "post_context": [
+ " }",
+ " catch (anyError) {",
+ " const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);",
+ " span.recordException(error);",
+ " span.setStatus({",
+ " code: api_1.SpanStatusCode.ERROR,",
+ " message,"
+ ]
+ },
{
"filename": "[[FILENAME4]]",
"module": "express.lib.router:route",
@@ -273,8 +265,8 @@
{
"filename": "[[FILENAME5]]",
"module": "app",
- "function": "",
- "lineno": 167,
+ "function": "?",
+ "lineno": 165,
"colno": 15,
"in_app": true,
"pre_context": [
@@ -294,9 +286,10 @@
" }",
" res.send({ exceptionId: exceptionId, randomVariableToRecord: randomVariableToRecord });",
"});",
- "app.use(Sentry.Handlers.errorHandler());"
+ "Sentry.setupExpressErrorHandler(app);"
],
"vars": {
+ "exceptionId": "",
"randomVariableToRecord": "LOCAL VARIABLE",
"res": "",
"req": ""
@@ -315,16 +308,8 @@
"platform": "node",
"contexts": {
"trace": {
- "data": {
- "sentry.source": "route",
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
- "sentry.sample_rate": 1
- },
- "op": "http.server",
- "span_id": "[[ID3]]",
"trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "span_id": "[[ID3]]"
},
"runtime": {
"name": "node",
@@ -366,27 +351,34 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
- "tags": {
- "transaction": "GET /test-local-variables-caught"
- },
"breadcrumbs": [
{
"timestamp": "[[timestamp]]",
@@ -410,14 +402,24 @@
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
+ "if-none-match": "[[W/entityTagValue]]"
},
- "query_string": {},
"url": "http://localhost:3030/test-local-variables-caught"
},
"transaction": "GET /test-local-variables-caught",
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -441,8 +443,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -479,7 +479,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--event.json b/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--event.json
new file mode 100644
index 0000000..0eabfe8
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--event.json
@@ -0,0 +1,484 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL VARIABLE\"}",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-express.build.src:instrumentation",
+ "function": "arguments.",
+ "lineno": 210,
+ "colno": 41,
+ "in_app": false,
+ "pre_context": [
+ " (_a = req.res) === null || _a === void 0 ? void 0 : _a.removeListener('finish', onResponseFinish);",
+ " span.end();",
+ " }",
+ " if (!(req.route && isError)) {",
+ " req[internal_types_1._LAYERS_STORE_PROPERTY].pop();",
+ " }",
+ " const callback = args[callbackIdx];"
+ ],
+ "context_line": " return callback.apply(this, arguments);",
+ "post_context": [
+ " };",
+ " }",
+ " try {",
+ " return original.apply(this, arguments);",
+ " }",
+ " catch (anyError) {",
+ " const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "express.lib.router:index",
+ "function": "next",
+ "lineno": 280,
+ "colno": 10,
+ "in_app": false,
+ "pre_context": [
+ " // Capture one-time layer values",
+ " req.params = self.mergeParams",
+ " ? mergeParams(layer.params, parentParams)",
+ " : layer.params;",
+ " var layerPath = layer.path;",
+ "",
+ " // this should be done for the layer"
+ ],
+ "context_line": " self.process_params(layer, paramcalled, req, res, function (err) {",
+ "post_context": [
+ " if (err) {",
+ " next(layerError || err)",
+ " } else if (route) {",
+ " layer.handle_request(req, res, next)",
+ " } else {",
+ " trim_prefix(layer, layerError, layerPath, path)",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "express.lib.router:index",
+ "function": "Function.process_params",
+ "lineno": 346,
+ "colno": 12,
+ "in_app": false,
+ "pre_context": [
+ " var params = this.params;",
+ "",
+ " // captured parameters from the layer, keys and values",
+ " var keys = layer.keys;",
+ "",
+ " // fast track",
+ " if (!keys || keys.length === 0) {"
+ ],
+ "context_line": " return done();",
+ "post_context": [
+ " }",
+ "",
+ " var i = 0;",
+ " var name;",
+ " var paramIndex = 0;",
+ " var key;",
+ " var paramVal;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "express.lib.router:index",
+ "function": "?",
+ "lineno": 284,
+ "colno": 15,
+ "in_app": false,
+ "pre_context": [
+ " var layerPath = layer.path;",
+ "",
+ " // this should be done for the layer",
+ " self.process_params(layer, paramcalled, req, res, function (err) {",
+ " if (err) {",
+ " next(layerError || err)",
+ " } else if (route) {"
+ ],
+ "context_line": " layer.handle_request(req, res, next)",
+ "post_context": [
+ " } else {",
+ " trim_prefix(layer, layerError, layerPath, path)",
+ " }",
+ "",
+ " sync = 0",
+ " });",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "express.lib.router:layer",
+ "function": "Layer.handle [as handle_request]",
+ "lineno": 95,
+ "colno": 5,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " if (fn.length > 3) {",
+ " // not a standard request handler",
+ " return next();",
+ " }",
+ "",
+ " try {"
+ ],
+ "context_line": " fn(req, res, next);",
+ "post_context": [
+ " } catch (err) {",
+ " next(err);",
+ " }",
+ "};",
+ "",
+ "/**",
+ " * Check if this route matches `path`, if so"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-express.build.src:instrumentation",
+ "function": "?",
+ "lineno": 214,
+ "colno": 37,
+ "in_app": false,
+ "pre_context": [
+ " req[internal_types_1._LAYERS_STORE_PROPERTY].pop();",
+ " }",
+ " const callback = args[callbackIdx];",
+ " return callback.apply(this, arguments);",
+ " };",
+ " }",
+ " try {"
+ ],
+ "context_line": " return original.apply(this, arguments);",
+ "post_context": [
+ " }",
+ " catch (anyError) {",
+ " const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);",
+ " span.recordException(error);",
+ " span.setStatus({",
+ " code: api_1.SpanStatusCode.ERROR,",
+ " message,"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "express.lib.router:route",
+ "function": "Route.dispatch",
+ "lineno": 119,
+ "colno": 3,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " if (method === 'head' && !this.methods['head']) {",
+ " method = 'get';",
+ " }",
+ "",
+ " req.route = this;",
+ ""
+ ],
+ "context_line": " next();",
+ "post_context": [
+ "",
+ " function next(err) {",
+ " // signal to exit route",
+ " if (err && err === 'route') {",
+ " return done();",
+ " }",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "express.lib.router:route",
+ "function": "next",
+ "lineno": 149,
+ "colno": 13,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ "",
+ " if (layer.method && layer.method !== method) {",
+ " next(err)",
+ " } else if (err) {",
+ " layer.handle_error(err, req, res, next);",
+ " } else {"
+ ],
+ "context_line": " layer.handle_request(req, res, next);",
+ "post_context": [
+ " }",
+ "",
+ " sync = 0",
+ " }",
+ "};",
+ "",
+ "/**"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "express.lib.router:layer",
+ "function": "Layer.handle [as handle_request]",
+ "lineno": 95,
+ "colno": 5,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " if (fn.length > 3) {",
+ " // not a standard request handler",
+ " return next();",
+ " }",
+ "",
+ " try {"
+ ],
+ "context_line": " fn(req, res, next);",
+ "post_context": [
+ " } catch (err) {",
+ " next(err);",
+ " }",
+ "};",
+ "",
+ "/**",
+ " * Check if this route matches `path`, if so"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 159,
+ "colno": 11,
+ "in_app": true,
+ "pre_context": [
+ " return [2 /*return*/];",
+ " }",
+ " });",
+ " });",
+ "});",
+ "app.get('/test-local-variables-uncaught', function (req, res) {",
+ " var randomVariableToRecord = 'LOCAL VARIABLE';"
+ ],
+ "context_line": " throw new Error(\"Uncaught Local Variable Error - \".concat(JSON.stringify({ randomVariableToRecord: randomVariableToRecord })));",
+ "post_context": [
+ "});",
+ "app.get('/test-local-variables-caught', function (req, res) {",
+ " var randomVariableToRecord = 'LOCAL VARIABLE';",
+ " var exceptionId;",
+ " try {",
+ " throw new Error('Local Variable Error');",
+ " }"
+ ],
+ "vars": {
+ "randomVariableToRecord": "LOCAL VARIABLE",
+ "res": "",
+ "req": ""
+ }
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "middleware",
+ "handled": false
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "breadcrumbs": [
+ {
+ "timestamp": "[[timestamp]]",
+ "category": "console",
+ "level": "log",
+ "message": "Example app listening on port 3030"
+ }
+ ],
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1"
+ },
+ "url": "http://localhost:3030/test-local-variables-uncaught"
+ },
+ "transaction": "GET /test-local-variables-uncaught",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "express": "4.19.2",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "vary": "1.1.2",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--transaction.json b/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--transaction.json
index a8e8bc4..97de833 100644
--- a/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--transaction.json
+++ b/utils/event-proxy-server/payload-files/express/test-local-variables-uncaught--transaction.json
@@ -4,7 +4,7 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
"dsn": "[[dsn]]",
"trace": {
@@ -22,23 +22,65 @@
{
"contexts": {
"trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.source": "route",
- "query": {},
- "http.response.status_code": 500,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
"sentry.sample_rate": 1,
- "url": "/test-local-variables-uncaught"
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-uncaught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 500,
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 500,
+ "http.status_text": "INTERNAL SERVER ERROR",
+ "http.route": "/test-local-variables-uncaught"
},
+ "origin": "auto.http.otel.http",
"op": "http.server",
- "span_id": "[[ID3]]",
- "status": "internal_error",
- "tags": {
- "http.status_code": "500"
+ "status": "unknown_error"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 500,
+ "http.status_text": "INTERNAL SERVER ERROR",
+ "http.route": "/test-local-variables-uncaught"
},
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
},
"runtime": {
"name": "node",
@@ -71,24 +113,58 @@
},
"spans": [
{
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
"data": {
- "sentry.origin": "auto.middleware.express",
- "sentry.op": "middleware.express.use"
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
},
- "description": "sentryErrorMiddleware",
- "op": "middleware.express.use",
+ "description": "middleware - query",
"parent_span_id": "[[ID3]]",
- "span_id": "[[ID4]]",
"start_timestamp": "[[timestamp]]",
"timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
"trace_id": "[[ID2]]",
- "origin": "auto.middleware.express"
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-local-variables-uncaught",
+ "express.name": "/test-local-variables-uncaught",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-local-variables-uncaught",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
}
],
"start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "500"
- },
"timestamp": "[[timestamp]]",
"transaction": "GET /test-local-variables-uncaught",
"type": "transaction",
@@ -107,21 +183,31 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
@@ -133,28 +219,19 @@
"message": "Example app listening on port 3030"
}
],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-local-variables-uncaught"
- },
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -178,8 +255,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -216,7 +291,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-param-error_1337--event.json b/utils/event-proxy-server/payload-files/express/test-param-error_1337--event.json
index e7c9cdf..d345a2a 100644
--- a/utils/event-proxy-server/payload-files/express/test-param-error_1337--event.json
+++ b/utils/event-proxy-server/payload-files/express/test-param-error_1337--event.json
@@ -4,17 +4,9 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
- "dsn": "[[dsn]]",
- "trace": {
- "environment": "qa",
- "public_key": "[[publicKey]]",
- "trace_id": "[[ID2]]",
- "sample_rate": "1",
- "transaction": "GET /test-param-error/:param",
- "sampled": "true"
- }
+ "dsn": "[[dsn]]"
},
{
"type": "event"
@@ -111,8 +103,8 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
- "lineno": 104,
+ "function": "?",
+ "lineno": 102,
"colno": 12,
"in_app": true,
"pre_context": [
@@ -171,7 +163,7 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
+ "function": "?",
"lineno": 31,
"colno": 71,
"in_app": true,
@@ -252,8 +244,8 @@
{
"filename": "[[FILENAME3]]",
"module": "app",
- "function": "",
- "lineno": 109,
+ "function": "?",
+ "lineno": 107,
"colno": 59,
"in_app": true,
"pre_context": [
@@ -289,16 +281,8 @@
"platform": "node",
"contexts": {
"trace": {
- "data": {
- "sentry.source": "route",
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
- "sentry.sample_rate": 1
- },
- "op": "http.server",
- "span_id": "[[ID3]]",
"trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "span_id": "[[ID3]]"
},
"runtime": {
"name": "node",
@@ -340,27 +324,34 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
- "tags": {
- "transaction": "GET /test-param-error/:param"
- },
"breadcrumbs": [
{
"timestamp": "[[timestamp]]",
@@ -387,11 +378,22 @@
"pragma": "no-cache",
"cache-control": "no-cache"
},
- "query_string": {},
"url": "http://localhost:3030/test-param-error/1337"
},
"transaction": "GET /test-param-error/:param",
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -415,8 +417,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -453,7 +453,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-param-error_1337--transaction.json b/utils/event-proxy-server/payload-files/express/test-param-error_1337--transaction.json
index b99c085..4774ea2 100644
--- a/utils/event-proxy-server/payload-files/express/test-param-error_1337--transaction.json
+++ b/utils/event-proxy-server/payload-files/express/test-param-error_1337--transaction.json
@@ -4,7 +4,7 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
"dsn": "[[dsn]]",
"trace": {
@@ -22,23 +22,65 @@
{
"contexts": {
"trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.source": "route",
- "query": {},
- "http.response.status_code": 200,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
"sentry.sample_rate": 1,
- "url": "/test-param-error/1337"
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-error/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
},
+ "origin": "auto.http.otel.http",
"op": "http.server",
- "span_id": "[[ID3]]",
- "status": "ok",
- "tags": {
- "http.status_code": "200"
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
},
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
},
"runtime": {
"name": "node",
@@ -69,11 +111,60 @@
},
"cloud_resource": {}
},
- "spans": [],
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-param-error/:param",
+ "express.name": "/test-param-error/:param",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-param-error/:param",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
"start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "200"
- },
"timestamp": "[[timestamp]]",
"transaction": "GET /test-param-error/:param",
"type": "transaction",
@@ -92,21 +183,31 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
@@ -118,28 +219,19 @@
"message": "Example app listening on port 3030"
}
],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-param-error/1337"
- },
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -163,8 +255,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -201,7 +291,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-param-success_1337--transaction.json b/utils/event-proxy-server/payload-files/express/test-param-success_1337--transaction.json
deleted file mode 100644
index 77e033d..0000000
--- a/utils/event-proxy-server/payload-files/express/test-param-success_1337--transaction.json
+++ /dev/null
@@ -1,207 +0,0 @@
-[
- {
- "event_id": "[[ID1]]",
- "sent_at": "[[ISODateString]]",
- "sdk": {
- "name": "sentry.javascript.node",
- "version": "7.109.0"
- },
- "dsn": "[[dsn]]",
- "trace": {
- "environment": "qa",
- "public_key": "[[publicKey]]",
- "trace_id": "[[ID2]]",
- "sample_rate": "1",
- "transaction": "GET /test-param-success/:param",
- "sampled": "true"
- }
- },
- {
- "type": "transaction"
- },
- {
- "contexts": {
- "trace": {
- "data": {
- "sentry.source": "route",
- "query": {},
- "http.response.status_code": 200,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
- "sentry.sample_rate": 1,
- "url": "/test-param-success/1337"
- },
- "op": "http.server",
- "span_id": "[[ID3]]",
- "status": "ok",
- "tags": {
- "http.status_code": "200"
- },
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
- },
- "runtime": {
- "name": "node",
- "version": "v20.12.1"
- },
- "app": {
- "app_start_time": "[[ISODateString]]",
- "app_memory": "[[highNumber]]"
- },
- "os": {
- "kernel_version": "23.2.0",
- "name": "macOS",
- "version": "14.2",
- "build": "23C64"
- },
- "device": {
- "boot_time": "[[ISODateString]]",
- "arch": "arm64",
- "memory_size": "[[highNumber]]",
- "free_memory": "[[highNumber]]",
- "processor_count": 10,
- "cpu_description": "Apple M1 Pro",
- "processor_frequency": "[[highNumber]]"
- },
- "culture": {
- "locale": "en-US",
- "timezone": "Europe/Vienna"
- },
- "cloud_resource": {}
- },
- "spans": [],
- "start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "200"
- },
- "timestamp": "[[timestamp]]",
- "transaction": "GET /test-param-success/:param",
- "type": "transaction",
- "transaction_info": {
- "source": "route"
- },
- "platform": "node",
- "server_name": "D9M3PY4LQ7.local",
- "event_id": "[[ID1]]",
- "environment": "qa",
- "sdk": {
- "integrations": [
- "InboundFilters",
- "FunctionToString",
- "LinkedErrors",
- "RequestData",
- "Console",
- "Http",
- "Undici",
- "OnUncaughtException",
- "OnUnhandledRejection",
- "ContextLines",
- "LocalVariables",
- "Context",
- "Modules",
- "Express"
- ],
- "name": "sentry.javascript.node",
- "version": "7.109.0",
- "packages": [
- {
- "name": "npm:@sentry/node",
- "version": "7.109.0"
- }
- ]
- },
- "breadcrumbs": [
- {
- "timestamp": "[[timestamp]]",
- "category": "console",
- "level": "log",
- "message": "Example app listening on port 3030"
- }
- ],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-param-success/1337"
- },
- "modules": {
- "express": "4.19.2",
- "body-parser": "1.20.2",
- "depd": "2.0.0",
- "merge-descriptors": "1.0.1",
- "finalhandler": "1.2.0",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "on-finished": "2.4.1",
- "ee-first": "1.1.1",
- "parseurl": "1.3.3",
- "statuses": "2.0.1",
- "unpipe": "1.0.0",
- "array-flatten": "1.1.1",
- "path-to-regexp": "0.1.7",
- "methods": "1.1.2",
- "utils-merge": "1.0.1",
- "setprototypeof": "1.2.0",
- "qs": "6.11.0",
- "side-channel": "1.0.6",
- "get-intrinsic": "1.2.4",
- "es-errors": "1.3.0",
- "has-symbols": "1.0.3",
- "has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
- "call-bind": "1.0.7",
- "set-function-length": "1.2.2",
- "define-data-property": "1.1.4",
- "es-define-property": "1.0.0",
- "gopd": "1.0.1",
- "has-property-descriptors": "1.0.2",
- "object-inspect": "1.13.1",
- "safe-buffer": "5.2.1",
- "content-disposition": "0.5.4",
- "content-type": "1.0.5",
- "send": "0.18.0",
- "http-errors": "2.0.0",
- "inherits": "2.0.4",
- "toidentifier": "1.0.1",
- "destroy": "1.2.0",
- "etag": "1.8.1",
- "fresh": "0.5.2",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "range-parser": "1.2.1",
- "proxy-addr": "2.0.7",
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1",
- "accepts": "1.3.8",
- "negotiator": "0.6.3",
- "mime-types": "2.1.35",
- "mime-db": "1.52.0",
- "type-is": "1.6.18",
- "media-typer": "0.3.0",
- "cookie-signature": "1.0.6",
- "cookie": "0.6.0",
- "vary": "1.1.2",
- "bytes": "3.1.2",
- "raw-body": "2.5.2",
- "iconv-lite": "0.4.24",
- "safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
- }
- }
-]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-success--transaction.json b/utils/event-proxy-server/payload-files/express/test-success--transaction.json
index 2a14936..8015a0b 100644
--- a/utils/event-proxy-server/payload-files/express/test-success--transaction.json
+++ b/utils/event-proxy-server/payload-files/express/test-success--transaction.json
@@ -4,7 +4,7 @@
"sent_at": "[[ISODateString]]",
"sdk": {
"name": "sentry.javascript.node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
},
"dsn": "[[dsn]]",
"trace": {
@@ -22,23 +22,65 @@
{
"contexts": {
"trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
"data": {
"sentry.source": "route",
- "query": {},
- "http.response.status_code": 200,
- "sentry.origin": "auto.http.node.tracingHandler",
- "sentry.op": "http.server",
"sentry.sample_rate": 1,
- "url": "/test-success"
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 304,
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 304,
+ "http.status_text": "NOT MODIFIED",
+ "http.route": "/test-success"
},
+ "origin": "auto.http.otel.http",
"op": "http.server",
- "span_id": "[[ID3]]",
- "status": "ok",
- "tags": {
- "http.status_code": "200"
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 304,
+ "http.status_text": "NOT MODIFIED",
+ "http.route": "/test-success"
},
- "trace_id": "[[ID2]]",
- "origin": "auto.http.node.tracingHandler"
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
},
"runtime": {
"name": "node",
@@ -69,11 +111,60 @@
},
"cloud_resource": {}
},
- "spans": [],
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-success",
+ "express.name": "/test-success",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-success",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
"start_timestamp": "[[timestamp]]",
- "tags": {
- "http.status_code": "200"
- },
"timestamp": "[[timestamp]]",
"transaction": "GET /test-success",
"type": "transaction",
@@ -92,21 +183,31 @@
"RequestData",
"Console",
"Http",
- "Undici",
+ "NodeFetch",
"OnUncaughtException",
"OnUnhandledRejection",
"ContextLines",
"LocalVariables",
"Context",
"Modules",
- "Express"
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
],
"name": "sentry.javascript.node",
- "version": "7.109.0",
+ "version": "8.0.0-alpha.9",
"packages": [
{
"name": "npm:@sentry/node",
- "version": "7.109.0"
+ "version": "8.0.0-alpha.9"
}
]
},
@@ -118,28 +219,19 @@
"message": "Example app listening on port 3030"
}
],
- "request": {
- "method": "GET",
- "cookies": {},
- "headers": {
- "host": "localhost:3030",
- "user-agent": "[[user-agent]]",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "accept-language": "en-US,en;q=0.5",
- "accept-encoding": "gzip, deflate, br",
- "connection": "keep-alive",
- "upgrade-insecure-requests": "1",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "none",
- "sec-fetch-user": "?1",
- "pragma": "no-cache",
- "cache-control": "no-cache"
- },
- "query_string": {},
- "url": "http://localhost:3030/test-success"
- },
"modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
"express": "4.19.2",
"body-parser": "1.20.2",
"depd": "2.0.0",
@@ -163,8 +255,6 @@
"es-errors": "1.3.0",
"has-symbols": "1.0.3",
"has-proto": "1.0.3",
- "function-bind": "1.1.2",
- "hasown": "2.0.2",
"call-bind": "1.0.7",
"set-function-length": "1.2.2",
"define-data-property": "1.1.4",
@@ -201,7 +291,8 @@
"raw-body": "2.5.2",
"iconv-lite": "0.4.24",
"safer-buffer": "2.1.2",
- "serve-static": "1.15.0"
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
}
}
]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/express/test-success-manual--transaction.json b/utils/event-proxy-server/payload-files/express/test-success-manual--transaction.json
new file mode 100644
index 0000000..3304b02
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/express/test-success-manual--transaction.json
@@ -0,0 +1,328 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-success-manual",
+ "express.name": "/test-success-manual",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-success-manual",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "sentry.op": "e2e-test",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-transaction",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "op": "e2e-test",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "breadcrumbs": [
+ {
+ "timestamp": "[[timestamp]]",
+ "category": "console",
+ "level": "log",
+ "message": "Example app listening on port 3030"
+ }
+ ],
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "express": "4.19.2",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "vary": "1.1.2",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-error--event.json b/utils/event-proxy-server/payload-files/fastify/test-error--event.json
new file mode 100644
index 0000000..658e418
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-error--event.json
@@ -0,0 +1,425 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-fastify.build.src:instrumentation",
+ "function": "?",
+ "lineno": 194,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ " (0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().requestHook(span, { request }), e => {",
+ " if (e) {",
+ " instrumentation._diag.error('request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {"
+ ],
+ "context_line": " done();",
+ "post_context": [
+ " });",
+ " };",
+ " }",
+ "}",
+ "exports.FastifyInstrumentation = FastifyInstrumentation;",
+ "//# sourceMappingURL=instrumentation.js.map"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "fastify.lib:hooks",
+ "function": "next",
+ "lineno": 233,
+ "colno": 9,
+ "in_app": false,
+ "pre_context": [
+ "",
+ "function hookRunnerGenerator (iterator) {",
+ " return function hookRunner (functions, request, reply, cb) {",
+ " let i = 0",
+ "",
+ " function next (err) {",
+ " if (err || i === functions.length) {"
+ ],
+ "context_line": " cb(err, request, reply)",
+ "post_context": [
+ " return",
+ " }",
+ "",
+ " let result",
+ " try {",
+ " result = iterator(functions[i++], request, reply, next)",
+ " } catch (error) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "fastify.lib:handleRequest",
+ "function": "preHandlerCallback",
+ "lineno": 137,
+ "colno": 37,
+ "in_app": false,
+ "pre_context": [
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " let result",
+ "",
+ " try {"
+ ],
+ "context_line": " result = request[kRouteContext].handler(request, reply)",
+ "post_context": [
+ " } catch (err) {",
+ " reply[kReplyIsError] = true",
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " if (result !== undefined) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.?",
+ "lineno": 80,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ "var app = (0, fastify_1.fastify)();",
+ "// @ts-ignore",
+ "Sentry.setupFastifyErrorHandler(app);",
+ "app.get('/test-success', function (_req, res) {",
+ " res.send({ version: 'v1' });",
+ "});",
+ "app.get('/test-error', function (req, res) {"
+ ],
+ "context_line": " return __awaiter(this, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "__awaiter",
+ "lineno": 27,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 31,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.next",
+ "lineno": 37,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "step",
+ "lineno": 56,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "Object.defineProperty(exports, \"__esModule\", { value: true });",
+ "var Sentry = __importStar(require(\"@sentry/node\"));",
+ "Sentry.init({"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.?",
+ "lineno": 85,
+ "colno": 59,
+ "in_app": true,
+ "pre_context": [
+ "});",
+ "app.get('/test-error', function (req, res) {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:",
+ " _a.sent();",
+ " res.send({ exceptionId: exceptionId });",
+ " return [2 /*return*/];",
+ " }",
+ " });"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "transaction": "GET /test-error",
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-error--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-error--transaction.json
new file mode 100644
index 0000000..3b56a30
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-error--transaction.json
@@ -0,0 +1,247 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-error",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-error",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-error",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-error-manual--event.json b/utils/event-proxy-server/payload-files/fastify/test-error-manual--event.json
new file mode 100644
index 0000000..5561deb
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-error-manual--event.json
@@ -0,0 +1,428 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "Object.startSpan",
+ "lineno": 854,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " const activeCtx = getContext(options.scope, options.forceTransaction);",
+ " const shouldSkipSpan = options.onlyIfParent && !api.trace.getSpan(activeCtx);",
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
+ ""
+ ],
+ "context_line": " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ "post_context": [
+ " _applySentryAttributesToSpan(span, options);",
+ "",
+ " return core.handleCallbackErrors(",
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@opentelemetry.sdk-trace-base.build.src:Tracer",
+ "function": "Tracer.startActiveSpan",
+ "lineno": 121,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " opts = arg2;",
+ " ctx = arg3;",
+ " fn = arg4;",
+ " }",
+ " const parentContext = ctx !== null && ctx !== void 0 ? ctx : api.context.active();",
+ " const span = this.startSpan(name, opts, parentContext);",
+ " const contextWithSpanSet = api.trace.setSpan(parentContext, span);"
+ ],
+ "context_line": " return api.context.with(contextWithSpanSet, fn, undefined, span);",
+ "post_context": [
+ " }",
+ " /** Returns the active {@link GeneralLimits}. */",
+ " getGeneralLimits() {",
+ " return this._generalLimits;",
+ " }",
+ " /** Returns the active {@link SpanLimits}. */",
+ " getSpanLimits() {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
+ "in_app": false,
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ],
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
+ "in_app": false,
+ "pre_context": [
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
+ "",
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
+ ],
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " }",
+ "",
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 857,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
+ ""
+ ],
+ "context_line": " return core.handleCallbackErrors(",
+ "post_context": [
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors",
+ "function": "Object.handleCallbackErrors",
+ "lineno": 26,
+ "colno": 26,
+ "in_app": false,
+ "pre_context": [
+ " fn,",
+ " onError,",
+ " // eslint-disable-next-line @typescript-eslint/no-empty-function",
+ " onFinally = () => {},",
+ ") {",
+ " let maybePromiseResult;",
+ " try {"
+ ],
+ "context_line": " maybePromiseResult = fn();",
+ "post_context": [
+ " } catch (e) {",
+ " onError(e);",
+ " onFinally();",
+ " throw e;",
+ " }",
+ "",
+ " return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 858,
+ "colno": 13,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
+ "",
+ " return core.handleCallbackErrors("
+ ],
+ "context_line": " () => callback(span),",
+ "post_context": [
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },",
+ " () => span.end(),"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 140,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ "app.get('/test-error-manual', function (req, res) {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " Sentry.startSpan({ name: 'test-span' }, function () {",
+ " Sentry.startSpan({ name: 'child-span' }, function () {"
+ ],
+ "context_line": " Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " });",
+ " });",
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:",
+ " _a.sent();",
+ " res.send({",
+ " transactionIds: global.transactionIds || [],"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "transaction": "GET /test-error-manual",
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error-manual"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-error-manual--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-error-manual--transaction.json
new file mode 100644
index 0000000..e68d14b
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-error-manual--transaction.json
@@ -0,0 +1,275 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-error-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-error-manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "child-span",
+ "parent_span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-error-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error-manual"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-local-variables-caught--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-local-variables-caught--transaction.json
new file mode 100644
index 0000000..b3a9384
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-local-variables-caught--transaction.json
@@ -0,0 +1,247 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-caught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-caught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-local-variables-caught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-caught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-local-variables-caught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-local-variables-caught",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-caught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-caught"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--event.json b/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--event.json
new file mode 100644
index 0000000..fcaf153
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--event.json
@@ -0,0 +1,427 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL_VARIABLE\"}",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "fastify.lib:hooks",
+ "function": "hookIterator",
+ "lineno": 405,
+ "colno": 10,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ "",
+ " next()",
+ "}",
+ "",
+ "function hookIterator (fn, request, reply, next) {",
+ " if (reply.sent === true) return undefined"
+ ],
+ "context_line": " return fn(request, reply, next)",
+ "post_context": [
+ "}",
+ "",
+ "module.exports = {",
+ " Hooks,",
+ " buildHooks,",
+ " hookRunnerGenerator,",
+ " preParsingHookRunner,"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@opentelemetry.instrumentation-fastify.build.src:instrumentation",
+ "function": "Object.preHandler",
+ "lineno": 193,
+ "colno": 38,
+ "in_app": false,
+ "pre_context": [
+ " if (instrumentation.getConfig().requestHook) {",
+ " (0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().requestHook(span, { request }), e => {",
+ " if (e) {",
+ " instrumentation._diag.error('request hook failed', e);",
+ " }",
+ " }, true);",
+ " }"
+ ],
+ "context_line": " return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {",
+ "post_context": [
+ " done();",
+ " });",
+ " };",
+ " }",
+ "}",
+ "exports.FastifyInstrumentation = FastifyInstrumentation;",
+ "//# sourceMappingURL=instrumentation.js.map"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
+ "in_app": false,
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ],
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
+ "in_app": false,
+ "pre_context": [
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
+ "",
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
+ ],
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " }",
+ "",
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@opentelemetry.instrumentation-fastify.build.src:instrumentation",
+ "function": "?",
+ "lineno": 194,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ " (0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().requestHook(span, { request }), e => {",
+ " if (e) {",
+ " instrumentation._diag.error('request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {"
+ ],
+ "context_line": " done();",
+ "post_context": [
+ " });",
+ " };",
+ " }",
+ "}",
+ "exports.FastifyInstrumentation = FastifyInstrumentation;",
+ "//# sourceMappingURL=instrumentation.js.map"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "fastify.lib:hooks",
+ "function": "next",
+ "lineno": 233,
+ "colno": 9,
+ "in_app": false,
+ "pre_context": [
+ "",
+ "function hookRunnerGenerator (iterator) {",
+ " return function hookRunner (functions, request, reply, cb) {",
+ " let i = 0",
+ "",
+ " function next (err) {",
+ " if (err || i === functions.length) {"
+ ],
+ "context_line": " cb(err, request, reply)",
+ "post_context": [
+ " return",
+ " }",
+ "",
+ " let result",
+ " try {",
+ " result = iterator(functions[i++], request, reply, next)",
+ " } catch (error) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "fastify.lib:handleRequest",
+ "function": "preHandlerCallback",
+ "lineno": 137,
+ "colno": 37,
+ "in_app": false,
+ "pre_context": [
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " let result",
+ "",
+ " try {"
+ ],
+ "context_line": " result = request[kRouteContext].handler(request, reply)",
+ "post_context": [
+ " } catch (err) {",
+ " reply[kReplyIsError] = true",
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " if (result !== undefined) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME8]]",
+ "module": "app",
+ "function": "Object.?",
+ "lineno": 156,
+ "colno": 11,
+ "in_app": true,
+ "pre_context": [
+ " return [2 /*return*/];",
+ " }",
+ " });",
+ " });",
+ "});",
+ "app.get('/test-local-variables-uncaught', function (req, res) {",
+ " var randomVariableToRecord = 'LOCAL_VARIABLE';"
+ ],
+ "context_line": " throw new Error(\"Uncaught Local Variable Error - \".concat(JSON.stringify({ randomVariableToRecord: randomVariableToRecord })));",
+ "post_context": [
+ "});",
+ "app.get('/test-local-variables-caught', function (req, res) {",
+ " var randomVariableToRecord = 'LOCAL_VARIABLE';",
+ " var exceptionId;",
+ " try {",
+ " throw new Error('Local Variable Error');",
+ " }"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "transaction": "GET /test-local-variables-uncaught",
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-uncaught"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--transaction.json
new file mode 100644
index 0000000..93bff8c
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-local-variables-uncaught--transaction.json
@@ -0,0 +1,264 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-uncaught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-uncaught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 500,
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 500,
+ "http.status_text": "INTERNAL SERVER ERROR",
+ "http.route": "/test-local-variables-uncaught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "unknown_error"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-local-variables-uncaught",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onError",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-uncaught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-uncaught"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--event.json b/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--event.json
new file mode 100644
index 0000000..7d9c228
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--event.json
@@ -0,0 +1,425 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-fastify.build.src:instrumentation",
+ "function": "?",
+ "lineno": 194,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ " (0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().requestHook(span, { request }), e => {",
+ " if (e) {",
+ " instrumentation._diag.error('request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {"
+ ],
+ "context_line": " done();",
+ "post_context": [
+ " });",
+ " };",
+ " }",
+ "}",
+ "exports.FastifyInstrumentation = FastifyInstrumentation;",
+ "//# sourceMappingURL=instrumentation.js.map"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "fastify.lib:hooks",
+ "function": "next",
+ "lineno": 233,
+ "colno": 9,
+ "in_app": false,
+ "pre_context": [
+ "",
+ "function hookRunnerGenerator (iterator) {",
+ " return function hookRunner (functions, request, reply, cb) {",
+ " let i = 0",
+ "",
+ " function next (err) {",
+ " if (err || i === functions.length) {"
+ ],
+ "context_line": " cb(err, request, reply)",
+ "post_context": [
+ " return",
+ " }",
+ "",
+ " let result",
+ " try {",
+ " result = iterator(functions[i++], request, reply, next)",
+ " } catch (error) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "fastify.lib:handleRequest",
+ "function": "preHandlerCallback",
+ "lineno": 137,
+ "colno": 37,
+ "in_app": false,
+ "pre_context": [
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " let result",
+ "",
+ " try {"
+ ],
+ "context_line": " result = request[kRouteContext].handler(request, reply)",
+ "post_context": [
+ " } catch (err) {",
+ " reply[kReplyIsError] = true",
+ " reply.send(err)",
+ " return",
+ " }",
+ "",
+ " if (result !== undefined) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.?",
+ "lineno": 99,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " });",
+ " });",
+ "});",
+ "app.get('/test-param-success/:param', function (req, res) {",
+ " res.send({ paramWas: req.params.param });",
+ "});",
+ "app.get('/test-param-error/:param', function (req, res) {"
+ ],
+ "context_line": " return __awaiter(this, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "__awaiter",
+ "lineno": 27,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 31,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.next",
+ "lineno": 37,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "step",
+ "lineno": 56,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "Object.defineProperty(exports, \"__esModule\", { value: true });",
+ "var Sentry = __importStar(require(\"@sentry/node\"));",
+ "Sentry.init({"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.?",
+ "lineno": 104,
+ "colno": 59,
+ "in_app": true,
+ "pre_context": [
+ "});",
+ "app.get('/test-param-error/:param', function (req, res) {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:",
+ " _a.sent();",
+ " res.send({ exceptionId: exceptionId, paramWas: req.params.param });",
+ " return [2 /*return*/];",
+ " }",
+ " });"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "transaction": "GET /test-param-error/:param",
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-param-error/1337"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--transaction.json
new file mode 100644
index 0000000..b823ac2
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-param-error_1337--transaction.json
@@ -0,0 +1,247 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-error/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-error/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-param-error/:param",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-error/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-param-error/1337"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-param-success_1337--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-param-success_1337--transaction.json
new file mode 100644
index 0000000..79a8325
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-param-success_1337--transaction.json
@@ -0,0 +1,247 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-success/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-success/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-success/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-success/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-success/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-param-success/:param",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-success/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-param-success/1337"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-success--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-success--transaction.json
new file mode 100644
index 0000000..8bf65e3
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-success--transaction.json
@@ -0,0 +1,247 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-success",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-success"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/fastify/test-success-manual--transaction.json b/utils/event-proxy-server/payload-files/fastify/test-success-manual--transaction.json
new file mode 100644
index 0000000..948919b
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/fastify/test-success-manual--transaction.json
@@ -0,0 +1,275 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "fastify.type": "middleware",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "hook.name": "onRequest",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.fastify",
+ "plugin.name": "fastify -> sentry-fastify-error-handler",
+ "fastify.type": "request_handler",
+ "http.route": "/test-success-manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - fastify -> sentry-fastify-error-handler",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.fastify"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "child-span",
+ "parent_span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-beta.1",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-success-manual"
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "fastify": "4.26.2",
+ "avvio": "8.3.0",
+ "fastq": "1.17.1",
+ "reusify": "1.0.4",
+ "process-warning": "3.0.0",
+ "abstract-logging": "2.0.1",
+ "pino": "8.20.0",
+ "pino-std-serializers": "6.2.2",
+ "fast-redact": "3.5.0",
+ "quick-format-unescaped": "4.0.4",
+ "sonic-boom": "3.8.1",
+ "atomic-sleep": "1.0.0",
+ "on-exit-leak-free": "2.1.2",
+ "thread-stream": "2.4.1",
+ "safe-stable-stringify": "2.4.3",
+ "rfdc": "1.3.1",
+ "fast-json-stringify": "5.14.1",
+ "ajv": "8.12.0",
+ "fast-deep-equal": "3.1.3",
+ "uri-js": "4.4.1",
+ "fast-uri": "2.3.0",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "toad-cache": "3.7.0",
+ "fast-content-type-parse": "1.1.0",
+ "secure-json-parse": "2.7.0",
+ "json-schema-ref-resolver": "1.0.1",
+ "find-my-way": "8.1.0",
+ "fast-querystring": "1.1.2",
+ "fast-decode-uri-component": "1.0.1",
+ "safe-regex2": "2.0.0",
+ "ret": "0.2.2",
+ "opentelemetry-instrumentation-fetch-node": "1.2.0"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-error--event.json b/utils/event-proxy-server/payload-files/koa/test-error--event.json
new file mode 100644
index 0000000..9ccc7b1
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-error--event.json
@@ -0,0 +1,414 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 150,
+ "colno": 34,
+ "in_app": false,
+ "pre_context": [
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);",
+ " return api.context.with(newContext, async () => {",
+ " try {"
+ ],
+ "context_line": " return await middlewareLayer(context, next);",
+ "post_context": [
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }",
+ " finally {",
+ " span.end();"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 82,
+ "colno": 51,
+ "in_app": true,
+ "pre_context": [
+ "var koa_1 = __importDefault(require(\"koa\"));",
+ "var router_1 = __importDefault(require(\"@koa/router\"));",
+ "var router = new router_1.default();",
+ "var app = new koa_1.default();",
+ "router.get('/test-success', function (ctx) {",
+ " ctx.body = { version: 'v1' };",
+ "});"
+ ],
+ "context_line": "router.get('/test-error', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " Sentry.flush(2000);",
+ " ctx.body = { exceptionId: exceptionId };",
+ " return [2 /*return*/];",
+ " });"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "__awaiter",
+ "lineno": 27,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 31,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.next",
+ "lineno": 37,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "step",
+ "lineno": 56,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "var __importDefault = (this && this.__importDefault) || function (mod) {",
+ " return (mod && mod.__esModule) ? mod : { \"default\": mod };",
+ "};"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 85,
+ "colno": 47,
+ "in_app": true,
+ "pre_context": [
+ "var app = new koa_1.default();",
+ "router.get('/test-success', function (ctx) {",
+ " ctx.body = { version: 'v1' };",
+ "});",
+ "router.get('/test-error', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " Sentry.flush(2000);",
+ " ctx.body = { exceptionId: exceptionId };",
+ " return [2 /*return*/];",
+ " });",
+ "}); });",
+ "router.get('/test-param-success/:param', function (ctx) {",
+ " ctx.body = { paramWas: ctx.params.param };"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error"
+ },
+ "transaction": "GET /test-error",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-error--transaction.json b/utils/event-proxy-server/payload-files/koa/test-error--transaction.json
new file mode 100644
index 0000000..46a2ab2
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-error--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-error",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-error",
+ "koa.type": "router",
+ "http.route": "/test-error",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-error",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-error",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-error-manual--event.json b/utils/event-proxy-server/payload-files/koa/test-error-manual--event.json
new file mode 100644
index 0000000..46410c4
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-error-manual--event.json
@@ -0,0 +1,435 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "Object.startSpan",
+ "lineno": 874,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " const activeCtx = getContext(options.scope, options.forceTransaction);",
+ " const shouldSkipSpan = options.onlyIfParent && !api.trace.getSpan(activeCtx);",
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
+ ""
+ ],
+ "context_line": " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ "post_context": [
+ " _applySentryAttributesToSpan(span, options);",
+ "",
+ " return core.handleCallbackErrors(",
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@opentelemetry.sdk-trace-base.build.src:Tracer",
+ "function": "Tracer.startActiveSpan",
+ "lineno": 121,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " opts = arg2;",
+ " ctx = arg3;",
+ " fn = arg4;",
+ " }",
+ " const parentContext = ctx !== null && ctx !== void 0 ? ctx : api.context.active();",
+ " const span = this.startSpan(name, opts, parentContext);",
+ " const contextWithSpanSet = api.trace.setSpan(parentContext, span);"
+ ],
+ "context_line": " return api.context.with(contextWithSpanSet, fn, undefined, span);",
+ "post_context": [
+ " }",
+ " /** Returns the active {@link GeneralLimits}. */",
+ " getGeneralLimits() {",
+ " return this._generalLimits;",
+ " }",
+ " /** Returns the active {@link SpanLimits}. */",
+ " getSpanLimits() {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
+ "in_app": false,
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ],
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
+ "in_app": false,
+ "pre_context": [
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
+ "",
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
+ ],
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " }",
+ "",
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 877,
+ "colno": 17,
+ "in_app": false,
+ "pre_context": [
+ " const ctx = shouldSkipSpan ? core$1.suppressTracing(activeCtx) : activeCtx;",
+ "",
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
+ ""
+ ],
+ "context_line": " return core.handleCallbackErrors(",
+ "post_context": [
+ " () => callback(span),",
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors",
+ "function": "Object.handleCallbackErrors",
+ "lineno": 26,
+ "colno": 26,
+ "in_app": false,
+ "pre_context": [
+ " fn,",
+ " onError,",
+ " // eslint-disable-next-line @typescript-eslint/no-empty-function",
+ " onFinally = () => {},",
+ ") {",
+ " let maybePromiseResult;",
+ " try {"
+ ],
+ "context_line": " maybePromiseResult = fn();",
+ "post_context": [
+ " } catch (e) {",
+ " onError(e);",
+ " onFinally();",
+ " throw e;",
+ " }",
+ "",
+ " return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "?",
+ "lineno": 878,
+ "colno": 13,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " const spanContext = getSpanContext(options);",
+ "",
+ " return tracer.startActiveSpan(name, spanContext, ctx, span => {",
+ " _applySentryAttributesToSpan(span, options);",
+ "",
+ " return core.handleCallbackErrors("
+ ],
+ "context_line": " () => callback(span),",
+ "post_context": [
+ " () => {",
+ " // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses",
+ " if (core.spanToJSON(span).status === undefined) {",
+ " span.setStatus({ code: api.SpanStatusCode.ERROR });",
+ " }",
+ " },",
+ " () => span.end(),"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 119,
+ "colno": 41,
+ "in_app": true,
+ "pre_context": [
+ " return [2 /*return*/];",
+ " });",
+ "}); });",
+ "router.get('/test-error-manual', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ " return __generator(this, function (_a) {",
+ " Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, function () {",
+ " Sentry.startSpan({ name: 'test-span' }, function () {"
+ ],
+ "context_line": " Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " });",
+ " });",
+ " Sentry.flush();",
+ " ctx.body = {",
+ " transactionIds: global.transactionIds || [],",
+ " };",
+ " return [2 /*return*/];"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error-manual"
+ },
+ "transaction": "GET /test-error-manual",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--event.json b/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--event.json
new file mode 100644
index 0000000..dab489e
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--event.json
@@ -0,0 +1,445 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "Local Variable Error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "koa-compose:index",
+ "function": "dispatch",
+ "lineno": 42,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " function dispatch (i) {",
+ " if (i <= index) return Promise.reject(new Error('next() called multiple times'))",
+ " index = i",
+ " let fn = middleware[i]",
+ " if (i === middleware.length) fn = next",
+ " if (!fn) return Promise.resolve()",
+ " try {"
+ ],
+ "context_line": " return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));",
+ "post_context": [
+ " } catch (err) {",
+ " return Promise.reject(err)",
+ " }",
+ " }",
+ " }",
+ "}",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@koa.router.lib:router",
+ "function": "?",
+ "lineno": 423,
+ "colno": 16,
+ "in_app": false,
+ "pre_context": [
+ " ctx.routerPath = layer.path;",
+ " ctx.routerName = layer.name;",
+ " ctx._matchedRoute = layer.path;",
+ " if (layer.name) {",
+ " ctx._matchedRouteName = layer.name;",
+ " }",
+ ""
+ ],
+ "context_line": " return next();",
+ "post_context": [
+ " });",
+ " return memo.concat(layer.stack);",
+ " }, []);",
+ "",
+ " return compose(layerChain)(ctx, next);",
+ " };",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "koa-compose:index",
+ "function": "dispatch",
+ "lineno": 42,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " function dispatch (i) {",
+ " if (i <= index) return Promise.reject(new Error('next() called multiple times'))",
+ " index = i",
+ " let fn = middleware[i]",
+ " if (i === middleware.length) fn = next",
+ " if (!fn) return Promise.resolve()",
+ " try {"
+ ],
+ "context_line": " return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));",
+ "post_context": [
+ " } catch (err) {",
+ " return Promise.reject(err)",
+ " }",
+ " }",
+ " }",
+ "}",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 148,
+ "colno": 36,
+ "in_app": false,
+ "pre_context": [
+ " }), e => {",
+ " if (e) {",
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);"
+ ],
+ "context_line": " return api.context.with(newContext, async () => {",
+ "post_context": [
+ " try {",
+ " return await middlewareLayer(context, next);",
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
+ "in_app": false,
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ],
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
+ "in_app": false,
+ "pre_context": [
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
+ "",
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
+ ],
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " }",
+ "",
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 150,
+ "colno": 34,
+ "in_app": false,
+ "pre_context": [
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);",
+ " return api.context.with(newContext, async () => {",
+ " try {"
+ ],
+ "context_line": " return await middlewareLayer(context, next);",
+ "post_context": [
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }",
+ " finally {",
+ " span.end();"
+ ]
+ },
+ {
+ "filename": "[[FILENAME8]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 136,
+ "colno": 15,
+ "in_app": true,
+ "pre_context": [
+ " var randomVariableToRecord = 'LOCAL VARIABLE';",
+ " throw new Error(\"Uncaught Local Variable Error - \".concat(JSON.stringify({ randomVariableToRecord: randomVariableToRecord })));",
+ "});",
+ "router.get('/test-local-variables-caught', function (ctx) {",
+ " var randomVariableToRecord = 'LOCAL VARIABLE';",
+ " var exceptionId;",
+ " try {"
+ ],
+ "context_line": " throw new Error('Local Variable Error');",
+ "post_context": [
+ " }",
+ " catch (e) {",
+ " exceptionId = Sentry.captureException(e);",
+ " }",
+ " ctx.body = { exceptionId: exceptionId, randomVariableToRecord: randomVariableToRecord };",
+ "});",
+ "Sentry.setupKoaErrorHandler(app);"
+ ],
+ "vars": {
+ "exceptionId": "",
+ "randomVariableToRecord": "LOCAL VARIABLE",
+ "ctx": {
+ "originalUrl": "/test-local-variables-caught",
+ "_matchedRoute": "/test-local-variables-caught",
+ "routerPath": "/test-local-variables-caught",
+ "routerName": null
+ }
+ }
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-caught"
+ },
+ "transaction": "GET /test-local-variables-caught",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--transaction.json b/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--transaction.json
new file mode 100644
index 0000000..61ce87d
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-local-variables-caught--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-caught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-caught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-local-variables-caught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-caught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-local-variables-caught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-local-variables-caught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-caught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-local-variables-caught"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-local-variables-caught",
+ "koa.type": "router",
+ "http.route": "/test-local-variables-caught",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-local-variables-caught",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-caught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--event.json b/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--event.json
new file mode 100644
index 0000000..d95a939
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--event.json
@@ -0,0 +1,436 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL VARIABLE\"}",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "koa-compose:index",
+ "function": "dispatch",
+ "lineno": 42,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " function dispatch (i) {",
+ " if (i <= index) return Promise.reject(new Error('next() called multiple times'))",
+ " index = i",
+ " let fn = middleware[i]",
+ " if (i === middleware.length) fn = next",
+ " if (!fn) return Promise.resolve()",
+ " try {"
+ ],
+ "context_line": " return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));",
+ "post_context": [
+ " } catch (err) {",
+ " return Promise.reject(err)",
+ " }",
+ " }",
+ " }",
+ "}",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@koa.router.lib:router",
+ "function": "?",
+ "lineno": 423,
+ "colno": 16,
+ "in_app": false,
+ "pre_context": [
+ " ctx.routerPath = layer.path;",
+ " ctx.routerName = layer.name;",
+ " ctx._matchedRoute = layer.path;",
+ " if (layer.name) {",
+ " ctx._matchedRouteName = layer.name;",
+ " }",
+ ""
+ ],
+ "context_line": " return next();",
+ "post_context": [
+ " });",
+ " return memo.concat(layer.stack);",
+ " }, []);",
+ "",
+ " return compose(layerChain)(ctx, next);",
+ " };",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "koa-compose:index",
+ "function": "dispatch",
+ "lineno": 42,
+ "colno": 32,
+ "in_app": false,
+ "pre_context": [
+ " function dispatch (i) {",
+ " if (i <= index) return Promise.reject(new Error('next() called multiple times'))",
+ " index = i",
+ " let fn = middleware[i]",
+ " if (i === middleware.length) fn = next",
+ " if (!fn) return Promise.resolve()",
+ " try {"
+ ],
+ "context_line": " return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));",
+ "post_context": [
+ " } catch (err) {",
+ " return Promise.reject(err)",
+ " }",
+ " }",
+ " }",
+ "}",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 148,
+ "colno": 36,
+ "in_app": false,
+ "pre_context": [
+ " }), e => {",
+ " if (e) {",
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);"
+ ],
+ "context_line": " return api.context.with(newContext, async () => {",
+ "post_context": [
+ " try {",
+ " return await middlewareLayer(context, next);",
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@opentelemetry.api.build.src.api:context",
+ "function": "ContextAPI.with",
+ "lineno": 60,
+ "colno": 46,
+ "in_app": false,
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ],
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@sentry.opentelemetry.cjs:index",
+ "function": "SentryContextManager.with",
+ "lineno": "[[highNumber]]",
+ "colno": 24,
+ "in_app": false,
+ "pre_context": [
+ " const ctx2 = ctx1",
+ " .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)",
+ " .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);",
+ "",
+ " setContextOnScope(newCurrentScope, ctx2);",
+ ""
+ ],
+ "context_line": " return super.with(ctx2, fn, thisArg, ...args);",
+ "post_context": [
+ " }",
+ " }",
+ "",
+ " return SentryContextManager ;",
+ "}",
+ "",
+ "/** If this attribute is true, it means that the parent is a remote span. */"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 150,
+ "colno": 34,
+ "in_app": false,
+ "pre_context": [
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);",
+ " return api.context.with(newContext, async () => {",
+ " try {"
+ ],
+ "context_line": " return await middlewareLayer(context, next);",
+ "post_context": [
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }",
+ " finally {",
+ " span.end();"
+ ]
+ },
+ {
+ "filename": "[[FILENAME8]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 130,
+ "colno": 11,
+ "in_app": true,
+ "pre_context": [
+ " transactionIds: global.transactionIds || [],",
+ " };",
+ " return [2 /*return*/];",
+ " });",
+ "}); });",
+ "router.get('/test-local-variables-uncaught', function (ctx) {",
+ " var randomVariableToRecord = 'LOCAL VARIABLE';"
+ ],
+ "context_line": " throw new Error(\"Uncaught Local Variable Error - \".concat(JSON.stringify({ randomVariableToRecord: randomVariableToRecord })));",
+ "post_context": [
+ "});",
+ "router.get('/test-local-variables-caught', function (ctx) {",
+ " var randomVariableToRecord = 'LOCAL VARIABLE';",
+ " var exceptionId;",
+ " try {",
+ " throw new Error('Local Variable Error');",
+ " }"
+ ],
+ "vars": {}
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-uncaught"
+ },
+ "transaction": "GET /test-local-variables-uncaught",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--transaction.json b/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--transaction.json
new file mode 100644
index 0000000..dcb6864
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-local-variables-uncaught--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-uncaught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-uncaught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 404,
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 404,
+ "http.status_text": "NOT FOUND",
+ "http.route": "/test-local-variables-uncaught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "not_found"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 404,
+ "http.status_text": "NOT FOUND",
+ "http.route": "/test-local-variables-uncaught"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-local-variables-uncaught",
+ "koa.type": "router",
+ "http.route": "/test-local-variables-uncaught",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-local-variables-uncaught",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-uncaught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-param-error_1337--event.json b/utils/event-proxy-server/payload-files/koa/test-param-error_1337--event.json
new file mode 100644
index 0000000..617e3d2
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-param-error_1337--event.json
@@ -0,0 +1,414 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager",
+ "function": "SentryContextManager.with",
+ "lineno": 33,
+ "colno": 40,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ " active() {",
+ " var _a;",
+ " return (_a = this._asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : api_1.ROOT_CONTEXT;",
+ " }",
+ " with(context, fn, thisArg, ...args) {",
+ " const cb = thisArg == null ? fn : fn.bind(thisArg);"
+ ],
+ "context_line": " return this._asyncLocalStorage.run(context, cb, ...args);",
+ "post_context": [
+ " }",
+ " enable() {",
+ " return this;",
+ " }",
+ " disable() {",
+ " this._asyncLocalStorage.disable();",
+ " return this;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.instrumentation-koa.build.src:instrumentation",
+ "function": "?",
+ "lineno": 150,
+ "colno": 34,
+ "in_app": false,
+ "pre_context": [
+ " api.diag.error('koa instrumentation: request hook failed', e);",
+ " }",
+ " }, true);",
+ " }",
+ " const newContext = api.trace.setSpan(api.context.active(), span);",
+ " return api.context.with(newContext, async () => {",
+ " try {"
+ ],
+ "context_line": " return await middlewareLayer(context, next);",
+ "post_context": [
+ " }",
+ " catch (err) {",
+ " span.recordException(err);",
+ " throw err;",
+ " }",
+ " finally {",
+ " span.end();"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 94,
+ "colno": 64,
+ "in_app": true,
+ "pre_context": [
+ " ctx.body = { exceptionId: exceptionId };",
+ " return [2 /*return*/];",
+ " });",
+ "}); });",
+ "router.get('/test-param-success/:param', function (ctx) {",
+ " ctx.body = { paramWas: ctx.params.param };",
+ "});"
+ ],
+ "context_line": "router.get('/test-param-error/:param', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " Sentry.flush(2000);",
+ " ctx.body = { exceptionId: exceptionId, paramWas: ctx.params.param };",
+ " return [2 /*return*/];",
+ " });"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "__awaiter",
+ "lineno": 27,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 31,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "Object.next",
+ "lineno": 37,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "step",
+ "lineno": 56,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "var __importDefault = (this && this.__importDefault) || function (mod) {",
+ " return (mod && mod.__esModule) ? mod : { \"default\": mod };",
+ "};"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app",
+ "function": "?",
+ "lineno": 97,
+ "colno": 47,
+ "in_app": true,
+ "pre_context": [
+ "}); });",
+ "router.get('/test-param-success/:param', function (ctx) {",
+ " ctx.body = { paramWas: ctx.params.param };",
+ "});",
+ "router.get('/test-param-error/:param', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " Sentry.flush(2000);",
+ " ctx.body = { exceptionId: exceptionId, paramWas: ctx.params.param };",
+ " return [2 /*return*/];",
+ " });",
+ "}); });",
+ "router.get('/test-success-manual', function (ctx) { return __awaiter(void 0, void 0, void 0, function () {",
+ " return __generator(this, function (_a) {"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-param-error/1337"
+ },
+ "transaction": "GET /test-param-error/1337",
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-param-error_1337--transaction.json b/utils/event-proxy-server/payload-files/koa/test-param-error_1337--transaction.json
new file mode 100644
index 0000000..5414a41
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-param-error_1337--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-error/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-error/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-param-error/:param",
+ "koa.type": "router",
+ "http.route": "/test-param-error/:param",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-param-error/:param",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-error/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-param-success_1337--transaction.json b/utils/event-proxy-server/payload-files/koa/test-param-success_1337--transaction.json
new file mode 100644
index 0000000..c618988
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-param-success_1337--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-success/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-success/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-success/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-success/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-success/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-param-success/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-success/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-success/:param"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-param-success/:param",
+ "koa.type": "router",
+ "http.route": "/test-param-success/:param",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-param-success/:param",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-success/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-success--transaction.json b/utils/event-proxy-server/payload-files/koa/test-success--transaction.json
new file mode 100644
index 0000000..c0fdd2a
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-success--transaction.json
@@ -0,0 +1,252 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-success",
+ "koa.type": "router",
+ "http.route": "/test-success",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-success",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/koa/test-success-manual--transaction.json b/utils/event-proxy-server/payload-files/koa/test-success-manual--transaction.json
new file mode 100644
index 0000000..5bed23e
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/koa/test-success-manual--transaction.json
@@ -0,0 +1,282 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "",
+ "koa.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - ",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "koa.name": "/test-success-manual",
+ "koa.type": "router",
+ "http.route": "/test-success-manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "router - /test-success-manual",
+ "parent_span_id": "[[ID4]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "sentry.op": "e2e-test",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-transaction",
+ "parent_span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "op": "e2e-test",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "koa": "2.15.3",
+ "is-generator-function": "1.0.10",
+ "has-tostringtag": "1.0.2",
+ "has-symbols": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "content-disposition": "0.5.4",
+ "safe-buffer": "5.2.1",
+ "cache-content-type": "1.0.1",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "ylru": "1.4.0",
+ "escape-html": "1.0.3",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "destroy": "1.2.0",
+ "vary": "1.1.2",
+ "only": "0.0.2",
+ "encodeurl": "1.0.2",
+ "koa-compose": "4.1.0",
+ "setprototypeof": "1.2.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "http-assert": "1.5.0",
+ "deep-equal": "1.0.1",
+ "delegates": "1.0.0",
+ "cookies": "0.9.1",
+ "depd": "2.0.0",
+ "keygrip": "1.1.0",
+ "tsscmp": "1.0.6",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "content-type": "1.0.5",
+ "parseurl": "1.3.3",
+ "fresh": "0.5.2",
+ "koa-convert": "2.0.0",
+ "co": "4.6.0",
+ "http-errors": "2.0.0",
+ "statuses": "2.0.1",
+ "methods": "1.1.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-error--event.json b/utils/event-proxy-server/payload-files/nestjs/test-error--event.json
new file mode 100644
index 0000000..1f0f8a4
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-error--event.json
@@ -0,0 +1,472 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@nestjs.core.interceptors:interceptors-consumer",
+ "function": "InterceptorsConsumer.intercept",
+ "lineno": 12,
+ "colno": 20,
+ "in_app": false,
+ "pre_context": [
+ "const async_hooks_1 = require(\"async_hooks\");",
+ "const rxjs_1 = require(\"rxjs\");",
+ "const operators_1 = require(\"rxjs/operators\");",
+ "const execution_context_host_1 = require(\"../helpers/execution-context-host\");",
+ "class InterceptorsConsumer {",
+ " async intercept(interceptors, args, instance, callback, next, type) {",
+ " if ((0, shared_utils_1.isEmpty)(interceptors)) {"
+ ],
+ "context_line": " return next();",
+ "post_context": [
+ " }",
+ " const context = this.createContext(args, instance, callback);",
+ " context.setType(type);",
+ " const nextFn = async (i = 0) => {",
+ " if (i >= interceptors.length) {",
+ " return (0, rxjs_1.defer)(async_hooks_1.AsyncResource.bind(() => this.transformDeferred(next)));",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@nestjs.core.router:router-execution-context",
+ "function": "?",
+ "lineno": 38,
+ "colno": 29,
+ "in_app": false,
+ "pre_context": [
+ " const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType);",
+ " const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);",
+ " const handler = (args, req, res, next) => async () => {",
+ " fnApplyPipes && (await fnApplyPipes(args, req, res, next));"
+ ],
+ "context_line": " return callback.apply(instance, args);",
+ "post_context": [
+ " };",
+ " return async (req, res, next) => {",
+ " const args = this.contextUtils.createNullArray(argsLength);",
+ " fnCanActivate && (await fnCanActivate([req, res, next]));",
+ " this.responseController.setStatus(res, httpStatusCode);",
+ " hasCustomHeaders &&",
+ " this.responseController.setHeaders(res, responseHeaders);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "app.controller",
+ "function": "AppController.testError",
+ "lineno": 26,
+ "colno": 32,
+ "in_app": true,
+ "pre_context": [
+ " function AppController(appService) {",
+ " this.appService = appService;",
+ " }",
+ " AppController.prototype.testSuccess = function () {",
+ " return this.appService.testSuccess();",
+ " };",
+ " AppController.prototype.testError = function () {"
+ ],
+ "context_line": " return this.appService.testError();",
+ "post_context": [
+ " };",
+ " AppController.prototype.testParamSuccess = function (param) {",
+ " return this.appService.testParamSuccess(param);",
+ " };",
+ " AppController.prototype.testParamError = function (param) {",
+ " return this.appService.testParamError(param);",
+ " };"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "AppService.testError",
+ "lineno": 78,
+ "colno": 16,
+ "in_app": true,
+ "pre_context": [
+ "var AppService = /** @class */ (function () {",
+ " function AppService() {",
+ " }",
+ " AppService.prototype.testSuccess = function () {",
+ " return { version: 'v1' };",
+ " };",
+ " AppService.prototype.testError = function () {"
+ ],
+ "context_line": " return __awaiter(this, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "__awaiter",
+ "lineno": 33,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "?",
+ "lineno": 37,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "Object.next",
+ "lineno": 43,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "step",
+ "lineno": 62,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "Object.defineProperty(exports, \"__esModule\", { value: true });",
+ "exports.AppService = void 0;",
+ "var common_1 = require(\"@nestjs/common\");"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "AppService.?",
+ "lineno": 83,
+ "colno": 63,
+ "in_app": true,
+ "pre_context": [
+ " };",
+ " AppService.prototype.testError = function () {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:",
+ " _a.sent();",
+ " return [2 /*return*/, { exceptionId: exceptionId }];",
+ " }",
+ " });",
+ " });"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error"
+ },
+ "transaction": "GET /test-error",
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-error--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-error--transaction.json
new file mode 100644
index 0000000..cbb4e1a
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-error--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-error",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-error",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-error",
+ "express.name": "/test-error",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-error",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-error",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-error-manual--event.json b/utils/event-proxy-server/payload-files/nestjs/test-error-manual--event.json
new file mode 100644
index 0000000..4b3076c
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-error-manual--event.json
@@ -0,0 +1,323 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.src:trace.ts",
+ "function": "Object.startSpan",
+ "lineno": 45,
+ "colno": 17,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@opentelemetry.sdk-trace-base.src:Tracer.ts",
+ "function": "Tracer.startActiveSpan",
+ "lineno": 241,
+ "colno": 28,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "@opentelemetry.api.src.api:context.ts",
+ "function": "ContextAPI.with",
+ "lineno": 77,
+ "colno": 42,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@sentry.src:contextManager.ts",
+ "function": "SentryContextManager.with",
+ "lineno": 71,
+ "colno": 24,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@opentelemetry.context-async-hooks.src:AsyncLocalStorageContextManager.ts",
+ "function": "SentryContextManager.with",
+ "lineno": 40,
+ "colno": 36,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "node:async_hooks",
+ "function": "AsyncLocalStorage.run",
+ "lineno": 346,
+ "colno": 14,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.src:trace.ts",
+ "function": "?",
+ "lineno": 48,
+ "colno": 32,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "@sentry.src.utils:handleCallbackErrors.ts",
+ "function": "Object.handleCallbackErrors",
+ "lineno": 25,
+ "colno": 26,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@sentry.src:trace.ts",
+ "function": "?",
+ "lineno": 49,
+ "colno": 13,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME8]]",
+ "module": "app.service",
+ "function": "?",
+ "lineno": 124,
+ "colno": 57,
+ "in_app": true,
+ "pre_context": [
+ " AppService.prototype.testErrorManual = function () {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " Sentry.startSpan({ name: 'test-transaction', op: 'e2e-test' }, function () {",
+ " Sentry.startSpan({ name: 'test-span' }, function () {"
+ ],
+ "context_line": " Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " });",
+ " });",
+ " return [4 /*yield*/, Sentry.flush()];",
+ " case 1:",
+ " _a.sent();",
+ " return [2 /*return*/, 'test-error-body'];",
+ " }"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "parent_span_id": "[[ID4]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-error-manual"
+ },
+ "transaction": "GET /test-error-manual",
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-error-manual--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-error-manual--transaction.json
new file mode 100644
index 0000000..dcfd331
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-error-manual--transaction.json
@@ -0,0 +1,374 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-error-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-error-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-error-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-error-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-error-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-error-manual"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-error-manual",
+ "express.name": "/test-error-manual",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-error-manual",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID9]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "sentry.op": "e2e-test",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-transaction",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "op": "e2e-test",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID10]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID9]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-error-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-local-variables-caught--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-caught--transaction.json
new file mode 100644
index 0000000..1bbe3ba
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-caught--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-caught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-caught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-local-variables-caught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-caught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-local-variables-caught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-local-variables-caught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-caught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-local-variables-caught"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-local-variables-caught",
+ "express.name": "/test-local-variables-caught",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-local-variables-caught",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-caught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--event.json b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--event.json
new file mode 100644
index 0000000..47f4c56
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--event.json
@@ -0,0 +1,474 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL_VARIABLE\"}",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "@opentelemetry.instrumentation-express.src:instrumentation.ts",
+ "function": "?",
+ "lineno": 306,
+ "colno": 27,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "express.lib.router:route",
+ "function": "Route.dispatch",
+ "lineno": 119,
+ "colno": 3,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " if (method === 'head' && !this.methods['head']) {",
+ " method = 'get';",
+ " }",
+ "",
+ " req.route = this;",
+ ""
+ ],
+ "context_line": " next();",
+ "post_context": [
+ "",
+ " function next(err) {",
+ " // signal to exit route",
+ " if (err && err === 'route') {",
+ " return done();",
+ " }",
+ ""
+ ]
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "express.lib.router:route",
+ "function": "next",
+ "lineno": 149,
+ "colno": 13,
+ "in_app": false,
+ "pre_context": [
+ " }",
+ "",
+ " if (layer.method && layer.method !== method) {",
+ " next(err)",
+ " } else if (err) {",
+ " layer.handle_error(err, req, res, next);",
+ " } else {"
+ ],
+ "context_line": " layer.handle_request(req, res, next);",
+ "post_context": [
+ " }",
+ "",
+ " sync = 0",
+ " }",
+ "};",
+ "",
+ "/**"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "express.lib.router:layer",
+ "function": "Layer.handle [as handle_request]",
+ "lineno": 95,
+ "colno": 5,
+ "in_app": false,
+ "pre_context": [
+ "",
+ " if (fn.length > 3) {",
+ " // not a standard request handler",
+ " return next();",
+ " }",
+ "",
+ " try {"
+ ],
+ "context_line": " fn(req, res, next);",
+ "post_context": [
+ " } catch (err) {",
+ " next(err);",
+ " }",
+ "};",
+ "",
+ "/**",
+ " * Check if this route matches `path`, if so"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "@nestjs.core.router:router-proxy",
+ "function": "?",
+ "lineno": 9,
+ "colno": 23,
+ "in_app": false,
+ "pre_context": [
+ "Object.defineProperty(exports, \"__esModule\", { value: true });",
+ "exports.RouterProxy = void 0;",
+ "const execution_context_host_1 = require(\"../helpers/execution-context-host\");",
+ "class RouterProxy {",
+ " createProxy(targetCallback, exceptionsHandler) {",
+ " return async (req, res, next) => {",
+ " try {"
+ ],
+ "context_line": " await targetCallback(req, res, next);",
+ "post_context": [
+ " }",
+ " catch (e) {",
+ " const host = new execution_context_host_1.ExecutionContextHost([req, res, next]);",
+ " exceptionsHandler.next(e, host);",
+ " return res;",
+ " }",
+ " };"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@nestjs.core.router:router-execution-context",
+ "function": "?",
+ "lineno": 46,
+ "colno": 60,
+ "in_app": false,
+ "pre_context": [
+ " };",
+ " return async (req, res, next) => {",
+ " const args = this.contextUtils.createNullArray(argsLength);",
+ " fnCanActivate && (await fnCanActivate([req, res, next]));",
+ " this.responseController.setStatus(res, httpStatusCode);",
+ " hasCustomHeaders &&",
+ " this.responseController.setHeaders(res, responseHeaders);"
+ ],
+ "context_line": " const result = await this.interceptorsConsumer.intercept(interceptors, [req, res, next], instance, callback, handler(args, req, {snip}",
+ "post_context": [
+ " await fnHandleResponse(result, res, req);",
+ " };",
+ " }",
+ " getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType) {",
+ " const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName);",
+ " if (cacheMetadata) {",
+ " return cacheMetadata;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME6]]",
+ "module": "@nestjs.core.interceptors:interceptors-consumer",
+ "function": "InterceptorsConsumer.intercept",
+ "lineno": 12,
+ "colno": 20,
+ "in_app": false,
+ "pre_context": [
+ "const async_hooks_1 = require(\"async_hooks\");",
+ "const rxjs_1 = require(\"rxjs\");",
+ "const operators_1 = require(\"rxjs/operators\");",
+ "const execution_context_host_1 = require(\"../helpers/execution-context-host\");",
+ "class InterceptorsConsumer {",
+ " async intercept(interceptors, args, instance, callback, next, type) {",
+ " if ((0, shared_utils_1.isEmpty)(interceptors)) {"
+ ],
+ "context_line": " return next();",
+ "post_context": [
+ " }",
+ " const context = this.createContext(args, instance, callback);",
+ " context.setType(type);",
+ " const nextFn = async (i = 0) => {",
+ " if (i >= interceptors.length) {",
+ " return (0, rxjs_1.defer)(async_hooks_1.AsyncResource.bind(() => this.transformDeferred(next)));",
+ " }"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "@nestjs.core.router:router-execution-context",
+ "function": "?",
+ "lineno": 38,
+ "colno": 29,
+ "in_app": false,
+ "pre_context": [
+ " const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType);",
+ " const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);",
+ " const handler = (args, req, res, next) => async () => {",
+ " fnApplyPipes && (await fnApplyPipes(args, req, res, next));"
+ ],
+ "context_line": " return callback.apply(instance, args);",
+ "post_context": [
+ " };",
+ " return async (req, res, next) => {",
+ " const args = this.contextUtils.createNullArray(argsLength);",
+ " fnCanActivate && (await fnCanActivate([req, res, next]));",
+ " this.responseController.setStatus(res, httpStatusCode);",
+ " hasCustomHeaders &&",
+ " this.responseController.setHeaders(res, responseHeaders);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME7]]",
+ "module": "app.controller",
+ "function": "AppController.testLocalVariablesUncaught",
+ "lineno": 41,
+ "colno": 32,
+ "in_app": true,
+ "pre_context": [
+ " AppController.prototype.testSuccessManual = function () {",
+ " return this.appService.testSuccessManual();",
+ " };",
+ " AppController.prototype.testErrorManual = function () {",
+ " return this.appService.testErrorManual();",
+ " };",
+ " AppController.prototype.testLocalVariablesUncaught = function () {"
+ ],
+ "context_line": " return this.appService.testLocalVariablesUncaught();",
+ "post_context": [
+ " };",
+ " AppController.prototype.testLocalVariablesCaught = function () {",
+ " return this.appService.testLocalVariablesCaught();",
+ " };",
+ " __decorate([",
+ " (0, common_1.Get)('test-success'),",
+ " __metadata(\"design:type\", Function),"
+ ]
+ },
+ {
+ "filename": "[[FILENAME8]]",
+ "module": "app.service",
+ "function": "AppService.testLocalVariablesUncaught",
+ "lineno": 137,
+ "colno": 15,
+ "in_app": true,
+ "pre_context": [
+ " return [2 /*return*/, 'test-error-body'];",
+ " }",
+ " });",
+ " });",
+ " };",
+ " AppService.prototype.testLocalVariablesUncaught = function () {",
+ " var randomVariableToRecord = 'LOCAL_VARIABLE';"
+ ],
+ "context_line": " throw new Error(\"Uncaught Local Variable Error - \".concat(JSON.stringify({ randomVariableToRecord: randomVariableToRecord })));",
+ "post_context": [
+ " };",
+ " AppService.prototype.testLocalVariablesCaught = function () {",
+ " var randomVariableToRecord = 'LOCAL_VARIABLE';",
+ " var exceptionId;",
+ " try {",
+ " throw new Error('Local Variable Error');",
+ " }"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-local-variables-uncaught"
+ },
+ "transaction": "GET /test-local-variables-uncaught",
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--transaction.json
new file mode 100644
index 0000000..d77d4e3
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-local-variables-uncaught--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-local-variables-uncaught",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-local-variables-uncaught",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 500,
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 500,
+ "http.status_text": "INTERNAL SERVER ERROR",
+ "http.route": "/test-local-variables-uncaught"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "unknown_error"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-local-variables-uncaught",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-local-variables-uncaught",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 500,
+ "http.status_text": "INTERNAL SERVER ERROR",
+ "http.route": "/test-local-variables-uncaught"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-local-variables-uncaught",
+ "express.name": "/test-local-variables-uncaught",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-local-variables-uncaught",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-local-variables-uncaught",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--event.json b/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--event.json
new file mode 100644
index 0000000..a8e52a3
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--event.json
@@ -0,0 +1,453 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "exception": {
+ "values": [
+ {
+ "type": "Error",
+ "value": "This is an error",
+ "stacktrace": {
+ "frames": [
+ {
+ "filename": "[[FILENAME1]]",
+ "module": "task_queues",
+ "function": "processTicksAndRejections",
+ "lineno": 95,
+ "colno": 5,
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME2]]",
+ "module": "@nestjs.core.router:router-execution-context",
+ "function": "?",
+ "lineno": 38,
+ "colno": 29,
+ "in_app": false,
+ "pre_context": [
+ " const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);",
+ " const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType);",
+ " const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);",
+ " const handler = (args, req, res, next) => async () => {",
+ " fnApplyPipes && (await fnApplyPipes(args, req, res, next));"
+ ],
+ "context_line": " return callback.apply(instance, args);",
+ "post_context": [
+ " };",
+ " return async (req, res, next) => {",
+ " const args = this.contextUtils.createNullArray(argsLength);",
+ " fnCanActivate && (await fnCanActivate([req, res, next]));",
+ " this.responseController.setStatus(res, httpStatusCode);",
+ " hasCustomHeaders &&",
+ " this.responseController.setHeaders(res, responseHeaders);"
+ ]
+ },
+ {
+ "filename": "[[FILENAME3]]",
+ "module": "app.controller",
+ "function": "AppController.testParamError",
+ "lineno": 32,
+ "colno": 32,
+ "in_app": true,
+ "pre_context": [
+ " AppController.prototype.testError = function () {",
+ " return this.appService.testError();",
+ " };",
+ " AppController.prototype.testParamSuccess = function (param) {",
+ " return this.appService.testParamSuccess(param);",
+ " };",
+ " AppController.prototype.testParamError = function (param) {"
+ ],
+ "context_line": " return this.appService.testParamError(param);",
+ "post_context": [
+ " };",
+ " AppController.prototype.testSuccessManual = function () {",
+ " return this.appService.testSuccessManual();",
+ " };",
+ " AppController.prototype.testErrorManual = function () {",
+ " return this.appService.testErrorManual();",
+ " };"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "AppService.testParamError",
+ "lineno": 96,
+ "colno": 16,
+ "in_app": true,
+ "pre_context": [
+ " });",
+ " });",
+ " };",
+ " AppService.prototype.testParamSuccess = function (param) {",
+ " return { paramWas: param };",
+ " };",
+ " AppService.prototype.testParamError = function (param) {"
+ ],
+ "context_line": " return __awaiter(this, void 0, void 0, function () {",
+ "post_context": [
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:",
+ " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "__awaiter",
+ "lineno": 33,
+ "colno": 12,
+ "in_app": true,
+ "pre_context": [
+ " var result = {};",
+ " if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);",
+ " __setModuleDefault(result, mod);",
+ " return result;",
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }"
+ ],
+ "context_line": " return new (P || (P = Promise))(function (resolve, reject) {",
+ "post_context": [
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME5]]",
+ "module": "",
+ "function": "new Promise",
+ "in_app": false
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "?",
+ "lineno": 37,
+ "colno": 71,
+ "in_app": true,
+ "pre_context": [
+ "};",
+ "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {",
+ " function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }",
+ " return new (P || (P = Promise))(function (resolve, reject) {",
+ " function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }",
+ " function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }",
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }"
+ ],
+ "context_line": " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ "post_context": [
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}",
+ " function verb(n) { return function (v) { return step([n, v]); }; }",
+ " function step(op) {"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "Object.next",
+ "lineno": 43,
+ "colno": 53,
+ "in_app": true,
+ "pre_context": [
+ " function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }",
+ " step((generator = generator.apply(thisArg, _arguments || [])).next());",
+ " });",
+ "};",
+ "var __generator = (this && this.__generator) || function (thisArg, body) {",
+ " var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;",
+ " return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { re {snip}"
+ ],
+ "context_line": " function verb(n) { return function (v) { return step([n, v]); }; }",
+ "post_context": [
+ " function step(op) {",
+ " if (f) throw new TypeError(\"Generator is already executing.\");",
+ " while (g && (g = 0, op[0] && (_ = 0)), _) try {",
+ " if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.ca {snip}",
+ " if (y = 0, t) op = [op[0] & 2, t.value];",
+ " switch (op[0]) {",
+ " case 0: case 1: t = op; break;"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "step",
+ "lineno": 62,
+ "colno": 23,
+ "in_app": true,
+ "pre_context": [
+ " if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }",
+ " if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }",
+ " if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }",
+ " if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }",
+ " if (t[2]) _.ops.pop();",
+ " _.trys.pop(); continue;",
+ " }"
+ ],
+ "context_line": " op = body.call(thisArg, _);",
+ "post_context": [
+ " } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }",
+ " if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };",
+ " }",
+ "};",
+ "Object.defineProperty(exports, \"__esModule\", { value: true });",
+ "exports.AppService = void 0;",
+ "var common_1 = require(\"@nestjs/common\");"
+ ]
+ },
+ {
+ "filename": "[[FILENAME4]]",
+ "module": "app.service",
+ "function": "AppService.?",
+ "lineno": 101,
+ "colno": 63,
+ "in_app": true,
+ "pre_context": [
+ " };",
+ " AppService.prototype.testParamError = function (param) {",
+ " return __awaiter(this, void 0, void 0, function () {",
+ " var exceptionId;",
+ " return __generator(this, function (_a) {",
+ " switch (_a.label) {",
+ " case 0:"
+ ],
+ "context_line": " exceptionId = Sentry.captureException(new Error('This is an error'));",
+ "post_context": [
+ " return [4 /*yield*/, Sentry.flush(2000)];",
+ " case 1:",
+ " _a.sent();",
+ " return [2 /*return*/, { exceptionId: exceptionId, paramWas: param }];",
+ " }",
+ " });",
+ " });"
+ ]
+ }
+ ]
+ },
+ "mechanism": {
+ "type": "generic",
+ "handled": true
+ }
+ }
+ ]
+ },
+ "event_id": "[[ID1]]",
+ "platform": "node",
+ "contexts": {
+ "trace": {
+ "trace_id": "[[ID2]]",
+ "span_id": "[[ID3]]"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "request": {
+ "method": "GET",
+ "cookies": {},
+ "headers": {
+ "host": "localhost:3030",
+ "user-agent": "[[user-agent]]",
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "accept-language": "en-US,en;q=0.5",
+ "accept-encoding": "gzip, deflate, br",
+ "connection": "keep-alive",
+ "upgrade-insecure-requests": "1",
+ "sec-fetch-dest": "document",
+ "sec-fetch-mode": "navigate",
+ "sec-fetch-site": "none",
+ "sec-fetch-user": "?1",
+ "pragma": "no-cache",
+ "cache-control": "no-cache"
+ },
+ "url": "http://localhost:3030/test-param-error/1337"
+ },
+ "transaction": "GET /test-param-error/:param",
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--transaction.json
new file mode 100644
index 0000000..742e834
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-param-error_1337--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-error/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-error/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-param-error/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-error/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-error/:param"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-param-error/:param",
+ "express.name": "/test-param-error/:param",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-param-error/:param",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-error/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-param-success_1337--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-param-success_1337--transaction.json
new file mode 100644
index 0000000..cdec60b
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-param-success_1337--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-param-success/:param",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-param-success/1337",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-param-success/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-success/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-success/:param"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-param-success/1337",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-param-success/1337",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-param-success/:param"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-param-success/:param",
+ "express.name": "/test-param-success/:param",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-param-success/:param",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-param-success/:param",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-success--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-success--transaction.json
new file mode 100644
index 0000000..041174a
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-success--transaction.json
@@ -0,0 +1,344 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-success",
+ "express.name": "/test-success",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-success",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nestjs/test-success-manual--transaction.json b/utils/event-proxy-server/payload-files/nestjs/test-success-manual--transaction.json
new file mode 100644
index 0000000..3f79ba4
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nestjs/test-success-manual--transaction.json
@@ -0,0 +1,374 @@
+[
+ {
+ "event_id": "[[ID1]]",
+ "sent_at": "[[ISODateString]]",
+ "sdk": {
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9"
+ },
+ "dsn": "[[dsn]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]",
+ "sample_rate": "1",
+ "transaction": "GET /test-success-manual",
+ "sampled": "true"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "contexts": {
+ "trace": {
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.source": "route",
+ "sentry.sample_rate": 1,
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.http.otel.http",
+ "url": "http://localhost:3030/test-success-manual",
+ "otel.kind": "SERVER",
+ "http.response.status_code": 200,
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "origin": "auto.http.otel.http",
+ "op": "http.server",
+ "status": "ok"
+ },
+ "otel": {
+ "attributes": {
+ "http.url": "http://localhost:3030/test-success-manual",
+ "http.host": "localhost:3030",
+ "net.host.name": "localhost",
+ "http.method": "GET",
+ "http.scheme": "http",
+ "http.target": "/test-success-manual",
+ "http.user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:124.0) Gecko/20100101 Firefox/124.0",
+ "http.flavor": "1.1",
+ "net.transport": "ip_tcp",
+ "sentry.origin": "auto.http.otel.http",
+ "net.host.ip": "::ffff:127.0.0.1",
+ "net.host.port": "[[highNumber]]",
+ "net.peer.ip": "::ffff:127.0.0.1",
+ "net.peer.port": "[[highNumber]]",
+ "http.status_code": 200,
+ "http.status_text": "OK",
+ "http.route": "/test-success-manual"
+ },
+ "resource": {
+ "service.name": "node",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-alpha.9"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "app": {
+ "app_start_time": "[[ISODateString]]",
+ "app_memory": "[[highNumber]]"
+ },
+ "os": {
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2",
+ "build": "23C64"
+ },
+ "device": {
+ "boot_time": "[[ISODateString]]",
+ "arch": "arm64",
+ "memory_size": "[[highNumber]]",
+ "free_memory": "[[highNumber]]",
+ "processor_count": 10,
+ "cpu_description": "Apple M1 Pro",
+ "processor_frequency": "[[highNumber]]"
+ },
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "cloud_resource": {}
+ },
+ "spans": [
+ {
+ "span_id": "[[ID4]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "query",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - query",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID5]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "expressInit",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - expressInit",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID6]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "jsonParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - jsonParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID7]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/",
+ "express.name": "urlencodedParser",
+ "express.type": "middleware",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "middleware - urlencodedParser",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID8]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "auto.http.otel.express",
+ "http.route": "/test-success-manual",
+ "express.name": "/test-success-manual",
+ "express.type": "request_handler",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "request handler - /test-success-manual",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "auto.http.otel.express"
+ },
+ {
+ "span_id": "[[ID9]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "sentry.op": "e2e-test",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-transaction",
+ "parent_span_id": "[[ID3]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "op": "e2e-test",
+ "origin": "manual"
+ },
+ {
+ "span_id": "[[ID10]]",
+ "trace_id": "[[ID2]]",
+ "data": {
+ "sentry.origin": "manual",
+ "otel.kind": "INTERNAL"
+ },
+ "description": "test-span",
+ "parent_span_id": "[[ID9]]",
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "status": "ok",
+ "origin": "manual"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /test-success-manual",
+ "type": "transaction",
+ "transaction_info": {
+ "source": "route"
+ },
+ "platform": "node",
+ "server_name": "D9M3PY4LQ7.local",
+ "event_id": "[[ID1]]",
+ "environment": "qa",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "Http",
+ "NodeFetch",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa"
+ ],
+ "name": "sentry.javascript.node",
+ "version": "8.0.0-alpha.9",
+ "packages": [
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-alpha.9"
+ }
+ ]
+ },
+ "modules": {
+ "source-map-support": "0.5.21",
+ "buffer-from": "1.1.2",
+ "tslib": "2.6.2",
+ "reflect-metadata": "0.2.2",
+ "uid": "2.0.2",
+ "iterare": "1.2.1",
+ "rxjs": "7.8.1",
+ "fast-safe-stringify": "2.1.1",
+ "semver": "7.6.0",
+ "yallist": "4.0.0",
+ "shimmer": "1.2.1",
+ "require-in-the-middle": "7.3.0",
+ "resolve": "1.22.8",
+ "is-core-module": "2.13.1",
+ "hasown": "2.0.2",
+ "function-bind": "1.1.2",
+ "debug": "4.3.4",
+ "supports-color": "5.5.0",
+ "module-details-from-path": "1.0.3",
+ "import-in-the-middle": "1.7.3",
+ "body-parser": "1.20.2",
+ "depd": "2.0.0",
+ "cors": "2.8.5",
+ "object-assign": "4.1.1",
+ "vary": "1.1.2",
+ "express": "4.19.2",
+ "merge-descriptors": "1.0.1",
+ "finalhandler": "1.2.0",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.4.1",
+ "ee-first": "1.1.1",
+ "parseurl": "1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "1.0.0",
+ "array-flatten": "1.1.1",
+ "path-to-regexp": "0.1.7",
+ "methods": "1.1.2",
+ "utils-merge": "1.0.1",
+ "setprototypeof": "1.2.0",
+ "qs": "6.11.0",
+ "side-channel": "1.0.6",
+ "get-intrinsic": "1.2.4",
+ "es-errors": "1.3.0",
+ "has-symbols": "1.0.3",
+ "has-proto": "1.0.3",
+ "call-bind": "1.0.7",
+ "set-function-length": "1.2.2",
+ "define-data-property": "1.1.4",
+ "es-define-property": "1.0.0",
+ "gopd": "1.0.1",
+ "has-property-descriptors": "1.0.2",
+ "object-inspect": "1.13.1",
+ "safe-buffer": "5.2.1",
+ "content-disposition": "0.5.4",
+ "content-type": "1.0.5",
+ "send": "0.18.0",
+ "http-errors": "2.0.0",
+ "inherits": "2.0.4",
+ "toidentifier": "1.0.1",
+ "destroy": "1.2.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "range-parser": "1.2.1",
+ "proxy-addr": "2.0.7",
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1",
+ "accepts": "1.3.8",
+ "negotiator": "0.6.3",
+ "mime-types": "2.1.35",
+ "mime-db": "1.52.0",
+ "type-is": "1.6.18",
+ "media-typer": "0.3.0",
+ "cookie-signature": "1.0.6",
+ "cookie": "0.6.0",
+ "bytes": "3.1.2",
+ "raw-body": "2.5.2",
+ "iconv-lite": "0.4.24",
+ "safer-buffer": "2.1.2",
+ "serve-static": "1.15.0",
+ "multer": "1.4.4-lts.1",
+ "busboy": "1.6.0",
+ "streamsearch": "1.1.0",
+ "xtend": "4.0.2",
+ "append-field": "1.0.0",
+ "concat-stream": "1.6.2",
+ "process-nextick-args": "2.0.1",
+ "isarray": "1.0.0",
+ "core-util-is": "1.0.3",
+ "util-deprecate": "1.0.2",
+ "opentelemetry-instrumentation-fetch-node": "1.1.2"
+ }
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error--event.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error--event.json
new file mode 100644
index 0000000..978c669
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error--event.json
@@ -0,0 +1,937 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "parent_span_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID4]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "exception": {
+ "values": [
+ {
+ "mechanism": {
+ "handled": true,
+ "type": "generic"
+ },
+ "stacktrace": {
+ "frames": [
+ {
+ "colno": 17,
+ "context_line": " await this.render(req, res, pathname, query, parsedUrl, true);",
+ "filename": "[[FILENAME1]]",
+ "function": "NextNodeServer.handleCatchallRenderRequest",
+ "in_app": false,
+ "lineno": 272,
+ "module": "next.dist.server:next-server",
+ "post_context": [
+ " return true;",
+ " } catch (err) {",
+ " if (err instanceof _baseserver.NoFallbackError) {",
+ " throw err;",
+ " }",
+ " try {",
+ " if (this.renderOpts.dev) {"
+ ],
+ "pre_context": [
+ " await this.render404(req, res, parsedUrl);",
+ " return true;",
+ " }",
+ " delete query._nextBubbleNoFallback;",
+ " const handled = await this.handleApiRequest(req, res, query, match);",
+ " if (handled) return true;",
+ " }"
+ ]
+ },
+ {
+ "colno": 25,
+ "context_line": " const payload = await fn(ctx);",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.pipeImpl",
+ "in_app": false,
+ "lineno": 915,
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " if (payload === null) {",
+ " return;",
+ " }",
+ " const { req, res } = ctx;",
+ " const originalStatus = res.statusCode;",
+ " const { body, type } = payload;",
+ " let { revalidate } = payload;"
+ ],
+ "pre_context": [
+ " ...partialContext,",
+ " renderOpts: {",
+ " ...this.renderOpts,",
+ " supportsDynamicHTML: !isBotRequest,",
+ " isBot: !!isBotRequest",
+ " }",
+ " };"
+ ]
+ },
+ {
+ "colno": 32,
+ "context_line": " const result = await this.renderPageComponent({",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderToResponseImpl",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " ...ctx,",
+ " pathname: match.definition.pathname,",
+ " renderOpts: {",
+ " ...ctx.renderOpts,",
+ " params: match.params",
+ " }",
+ " }, bubbleNoFallback);"
+ ],
+ "pre_context": [
+ " for await (const match of this.matchers.matchAll(pathname, options)){",
+ " // when a specific invoke-output is meant to be matched",
+ " // ensure a prior dynamic route/page doesn't take priority",
+ " const invokeOutput = ctx.req.headers[\"x-invoke-output\"];",
+ " if (!this.minimalMode && typeof invokeOutput === \"string\" && (0, _utils1.isDynamicRoute)(invokeOutput || \"\") && invokeOutput {snip}",
+ " continue;",
+ " }"
+ ]
+ },
+ {
+ "colno": 35,
+ "context_line": " return await this.renderToResponseWithComponents(ctx, result);",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderPageComponent",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " } catch (err) {",
+ " const isNoFallbackError = err instanceof NoFallbackError;",
+ " if (!isNoFallbackError || isNoFallbackError && bubbleNoFallback) {",
+ " throw err;",
+ " }",
+ " }",
+ " }"
+ ],
+ "pre_context": [
+ " // Ensuring for loading page component routes is done via the matcher.",
+ " shouldEnsure: false",
+ " });",
+ " if (result) {",
+ " var _getTracer_getRootSpanAttributes;",
+ " (_getTracer_getRootSpanAttributes = (0, _tracer.getTracer)().getRootSpanAttributes()) == null ? void 0 : _getTracer_getRootSpanA {snip}",
+ " try {"
+ ]
+ },
+ {
+ "colno": 41,
+ "context_line": " return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderToResponseWithComponents, async ()=>this.renderToResponseWith {snip}",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderToResponseWithComponents",
+ "in_app": false,
+ "lineno": 997,
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " }",
+ " stripInternalHeaders(req) {",
+ " // Skip stripping internal headers in test mode while the header stripping",
+ " // has been explicitly disabled. This allows tests to verify internal",
+ " // routing behavior.",
+ " if (process.env.__NEXT_TEST_MODE && process.env.__NEXT_NO_STRIP_INTERNAL_HEADERS === \"1\") {",
+ " return;"
+ ],
+ "pre_context": [
+ " // `staticPaths` is intentionally set to `undefined` as it should've",
+ " // been caught when checking disk data.",
+ " staticPaths: undefined,",
+ " fallbackMode: typeof fallbackField === \"string\" ? \"static\" : fallbackField === null ? \"blocking\" : fallbackField",
+ " };",
+ " }",
+ " async renderToResponseWithComponents(requestContext, findComponentsResult) {"
+ ]
+ },
+ {
+ "colno": 20,
+ "context_line": " return fn();",
+ "filename": "[[FILENAME3]]",
+ "function": "NextTracerImpl.trace",
+ "in_app": false,
+ "lineno": 105,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " }",
+ " // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.",
+ " let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());",
+ " let isRootSpan = false;",
+ " if (!spanContext) {",
+ " spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;",
+ " isRootSpan = true;"
+ ],
+ "pre_context": [
+ " fn: fnOrEmpty,",
+ " options: {",
+ " ...fnOrOptions",
+ " }",
+ " };",
+ " const spanName = options.spanName ?? type;",
+ " if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== \"1\" || options.hideSpan) {"
+ ]
+ },
+ {
+ "colno": 121,
+ "context_line": "'{snip} ts1.BaseServerSpan.renderToResponseWithComponents, async ()=>this.renderToResponseWithComponentsImpl(requestContext, findComponentsResult));",
+ "filename": "[[FILENAME2]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 997,
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " }",
+ " stripInternalHeaders(req) {",
+ " // Skip stripping internal headers in test mode while the header stripping",
+ " // has been explicitly disabled. This allows tests to verify internal",
+ " // routing behavior.",
+ " if (process.env.__NEXT_TEST_MODE && process.env.__NEXT_NO_STRIP_INTERNAL_HEADERS === \"1\") {",
+ " return;"
+ ],
+ "pre_context": [
+ " // `staticPaths` is intentionally set to `undefined` as it should've",
+ " // been caught when checking disk data.",
+ " staticPaths: undefined,",
+ " fallbackMode: typeof fallbackField === \"string\" ? \"static\" : fallbackField === null ? \"blocking\" : fallbackField",
+ " };",
+ " }",
+ " async renderToResponseWithComponents(requestContext, findComponentsResult) {"
+ ]
+ },
+ {
+ "colno": 53,
+ "context_line": " const cacheEntry = await this.responseCache.get(ssgCacheKey, async (hasResolved, previousCacheEntry, isRevalidating)=>{",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderToResponseWithComponentsImpl",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " const isProduction = !this.renderOpts.dev;",
+ " const didRespond = hasResolved || res.sent;",
+ " if (!staticPaths) {",
+ " ({ staticPaths, fallbackMode } = hasStaticPaths ? await this.getStaticPaths({",
+ " pathname,",
+ " requestHeaders: req.headers,",
+ " isAppPath,"
+ ],
+ "pre_context": [
+ " postponed: metadata.postponed,",
+ " headers,",
+ " status: isAppPath ? res.statusCode : undefined",
+ " },",
+ " revalidate: metadata.revalidate",
+ " };",
+ " };"
+ ]
+ },
+ {
+ "colno": 26,
+ "context_line": " if (!key) return responseGenerator(false, null);",
+ "filename": "[[FILENAME4]]",
+ "function": "ResponseCache.get",
+ "in_app": false,
+ "lineno": 49,
+ "module": "next.dist.server.response-cache:index",
+ "post_context": [
+ " const { incrementalCache, isOnDemandRevalidate = false } = context;",
+ " const response = await this.batcher.batch({",
+ " key,",
+ " isOnDemandRevalidate",
+ " }, async (cacheKey, resolve)=>{",
+ " var _this_previousCacheItem;",
+ " // We keep the previous cache entry around to leverage when the"
+ ],
+ "pre_context": [
+ " // because we replace this.minimalMode to true in production bundles.",
+ " const minimalModeKey = \"minimalMode\";",
+ " this[minimalModeKey] = minimalMode;",
+ " }",
+ " async get(key, responseGenerator, context) {",
+ " // If there is no key for the cache, we can't possibly look this up in the",
+ " // cache so just return the result of the response generator."
+ ]
+ },
+ {
+ "colno": 34,
+ "context_line": " const result = await doRender({",
+ "filename": "[[FILENAME2]]",
+ "function": "cacheEntry.responseCache.get.routeKind",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " // Only requests that aren't revalidating can be resumed. If we have the",
+ " // minimal postponed data, then we should resume the render with it.",
+ " postponed: !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined",
+ " });",
+ " if (!result) {",
+ " return null;",
+ " }"
+ ],
+ "pre_context": [
+ " }",
+ " // Prevent caching this result",
+ " delete result.revalidate;",
+ " return result;",
+ " }",
+ " }",
+ " }"
+ ]
+ },
+ {
+ "colno": 60,
+ "context_line": " const response = await routeModule.handle(request, context);",
+ "filename": "[[FILENAME2]]",
+ "function": "doRender",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " req.fetchMetrics = context.renderOpts.fetchMetrics;",
+ " const cacheTags = context.renderOpts.fetchTags;",
+ " // If the request is for a static response, we can cache it so long",
+ " // as it's not edge.",
+ " if (isSSG && process.env.NEXT_RUNTIME !== \"edge\") {",
+ " var _context_renderOpts_store;",
+ " const blob = await response.blob();"
+ ],
+ "pre_context": [
+ " supportsDynamicHTML,",
+ " incrementalCache,",
+ " isRevalidate: isSSG",
+ " }",
+ " };",
+ " try {",
+ " const request = _nextrequest.NextRequestAdapter.fromBaseNextRequest(req, (0, _nextrequest.signalFromNodeResponse)(re {snip}"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} handler\");return s}async handle(e,t){try{return await this.execute(e,t)}catch(t){let e=function(e){if(eg(e)){let t=eg(e)?e.digest.split(\";\", {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "e_.handle",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} is.userland.fetchCache;let s=await this.actionAsyncStorage.run({isAppRoute:!0,isAction:function(e){let{isFetchAction:t,isURLEncodedAction:r, {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "e_.execute",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} Action:o,isFetchAction:a}}(e);return!!(t||r||n)}(e)},()=>H.wrap(this.requestAsyncStorage,n,()=>V.wrap(this.staticGenerationAsyncStorage,o,n= {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} },assetPrefix:(null==n?void 0:n.assetPrefix)||\"\"};return e.run(c,o,c)}};var I=r(\"./dist/compiled/react/index.js\"),U=r.n(I);let F=\"DYNAMIC_SE {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "Object.wrap",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} (t||r||n)}(e)},()=>H.wrap(this.requestAsyncStorage,n,()=>V.wrap(this.staticGenerationAsyncStorage,o,n=>{var o;let s=n.isStaticGeneration;if( {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} aftMode:r.isDraftMode,prerenderState:a};return r.store=s,e.run(s,n,s)}};function Y(){return new Response(null,{status:400})}function J(){ret {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "Object.wrap",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} SpanAttributes())||o.set(\"next.route\",l),(0,M.getTracer)().trace(d.runHandler,{spanName:`executing api route (app) ${l}`,attributes:{\"next.r {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 28,
+ "context_line": " return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{",
+ "filename": "[[FILENAME3]]",
+ "function": "NextTracerImpl.trace",
+ "in_app": false,
+ "lineno": 122,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " const startTime = \"performance\" in globalThis ? globalThis.performance.now() : undefined;",
+ " const onCleanup = ()=>{",
+ " rootSpanAttributesStore.delete(spanId);",
+ " if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || \"\")) {",
+ " performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split(\".\").pop() || \"\").replace(/[A-Z] {snip}",
+ " start: startTime,",
+ " end: performance.now()"
+ ],
+ "pre_context": [
+ " }",
+ " const spanId = getSpanId();",
+ " options.attributes = {",
+ " \"next.span_name\": spanName,",
+ " \"next.span_type\": type,",
+ " ...options.attributes",
+ " };"
+ ]
+ },
+ {
+ "colno": 46,
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "filename": "[[FILENAME7]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 60,
+ "module": "@opentelemetry.api.build.src.api:context",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ],
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ]
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME8]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME9]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 103,
+ "context_line": " return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{",
+ "filename": "[[FILENAME3]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 122,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " const startTime = \"performance\" in globalThis ? globalThis.performance.now() : undefined;",
+ " const onCleanup = ()=>{",
+ " rootSpanAttributesStore.delete(spanId);",
+ " if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || \"\")) {",
+ " performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split(\".\").pop() || \"\").replace(/[A-Z] {snip}",
+ " start: startTime,",
+ " end: performance.now()"
+ ],
+ "pre_context": [
+ " }",
+ " const spanId = getSpanId();",
+ " options.attributes = {",
+ " \"next.span_name\": spanName,",
+ " \"next.span_type\": type,",
+ " ...options.attributes",
+ " };"
+ ]
+ },
+ {
+ "colno": 76,
+ "filename": "[[FILENAME10]]",
+ "function": "Tracer.startActiveSpan",
+ "in_app": false,
+ "lineno": 136,
+ "module": "@opentelemetry.sdk-trace-base.build.esm:Tracer"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME11]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME8]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME9]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 36,
+ "context_line": " const result = fn(span);",
+ "filename": "[[FILENAME3]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 140,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " if (isPromise(result)) {",
+ " // If there's error make sure it throws",
+ " return result.then((res)=>{",
+ " span.end();",
+ " // Need to pass down the promise result,",
+ " // it could be react stream response with error { error, stream }",
+ " return res;"
+ ],
+ "pre_context": [
+ " if (isRootSpan) {",
+ " rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));",
+ " }",
+ " try {",
+ " if (fn.length > 1) {",
+ " return fn(span, (err)=>closeSpanWithError(span, err));",
+ " }"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} yncStorage:this.staticGenerationAsyncStorage});let o=await r(i,{params:t.params?function(e){let t={};for(let[r,n]of Object.entries(e))void 0 {snip}",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME12]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 64,
+ "module": "route.ts"
+ },
+ {
+ "colno": 52,
+ "filename": "[[FILENAME13]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 65,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME14]]",
+ "function": "Object.withIsolationScopeOrReuseFromRootSpan",
+ "in_app": false,
+ "lineno": 24,
+ "module": "@sentry.nextjs.cjs.common.utils:withIsolationScopeOrReuseFromRootSpan"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME15]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": 96,
+ "module": "@sentry.core.cjs:currentScopes"
+ },
+ {
+ "colno": 28,
+ "filename": "[[FILENAME8]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME11]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME8]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME9]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME6]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME8]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME13]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 73,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME13]]",
+ "function": "startOrUpdateSpan",
+ "in_app": false,
+ "lineno": 50,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 41,
+ "filename": "[[FILENAME13]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 74,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 26,
+ "filename": "[[FILENAME16]]",
+ "function": "Object.handleCallbackErrors",
+ "in_app": false,
+ "lineno": 26,
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors"
+ },
+ {
+ "colno": 38,
+ "filename": "[[FILENAME13]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 75,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 86,
+ "filename": "[[FILENAME12]]",
+ "function": "GET$1",
+ "in_app": false,
+ "lineno": 22,
+ "module": "route.ts"
+ }
+ ]
+ },
+ "type": "Error",
+ "value": "This is an error"
+ }
+ ]
+ },
+ "modules": {},
+ "platform": "node",
+ "request": {
+ "cookies": {},
+ "headers": {
+ "accept": "*/*",
+ "accept-encoding": "gzip, deflate, br",
+ "accept-language": "en-US,en;q=0.5",
+ "baggage": "sentry-environment=qa,sentry-public_key=3b6c388182fb435097f41d181be2b2ba,sentry-trace_id=7cd7e0c3aefe457d9b521e2faee8e354",
+ "cache-control": "no-cache",
+ "connection": "keep-alive",
+ "host": "localhost:3030",
+ "pragma": "no-cache",
+ "referer": "http://localhost:3030/",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "sentry-trace": "7cd7e0c3aefe457d9b521e2faee8e354-b0006bb220ed247c",
+ "user-agent": "[[user-agent]]",
+ "x-forwarded-for": "::ffff:127.0.0.1",
+ "x-forwarded-host": "localhost:3030",
+ "x-forwarded-port": "3030",
+ "x-forwarded-proto": "http"
+ },
+ "url": "http://localhost:3030"
+ },
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-error"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual--event.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual--event.json
new file mode 100644
index 0000000..596c1da
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual--event.json
@@ -0,0 +1,656 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-error/[param] in 373ms (2131 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error-manual in 304ms (2133 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "parent_span_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID4]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "exception": {
+ "values": [
+ {
+ "mechanism": {
+ "handled": true,
+ "type": "generic"
+ },
+ "stacktrace": {
+ "frames": [
+ {
+ "colno": 46,
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "filename": "[[FILENAME1]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 60,
+ "module": "@opentelemetry.api.build.src.api:context",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ],
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ]
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME2]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME3]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME4]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 103,
+ "context_line": " return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 122,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " const startTime = \"performance\" in globalThis ? globalThis.performance.now() : undefined;",
+ " const onCleanup = ()=>{",
+ " rootSpanAttributesStore.delete(spanId);",
+ " if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || \"\")) {",
+ " performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split(\".\").pop() || \"\").replace(/[A-Z] {snip}",
+ " start: startTime,",
+ " end: performance.now()"
+ ],
+ "pre_context": [
+ " }",
+ " const spanId = getSpanId();",
+ " options.attributes = {",
+ " \"next.span_name\": spanName,",
+ " \"next.span_type\": type,",
+ " ...options.attributes",
+ " };"
+ ]
+ },
+ {
+ "colno": 76,
+ "filename": "[[FILENAME6]]",
+ "function": "Tracer.startActiveSpan",
+ "in_app": false,
+ "lineno": 136,
+ "module": "@opentelemetry.sdk-trace-base.build.esm:Tracer"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME7]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME2]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME3]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME4]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 36,
+ "context_line": " const result = fn(span);",
+ "filename": "[[FILENAME5]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 140,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " if (isPromise(result)) {",
+ " // If there's error make sure it throws",
+ " return result.then((res)=>{",
+ " span.end();",
+ " // Need to pass down the promise result,",
+ " // it could be react stream response with error { error, stream }",
+ " return res;"
+ ],
+ "pre_context": [
+ " if (isRootSpan) {",
+ " rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));",
+ " }",
+ " try {",
+ " if (fn.length > 1) {",
+ " return fn(span, (err)=>closeSpanWithError(span, err));",
+ " }"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} yncStorage:this.staticGenerationAsyncStorage});let o=await r(i,{params:t.params?function(e){let t={};for(let[r,n]of Object.entries(e))void 0 {snip}",
+ "filename": "[[FILENAME8]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME9]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 72,
+ "module": "route.ts"
+ },
+ {
+ "colno": 52,
+ "filename": "[[FILENAME10]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 65,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME11]]",
+ "function": "Object.withIsolationScopeOrReuseFromRootSpan",
+ "in_app": false,
+ "lineno": 24,
+ "module": "@sentry.nextjs.cjs.common.utils:withIsolationScopeOrReuseFromRootSpan"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME12]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": 96,
+ "module": "@sentry.core.cjs:currentScopes"
+ },
+ {
+ "colno": 28,
+ "filename": "[[FILENAME2]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME7]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME2]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME3]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME4]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME2]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME10]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 73,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME10]]",
+ "function": "startOrUpdateSpan",
+ "in_app": false,
+ "lineno": 50,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 41,
+ "filename": "[[FILENAME10]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 74,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 26,
+ "filename": "[[FILENAME13]]",
+ "function": "Object.handleCallbackErrors",
+ "in_app": false,
+ "lineno": 26,
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors"
+ },
+ {
+ "colno": 38,
+ "filename": "[[FILENAME10]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 75,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 49,
+ "filename": "[[FILENAME9]]",
+ "function": "GET$1",
+ "in_app": false,
+ "lineno": 22,
+ "module": "route.ts"
+ },
+ {
+ "colno": 16,
+ "filename": "[[FILENAME14]]",
+ "function": "Object.startSpan",
+ "in_app": false,
+ "lineno": 35,
+ "module": "@sentry.core.cjs.tracing:trace"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME2]]",
+ "function": "Object.startSpan",
+ "in_app": false,
+ "lineno": 854,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 76,
+ "filename": "[[FILENAME6]]",
+ "function": "Tracer.startActiveSpan",
+ "in_app": false,
+ "lineno": 136,
+ "module": "@opentelemetry.sdk-trace-base.build.esm:Tracer"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME7]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME2]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME3]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME4]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME2]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 857,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 26,
+ "filename": "[[FILENAME15]]",
+ "function": "Object.handleCallbackErrors",
+ "in_app": false,
+ "lineno": 26,
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors"
+ },
+ {
+ "colno": 13,
+ "filename": "[[FILENAME2]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 858,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 53,
+ "filename": "[[FILENAME9]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 25,
+ "module": "route.ts"
+ },
+ {
+ "colno": 16,
+ "filename": "[[FILENAME14]]",
+ "function": "Object.startSpan",
+ "in_app": false,
+ "lineno": 35,
+ "module": "@sentry.core.cjs.tracing:trace"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME2]]",
+ "function": "Object.startSpan",
+ "in_app": false,
+ "lineno": 854,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 76,
+ "filename": "[[FILENAME6]]",
+ "function": "Tracer.startActiveSpan",
+ "in_app": false,
+ "lineno": 136,
+ "module": "@opentelemetry.sdk-trace-base.build.esm:Tracer"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME7]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME2]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME3]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME4]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME2]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 857,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 26,
+ "filename": "[[FILENAME15]]",
+ "function": "Object.handleCallbackErrors",
+ "in_app": false,
+ "lineno": 26,
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors"
+ },
+ {
+ "colno": 13,
+ "filename": "[[FILENAME2]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 858,
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 74,
+ "filename": "[[FILENAME9]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 28,
+ "module": "route.ts"
+ }
+ ]
+ },
+ "type": "Error",
+ "value": "This is an error"
+ }
+ ]
+ },
+ "modules": {},
+ "platform": "node",
+ "request": {
+ "cookies": {},
+ "headers": {
+ "accept": "*/*",
+ "accept-encoding": "gzip, deflate, br",
+ "accept-language": "en-US,en;q=0.5",
+ "baggage": "sentry-environment=qa,sentry-public_key=3b6c388182fb435097f41d181be2b2ba,sentry-trace_id=7cd7e0c3aefe457d9b521e2faee8e354",
+ "cache-control": "no-cache",
+ "connection": "keep-alive",
+ "host": "localhost:3030",
+ "pragma": "no-cache",
+ "referer": "http://localhost:3030/",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "sentry-trace": "7cd7e0c3aefe457d9b521e2faee8e354-b0006bb220ed247c",
+ "user-agent": "[[user-agent]]",
+ "x-forwarded-for": "::ffff:127.0.0.1",
+ "x-forwarded-host": "localhost:3030",
+ "x-forwarded-port": "3030",
+ "x-forwarded-proto": "http"
+ },
+ "url": "http://localhost:3030"
+ },
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-error-manual"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual_route--transaction.json
new file mode 100644
index 0000000..08db7b0
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error-manual_route--transaction.json
@@ -0,0 +1,261 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-error/[param] in 373ms (2131 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-error-manual/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-error-manual",
+ "next.route": "/api/test-error-manual/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-error-manual/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-error-manual",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-error-manual/route",
+ "next.span_name": "executing api route (app) /api/test-error-manual/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-error-manual/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "test-span",
+ "origin": "manual",
+ "parent_span_id": "[[ID6]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "child-span",
+ "origin": "manual",
+ "parent_span_id": "[[ID7]]",
+ "span_id": "[[ID8]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID9]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-error-manual/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error_route--transaction.json
new file mode 100644
index 0000000..751083e
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-error_route--transaction.json
@@ -0,0 +1,209 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-error/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-error",
+ "next.route": "/api/test-error/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-error/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-error",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-error/route",
+ "next.span_name": "executing api route (app) /api/test-error/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-error/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-error/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-caught_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-caught_route--transaction.json
new file mode 100644
index 0000000..e871d32
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-caught_route--transaction.json
@@ -0,0 +1,251 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-error/[param] in 373ms (2131 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error-manual in 304ms (2133 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-local-variables-uncaught in 241ms (2135 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "error",
+ "message": " \u001b[31m\u001b[1m⨯\u001b[22m\u001b[39m Error: Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL_VARIABLE\"}\n at GET$1 (webpack-internal:///(rsc)/./app/api/test-local-variables-uncaught/route.ts:23:11)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:75:38)\n at Object.handleCallbackErrors (webpack-internal:///(rsc)/../../node_modules/@sentry/core/cjs/utils/handleCallbackErrors.js:26:26)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:74:41)\n at startOrUpdateSpan (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:50:10)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:73:24)\n at eval (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1185:14)\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/api/build/esm/api/context.js:95:54)\n at Object.withIsolationScope (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1184:28)\n at Object.withIsolationScope (webpack-internal:///(rsc)/../../node_modules/@sentry/core/cjs/currentScopes.js:96:14)\n at Object.withIsolationScopeOrReuseFromRootSpan (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/utils/withIsolationScopeOrReuseFromRootSpan.js:24:17)\n at Object.apply (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:65:52)\n at Object.apply (webpack-internal:///(rsc)/./app/api/test-local-variables-uncaught/route.ts:63:10)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:53244\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:140:36\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/api/build/esm/api/context.js:95:54)\n at Tracer.startActiveSpan (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js:136:76)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:122:103\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (/Users/sigridh/Documents/DEV/sentry-javascript-examples/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\n at NextTracerImpl.trace (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:122:28)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:46069\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at Object.wrap (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:39157)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:45176\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at Object.wrap (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:37592)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:45138\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at e_.execute (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:44531)\n at e_.handle (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:54503)\n at doRender (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1372:60)\n at cacheEntry.responseCache.get.routeKind (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1594:34)\n at ResponseCache.get (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/response-cache/index.js:49:26)\n at DevServer.renderToResponseWithComponentsImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1502:53)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:997:121\n at NextTracerImpl.trace (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:105:20)\n at DevServer.renderToResponseWithComponents (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:997:41)\n at DevServer.renderPageComponent (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1919:35)\n at async DevServer.renderToResponseImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1957:32)\n at async DevServer.pipeImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:915:25)\n at async NextNodeServer.handleCatchallRenderRequest (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/next-server.js:272:17)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-local-variables-caught/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-local-variables-caught",
+ "next.route": "/api/test-local-variables-caught/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-local-variables-caught/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-local-variables-caught",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-local-variables-caught/route",
+ "next.span_name": "executing api route (app) /api/test-local-variables-caught/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-local-variables-caught/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-local-variables-caught/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-uncaught_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-uncaught_route--transaction.json
new file mode 100644
index 0000000..cab9cdf
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-local-variables-uncaught_route--transaction.json
@@ -0,0 +1,241 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-error/[param] in 373ms (2131 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error-manual in 304ms (2133 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-local-variables-uncaught in 241ms (2135 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "error",
+ "message": " \u001b[31m\u001b[1m⨯\u001b[22m\u001b[39m Error: Uncaught Local Variable Error - {\"randomVariableToRecord\":\"LOCAL_VARIABLE\"}\n at GET$1 (webpack-internal:///(rsc)/./app/api/test-local-variables-uncaught/route.ts:23:11)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:75:38)\n at Object.handleCallbackErrors (webpack-internal:///(rsc)/../../node_modules/@sentry/core/cjs/utils/handleCallbackErrors.js:26:26)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:74:41)\n at startOrUpdateSpan (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:50:10)\n at eval (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:73:24)\n at eval (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1185:14)\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/api/build/esm/api/context.js:95:54)\n at Object.withIsolationScope (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1184:28)\n at Object.withIsolationScope (webpack-internal:///(rsc)/../../node_modules/@sentry/core/cjs/currentScopes.js:96:14)\n at Object.withIsolationScopeOrReuseFromRootSpan (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/utils/withIsolationScopeOrReuseFromRootSpan.js:24:17)\n at Object.apply (webpack-internal:///(rsc)/./node_modules/@sentry/nextjs/cjs/common/wrapRouteHandlerWithSentry.js:65:52)\n at Object.apply (webpack-internal:///(rsc)/./app/api/test-local-variables-uncaught/route.ts:63:10)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:53244\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:140:36\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/api/build/esm/api/context.js:95:54)\n at Tracer.startActiveSpan (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js:136:76)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:122:103\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js:33:40)\n at SentryContextManager.with (webpack-internal:///(instrument)/../../node_modules/@sentry/opentelemetry/cjs/index.js:1287:24)\n at ContextAPI.with (/Users/sigridh/Documents/DEV/sentry-javascript-examples/node_modules/@opentelemetry/api/build/src/api/context.js:60:46)\n at NextTracerImpl.trace (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:122:28)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:46069\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at Object.wrap (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:39157)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:45176\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at Object.wrap (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:37592)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:45138\n at AsyncLocalStorage.run (node:async_hooks:346:14)\n at e_.execute (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:44531)\n at e_.handle (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:54503)\n at doRender (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1372:60)\n at cacheEntry.responseCache.get.routeKind (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1594:34)\n at ResponseCache.get (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/response-cache/index.js:49:26)\n at DevServer.renderToResponseWithComponentsImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1502:53)\n at /Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:997:121\n at NextTracerImpl.trace (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/lib/trace/tracer.js:105:20)\n at DevServer.renderToResponseWithComponents (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:997:41)\n at DevServer.renderPageComponent (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1919:35)\n at async DevServer.renderToResponseImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:1957:32)\n at async DevServer.pipeImpl (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/base-server.js:915:25)\n at async NextNodeServer.handleCatchallRenderRequest (/Users/sigridh/Documents/DEV/sentry-javascript-examples/apps/nextjs-14_2_1/node_modules/next/dist/server/next-server.js:272:17)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-local-variables-caught in 316ms (2137 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 500,
+ "http.route": "/api/test-local-variables-uncaught/route",
+ "http.status_code": 500,
+ "http.target": "/api/test-local-variables-uncaught",
+ "next.route": "/api/test-local-variables-uncaught/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-local-variables-uncaught/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "internal_error",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-local-variables-uncaught",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-local-variables-uncaught/route",
+ "next.span_name": "executing api route (app) /api/test-local-variables-uncaught/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-local-variables-uncaught/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "unknown_error",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-local-variables-uncaught/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]--event.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]--event.json
new file mode 100644
index 0000000..71e3db1
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]--event.json
@@ -0,0 +1,937 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]"
+ },
+ {
+ "type": "event"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-error/[param] in 373ms (2131 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "parent_span_id": "[[ID2]]",
+ "span_id": "[[ID3]]",
+ "trace_id": "[[ID4]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "exception": {
+ "values": [
+ {
+ "mechanism": {
+ "handled": true,
+ "type": "generic"
+ },
+ "stacktrace": {
+ "frames": [
+ {
+ "colno": 20,
+ "context_line": " return await super.handleRequest(req, res, parsedUrl);",
+ "filename": "[[FILENAME1]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 339,
+ "module": "next.dist.server.dev:next-dev-server",
+ "post_context": [
+ " });",
+ " const memoryUsage = process.memoryUsage();",
+ " span.traceChild(\"memory-usage\", {",
+ " url: req.url,",
+ " \"memory.rss\": String(memoryUsage.rss),",
+ " \"memory.heapUsed\": String(memoryUsage.heapUsed),",
+ " \"memory.heapTotal\": String(memoryUsage.heapTotal)"
+ ],
+ "pre_context": [
+ " async handleRequest(req, res, parsedUrl) {",
+ " const span = (0, _trace.trace)(\"handle-request\", undefined, {",
+ " url: req.url",
+ " });",
+ " const result = await span.traceAsyncFn(async ()=>{",
+ " var _this_ready;",
+ " await ((_this_ready = this.ready) == null ? void 0 : _this_ready.promise);"
+ ]
+ },
+ {
+ "colno": 17,
+ "context_line": " await this.handleCatchallRenderRequest(req, res, parsedUrl);",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.handleRequestImpl",
+ "in_app": false,
+ "lineno": 811,
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " return;",
+ " }",
+ " if (process.env.NEXT_RUNTIME !== \"edge\" && req.headers[\"x-middleware-invoke\"]) {",
+ " finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl);",
+ " if (finished) return;",
+ " finished = await this.handleCatchallMiddlewareRequest(req, res, parsedUrl);",
+ " if (finished) return;"
+ ],
+ "pre_context": [
+ " }",
+ " const invokeQuery = req.headers[\"x-invoke-query\"];",
+ " if (typeof invokeQuery === \"string\") {",
+ " Object.assign(parsedUrl.query, JSON.parse(decodeURIComponent(invokeQuery)));",
+ " }",
+ " finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl);",
+ " if (finished) return;"
+ ]
+ },
+ {
+ "colno": 17,
+ "context_line": " await this.render(req, res, pathname, query, parsedUrl, true);",
+ "filename": "[[FILENAME3]]",
+ "function": "NextNodeServer.handleCatchallRenderRequest",
+ "in_app": false,
+ "lineno": 272,
+ "module": "next.dist.server:next-server",
+ "post_context": [
+ " return true;",
+ " } catch (err) {",
+ " if (err instanceof _baseserver.NoFallbackError) {",
+ " throw err;",
+ " }",
+ " try {",
+ " if (this.renderOpts.dev) {"
+ ],
+ "pre_context": [
+ " await this.render404(req, res, parsedUrl);",
+ " return true;",
+ " }",
+ " delete query._nextBubbleNoFallback;",
+ " const handled = await this.handleApiRequest(req, res, query, match);",
+ " if (handled) return true;",
+ " }"
+ ]
+ },
+ {
+ "colno": 25,
+ "context_line": " const payload = await fn(ctx);",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.pipeImpl",
+ "in_app": false,
+ "lineno": 915,
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " if (payload === null) {",
+ " return;",
+ " }",
+ " const { req, res } = ctx;",
+ " const originalStatus = res.statusCode;",
+ " const { body, type } = payload;",
+ " let { revalidate } = payload;"
+ ],
+ "pre_context": [
+ " ...partialContext,",
+ " renderOpts: {",
+ " ...this.renderOpts,",
+ " supportsDynamicHTML: !isBotRequest,",
+ " isBot: !!isBotRequest",
+ " }",
+ " };"
+ ]
+ },
+ {
+ "colno": 32,
+ "context_line": " const result = await this.renderPageComponent({",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderToResponseImpl",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " ...ctx,",
+ " pathname: match.definition.pathname,",
+ " renderOpts: {",
+ " ...ctx.renderOpts,",
+ " params: match.params",
+ " }",
+ " }, bubbleNoFallback);"
+ ],
+ "pre_context": [
+ " for await (const match of this.matchers.matchAll(pathname, options)){",
+ " // when a specific invoke-output is meant to be matched",
+ " // ensure a prior dynamic route/page doesn't take priority",
+ " const invokeOutput = ctx.req.headers[\"x-invoke-output\"];",
+ " if (!this.minimalMode && typeof invokeOutput === \"string\" && (0, _utils1.isDynamicRoute)(invokeOutput || \"\") && invokeOutput {snip}",
+ " continue;",
+ " }"
+ ]
+ },
+ {
+ "colno": 24,
+ "context_line": " return await this.renderToResponseWithComponents(ctx, result);",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderPageComponent",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " } catch (err) {",
+ " const isNoFallbackError = err instanceof NoFallbackError;",
+ " if (!isNoFallbackError || isNoFallbackError && bubbleNoFallback) {",
+ " throw err;",
+ " }",
+ " }",
+ " }"
+ ],
+ "pre_context": [
+ " // Ensuring for loading page component routes is done via the matcher.",
+ " shouldEnsure: false",
+ " });",
+ " if (result) {",
+ " var _getTracer_getRootSpanAttributes;",
+ " (_getTracer_getRootSpanAttributes = (0, _tracer.getTracer)().getRootSpanAttributes()) == null ? void 0 : _getTracer_getRootSpanA {snip}",
+ " try {"
+ ]
+ },
+ {
+ "colno": 5,
+ "filename": "[[FILENAME4]]",
+ "function": "process.processTicksAndRejections",
+ "in_app": false,
+ "lineno": 95,
+ "module": "task_queues",
+ "platform": "nodejs"
+ },
+ {
+ "colno": 53,
+ "context_line": " const cacheEntry = await this.responseCache.get(ssgCacheKey, async (hasResolved, previousCacheEntry, isRevalidating)=>{",
+ "filename": "[[FILENAME2]]",
+ "function": "DevServer.renderToResponseWithComponentsImpl",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " const isProduction = !this.renderOpts.dev;",
+ " const didRespond = hasResolved || res.sent;",
+ " if (!staticPaths) {",
+ " ({ staticPaths, fallbackMode } = hasStaticPaths ? await this.getStaticPaths({",
+ " pathname,",
+ " requestHeaders: req.headers,",
+ " isAppPath,"
+ ],
+ "pre_context": [
+ " postponed: metadata.postponed,",
+ " headers,",
+ " status: isAppPath ? res.statusCode : undefined",
+ " },",
+ " revalidate: metadata.revalidate",
+ " };",
+ " };"
+ ]
+ },
+ {
+ "colno": 26,
+ "context_line": " if (!key) return responseGenerator(false, null);",
+ "filename": "[[FILENAME5]]",
+ "function": "ResponseCache.get",
+ "in_app": false,
+ "lineno": 49,
+ "module": "next.dist.server.response-cache:index",
+ "post_context": [
+ " const { incrementalCache, isOnDemandRevalidate = false } = context;",
+ " const response = await this.batcher.batch({",
+ " key,",
+ " isOnDemandRevalidate",
+ " }, async (cacheKey, resolve)=>{",
+ " var _this_previousCacheItem;",
+ " // We keep the previous cache entry around to leverage when the"
+ ],
+ "pre_context": [
+ " // because we replace this.minimalMode to true in production bundles.",
+ " const minimalModeKey = \"minimalMode\";",
+ " this[minimalModeKey] = minimalMode;",
+ " }",
+ " async get(key, responseGenerator, context) {",
+ " // If there is no key for the cache, we can't possibly look this up in the",
+ " // cache so just return the result of the response generator."
+ ]
+ },
+ {
+ "colno": 46,
+ "context_line": " const result = await doRender({",
+ "filename": "[[FILENAME2]]",
+ "function": "cacheEntry.responseCache.get.routeKind",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " postponed: undefined",
+ " });",
+ " if (!result) {",
+ " return null;",
+ " }",
+ " // Prevent caching this result",
+ " delete result.revalidate;"
+ ],
+ "pre_context": [
+ " pageData: {}",
+ " }",
+ " };",
+ " } else {",
+ " query.__nextFallback = \"true\";",
+ " // We pass `undefined` as there cannot be a postponed state in",
+ " // development."
+ ]
+ },
+ {
+ "colno": 60,
+ "context_line": " const response = await routeModule.handle(request, context);",
+ "filename": "[[FILENAME2]]",
+ "function": "doRender",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "next.dist.server:base-server",
+ "post_context": [
+ " req.fetchMetrics = context.renderOpts.fetchMetrics;",
+ " const cacheTags = context.renderOpts.fetchTags;",
+ " // If the request is for a static response, we can cache it so long",
+ " // as it's not edge.",
+ " if (isSSG && process.env.NEXT_RUNTIME !== \"edge\") {",
+ " var _context_renderOpts_store;",
+ " const blob = await response.blob();"
+ ],
+ "pre_context": [
+ " supportsDynamicHTML,",
+ " incrementalCache,",
+ " isRevalidate: isSSG",
+ " }",
+ " };",
+ " try {",
+ " const request = _nextrequest.NextRequestAdapter.fromBaseNextRequest(req, (0, _nextrequest.signalFromNodeResponse)(re {snip}"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} handler\");return s}async handle(e,t){try{return await this.execute(e,t)}catch(t){let e=function(e){if(eg(e)){let t=eg(e)?e.digest.split(\";\", {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "e_.handle",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} is.userland.fetchCache;let s=await this.actionAsyncStorage.run({isAppRoute:!0,isAction:function(e){let{isFetchAction:t,isURLEncodedAction:r, {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "e_.execute",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} Action:o,isFetchAction:a}}(e);return!!(t||r||n)}(e)},()=>H.wrap(this.requestAsyncStorage,n,()=>V.wrap(this.staticGenerationAsyncStorage,o,n= {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} },assetPrefix:(null==n?void 0:n.assetPrefix)||\"\"};return e.run(c,o,c)}};var I=r(\"./dist/compiled/react/index.js\"),U=r.n(I);let F=\"DYNAMIC_SE {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "Object.wrap",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} (t||r||n)}(e)},()=>H.wrap(this.requestAsyncStorage,n,()=>V.wrap(this.staticGenerationAsyncStorage,o,n=>{var o;let s=n.isStaticGeneration;if( {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} aftMode:r.isDraftMode,prerenderState:a};return r.store=s,e.run(s,n,s)}};function Y(){return new Response(null,{status:400})}function J(){ret {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "Object.wrap",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} SpanAttributes())||o.set(\"next.route\",l),(0,M.getTracer)().trace(d.runHandler,{spanName:`executing api route (app) ${l}`,attributes:{\"next.r {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 28,
+ "context_line": " return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{",
+ "filename": "[[FILENAME8]]",
+ "function": "NextTracerImpl.trace",
+ "in_app": false,
+ "lineno": 122,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " const startTime = \"performance\" in globalThis ? globalThis.performance.now() : undefined;",
+ " const onCleanup = ()=>{",
+ " rootSpanAttributesStore.delete(spanId);",
+ " if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || \"\")) {",
+ " performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split(\".\").pop() || \"\").replace(/[A-Z] {snip}",
+ " start: startTime,",
+ " end: performance.now()"
+ ],
+ "pre_context": [
+ " }",
+ " const spanId = getSpanId();",
+ " options.attributes = {",
+ " \"next.span_name\": spanName,",
+ " \"next.span_type\": type,",
+ " ...options.attributes",
+ " };"
+ ]
+ },
+ {
+ "colno": 46,
+ "context_line": " return this._getContextManager().with(context, fn, thisArg, ...args);",
+ "filename": "[[FILENAME9]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 60,
+ "module": "@opentelemetry.api.build.src.api:context",
+ "post_context": [
+ " }",
+ " /**",
+ " * Bind a context to a target function or event emitter",
+ " *",
+ " * @param context context to bind to the event emitter or function. Defaults to the currently active context",
+ " * @param target function or event emitter to bind",
+ " */"
+ ],
+ "pre_context": [
+ " *",
+ " * @param context context to be active during function execution",
+ " * @param fn function to execute in a context",
+ " * @param thisArg optional receiver to be used for calling fn",
+ " * @param args optional arguments forwarded to fn",
+ " */",
+ " with(context, fn, thisArg, ...args) {"
+ ]
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME10]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME11]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 103,
+ "context_line": " return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{",
+ "filename": "[[FILENAME8]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 122,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " const startTime = \"performance\" in globalThis ? globalThis.performance.now() : undefined;",
+ " const onCleanup = ()=>{",
+ " rootSpanAttributesStore.delete(spanId);",
+ " if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || \"\")) {",
+ " performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split(\".\").pop() || \"\").replace(/[A-Z] {snip}",
+ " start: startTime,",
+ " end: performance.now()"
+ ],
+ "pre_context": [
+ " }",
+ " const spanId = getSpanId();",
+ " options.attributes = {",
+ " \"next.span_name\": spanName,",
+ " \"next.span_type\": type,",
+ " ...options.attributes",
+ " };"
+ ]
+ },
+ {
+ "colno": 76,
+ "filename": "[[FILENAME12]]",
+ "function": "Tracer.startActiveSpan",
+ "in_app": false,
+ "lineno": 136,
+ "module": "@opentelemetry.sdk-trace-base.build.esm:Tracer"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME13]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME10]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME11]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 36,
+ "context_line": " const result = fn(span);",
+ "filename": "[[FILENAME8]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 140,
+ "module": "next.dist.server.lib.trace:tracer",
+ "post_context": [
+ " if (isPromise(result)) {",
+ " // If there's error make sure it throws",
+ " return result.then((res)=>{",
+ " span.end();",
+ " // Need to pass down the promise result,",
+ " // it could be react stream response with error { error, stream }",
+ " return res;"
+ ],
+ "pre_context": [
+ " if (isRootSpan) {",
+ " rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));",
+ " }",
+ " try {",
+ " if (fn.length > 1) {",
+ " return fn(span, (err)=>closeSpanWithError(span, err));",
+ " }"
+ ]
+ },
+ {
+ "colno": "[[highNumber]]",
+ "context_line": "'{snip} yncStorage:this.staticGenerationAsyncStorage});let o=await r(i,{params:t.params?function(e){let t={};for(let[r,n]of Object.entries(e))void 0 {snip}",
+ "filename": "[[FILENAME6]]",
+ "function": "?",
+ "in_app": false,
+ "lineno": 6,
+ "module": "next.dist.compiled.next-server:app-route.runtime.dev",
+ "post_context": [
+ "//# sourceMappingURL=app-route.runtime.dev.js.map"
+ ],
+ "pre_context": [
+ "(()=>{var e={\"./dist/compiled/@edge-runtime/cookies/index.js\":e=>{\"use strict\";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor {snip}",
+ " * cookie",
+ " * Copyright(c) 2012-2014 Roman Shtylman",
+ " * Copyright(c) 2015 Douglas Christopher Wilson",
+ " * MIT Licensed"
+ ]
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME14]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 68,
+ "module": "route.ts"
+ },
+ {
+ "colno": 52,
+ "filename": "[[FILENAME15]]",
+ "function": "Object.apply",
+ "in_app": false,
+ "lineno": 65,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 17,
+ "filename": "[[FILENAME16]]",
+ "function": "Object.withIsolationScopeOrReuseFromRootSpan",
+ "in_app": false,
+ "lineno": 24,
+ "module": "@sentry.nextjs.cjs.common.utils:withIsolationScopeOrReuseFromRootSpan"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME17]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": 96,
+ "module": "@sentry.core.cjs:currentScopes"
+ },
+ {
+ "colno": 28,
+ "filename": "[[FILENAME10]]",
+ "function": "Object.withIsolationScope",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 54,
+ "filename": "[[FILENAME13]]",
+ "function": "ContextAPI.with",
+ "in_app": false,
+ "lineno": 95,
+ "module": "@opentelemetry.api.build.esm.api:context"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME10]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 40,
+ "filename": "[[FILENAME11]]",
+ "function": "SentryContextManager.with",
+ "in_app": false,
+ "lineno": 33,
+ "module": "@opentelemetry.context-async-hooks.build.src:AsyncLocalStorageContextManager"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME7]]",
+ "function": "AsyncLocalStorage.run",
+ "in_app": false,
+ "lineno": 346,
+ "module": "node:async_hooks"
+ },
+ {
+ "colno": 14,
+ "filename": "[[FILENAME10]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": "[[highNumber]]",
+ "module": "@sentry.opentelemetry.cjs:index"
+ },
+ {
+ "colno": 24,
+ "filename": "[[FILENAME15]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 73,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 10,
+ "filename": "[[FILENAME15]]",
+ "function": "startOrUpdateSpan",
+ "in_app": false,
+ "lineno": 50,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 41,
+ "filename": "[[FILENAME15]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 74,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 26,
+ "filename": "[[FILENAME18]]",
+ "function": "Object.handleCallbackErrors",
+ "in_app": false,
+ "lineno": 26,
+ "module": "@sentry.core.cjs.utils:handleCallbackErrors"
+ },
+ {
+ "colno": 38,
+ "filename": "[[FILENAME15]]",
+ "function": "eval",
+ "in_app": false,
+ "lineno": 75,
+ "module": "@sentry.nextjs.cjs.common:wrapRouteHandlerWithSentry"
+ },
+ {
+ "colno": 86,
+ "filename": "[[FILENAME14]]",
+ "function": "GET$1",
+ "in_app": false,
+ "lineno": 22,
+ "module": "route.ts"
+ }
+ ]
+ },
+ "type": "Error",
+ "value": "This is an error"
+ }
+ ]
+ },
+ "modules": {},
+ "platform": "node",
+ "request": {
+ "cookies": {},
+ "headers": {
+ "accept": "*/*",
+ "accept-encoding": "gzip, deflate, br",
+ "accept-language": "en-US,en;q=0.5",
+ "baggage": "sentry-environment=qa,sentry-public_key=3b6c388182fb435097f41d181be2b2ba,sentry-trace_id=7cd7e0c3aefe457d9b521e2faee8e354",
+ "cache-control": "no-cache",
+ "connection": "keep-alive",
+ "host": "localhost:3030",
+ "pragma": "no-cache",
+ "referer": "http://localhost:3030/",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "sentry-trace": "7cd7e0c3aefe457d9b521e2faee8e354-b0006bb220ed247c",
+ "user-agent": "[[user-agent]]",
+ "x-forwarded-for": "::ffff:127.0.0.1",
+ "x-forwarded-host": "localhost:3030",
+ "x-forwarded-port": "3030",
+ "x-forwarded-proto": "http"
+ },
+ "url": "http://localhost:3030"
+ },
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-param-error/[param]"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]_route--transaction.json
new file mode 100644
index 0000000..1717b20
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-error_[param]_route--transaction.json
@@ -0,0 +1,227 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success-manual in 251ms (2129 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-param-error/[param]/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-param-error/1337",
+ "next.route": "/api/test-param-error/[param]/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-param-error/[param]/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-param-error/[param]",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-param-error/[param]/route",
+ "next.span_name": "executing api route (app) /api/test-param-error/[param]/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-param-error/[param]/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-param-error/[param]/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-success_[param]_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-success_[param]_route--transaction.json
new file mode 100644
index 0000000..472356b
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-param-success_[param]_route--transaction.json
@@ -0,0 +1,215 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-param-success/[param]/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-param-success/1337",
+ "next.route": "/api/test-param-success/[param]/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-param-success/[param]/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-param-success/[param]",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-param-success/[param]/route",
+ "next.span_name": "executing api route (app) /api/test-param-success/[param]/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-param-success/[param]/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-param-success/[param]/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success-manual_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success-manual_route--transaction.json
new file mode 100644
index 0000000..b9fcf48
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success-manual_route--transaction.json
@@ -0,0 +1,249 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-error in 481ms (2125 modules)",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-param-success/[param] in 259ms (2127 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-success-manual/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-success-manual",
+ "next.route": "/api/test-success-manual/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-success-manual/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-success-manual",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-success-manual/route",
+ "next.span_name": "executing api route (app) /api/test-success-manual/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-success-manual/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "test-span",
+ "origin": "manual",
+ "parent_span_id": "[[ID6]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "child-span",
+ "origin": "manual",
+ "parent_span_id": "[[ID7]]",
+ "span_id": "[[ID8]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID9]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-success-manual/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success_route--transaction.json b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success_route--transaction.json
new file mode 100644
index 0000000..467fa36
--- /dev/null
+++ b/utils/event-proxy-server/payload-files/nextjs-14_2_1/route-handlers/_api_test-success_route--transaction.json
@@ -0,0 +1,209 @@
+[
+ {
+ "dsn": "[[dsn]]",
+ "event_id": "[[ID1]]",
+ "sdk": {
+ "name": "sentry.javascript.nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ "sent_at": "[[ISODateString]]",
+ "trace": {
+ "environment": "qa",
+ "public_key": "[[publicKey]]",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ {
+ "type": "transaction"
+ },
+ {
+ "breadcrumbs": [
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 5.6s",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[37m\u001b[1mâ—‹\u001b[22m\u001b[39m Compiling /api/test-success ...",
+ "timestamp": "[[timestamp]]"
+ },
+ {
+ "category": "console",
+ "level": "log",
+ "message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Compiled /api/test-success in 1849ms (2123 modules)",
+ "timestamp": "[[timestamp]]"
+ }
+ ],
+ "contexts": {
+ "app": {
+ "app_memory": "[[highNumber]]",
+ "app_start_time": "[[ISODateString]]"
+ },
+ "cloud_resource": {},
+ "culture": {
+ "locale": "en-US",
+ "timezone": "Europe/Vienna"
+ },
+ "device": {
+ "arch": "arm64",
+ "boot_time": "[[ISODateString]]",
+ "cpu_description": "Apple M1 Pro",
+ "free_memory": "[[highNumber]]",
+ "memory_size": "[[highNumber]]",
+ "processor_count": 10,
+ "processor_frequency": "[[highNumber]]"
+ },
+ "os": {
+ "build": "23C64",
+ "kernel_version": "23.2.0",
+ "name": "macOS",
+ "version": "14.2"
+ },
+ "otel": {
+ "resource": {
+ "service.name": "node",
+ "service.namespace": "sentry",
+ "service.version": "8.0.0-beta.1",
+ "telemetry.sdk.language": "nodejs",
+ "telemetry.sdk.name": "opentelemetry",
+ "telemetry.sdk.version": "1.21.0"
+ }
+ },
+ "runtime": {
+ "name": "node",
+ "version": "v20.12.1"
+ },
+ "trace": {
+ "data": {
+ "http.method": "GET",
+ "http.response.status_code": 200,
+ "http.route": "/api/test-success/route",
+ "http.status_code": 200,
+ "http.target": "/api/test-success",
+ "next.route": "/api/test-success/route",
+ "next.rsc": false,
+ "next.span_name": "GET /api/test-success/route",
+ "next.span_type": "BaseServer.handleRequest",
+ "otel.kind": "SERVER",
+ "sentry.op": "http.server",
+ "sentry.origin": "auto.function.nextjs",
+ "sentry.sample_rate": 1,
+ "sentry.source": "route"
+ },
+ "op": "http.server",
+ "origin": "auto.function.nextjs",
+ "parent_span_id": "[[ID3]]",
+ "span_id": "[[ID4]]",
+ "status": "ok",
+ "trace_id": "[[ID2]]"
+ }
+ },
+ "environment": "qa",
+ "event_id": "[[ID1]]",
+ "modules": {},
+ "platform": "node",
+ "sdk": {
+ "integrations": [
+ "InboundFilters",
+ "FunctionToString",
+ "LinkedErrors",
+ "RequestData",
+ "Console",
+ "OnUncaughtException",
+ "OnUnhandledRejection",
+ "ContextLines",
+ "LocalVariables",
+ "Context",
+ "Modules",
+ "Express",
+ "Fastify",
+ "Graphql",
+ "Mongo",
+ "Mongoose",
+ "Mysql",
+ "Mysql2",
+ "Postgres",
+ "Nest",
+ "Hapi",
+ "Koa",
+ "RequestIsolationScope",
+ "DistDirRewriteFrames"
+ ],
+ "name": "sentry.javascript.nextjs",
+ "packages": [
+ {
+ "name": "npm:@sentry/nextjs",
+ "version": "8.0.0-beta.1"
+ },
+ {
+ "name": "npm:@sentry/node",
+ "version": "8.0.0-beta.1"
+ }
+ ],
+ "version": "8.0.0-beta.1"
+ },
+ "server_name": "D9M3PY4LQ7.local",
+ "spans": [
+ {
+ "data": {
+ "next.route": "/api/test-success",
+ "next.span_name": "resolve page components",
+ "next.span_type": "NextNodeServer.findPageComponents",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "resolve page components",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID5]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.route": "/api/test-success/route",
+ "next.span_name": "executing api route (app) /api/test-success/route",
+ "next.span_type": "AppRouteRouteHandlers.runHandler",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "executing api route (app) /api/test-success/route",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID6]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ },
+ {
+ "data": {
+ "next.span_name": "start response",
+ "next.span_type": "NextNodeServer.startResponse",
+ "otel.kind": "INTERNAL",
+ "sentry.origin": "manual"
+ },
+ "description": "start response",
+ "origin": "manual",
+ "parent_span_id": "[[ID4]]",
+ "span_id": "[[ID7]]",
+ "start_timestamp": "[[timestamp]]",
+ "status": "ok",
+ "timestamp": "[[timestamp]]",
+ "trace_id": "[[ID2]]"
+ }
+ ],
+ "start_timestamp": "[[timestamp]]",
+ "timestamp": "[[timestamp]]",
+ "transaction": "GET /api/test-success/route",
+ "transaction_info": {
+ "source": "route"
+ },
+ "type": "transaction"
+ }
+]
\ No newline at end of file
diff --git a/utils/event-proxy-server/payload-files/readme.md b/utils/event-proxy-server/payload-files/readme.md
index bb5ed91..adff31f 100644
--- a/utils/event-proxy-server/payload-files/readme.md
+++ b/utils/event-proxy-server/payload-files/readme.md
@@ -1,2 +1,12 @@
When running the event-proxy-server, the request are saved in a json file. This folder is where all
the generated files go.
+
+## Notes
+
+### Fastify
+
+- v8: test-error does not include url
+
+### Next.js
+
+- v7: "transaction" is " " in sent event (when error happens)
diff --git a/utils/event-proxy-server/src/event-proxy-server.ts b/utils/event-proxy-server/src/event-proxy-server.ts
index 26ed602..de4b2d9 100644
--- a/utils/event-proxy-server/src/event-proxy-server.ts
+++ b/utils/event-proxy-server/src/event-proxy-server.ts
@@ -35,8 +35,15 @@ function isDateLikeString(str: string): boolean {
}
function extractPathFromUrl(url: string): string {
- const localhost = 'http://localhost:3030/';
- return url.replace(localhost, '');
+ return url.replace('http://localhost:3030/', '');
+}
+
+function extractTransactionRoute(transactionName: string): string {
+ return transactionName.replace('GET ', '');
+}
+
+function extractRelevantFileName(str: string): string {
+ return extractPathFromUrl(extractTransactionRoute(str));
}
function addCommaAfterEachLine(data: string): string {
@@ -113,9 +120,24 @@ function recursivelyReplaceData(
}
}
-function replaceDynamicValues(data: string): string[] {
- const jsonData = JSON.parse(data);
+function sortObjectKeys(obj: unknown): unknown {
+ if (typeof obj !== 'object' || obj === null) {
+ return obj;
+ }
+
+ if (Array.isArray(obj)) {
+ return obj.map(sortObjectKeys);
+ }
+
+ return Object.keys(obj as Record)
+ .sort()
+ .reduce((result: Record, key: string) => {
+ result[key] = sortObjectKeys((obj as Record)[key]);
+ return result;
+ }, {});
+}
+function replaceDynamicValues(jsonData: object[]): object[] {
recursivelyReplaceData(jsonData, { value: 1 }, new Map(), { value: 1 }, new Map());
// change remaining dynamic values
@@ -140,24 +162,40 @@ async function transformSavedJSON() {
const data = await readFile(TEMPORARY_FILE_PATH, 'utf8');
const jsonData = addCommaAfterEachLine(data);
- const transformedJSON = replaceDynamicValues(jsonData);
+ const sortedJSON = sortObjectKeys(JSON.parse(jsonData));
+ const transformedJSON = replaceDynamicValues(sortedJSON as object[]);
- const objWithReq = transformedJSON[2] as unknown as { request: { url: string } };
- const type = (transformedJSON[1] as unknown as { type: string }).type;
+ const type = (transformedJSON[1] as unknown as { type: string }).type; // transaction or event
- if ('request' in objWithReq) {
- const url = objWithReq.request.url;
- const replaceForwardSlashes = (str: string) => str.split('/').join('_');
+ const objData = transformedJSON[2] as unknown as {
+ request?: { url?: string };
+ transaction?: string;
+ contexts?: { trace?: { data?: { url?: string } } };
+ };
- const filepath = `payload-files/${APP}/${replaceForwardSlashes(extractPathFromUrl(url))}--${type}.json`;
+ if ('request' in objData || 'contexts' in objData) {
+ const transactionName = objData?.transaction;
+ const url = objData?.request?.url || objData.contexts?.trace?.data?.url;
- writeFile(filepath, JSON.stringify(transformedJSON, null, 2)).then(() => {
- console.log(`Successfully replaced data and saved file in ${filepath}`);
+ // Change to `url` or `transactionName` depending on what you want to use as filename
+ // Using transaction name as filename is useful when testing frameworks (such as Next.js) as the API routes are often called from the client and `url` would just be 'localhost:3030'
+ const filename = url; // transactionName;
- unlink(TEMPORARY_FILE_PATH).then(() =>
- console.log(`Successfully deleted ${TEMPORARY_FILE_PATH}`),
- );
- });
+ if (filename) {
+ const replaceForwardSlashes = (str: string) => str.split('/').join('_');
+
+ const filepath = `payload-files/${APP}/${replaceForwardSlashes(extractRelevantFileName(filename))}--${type}.json`;
+
+ writeFile(filepath, JSON.stringify(transformedJSON, null, 2)).then(() => {
+ console.log(`Successfully replaced data and saved file in ${filepath}`);
+
+ unlink(TEMPORARY_FILE_PATH).then(() =>
+ console.log(`Successfully deleted ${TEMPORARY_FILE_PATH}`),
+ );
+ });
+ } else {
+ console.warn('No url or transaction found in JSON');
+ }
}
} catch (err) {
console.error('Error', err);
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 28a4a90..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,3192 +0,0 @@
-# This file is generated by running "yarn install" inside your project.
-# Manual changes might be lost - proceed with caution!
-
-__metadata:
- version: 8
- cacheKey: 10c0
-
-"@aashutoshrathi/word-wrap@npm:^1.2.3":
- version: 1.2.6
- resolution: "@aashutoshrathi/word-wrap@npm:1.2.6"
- checksum: 10c0/53c2b231a61a46792b39a0d43bc4f4f776bb4542aa57ee04930676802e5501282c2fc8aac14e4cd1f1120ff8b52616b6ff5ab539ad30aa2277d726444b71619f
- languageName: node
- linkType: hard
-
-"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0":
- version: 1.6.0
- resolution: "@colors/colors@npm:1.6.0"
- checksum: 10c0/9328a0778a5b0db243af54455b79a69e3fb21122d6c15ef9e9fcc94881d8d17352d8b2b2590f9bdd46fac5c2d6c1636dcfc14358a20c70e22daf89e1a759b629
- languageName: node
- linkType: hard
-
-"@cspotcode/source-map-support@npm:^0.8.0":
- version: 0.8.1
- resolution: "@cspotcode/source-map-support@npm:0.8.1"
- dependencies:
- "@jridgewell/trace-mapping": "npm:0.3.9"
- checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6
- languageName: node
- linkType: hard
-
-"@dabh/diagnostics@npm:^2.0.2":
- version: 2.0.3
- resolution: "@dabh/diagnostics@npm:2.0.3"
- dependencies:
- colorspace: "npm:1.1.x"
- enabled: "npm:2.0.x"
- kuler: "npm:^2.0.0"
- checksum: 10c0/a5133df8492802465ed01f2f0a5784585241a1030c362d54a602ed1839816d6c93d71dde05cf2ddb4fd0796238c19774406bd62fa2564b637907b495f52425fe
- languageName: node
- linkType: hard
-
-"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
- version: 4.4.0
- resolution: "@eslint-community/eslint-utils@npm:4.4.0"
- dependencies:
- eslint-visitor-keys: "npm:^3.3.0"
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e
- languageName: node
- linkType: hard
-
-"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
- version: 4.10.0
- resolution: "@eslint-community/regexpp@npm:4.10.0"
- checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4
- languageName: node
- linkType: hard
-
-"@eslint/eslintrc@npm:^3.0.2":
- version: 3.0.2
- resolution: "@eslint/eslintrc@npm:3.0.2"
- dependencies:
- ajv: "npm:^6.12.4"
- debug: "npm:^4.3.2"
- espree: "npm:^10.0.1"
- globals: "npm:^14.0.0"
- ignore: "npm:^5.2.0"
- import-fresh: "npm:^3.2.1"
- js-yaml: "npm:^4.1.0"
- minimatch: "npm:^3.1.2"
- strip-json-comments: "npm:^3.1.1"
- checksum: 10c0/d8c92f06bdf8e2be9fcc0eeac4a9351745174adfcc72571ef3d179101cb55e19f15f6385c2a4f4945a3ba9245802d3371208e2e1e4f00f6bcf6b8711656af85a
- languageName: node
- linkType: hard
-
-"@eslint/js@npm:9.0.0, @eslint/js@npm:^9.0.0":
- version: 9.0.0
- resolution: "@eslint/js@npm:9.0.0"
- checksum: 10c0/ec3242a60a2525d2785d96d1e95b8060235f47f3b953aa81626968591ef8c1eb4f7f8b3647db2c97fdfa524eace949a5695be50521f64b8dcc4ed3b493ee409e
- languageName: node
- linkType: hard
-
-"@humanwhocodes/config-array@npm:^0.12.3":
- version: 0.12.3
- resolution: "@humanwhocodes/config-array@npm:0.12.3"
- dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.3"
- debug: "npm:^4.3.1"
- minimatch: "npm:^3.0.5"
- checksum: 10c0/7a97f1414c63f353557ff8ad2987774cbcd3ed87525909cc845b629518dd74dc92cacf8ac8dc4161549a87441f8c64802ac530ce879ddcbf2551a53ba73d03d1
- languageName: node
- linkType: hard
-
-"@humanwhocodes/module-importer@npm:^1.0.1":
- version: 1.0.1
- resolution: "@humanwhocodes/module-importer@npm:1.0.1"
- checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
- languageName: node
- linkType: hard
-
-"@humanwhocodes/object-schema@npm:^2.0.3":
- version: 2.0.3
- resolution: "@humanwhocodes/object-schema@npm:2.0.3"
- checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
- languageName: node
- linkType: hard
-
-"@isaacs/cliui@npm:^8.0.2":
- version: 8.0.2
- resolution: "@isaacs/cliui@npm:8.0.2"
- dependencies:
- string-width: "npm:^5.1.2"
- string-width-cjs: "npm:string-width@^4.2.0"
- strip-ansi: "npm:^7.0.1"
- strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
- wrap-ansi: "npm:^8.1.0"
- wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
- checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
- languageName: node
- linkType: hard
-
-"@jridgewell/resolve-uri@npm:^3.0.3":
- version: 3.1.2
- resolution: "@jridgewell/resolve-uri@npm:3.1.2"
- checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
- languageName: node
- linkType: hard
-
-"@jridgewell/sourcemap-codec@npm:^1.4.10":
- version: 1.4.15
- resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
- checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5
- languageName: node
- linkType: hard
-
-"@jridgewell/trace-mapping@npm:0.3.9":
- version: 0.3.9
- resolution: "@jridgewell/trace-mapping@npm:0.3.9"
- dependencies:
- "@jridgewell/resolve-uri": "npm:^3.0.3"
- "@jridgewell/sourcemap-codec": "npm:^1.4.10"
- checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b
- languageName: node
- linkType: hard
-
-"@nodelib/fs.scandir@npm:2.1.5":
- version: 2.1.5
- resolution: "@nodelib/fs.scandir@npm:2.1.5"
- dependencies:
- "@nodelib/fs.stat": "npm:2.0.5"
- run-parallel: "npm:^1.1.9"
- checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
- languageName: node
- linkType: hard
-
-"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
- version: 2.0.5
- resolution: "@nodelib/fs.stat@npm:2.0.5"
- checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
- languageName: node
- linkType: hard
-
-"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
- version: 1.2.8
- resolution: "@nodelib/fs.walk@npm:1.2.8"
- dependencies:
- "@nodelib/fs.scandir": "npm:2.1.5"
- fastq: "npm:^1.6.0"
- checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
- languageName: node
- linkType: hard
-
-"@npmcli/agent@npm:^2.0.0":
- version: 2.2.2
- resolution: "@npmcli/agent@npm:2.2.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- http-proxy-agent: "npm:^7.0.0"
- https-proxy-agent: "npm:^7.0.1"
- lru-cache: "npm:^10.0.1"
- socks-proxy-agent: "npm:^8.0.3"
- checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
- languageName: node
- linkType: hard
-
-"@npmcli/fs@npm:^3.1.0":
- version: 3.1.0
- resolution: "@npmcli/fs@npm:3.1.0"
- dependencies:
- semver: "npm:^7.3.5"
- checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e
- languageName: node
- linkType: hard
-
-"@pkgjs/parseargs@npm:^0.11.0":
- version: 0.11.0
- resolution: "@pkgjs/parseargs@npm:0.11.0"
- checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
- languageName: node
- linkType: hard
-
-"@sentry-internal/tracing@npm:7.109.0":
- version: 7.109.0
- resolution: "@sentry-internal/tracing@npm:7.109.0"
- dependencies:
- "@sentry/core": "npm:7.109.0"
- "@sentry/types": "npm:7.109.0"
- "@sentry/utils": "npm:7.109.0"
- checksum: 10c0/6353e3610dc56fa55ab71f7fe7b9d1b78175512c822e4441482d67d24f80ef7d21fcbdfb125a4bc385836fdb7e966f9636217611ffbddf1202df4bc4432d6f18
- languageName: node
- linkType: hard
-
-"@sentry/core@npm:7.109.0":
- version: 7.109.0
- resolution: "@sentry/core@npm:7.109.0"
- dependencies:
- "@sentry/types": "npm:7.109.0"
- "@sentry/utils": "npm:7.109.0"
- checksum: 10c0/0414c4682e27435f62d4708e0aa3c50a92d0b154e0e2d92a30a846078f4e351d1fda849a0a728f744dcf4bc1f164d4120d83600c341173645168762d0d2024af
- languageName: node
- linkType: hard
-
-"@sentry/node@npm:^7.109.0":
- version: 7.109.0
- resolution: "@sentry/node@npm:7.109.0"
- dependencies:
- "@sentry-internal/tracing": "npm:7.109.0"
- "@sentry/core": "npm:7.109.0"
- "@sentry/types": "npm:7.109.0"
- "@sentry/utils": "npm:7.109.0"
- checksum: 10c0/c7ea596ad65fcdbfc769dde58f328c24f74481c1fe0f4cc38371996634f9ab3b3d403d23ff17bd13434ba6365cd3c7e1719631466345bb9ed80579d42a774b71
- languageName: node
- linkType: hard
-
-"@sentry/types@npm:7.109.0":
- version: 7.109.0
- resolution: "@sentry/types@npm:7.109.0"
- checksum: 10c0/0c2953999b94b1549919b89fd0c956c2229c9fbcdee2c692ee8f94841b10905ea03cc361e89aa4387fe231a1c08d02fe27080d40874ad0da3785e43d17d941bc
- languageName: node
- linkType: hard
-
-"@sentry/utils@npm:7.109.0":
- version: 7.109.0
- resolution: "@sentry/utils@npm:7.109.0"
- dependencies:
- "@sentry/types": "npm:7.109.0"
- checksum: 10c0/32bbb7515e4d36166941ec81c072574333401782d64cfb25da5dac2c4a5b8760b1dfe4859211d3447e676f530a1fdec58b15624b6b0180a865fa109aec2bd6a5
- languageName: node
- linkType: hard
-
-"@tsconfig/node10@npm:^1.0.7":
- version: 1.0.11
- resolution: "@tsconfig/node10@npm:1.0.11"
- checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c
- languageName: node
- linkType: hard
-
-"@tsconfig/node12@npm:^1.0.7":
- version: 1.0.11
- resolution: "@tsconfig/node12@npm:1.0.11"
- checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9
- languageName: node
- linkType: hard
-
-"@tsconfig/node14@npm:^1.0.0":
- version: 1.0.3
- resolution: "@tsconfig/node14@npm:1.0.3"
- checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44
- languageName: node
- linkType: hard
-
-"@tsconfig/node16@npm:^1.0.2":
- version: 1.0.4
- resolution: "@tsconfig/node16@npm:1.0.4"
- checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb
- languageName: node
- linkType: hard
-
-"@types/body-parser@npm:*":
- version: 1.19.5
- resolution: "@types/body-parser@npm:1.19.5"
- dependencies:
- "@types/connect": "npm:*"
- "@types/node": "npm:*"
- checksum: 10c0/aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df
- languageName: node
- linkType: hard
-
-"@types/connect@npm:*":
- version: 3.4.38
- resolution: "@types/connect@npm:3.4.38"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c
- languageName: node
- linkType: hard
-
-"@types/express-serve-static-core@npm:^4.17.33":
- version: 4.19.0
- resolution: "@types/express-serve-static-core@npm:4.19.0"
- dependencies:
- "@types/node": "npm:*"
- "@types/qs": "npm:*"
- "@types/range-parser": "npm:*"
- "@types/send": "npm:*"
- checksum: 10c0/38a13dfbb38d18526276e68dae1097eb0ebef296e76bff2a9bf6831c052c2f87797e910c87bd3f0dd1a1b4136241c9d7c841779a00b22576d12aa9b483a63349
- languageName: node
- linkType: hard
-
-"@types/express@npm:^4":
- version: 4.17.21
- resolution: "@types/express@npm:4.17.21"
- dependencies:
- "@types/body-parser": "npm:*"
- "@types/express-serve-static-core": "npm:^4.17.33"
- "@types/qs": "npm:*"
- "@types/serve-static": "npm:*"
- checksum: 10c0/12e562c4571da50c7d239e117e688dc434db1bac8be55613294762f84fd77fbd0658ccd553c7d3ab02408f385bc93980992369dd30e2ecd2c68c358e6af8fabf
- languageName: node
- linkType: hard
-
-"@types/http-errors@npm:*":
- version: 2.0.4
- resolution: "@types/http-errors@npm:2.0.4"
- checksum: 10c0/494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836
- languageName: node
- linkType: hard
-
-"@types/json-schema@npm:^7.0.15":
- version: 7.0.15
- resolution: "@types/json-schema@npm:7.0.15"
- checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
- languageName: node
- linkType: hard
-
-"@types/mime@npm:^1":
- version: 1.3.5
- resolution: "@types/mime@npm:1.3.5"
- checksum: 10c0/c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc
- languageName: node
- linkType: hard
-
-"@types/node@npm:*, @types/node@npm:^20.12.5":
- version: 20.12.5
- resolution: "@types/node@npm:20.12.5"
- dependencies:
- undici-types: "npm:~5.26.4"
- checksum: 10c0/2da65516fba98f0417620e42bddbe53e144d4782d69cd37f99df2537c6850b9cfbdb8a017f02c61e9a074bcac84f9f3f221b250474ac8c6b95d507a47e8d53f9
- languageName: node
- linkType: hard
-
-"@types/qs@npm:*":
- version: 6.9.14
- resolution: "@types/qs@npm:6.9.14"
- checksum: 10c0/11ad1eb7f6d7c216002789959d88acc7c43f72854fa4335f01de0df41b4c4024668dace8a37ba12270314345ede0ec6b07f93053a45e7bd4cd7318a3dcf0b6b8
- languageName: node
- linkType: hard
-
-"@types/range-parser@npm:*":
- version: 1.2.7
- resolution: "@types/range-parser@npm:1.2.7"
- checksum: 10c0/361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c
- languageName: node
- linkType: hard
-
-"@types/semver@npm:^7.5.8":
- version: 7.5.8
- resolution: "@types/semver@npm:7.5.8"
- checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa
- languageName: node
- linkType: hard
-
-"@types/send@npm:*":
- version: 0.17.4
- resolution: "@types/send@npm:0.17.4"
- dependencies:
- "@types/mime": "npm:^1"
- "@types/node": "npm:*"
- checksum: 10c0/7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c
- languageName: node
- linkType: hard
-
-"@types/serve-static@npm:*":
- version: 1.15.7
- resolution: "@types/serve-static@npm:1.15.7"
- dependencies:
- "@types/http-errors": "npm:*"
- "@types/node": "npm:*"
- "@types/send": "npm:*"
- checksum: 10c0/26ec864d3a626ea627f8b09c122b623499d2221bbf2f470127f4c9ebfe92bd8a6bb5157001372d4c4bd0dd37a1691620217d9dc4df5aa8f779f3fd996b1c60ae
- languageName: node
- linkType: hard
-
-"@types/triple-beam@npm:^1.3.2":
- version: 1.3.5
- resolution: "@types/triple-beam@npm:1.3.5"
- checksum: 10c0/d5d7f25da612f6d79266f4f1bb9c1ef8f1684e9f60abab251e1261170631062b656ba26ff22631f2760caeafd372abc41e64867cde27fba54fafb73a35b9056a
- languageName: node
- linkType: hard
-
-"@typescript-eslint/eslint-plugin@npm:7.6.0, @typescript-eslint/eslint-plugin@npm:^7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0"
- dependencies:
- "@eslint-community/regexpp": "npm:^4.10.0"
- "@typescript-eslint/scope-manager": "npm:7.6.0"
- "@typescript-eslint/type-utils": "npm:7.6.0"
- "@typescript-eslint/utils": "npm:7.6.0"
- "@typescript-eslint/visitor-keys": "npm:7.6.0"
- debug: "npm:^4.3.4"
- graphemer: "npm:^1.4.0"
- ignore: "npm:^5.3.1"
- natural-compare: "npm:^1.4.0"
- semver: "npm:^7.6.0"
- ts-api-utils: "npm:^1.3.0"
- peerDependencies:
- "@typescript-eslint/parser": ^7.0.0
- eslint: ^8.56.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/c3ca611c6658dfc05e6457e87c66cdc6f038cf9bbb345f3168d171491bc1439f815a49529a1511940141a387873e10dfc7ab68fd172cf54c34f8a3aa8c558e13
- languageName: node
- linkType: hard
-
-"@typescript-eslint/parser@npm:7.6.0, @typescript-eslint/parser@npm:^7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/parser@npm:7.6.0"
- dependencies:
- "@typescript-eslint/scope-manager": "npm:7.6.0"
- "@typescript-eslint/types": "npm:7.6.0"
- "@typescript-eslint/typescript-estree": "npm:7.6.0"
- "@typescript-eslint/visitor-keys": "npm:7.6.0"
- debug: "npm:^4.3.4"
- peerDependencies:
- eslint: ^8.56.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/69450c15180f7ee5a9d9c2e8ed7aa781a3b63635c099de1f102167c247d71c55b152934187e854baa5c9ea3dcbc0c9f5983379139e6cfa1ccbb900b9f23dab37
- languageName: node
- linkType: hard
-
-"@typescript-eslint/scope-manager@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/scope-manager@npm:7.6.0"
- dependencies:
- "@typescript-eslint/types": "npm:7.6.0"
- "@typescript-eslint/visitor-keys": "npm:7.6.0"
- checksum: 10c0/1c1e75fd4fa2dabcab0457ca2ec872752c112fec27bf11edb5bf13c547ad5f3ca5a3b424e19c6916dfc8bd348cde258db8abfd12c9ed93b4bc4df9ef9e3db9f5
- languageName: node
- linkType: hard
-
-"@typescript-eslint/type-utils@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/type-utils@npm:7.6.0"
- dependencies:
- "@typescript-eslint/typescript-estree": "npm:7.6.0"
- "@typescript-eslint/utils": "npm:7.6.0"
- debug: "npm:^4.3.4"
- ts-api-utils: "npm:^1.3.0"
- peerDependencies:
- eslint: ^8.56.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/d5fa5856e24b593e8ae93f27049e7ea49c0725f9fe44e6252a8fc8228859e2db254a3c399bedaf1fdac76fae94aa9bae10a9d466032c7bdb5bdeb1da2e4e3a53
- languageName: node
- linkType: hard
-
-"@typescript-eslint/types@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/types@npm:7.6.0"
- checksum: 10c0/7ca2a307557d4d8fc9c7d43e4dc8c4841e6c5380b59dcc8b644b3d7b6a702968ff5a70b74cb7e3d3af3f3cef87e9775573b8272b1b2963d80441992ac4e7e951
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/typescript-estree@npm:7.6.0"
- dependencies:
- "@typescript-eslint/types": "npm:7.6.0"
- "@typescript-eslint/visitor-keys": "npm:7.6.0"
- debug: "npm:^4.3.4"
- globby: "npm:^11.1.0"
- is-glob: "npm:^4.0.3"
- minimatch: "npm:^9.0.4"
- semver: "npm:^7.6.0"
- ts-api-utils: "npm:^1.3.0"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/ab54ce7a61928640bf036cc1d80394de92581d90666786603b566b9a44833603e017d7e739a37aee82a007c6d1dbdc6328d7e42d1732925cc53c111e7e38961e
- languageName: node
- linkType: hard
-
-"@typescript-eslint/utils@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/utils@npm:7.6.0"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.4.0"
- "@types/json-schema": "npm:^7.0.15"
- "@types/semver": "npm:^7.5.8"
- "@typescript-eslint/scope-manager": "npm:7.6.0"
- "@typescript-eslint/types": "npm:7.6.0"
- "@typescript-eslint/typescript-estree": "npm:7.6.0"
- semver: "npm:^7.6.0"
- peerDependencies:
- eslint: ^8.56.0
- checksum: 10c0/1552004d9c451347f11398648ec7b22381d5b335f10e8d2dfdfbcb024ef93c9a23ec5731ee271495b4b546ab5db0a817bd13c4c4db8be825ed90b80a89dfd0f7
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:7.6.0":
- version: 7.6.0
- resolution: "@typescript-eslint/visitor-keys@npm:7.6.0"
- dependencies:
- "@typescript-eslint/types": "npm:7.6.0"
- eslint-visitor-keys: "npm:^3.4.3"
- checksum: 10c0/b5ca6a9258889ef103165884e99b51124b2a3dad250cf7cee2fb13525f76922256a6146a8dcef74cad6548a52409ff89259809c7fa7c8be07059bb7454e7fa8f
- languageName: node
- linkType: hard
-
-"abbrev@npm:1":
- version: 1.1.1
- resolution: "abbrev@npm:1.1.1"
- checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6
- languageName: node
- linkType: hard
-
-"abbrev@npm:^2.0.0":
- version: 2.0.0
- resolution: "abbrev@npm:2.0.0"
- checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372
- languageName: node
- linkType: hard
-
-"accepts@npm:~1.3.8":
- version: 1.3.8
- resolution: "accepts@npm:1.3.8"
- dependencies:
- mime-types: "npm:~2.1.34"
- negotiator: "npm:0.6.3"
- checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362
- languageName: node
- linkType: hard
-
-"acorn-jsx@npm:^5.3.2":
- version: 5.3.2
- resolution: "acorn-jsx@npm:5.3.2"
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
- languageName: node
- linkType: hard
-
-"acorn-walk@npm:^8.1.1":
- version: 8.3.2
- resolution: "acorn-walk@npm:8.3.2"
- checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52
- languageName: node
- linkType: hard
-
-"acorn@npm:8.8.2":
- version: 8.8.2
- resolution: "acorn@npm:8.8.2"
- bin:
- acorn: bin/acorn
- checksum: 10c0/b5c54e736af5ed753911c6752fafd02d0a74cf4d55be606bd81fe71faba4f986dc090952329931ac2aba165803fd0005c59eeef08f9c6c689e8dc420031f3df0
- languageName: node
- linkType: hard
-
-"acorn@npm:^8.11.3, acorn@npm:^8.4.1":
- version: 8.11.3
- resolution: "acorn@npm:8.11.3"
- bin:
- acorn: bin/acorn
- checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
- languageName: node
- linkType: hard
-
-"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
- version: 7.1.1
- resolution: "agent-base@npm:7.1.1"
- dependencies:
- debug: "npm:^4.3.4"
- checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
- languageName: node
- linkType: hard
-
-"aggregate-error@npm:^3.0.0":
- version: 3.1.0
- resolution: "aggregate-error@npm:3.1.0"
- dependencies:
- clean-stack: "npm:^2.0.0"
- indent-string: "npm:^4.0.0"
- checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039
- languageName: node
- linkType: hard
-
-"ajv@npm:^6.12.4":
- version: 6.12.6
- resolution: "ajv@npm:6.12.6"
- dependencies:
- fast-deep-equal: "npm:^3.1.1"
- fast-json-stable-stringify: "npm:^2.0.0"
- json-schema-traverse: "npm:^0.4.1"
- uri-js: "npm:^4.2.2"
- checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^5.0.1":
- version: 5.0.1
- resolution: "ansi-regex@npm:5.0.1"
- checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^6.0.1":
- version: 6.0.1
- resolution: "ansi-regex@npm:6.0.1"
- checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
- version: 4.3.0
- resolution: "ansi-styles@npm:4.3.0"
- dependencies:
- color-convert: "npm:^2.0.1"
- checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^6.1.0":
- version: 6.2.1
- resolution: "ansi-styles@npm:6.2.1"
- checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
- languageName: node
- linkType: hard
-
-"anymatch@npm:~3.1.2":
- version: 3.1.3
- resolution: "anymatch@npm:3.1.3"
- dependencies:
- normalize-path: "npm:^3.0.0"
- picomatch: "npm:^2.0.4"
- checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
- languageName: node
- linkType: hard
-
-"arg@npm:^4.1.0":
- version: 4.1.3
- resolution: "arg@npm:4.1.3"
- checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a
- languageName: node
- linkType: hard
-
-"argparse@npm:^2.0.1":
- version: 2.0.1
- resolution: "argparse@npm:2.0.1"
- checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
- languageName: node
- linkType: hard
-
-"array-flatten@npm:1.1.1":
- version: 1.1.1
- resolution: "array-flatten@npm:1.1.1"
- checksum: 10c0/806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91
- languageName: node
- linkType: hard
-
-"array-union@npm:^2.1.0":
- version: 2.1.0
- resolution: "array-union@npm:2.1.0"
- checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962
- languageName: node
- linkType: hard
-
-"async@npm:^3.2.3":
- version: 3.2.5
- resolution: "async@npm:3.2.5"
- checksum: 10c0/1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^1.0.0":
- version: 1.0.2
- resolution: "balanced-match@npm:1.0.2"
- checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
- languageName: node
- linkType: hard
-
-"binary-extensions@npm:^2.0.0":
- version: 2.3.0
- resolution: "binary-extensions@npm:2.3.0"
- checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
- languageName: node
- linkType: hard
-
-"body-parser@npm:1.20.2":
- version: 1.20.2
- resolution: "body-parser@npm:1.20.2"
- dependencies:
- bytes: "npm:3.1.2"
- content-type: "npm:~1.0.5"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- on-finished: "npm:2.4.1"
- qs: "npm:6.11.0"
- raw-body: "npm:2.5.2"
- type-is: "npm:~1.6.18"
- unpipe: "npm:1.0.0"
- checksum: 10c0/06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^1.1.7":
- version: 1.1.11
- resolution: "brace-expansion@npm:1.1.11"
- dependencies:
- balanced-match: "npm:^1.0.0"
- concat-map: "npm:0.0.1"
- checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^2.0.1":
- version: 2.0.1
- resolution: "brace-expansion@npm:2.0.1"
- dependencies:
- balanced-match: "npm:^1.0.0"
- checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f
- languageName: node
- linkType: hard
-
-"braces@npm:^3.0.2, braces@npm:~3.0.2":
- version: 3.0.2
- resolution: "braces@npm:3.0.2"
- dependencies:
- fill-range: "npm:^7.0.1"
- checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381
- languageName: node
- linkType: hard
-
-"bytes@npm:3.1.2":
- version: 3.1.2
- resolution: "bytes@npm:3.1.2"
- checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e
- languageName: node
- linkType: hard
-
-"cacache@npm:^18.0.0":
- version: 18.0.2
- resolution: "cacache@npm:18.0.2"
- dependencies:
- "@npmcli/fs": "npm:^3.1.0"
- fs-minipass: "npm:^3.0.0"
- glob: "npm:^10.2.2"
- lru-cache: "npm:^10.0.1"
- minipass: "npm:^7.0.3"
- minipass-collect: "npm:^2.0.1"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- p-map: "npm:^4.0.0"
- ssri: "npm:^10.0.0"
- tar: "npm:^6.1.11"
- unique-filename: "npm:^3.0.0"
- checksum: 10c0/7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc
- languageName: node
- linkType: hard
-
-"call-bind@npm:^1.0.7":
- version: 1.0.7
- resolution: "call-bind@npm:1.0.7"
- dependencies:
- es-define-property: "npm:^1.0.0"
- es-errors: "npm:^1.3.0"
- function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.2.4"
- set-function-length: "npm:^1.2.1"
- checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d
- languageName: node
- linkType: hard
-
-"callsites@npm:^3.0.0":
- version: 3.1.0
- resolution: "callsites@npm:3.1.0"
- checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
- languageName: node
- linkType: hard
-
-"chalk@npm:^4.0.0":
- version: 4.1.2
- resolution: "chalk@npm:4.1.2"
- dependencies:
- ansi-styles: "npm:^4.1.0"
- supports-color: "npm:^7.1.0"
- checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
- languageName: node
- linkType: hard
-
-"chokidar@npm:^3.5.2":
- version: 3.6.0
- resolution: "chokidar@npm:3.6.0"
- dependencies:
- anymatch: "npm:~3.1.2"
- braces: "npm:~3.0.2"
- fsevents: "npm:~2.3.2"
- glob-parent: "npm:~5.1.2"
- is-binary-path: "npm:~2.1.0"
- is-glob: "npm:~4.0.1"
- normalize-path: "npm:~3.0.0"
- readdirp: "npm:~3.6.0"
- dependenciesMeta:
- fsevents:
- optional: true
- checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
- languageName: node
- linkType: hard
-
-"chownr@npm:^2.0.0":
- version: 2.0.0
- resolution: "chownr@npm:2.0.0"
- checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6
- languageName: node
- linkType: hard
-
-"clean-stack@npm:^2.0.0":
- version: 2.2.0
- resolution: "clean-stack@npm:2.2.0"
- checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1
- languageName: node
- linkType: hard
-
-"color-convert@npm:^1.9.3":
- version: 1.9.3
- resolution: "color-convert@npm:1.9.3"
- dependencies:
- color-name: "npm:1.1.3"
- checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
- languageName: node
- linkType: hard
-
-"color-convert@npm:^2.0.1":
- version: 2.0.1
- resolution: "color-convert@npm:2.0.1"
- dependencies:
- color-name: "npm:~1.1.4"
- checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
- languageName: node
- linkType: hard
-
-"color-name@npm:1.1.3":
- version: 1.1.3
- resolution: "color-name@npm:1.1.3"
- checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
- languageName: node
- linkType: hard
-
-"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
- version: 1.1.4
- resolution: "color-name@npm:1.1.4"
- checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
- languageName: node
- linkType: hard
-
-"color-string@npm:^1.6.0":
- version: 1.9.1
- resolution: "color-string@npm:1.9.1"
- dependencies:
- color-name: "npm:^1.0.0"
- simple-swizzle: "npm:^0.2.2"
- checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404
- languageName: node
- linkType: hard
-
-"color@npm:^3.1.3":
- version: 3.2.1
- resolution: "color@npm:3.2.1"
- dependencies:
- color-convert: "npm:^1.9.3"
- color-string: "npm:^1.6.0"
- checksum: 10c0/39345d55825884c32a88b95127d417a2c24681d8b57069413596d9fcbb721459ef9d9ec24ce3e65527b5373ce171b73e38dbcd9c830a52a6487e7f37bf00e83c
- languageName: node
- linkType: hard
-
-"colorspace@npm:1.1.x":
- version: 1.1.4
- resolution: "colorspace@npm:1.1.4"
- dependencies:
- color: "npm:^3.1.3"
- text-hex: "npm:1.0.x"
- checksum: 10c0/af5f91ff7f8e146b96e439ac20ed79b197210193bde721b47380a75b21751d90fa56390c773bb67c0aedd34ff85091883a437ab56861c779bd507d639ba7e123
- languageName: node
- linkType: hard
-
-"commander@npm:10.0.0":
- version: 10.0.0
- resolution: "commander@npm:10.0.0"
- checksum: 10c0/f1824812019664598ba7409c489cb5c15d33f65b43b08952a84e87e0023144c08d101e2f43af968cf2d464c0d667b50a2a9780f4a6c52915324f54fe9b451a31
- languageName: node
- linkType: hard
-
-"concat-map@npm:0.0.1":
- version: 0.0.1
- resolution: "concat-map@npm:0.0.1"
- checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
- languageName: node
- linkType: hard
-
-"content-disposition@npm:0.5.4":
- version: 0.5.4
- resolution: "content-disposition@npm:0.5.4"
- dependencies:
- safe-buffer: "npm:5.2.1"
- checksum: 10c0/bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb
- languageName: node
- linkType: hard
-
-"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
- version: 1.0.5
- resolution: "content-type@npm:1.0.5"
- checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af
- languageName: node
- linkType: hard
-
-"cookie-signature@npm:1.0.6":
- version: 1.0.6
- resolution: "cookie-signature@npm:1.0.6"
- checksum: 10c0/b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221
- languageName: node
- linkType: hard
-
-"cookie@npm:0.6.0":
- version: 0.6.0
- resolution: "cookie@npm:0.6.0"
- checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686
- languageName: node
- linkType: hard
-
-"create-require@npm:^1.1.0":
- version: 1.1.1
- resolution: "create-require@npm:1.1.1"
- checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91
- languageName: node
- linkType: hard
-
-"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2":
- version: 7.0.3
- resolution: "cross-spawn@npm:7.0.3"
- dependencies:
- path-key: "npm:^3.1.0"
- shebang-command: "npm:^2.0.0"
- which: "npm:^2.0.1"
- checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
- languageName: node
- linkType: hard
-
-"debug@npm:2.6.9":
- version: 2.6.9
- resolution: "debug@npm:2.6.9"
- dependencies:
- ms: "npm:2.0.0"
- checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589
- languageName: node
- linkType: hard
-
-"debug@npm:4, debug@npm:^4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
- version: 4.3.4
- resolution: "debug@npm:4.3.4"
- dependencies:
- ms: "npm:2.1.2"
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736
- languageName: node
- linkType: hard
-
-"deep-is@npm:^0.1.3":
- version: 0.1.4
- resolution: "deep-is@npm:0.1.4"
- checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
- languageName: node
- linkType: hard
-
-"define-data-property@npm:^1.1.4":
- version: 1.1.4
- resolution: "define-data-property@npm:1.1.4"
- dependencies:
- es-define-property: "npm:^1.0.0"
- es-errors: "npm:^1.3.0"
- gopd: "npm:^1.0.1"
- checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37
- languageName: node
- linkType: hard
-
-"depd@npm:2.0.0":
- version: 2.0.0
- resolution: "depd@npm:2.0.0"
- checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c
- languageName: node
- linkType: hard
-
-"destroy@npm:1.2.0":
- version: 1.2.0
- resolution: "destroy@npm:1.2.0"
- checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643
- languageName: node
- linkType: hard
-
-"diff@npm:^4.0.1":
- version: 4.0.2
- resolution: "diff@npm:4.0.2"
- checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1
- languageName: node
- linkType: hard
-
-"dir-glob@npm:^3.0.1":
- version: 3.0.1
- resolution: "dir-glob@npm:3.0.1"
- dependencies:
- path-type: "npm:^4.0.0"
- checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c
- languageName: node
- linkType: hard
-
-"eastasianwidth@npm:^0.2.0":
- version: 0.2.0
- resolution: "eastasianwidth@npm:0.2.0"
- checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
- languageName: node
- linkType: hard
-
-"ee-first@npm:1.1.1":
- version: 1.1.1
- resolution: "ee-first@npm:1.1.1"
- checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7
- languageName: node
- linkType: hard
-
-"emoji-regex@npm:^8.0.0":
- version: 8.0.0
- resolution: "emoji-regex@npm:8.0.0"
- checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
- languageName: node
- linkType: hard
-
-"emoji-regex@npm:^9.2.2":
- version: 9.2.2
- resolution: "emoji-regex@npm:9.2.2"
- checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
- languageName: node
- linkType: hard
-
-"enabled@npm:2.0.x":
- version: 2.0.0
- resolution: "enabled@npm:2.0.0"
- checksum: 10c0/3b2c2af9bc7f8b9e291610f2dde4a75cf6ee52a68f4dd585482fbdf9a55d65388940e024e56d40bb03e05ef6671f5f53021fa8b72a20e954d7066ec28166713f
- languageName: node
- linkType: hard
-
-"encodeurl@npm:~1.0.2":
- version: 1.0.2
- resolution: "encodeurl@npm:1.0.2"
- checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec
- languageName: node
- linkType: hard
-
-"encoding@npm:^0.1.13":
- version: 0.1.13
- resolution: "encoding@npm:0.1.13"
- dependencies:
- iconv-lite: "npm:^0.6.2"
- checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
- languageName: node
- linkType: hard
-
-"env-paths@npm:^2.2.0":
- version: 2.2.1
- resolution: "env-paths@npm:2.2.1"
- checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
- languageName: node
- linkType: hard
-
-"err-code@npm:^2.0.2":
- version: 2.0.3
- resolution: "err-code@npm:2.0.3"
- checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66
- languageName: node
- linkType: hard
-
-"es-check@npm:7.1.1":
- version: 7.1.1
- resolution: "es-check@npm:7.1.1"
- dependencies:
- acorn: "npm:8.8.2"
- commander: "npm:10.0.0"
- fast-glob: "npm:^3.2.12"
- supports-color: "npm:^8.1.1"
- winston: "npm:^3.8.2"
- bin:
- es-check: index.js
- checksum: 10c0/5a9ad5b64cb87e1ce88ac8a6fcbe2dbb0cd6d80edf70a93faf1dc306c0b752a43218bb151fe54e51eaa7f8e67d37e2255fcb715399e6ccc236f8ad43e44bf187
- languageName: node
- linkType: hard
-
-"es-define-property@npm:^1.0.0":
- version: 1.0.0
- resolution: "es-define-property@npm:1.0.0"
- dependencies:
- get-intrinsic: "npm:^1.2.4"
- checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4
- languageName: node
- linkType: hard
-
-"es-errors@npm:^1.3.0":
- version: 1.3.0
- resolution: "es-errors@npm:1.3.0"
- checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85
- languageName: node
- linkType: hard
-
-"escape-html@npm:~1.0.3":
- version: 1.0.3
- resolution: "escape-html@npm:1.0.3"
- checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^4.0.0":
- version: 4.0.0
- resolution: "escape-string-regexp@npm:4.0.0"
- checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
- languageName: node
- linkType: hard
-
-"eslint-scope@npm:^8.0.1":
- version: 8.0.1
- resolution: "eslint-scope@npm:8.0.1"
- dependencies:
- esrecurse: "npm:^4.3.0"
- estraverse: "npm:^5.2.0"
- checksum: 10c0/0ec40ab284e58ac7ef064ecd23c127e03d339fa57173c96852336c73afc70ce5631da21dc1c772415a37a421291845538dd69db83c68d611044c0fde1d1fa269
- languageName: node
- linkType: hard
-
-"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3":
- version: 3.4.3
- resolution: "eslint-visitor-keys@npm:3.4.3"
- checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
- languageName: node
- linkType: hard
-
-"eslint-visitor-keys@npm:^4.0.0":
- version: 4.0.0
- resolution: "eslint-visitor-keys@npm:4.0.0"
- checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5
- languageName: node
- linkType: hard
-
-"eslint@npm:^9.0.0":
- version: 9.0.0
- resolution: "eslint@npm:9.0.0"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.2.0"
- "@eslint-community/regexpp": "npm:^4.6.1"
- "@eslint/eslintrc": "npm:^3.0.2"
- "@eslint/js": "npm:9.0.0"
- "@humanwhocodes/config-array": "npm:^0.12.3"
- "@humanwhocodes/module-importer": "npm:^1.0.1"
- "@nodelib/fs.walk": "npm:^1.2.8"
- ajv: "npm:^6.12.4"
- chalk: "npm:^4.0.0"
- cross-spawn: "npm:^7.0.2"
- debug: "npm:^4.3.2"
- escape-string-regexp: "npm:^4.0.0"
- eslint-scope: "npm:^8.0.1"
- eslint-visitor-keys: "npm:^4.0.0"
- espree: "npm:^10.0.1"
- esquery: "npm:^1.4.2"
- esutils: "npm:^2.0.2"
- fast-deep-equal: "npm:^3.1.3"
- file-entry-cache: "npm:^8.0.0"
- find-up: "npm:^5.0.0"
- glob-parent: "npm:^6.0.2"
- graphemer: "npm:^1.4.0"
- ignore: "npm:^5.2.0"
- imurmurhash: "npm:^0.1.4"
- is-glob: "npm:^4.0.0"
- is-path-inside: "npm:^3.0.3"
- json-stable-stringify-without-jsonify: "npm:^1.0.1"
- levn: "npm:^0.4.1"
- lodash.merge: "npm:^4.6.2"
- minimatch: "npm:^3.1.2"
- natural-compare: "npm:^1.4.0"
- optionator: "npm:^0.9.3"
- strip-ansi: "npm:^6.0.1"
- text-table: "npm:^0.2.0"
- bin:
- eslint: bin/eslint.js
- checksum: 10c0/ab23e45cfef5ec174fc165edc03e0d6655fd7e50fd18068e6d966e9640f0d0a9048244e1297569ba4fd1ccddcfc0b00fb0c9723caa4209e0b2b23139ae688368
- languageName: node
- linkType: hard
-
-"espree@npm:^10.0.1":
- version: 10.0.1
- resolution: "espree@npm:10.0.1"
- dependencies:
- acorn: "npm:^8.11.3"
- acorn-jsx: "npm:^5.3.2"
- eslint-visitor-keys: "npm:^4.0.0"
- checksum: 10c0/7c0f84afa0f9db7bb899619e6364ed832ef13fe8943691757ddde9a1805ae68b826ed66803323015f707a629a5507d0d290edda2276c25131fe0ad883b8b5636
- languageName: node
- linkType: hard
-
-"esquery@npm:^1.4.2":
- version: 1.5.0
- resolution: "esquery@npm:1.5.0"
- dependencies:
- estraverse: "npm:^5.1.0"
- checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213
- languageName: node
- linkType: hard
-
-"esrecurse@npm:^4.3.0":
- version: 4.3.0
- resolution: "esrecurse@npm:4.3.0"
- dependencies:
- estraverse: "npm:^5.2.0"
- checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
- languageName: node
- linkType: hard
-
-"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
- version: 5.3.0
- resolution: "estraverse@npm:5.3.0"
- checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
- languageName: node
- linkType: hard
-
-"esutils@npm:^2.0.2":
- version: 2.0.3
- resolution: "esutils@npm:2.0.3"
- checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
- languageName: node
- linkType: hard
-
-"etag@npm:~1.8.1":
- version: 1.8.1
- resolution: "etag@npm:1.8.1"
- checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84
- languageName: node
- linkType: hard
-
-"event-proxy-server@workspace:utils/event-proxy-server":
- version: 0.0.0-use.local
- resolution: "event-proxy-server@workspace:utils/event-proxy-server"
- dependencies:
- "@sentry/types": "npm:7.109.0"
- "@sentry/utils": "npm:7.109.0"
- languageName: unknown
- linkType: soft
-
-"exponential-backoff@npm:^3.1.1":
- version: 3.1.1
- resolution: "exponential-backoff@npm:3.1.1"
- checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579
- languageName: node
- linkType: hard
-
-"express-test-application@workspace:apps/express":
- version: 0.0.0-use.local
- resolution: "express-test-application@workspace:apps/express"
- dependencies:
- "@sentry/node": "npm:^7.109.0"
- "@types/express": "npm:^4"
- express: "npm:^4.19.2"
- languageName: unknown
- linkType: soft
-
-"express@npm:^4.19.2":
- version: 4.19.2
- resolution: "express@npm:4.19.2"
- dependencies:
- accepts: "npm:~1.3.8"
- array-flatten: "npm:1.1.1"
- body-parser: "npm:1.20.2"
- content-disposition: "npm:0.5.4"
- content-type: "npm:~1.0.4"
- cookie: "npm:0.6.0"
- cookie-signature: "npm:1.0.6"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- encodeurl: "npm:~1.0.2"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- finalhandler: "npm:1.2.0"
- fresh: "npm:0.5.2"
- http-errors: "npm:2.0.0"
- merge-descriptors: "npm:1.0.1"
- methods: "npm:~1.1.2"
- on-finished: "npm:2.4.1"
- parseurl: "npm:~1.3.3"
- path-to-regexp: "npm:0.1.7"
- proxy-addr: "npm:~2.0.7"
- qs: "npm:6.11.0"
- range-parser: "npm:~1.2.1"
- safe-buffer: "npm:5.2.1"
- send: "npm:0.18.0"
- serve-static: "npm:1.15.0"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:2.0.1"
- type-is: "npm:~1.6.18"
- utils-merge: "npm:1.0.1"
- vary: "npm:~1.1.2"
- checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb
- languageName: node
- linkType: hard
-
-"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
- version: 3.1.3
- resolution: "fast-deep-equal@npm:3.1.3"
- checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
- languageName: node
- linkType: hard
-
-"fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9":
- version: 3.3.2
- resolution: "fast-glob@npm:3.3.2"
- dependencies:
- "@nodelib/fs.stat": "npm:^2.0.2"
- "@nodelib/fs.walk": "npm:^1.2.3"
- glob-parent: "npm:^5.1.2"
- merge2: "npm:^1.3.0"
- micromatch: "npm:^4.0.4"
- checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845
- languageName: node
- linkType: hard
-
-"fast-json-stable-stringify@npm:^2.0.0":
- version: 2.1.0
- resolution: "fast-json-stable-stringify@npm:2.1.0"
- checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
- languageName: node
- linkType: hard
-
-"fast-levenshtein@npm:^2.0.6":
- version: 2.0.6
- resolution: "fast-levenshtein@npm:2.0.6"
- checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
- languageName: node
- linkType: hard
-
-"fastq@npm:^1.6.0":
- version: 1.17.1
- resolution: "fastq@npm:1.17.1"
- dependencies:
- reusify: "npm:^1.0.4"
- checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
- languageName: node
- linkType: hard
-
-"fecha@npm:^4.2.0":
- version: 4.2.3
- resolution: "fecha@npm:4.2.3"
- checksum: 10c0/0e895965959cf6a22bb7b00f0bf546f2783836310f510ddf63f463e1518d4c96dec61ab33fdfd8e79a71b4856a7c865478ce2ee8498d560fe125947703c9b1cf
- languageName: node
- linkType: hard
-
-"file-entry-cache@npm:^8.0.0":
- version: 8.0.0
- resolution: "file-entry-cache@npm:8.0.0"
- dependencies:
- flat-cache: "npm:^4.0.0"
- checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
- languageName: node
- linkType: hard
-
-"fill-range@npm:^7.0.1":
- version: 7.0.1
- resolution: "fill-range@npm:7.0.1"
- dependencies:
- to-regex-range: "npm:^5.0.1"
- checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f
- languageName: node
- linkType: hard
-
-"finalhandler@npm:1.2.0":
- version: 1.2.0
- resolution: "finalhandler@npm:1.2.0"
- dependencies:
- debug: "npm:2.6.9"
- encodeurl: "npm:~1.0.2"
- escape-html: "npm:~1.0.3"
- on-finished: "npm:2.4.1"
- parseurl: "npm:~1.3.3"
- statuses: "npm:2.0.1"
- unpipe: "npm:~1.0.0"
- checksum: 10c0/64b7e5ff2ad1fcb14931cd012651631b721ce657da24aedb5650ddde9378bf8e95daa451da43398123f5de161a81e79ff5affe4f9f2a6d2df4a813d6d3e254b7
- languageName: node
- linkType: hard
-
-"find-up@npm:^5.0.0":
- version: 5.0.0
- resolution: "find-up@npm:5.0.0"
- dependencies:
- locate-path: "npm:^6.0.0"
- path-exists: "npm:^4.0.0"
- checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
- languageName: node
- linkType: hard
-
-"flat-cache@npm:^4.0.0":
- version: 4.0.1
- resolution: "flat-cache@npm:4.0.1"
- dependencies:
- flatted: "npm:^3.2.9"
- keyv: "npm:^4.5.4"
- checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
- languageName: node
- linkType: hard
-
-"flatted@npm:^3.2.9":
- version: 3.3.1
- resolution: "flatted@npm:3.3.1"
- checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
- languageName: node
- linkType: hard
-
-"fn.name@npm:1.x.x":
- version: 1.1.0
- resolution: "fn.name@npm:1.1.0"
- checksum: 10c0/8ad62aa2d4f0b2a76d09dba36cfec61c540c13a0fd72e5d94164e430f987a7ce6a743112bbeb14877c810ef500d1f73d7f56e76d029d2e3413f20d79e3460a9a
- languageName: node
- linkType: hard
-
-"foreground-child@npm:^3.1.0":
- version: 3.1.1
- resolution: "foreground-child@npm:3.1.1"
- dependencies:
- cross-spawn: "npm:^7.0.0"
- signal-exit: "npm:^4.0.1"
- checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0
- languageName: node
- linkType: hard
-
-"forwarded@npm:0.2.0":
- version: 0.2.0
- resolution: "forwarded@npm:0.2.0"
- checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33
- languageName: node
- linkType: hard
-
-"fresh@npm:0.5.2":
- version: 0.5.2
- resolution: "fresh@npm:0.5.2"
- checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^2.0.0":
- version: 2.1.0
- resolution: "fs-minipass@npm:2.1.0"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^3.0.0":
- version: 3.0.3
- resolution: "fs-minipass@npm:3.0.3"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
- languageName: node
- linkType: hard
-
-"fsevents@npm:~2.3.2":
- version: 2.3.3
- resolution: "fsevents@npm:2.3.3"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
- version: 2.3.3
- resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
- dependencies:
- node-gyp: "npm:latest"
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"function-bind@npm:^1.1.2":
- version: 1.1.2
- resolution: "function-bind@npm:1.1.2"
- checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5
- languageName: node
- linkType: hard
-
-"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4":
- version: 1.2.4
- resolution: "get-intrinsic@npm:1.2.4"
- dependencies:
- es-errors: "npm:^1.3.0"
- function-bind: "npm:^1.1.2"
- has-proto: "npm:^1.0.1"
- has-symbols: "npm:^1.0.3"
- hasown: "npm:^2.0.0"
- checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7
- languageName: node
- linkType: hard
-
-"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
- version: 5.1.2
- resolution: "glob-parent@npm:5.1.2"
- dependencies:
- is-glob: "npm:^4.0.1"
- checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
- languageName: node
- linkType: hard
-
-"glob-parent@npm:^6.0.2":
- version: 6.0.2
- resolution: "glob-parent@npm:6.0.2"
- dependencies:
- is-glob: "npm:^4.0.3"
- checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
- languageName: node
- linkType: hard
-
-"glob@npm:^10.2.2, glob@npm:^10.3.10":
- version: 10.3.12
- resolution: "glob@npm:10.3.12"
- dependencies:
- foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^2.3.6"
- minimatch: "npm:^9.0.1"
- minipass: "npm:^7.0.4"
- path-scurry: "npm:^1.10.2"
- bin:
- glob: dist/esm/bin.mjs
- checksum: 10c0/f60cefdc1cf3f958b2bb5823e1b233727f04916d489dc4641d76914f016e6704421e06a83cbb68b0cb1cb9382298b7a88075b844ad2127fc9727ea22b18b0711
- languageName: node
- linkType: hard
-
-"globals@npm:^14.0.0":
- version: 14.0.0
- resolution: "globals@npm:14.0.0"
- checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
- languageName: node
- linkType: hard
-
-"globals@npm:^15.0.0":
- version: 15.0.0
- resolution: "globals@npm:15.0.0"
- checksum: 10c0/b93e356a7bd4562d73a9defa95a0ff5e8a0b7726a4e2af16bd8ad019e14cd21d85e0a27b46e7e270d34e25df0bc0f9473ca21b47266c406c0e40973956085777
- languageName: node
- linkType: hard
-
-"globby@npm:^11.1.0":
- version: 11.1.0
- resolution: "globby@npm:11.1.0"
- dependencies:
- array-union: "npm:^2.1.0"
- dir-glob: "npm:^3.0.1"
- fast-glob: "npm:^3.2.9"
- ignore: "npm:^5.2.0"
- merge2: "npm:^1.4.1"
- slash: "npm:^3.0.0"
- checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189
- languageName: node
- linkType: hard
-
-"gopd@npm:^1.0.1":
- version: 1.0.1
- resolution: "gopd@npm:1.0.1"
- dependencies:
- get-intrinsic: "npm:^1.1.3"
- checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.2.6":
- version: 4.2.11
- resolution: "graceful-fs@npm:4.2.11"
- checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
- languageName: node
- linkType: hard
-
-"graphemer@npm:^1.4.0":
- version: 1.4.0
- resolution: "graphemer@npm:1.4.0"
- checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31
- languageName: node
- linkType: hard
-
-"has-flag@npm:^3.0.0":
- version: 3.0.0
- resolution: "has-flag@npm:3.0.0"
- checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
- languageName: node
- linkType: hard
-
-"has-flag@npm:^4.0.0":
- version: 4.0.0
- resolution: "has-flag@npm:4.0.0"
- checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
- languageName: node
- linkType: hard
-
-"has-property-descriptors@npm:^1.0.2":
- version: 1.0.2
- resolution: "has-property-descriptors@npm:1.0.2"
- dependencies:
- es-define-property: "npm:^1.0.0"
- checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236
- languageName: node
- linkType: hard
-
-"has-proto@npm:^1.0.1":
- version: 1.0.3
- resolution: "has-proto@npm:1.0.3"
- checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205
- languageName: node
- linkType: hard
-
-"has-symbols@npm:^1.0.3":
- version: 1.0.3
- resolution: "has-symbols@npm:1.0.3"
- checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3
- languageName: node
- linkType: hard
-
-"hasown@npm:^2.0.0":
- version: 2.0.2
- resolution: "hasown@npm:2.0.2"
- dependencies:
- function-bind: "npm:^1.1.2"
- checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9
- languageName: node
- linkType: hard
-
-"http-cache-semantics@npm:^4.1.1":
- version: 4.1.1
- resolution: "http-cache-semantics@npm:4.1.1"
- checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
- languageName: node
- linkType: hard
-
-"http-errors@npm:2.0.0":
- version: 2.0.0
- resolution: "http-errors@npm:2.0.0"
- dependencies:
- depd: "npm:2.0.0"
- inherits: "npm:2.0.4"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:2.0.1"
- toidentifier: "npm:1.0.1"
- checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19
- languageName: node
- linkType: hard
-
-"http-proxy-agent@npm:^7.0.0":
- version: 7.0.2
- resolution: "http-proxy-agent@npm:7.0.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- debug: "npm:^4.3.4"
- checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^7.0.1":
- version: 7.0.4
- resolution: "https-proxy-agent@npm:7.0.4"
- dependencies:
- agent-base: "npm:^7.0.2"
- debug: "npm:4"
- checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:0.4.24":
- version: 0.4.24
- resolution: "iconv-lite@npm:0.4.24"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3"
- checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.6.2":
- version: 0.6.3
- resolution: "iconv-lite@npm:0.6.3"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
- languageName: node
- linkType: hard
-
-"ignore-by-default@npm:^1.0.1":
- version: 1.0.1
- resolution: "ignore-by-default@npm:1.0.1"
- checksum: 10c0/9ab6e70e80f7cc12735def7ecb5527cfa56ab4e1152cd64d294522827f2dcf1f6d85531241537dc3713544e88dd888f65cb3c49c7b2cddb9009087c75274e533
- languageName: node
- linkType: hard
-
-"ignore@npm:^5.2.0, ignore@npm:^5.3.1":
- version: 5.3.1
- resolution: "ignore@npm:5.3.1"
- checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
- languageName: node
- linkType: hard
-
-"import-fresh@npm:^3.2.1":
- version: 3.3.0
- resolution: "import-fresh@npm:3.3.0"
- dependencies:
- parent-module: "npm:^1.0.0"
- resolve-from: "npm:^4.0.0"
- checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3
- languageName: node
- linkType: hard
-
-"imurmurhash@npm:^0.1.4":
- version: 0.1.4
- resolution: "imurmurhash@npm:0.1.4"
- checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
- languageName: node
- linkType: hard
-
-"indent-string@npm:^4.0.0":
- version: 4.0.0
- resolution: "indent-string@npm:4.0.0"
- checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.4, inherits@npm:^2.0.3":
- version: 2.0.4
- resolution: "inherits@npm:2.0.4"
- checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
- languageName: node
- linkType: hard
-
-"ip-address@npm:^9.0.5":
- version: 9.0.5
- resolution: "ip-address@npm:9.0.5"
- dependencies:
- jsbn: "npm:1.1.0"
- sprintf-js: "npm:^1.1.3"
- checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
- languageName: node
- linkType: hard
-
-"ipaddr.js@npm:1.9.1":
- version: 1.9.1
- resolution: "ipaddr.js@npm:1.9.1"
- checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a
- languageName: node
- linkType: hard
-
-"is-arrayish@npm:^0.3.1":
- version: 0.3.2
- resolution: "is-arrayish@npm:0.3.2"
- checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54
- languageName: node
- linkType: hard
-
-"is-binary-path@npm:~2.1.0":
- version: 2.1.0
- resolution: "is-binary-path@npm:2.1.0"
- dependencies:
- binary-extensions: "npm:^2.0.0"
- checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
- languageName: node
- linkType: hard
-
-"is-extglob@npm:^2.1.1":
- version: 2.1.1
- resolution: "is-extglob@npm:2.1.1"
- checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^3.0.0":
- version: 3.0.0
- resolution: "is-fullwidth-code-point@npm:3.0.0"
- checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
- languageName: node
- linkType: hard
-
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
- version: 4.0.3
- resolution: "is-glob@npm:4.0.3"
- dependencies:
- is-extglob: "npm:^2.1.1"
- checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
- languageName: node
- linkType: hard
-
-"is-lambda@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-lambda@npm:1.0.1"
- checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d
- languageName: node
- linkType: hard
-
-"is-number@npm:^7.0.0":
- version: 7.0.0
- resolution: "is-number@npm:7.0.0"
- checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
- languageName: node
- linkType: hard
-
-"is-path-inside@npm:^3.0.3":
- version: 3.0.3
- resolution: "is-path-inside@npm:3.0.3"
- checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
- languageName: node
- linkType: hard
-
-"is-stream@npm:^2.0.0":
- version: 2.0.1
- resolution: "is-stream@npm:2.0.1"
- checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5
- languageName: node
- linkType: hard
-
-"isexe@npm:^2.0.0":
- version: 2.0.0
- resolution: "isexe@npm:2.0.0"
- checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
- languageName: node
- linkType: hard
-
-"isexe@npm:^3.1.1":
- version: 3.1.1
- resolution: "isexe@npm:3.1.1"
- checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
- languageName: node
- linkType: hard
-
-"jackspeak@npm:^2.3.6":
- version: 2.3.6
- resolution: "jackspeak@npm:2.3.6"
- dependencies:
- "@isaacs/cliui": "npm:^8.0.2"
- "@pkgjs/parseargs": "npm:^0.11.0"
- dependenciesMeta:
- "@pkgjs/parseargs":
- optional: true
- checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111
- languageName: node
- linkType: hard
-
-"js-yaml@npm:^4.1.0":
- version: 4.1.0
- resolution: "js-yaml@npm:4.1.0"
- dependencies:
- argparse: "npm:^2.0.1"
- bin:
- js-yaml: bin/js-yaml.js
- checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
- languageName: node
- linkType: hard
-
-"jsbn@npm:1.1.0":
- version: 1.1.0
- resolution: "jsbn@npm:1.1.0"
- checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
- languageName: node
- linkType: hard
-
-"json-buffer@npm:3.0.1":
- version: 3.0.1
- resolution: "json-buffer@npm:3.0.1"
- checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^0.4.1":
- version: 0.4.1
- resolution: "json-schema-traverse@npm:0.4.1"
- checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
- languageName: node
- linkType: hard
-
-"json-stable-stringify-without-jsonify@npm:^1.0.1":
- version: 1.0.1
- resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
- checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
- languageName: node
- linkType: hard
-
-"keyv@npm:^4.5.4":
- version: 4.5.4
- resolution: "keyv@npm:4.5.4"
- dependencies:
- json-buffer: "npm:3.0.1"
- checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
- languageName: node
- linkType: hard
-
-"kuler@npm:^2.0.0":
- version: 2.0.0
- resolution: "kuler@npm:2.0.0"
- checksum: 10c0/0a4e99d92ca373f8f74d1dc37931909c4d0d82aebc94cf2ba265771160fc12c8df34eaaac80805efbda367e2795cb1f1dd4c3d404b6b1cf38aec94035b503d2d
- languageName: node
- linkType: hard
-
-"levn@npm:^0.4.1":
- version: 0.4.1
- resolution: "levn@npm:0.4.1"
- dependencies:
- prelude-ls: "npm:^1.2.1"
- type-check: "npm:~0.4.0"
- checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
- languageName: node
- linkType: hard
-
-"locate-path@npm:^6.0.0":
- version: 6.0.0
- resolution: "locate-path@npm:6.0.0"
- dependencies:
- p-locate: "npm:^5.0.0"
- checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
- languageName: node
- linkType: hard
-
-"lodash.merge@npm:^4.6.2":
- version: 4.6.2
- resolution: "lodash.merge@npm:4.6.2"
- checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
- languageName: node
- linkType: hard
-
-"logform@npm:^2.3.2, logform@npm:^2.4.0":
- version: 2.6.0
- resolution: "logform@npm:2.6.0"
- dependencies:
- "@colors/colors": "npm:1.6.0"
- "@types/triple-beam": "npm:^1.3.2"
- fecha: "npm:^4.2.0"
- ms: "npm:^2.1.1"
- safe-stable-stringify: "npm:^2.3.1"
- triple-beam: "npm:^1.3.0"
- checksum: 10c0/6e02f8617a03155b2fce451bacf777a2c01da16d32c4c745b3ec85be6c3f2602f2a4953a8bd096441cb4c42c447b52318541d6b6bc335dce903cb9ad77a1749f
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
- version: 10.2.0
- resolution: "lru-cache@npm:10.2.0"
- checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^6.0.0":
- version: 6.0.0
- resolution: "lru-cache@npm:6.0.0"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9
- languageName: node
- linkType: hard
-
-"make-error@npm:^1.1.1":
- version: 1.3.6
- resolution: "make-error@npm:1.3.6"
- checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^13.0.0":
- version: 13.0.0
- resolution: "make-fetch-happen@npm:13.0.0"
- dependencies:
- "@npmcli/agent": "npm:^2.0.0"
- cacache: "npm:^18.0.0"
- http-cache-semantics: "npm:^4.1.1"
- is-lambda: "npm:^1.0.1"
- minipass: "npm:^7.0.2"
- minipass-fetch: "npm:^3.0.0"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- negotiator: "npm:^0.6.3"
- promise-retry: "npm:^2.0.1"
- ssri: "npm:^10.0.0"
- checksum: 10c0/43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55
- languageName: node
- linkType: hard
-
-"media-typer@npm:0.3.0":
- version: 0.3.0
- resolution: "media-typer@npm:0.3.0"
- checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928
- languageName: node
- linkType: hard
-
-"merge-descriptors@npm:1.0.1":
- version: 1.0.1
- resolution: "merge-descriptors@npm:1.0.1"
- checksum: 10c0/b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec
- languageName: node
- linkType: hard
-
-"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
- version: 1.4.1
- resolution: "merge2@npm:1.4.1"
- checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
- languageName: node
- linkType: hard
-
-"methods@npm:~1.1.2":
- version: 1.1.2
- resolution: "methods@npm:1.1.2"
- checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2
- languageName: node
- linkType: hard
-
-"micromatch@npm:^4.0.4":
- version: 4.0.5
- resolution: "micromatch@npm:4.0.5"
- dependencies:
- braces: "npm:^3.0.2"
- picomatch: "npm:^2.3.1"
- checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff
- languageName: node
- linkType: hard
-
-"mime-db@npm:1.52.0":
- version: 1.52.0
- resolution: "mime-db@npm:1.52.0"
- checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
- languageName: node
- linkType: hard
-
-"mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
- version: 2.1.35
- resolution: "mime-types@npm:2.1.35"
- dependencies:
- mime-db: "npm:1.52.0"
- checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
- languageName: node
- linkType: hard
-
-"mime@npm:1.6.0":
- version: 1.6.0
- resolution: "mime@npm:1.6.0"
- bin:
- mime: cli.js
- checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
- languageName: node
- linkType: hard
-
-"minimatch@npm:^3.0.5, minimatch@npm:^3.1.2":
- version: 3.1.2
- resolution: "minimatch@npm:3.1.2"
- dependencies:
- brace-expansion: "npm:^1.1.7"
- checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
- languageName: node
- linkType: hard
-
-"minimatch@npm:^9.0.1, minimatch@npm:^9.0.4":
- version: 9.0.4
- resolution: "minimatch@npm:9.0.4"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
- languageName: node
- linkType: hard
-
-"minipass-collect@npm:^2.0.1":
- version: 2.0.1
- resolution: "minipass-collect@npm:2.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
- languageName: node
- linkType: hard
-
-"minipass-fetch@npm:^3.0.0":
- version: 3.0.4
- resolution: "minipass-fetch@npm:3.0.4"
- dependencies:
- encoding: "npm:^0.1.13"
- minipass: "npm:^7.0.3"
- minipass-sized: "npm:^1.0.3"
- minizlib: "npm:^2.1.2"
- dependenciesMeta:
- encoding:
- optional: true
- checksum: 10c0/1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75
- languageName: node
- linkType: hard
-
-"minipass-flush@npm:^1.0.5":
- version: 1.0.5
- resolution: "minipass-flush@npm:1.0.5"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
- languageName: node
- linkType: hard
-
-"minipass-pipeline@npm:^1.2.4":
- version: 1.2.4
- resolution: "minipass-pipeline@npm:1.2.4"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
- languageName: node
- linkType: hard
-
-"minipass-sized@npm:^1.0.3":
- version: 1.0.3
- resolution: "minipass-sized@npm:1.0.3"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
- languageName: node
- linkType: hard
-
-"minipass@npm:^3.0.0":
- version: 3.3.6
- resolution: "minipass@npm:3.3.6"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
- languageName: node
- linkType: hard
-
-"minipass@npm:^5.0.0":
- version: 5.0.0
- resolution: "minipass@npm:5.0.0"
- checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462
- languageName: node
- linkType: hard
-
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4":
- version: 7.0.4
- resolution: "minipass@npm:7.0.4"
- checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5
- languageName: node
- linkType: hard
-
-"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
- version: 2.1.2
- resolution: "minizlib@npm:2.1.2"
- dependencies:
- minipass: "npm:^3.0.0"
- yallist: "npm:^4.0.0"
- checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^1.0.3":
- version: 1.0.4
- resolution: "mkdirp@npm:1.0.4"
- bin:
- mkdirp: bin/cmd.js
- checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf
- languageName: node
- linkType: hard
-
-"ms@npm:2.0.0":
- version: 2.0.0
- resolution: "ms@npm:2.0.0"
- checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d
- languageName: node
- linkType: hard
-
-"ms@npm:2.1.2":
- version: 2.1.2
- resolution: "ms@npm:2.1.2"
- checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc
- languageName: node
- linkType: hard
-
-"ms@npm:2.1.3, ms@npm:^2.1.1":
- version: 2.1.3
- resolution: "ms@npm:2.1.3"
- checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
- languageName: node
- linkType: hard
-
-"natural-compare@npm:^1.4.0":
- version: 1.4.0
- resolution: "natural-compare@npm:1.4.0"
- checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
- languageName: node
- linkType: hard
-
-"negotiator@npm:0.6.3, negotiator@npm:^0.6.3":
- version: 0.6.3
- resolution: "negotiator@npm:0.6.3"
- checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2
- languageName: node
- linkType: hard
-
-"node-gyp@npm:latest":
- version: 10.1.0
- resolution: "node-gyp@npm:10.1.0"
- dependencies:
- env-paths: "npm:^2.2.0"
- exponential-backoff: "npm:^3.1.1"
- glob: "npm:^10.3.10"
- graceful-fs: "npm:^4.2.6"
- make-fetch-happen: "npm:^13.0.0"
- nopt: "npm:^7.0.0"
- proc-log: "npm:^3.0.0"
- semver: "npm:^7.3.5"
- tar: "npm:^6.1.2"
- which: "npm:^4.0.0"
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c
- languageName: node
- linkType: hard
-
-"nodemon@npm:^3.1.0":
- version: 3.1.0
- resolution: "nodemon@npm:3.1.0"
- dependencies:
- chokidar: "npm:^3.5.2"
- debug: "npm:^4"
- ignore-by-default: "npm:^1.0.1"
- minimatch: "npm:^3.1.2"
- pstree.remy: "npm:^1.1.8"
- semver: "npm:^7.5.3"
- simple-update-notifier: "npm:^2.0.0"
- supports-color: "npm:^5.5.0"
- touch: "npm:^3.1.0"
- undefsafe: "npm:^2.0.5"
- bin:
- nodemon: bin/nodemon.js
- checksum: 10c0/3aeb50105ecae31ce4d0a5cd464011d4aa0dc15419e39ac0fd203d784e38940e1436f4ed96adbaa0f9614ee0644f91e3cf38f2afae8d3918ae7afc51c7e2116b
- languageName: node
- linkType: hard
-
-"nopt@npm:^7.0.0":
- version: 7.2.0
- resolution: "nopt@npm:7.2.0"
- dependencies:
- abbrev: "npm:^2.0.0"
- bin:
- nopt: bin/nopt.js
- checksum: 10c0/9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff
- languageName: node
- linkType: hard
-
-"nopt@npm:~1.0.10":
- version: 1.0.10
- resolution: "nopt@npm:1.0.10"
- dependencies:
- abbrev: "npm:1"
- bin:
- nopt: ./bin/nopt.js
- checksum: 10c0/ddfbd892116a125fd68849ef564dd5b1f0a5ba0dbbf18782e9499e2efad8f4d3790635b47c6b5d3f7e014069e7b3ce5b8112687e9ae093fcd2678188c866fe28
- languageName: node
- linkType: hard
-
-"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
- version: 3.0.0
- resolution: "normalize-path@npm:3.0.0"
- checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
- languageName: node
- linkType: hard
-
-"object-inspect@npm:^1.13.1":
- version: 1.13.1
- resolution: "object-inspect@npm:1.13.1"
- checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d
- languageName: node
- linkType: hard
-
-"on-finished@npm:2.4.1":
- version: 2.4.1
- resolution: "on-finished@npm:2.4.1"
- dependencies:
- ee-first: "npm:1.1.1"
- checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4
- languageName: node
- linkType: hard
-
-"one-time@npm:^1.0.0":
- version: 1.0.0
- resolution: "one-time@npm:1.0.0"
- dependencies:
- fn.name: "npm:1.x.x"
- checksum: 10c0/6e4887b331edbb954f4e915831cbec0a7b9956c36f4feb5f6de98c448ac02ff881fd8d9b55a6b1b55030af184c6b648f340a76eb211812f4ad8c9b4b8692fdaa
- languageName: node
- linkType: hard
-
-"optionator@npm:^0.9.3":
- version: 0.9.3
- resolution: "optionator@npm:0.9.3"
- dependencies:
- "@aashutoshrathi/word-wrap": "npm:^1.2.3"
- deep-is: "npm:^0.1.3"
- fast-levenshtein: "npm:^2.0.6"
- levn: "npm:^0.4.1"
- prelude-ls: "npm:^1.2.1"
- type-check: "npm:^0.4.0"
- checksum: 10c0/66fba794d425b5be51353035cf3167ce6cfa049059cbb93229b819167687e0f48d2bc4603fcb21b091c99acb516aae1083624675b15c4765b2e4693a085e959c
- languageName: node
- linkType: hard
-
-"p-limit@npm:^3.0.2":
- version: 3.1.0
- resolution: "p-limit@npm:3.1.0"
- dependencies:
- yocto-queue: "npm:^0.1.0"
- checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
- languageName: node
- linkType: hard
-
-"p-locate@npm:^5.0.0":
- version: 5.0.0
- resolution: "p-locate@npm:5.0.0"
- dependencies:
- p-limit: "npm:^3.0.2"
- checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
- languageName: node
- linkType: hard
-
-"p-map@npm:^4.0.0":
- version: 4.0.0
- resolution: "p-map@npm:4.0.0"
- dependencies:
- aggregate-error: "npm:^3.0.0"
- checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75
- languageName: node
- linkType: hard
-
-"parent-module@npm:^1.0.0":
- version: 1.0.1
- resolution: "parent-module@npm:1.0.1"
- dependencies:
- callsites: "npm:^3.0.0"
- checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
- languageName: node
- linkType: hard
-
-"parseurl@npm:~1.3.3":
- version: 1.3.3
- resolution: "parseurl@npm:1.3.3"
- checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5
- languageName: node
- linkType: hard
-
-"path-exists@npm:^4.0.0":
- version: 4.0.0
- resolution: "path-exists@npm:4.0.0"
- checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
- languageName: node
- linkType: hard
-
-"path-key@npm:^3.1.0":
- version: 3.1.1
- resolution: "path-key@npm:3.1.1"
- checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
- languageName: node
- linkType: hard
-
-"path-scurry@npm:^1.10.2":
- version: 1.10.2
- resolution: "path-scurry@npm:1.10.2"
- dependencies:
- lru-cache: "npm:^10.2.0"
- minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- checksum: 10c0/d723777fbf9627f201e64656680f66ebd940957eebacf780e6cce1c2919c29c116678b2d7dbf8821b3a2caa758d125f4444005ccec886a25c8f324504e48e601
- languageName: node
- linkType: hard
-
-"path-to-regexp@npm:0.1.7":
- version: 0.1.7
- resolution: "path-to-regexp@npm:0.1.7"
- checksum: 10c0/50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905
- languageName: node
- linkType: hard
-
-"path-type@npm:^4.0.0":
- version: 4.0.0
- resolution: "path-type@npm:4.0.0"
- checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c
- languageName: node
- linkType: hard
-
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
- version: 2.3.1
- resolution: "picomatch@npm:2.3.1"
- checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
- languageName: node
- linkType: hard
-
-"prelude-ls@npm:^1.2.1":
- version: 1.2.1
- resolution: "prelude-ls@npm:1.2.1"
- checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
- languageName: node
- linkType: hard
-
-"prettier@npm:^3.2.5":
- version: 3.2.5
- resolution: "prettier@npm:3.2.5"
- bin:
- prettier: bin/prettier.cjs
- checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6
- languageName: node
- linkType: hard
-
-"proc-log@npm:^3.0.0":
- version: 3.0.0
- resolution: "proc-log@npm:3.0.0"
- checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc
- languageName: node
- linkType: hard
-
-"promise-retry@npm:^2.0.1":
- version: 2.0.1
- resolution: "promise-retry@npm:2.0.1"
- dependencies:
- err-code: "npm:^2.0.2"
- retry: "npm:^0.12.0"
- checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96
- languageName: node
- linkType: hard
-
-"proxy-addr@npm:~2.0.7":
- version: 2.0.7
- resolution: "proxy-addr@npm:2.0.7"
- dependencies:
- forwarded: "npm:0.2.0"
- ipaddr.js: "npm:1.9.1"
- checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210
- languageName: node
- linkType: hard
-
-"pstree.remy@npm:^1.1.8":
- version: 1.1.8
- resolution: "pstree.remy@npm:1.1.8"
- checksum: 10c0/30f78c88ce6393cb3f7834216cb6e282eb83c92ccb227430d4590298ab2811bc4a4745f850a27c5178e79a8f3e316591de0fec87abc19da648c2b3c6eb766d14
- languageName: node
- linkType: hard
-
-"punycode@npm:^2.1.0":
- version: 2.3.1
- resolution: "punycode@npm:2.3.1"
- checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
- languageName: node
- linkType: hard
-
-"qs@npm:6.11.0":
- version: 6.11.0
- resolution: "qs@npm:6.11.0"
- dependencies:
- side-channel: "npm:^1.0.4"
- checksum: 10c0/4e4875e4d7c7c31c233d07a448e7e4650f456178b9dd3766b7cfa13158fdb24ecb8c4f059fa91e820dc6ab9f2d243721d071c9c0378892dcdad86e9e9a27c68f
- languageName: node
- linkType: hard
-
-"queue-microtask@npm:^1.2.2":
- version: 1.2.3
- resolution: "queue-microtask@npm:1.2.3"
- checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
- languageName: node
- linkType: hard
-
-"range-parser@npm:~1.2.1":
- version: 1.2.1
- resolution: "range-parser@npm:1.2.1"
- checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0
- languageName: node
- linkType: hard
-
-"raw-body@npm:2.5.2":
- version: 2.5.2
- resolution: "raw-body@npm:2.5.2"
- dependencies:
- bytes: "npm:3.1.2"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- unpipe: "npm:1.0.0"
- checksum: 10c0/b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4
- languageName: node
- linkType: hard
-
-"readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0":
- version: 3.6.2
- resolution: "readable-stream@npm:3.6.2"
- dependencies:
- inherits: "npm:^2.0.3"
- string_decoder: "npm:^1.1.1"
- util-deprecate: "npm:^1.0.1"
- checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
- languageName: node
- linkType: hard
-
-"readdirp@npm:~3.6.0":
- version: 3.6.0
- resolution: "readdirp@npm:3.6.0"
- dependencies:
- picomatch: "npm:^2.2.1"
- checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
- languageName: node
- linkType: hard
-
-"resolve-from@npm:^4.0.0":
- version: 4.0.0
- resolution: "resolve-from@npm:4.0.0"
- checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
- languageName: node
- linkType: hard
-
-"retry@npm:^0.12.0":
- version: 0.12.0
- resolution: "retry@npm:0.12.0"
- checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe
- languageName: node
- linkType: hard
-
-"reusify@npm:^1.0.4":
- version: 1.0.4
- resolution: "reusify@npm:1.0.4"
- checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
- languageName: node
- linkType: hard
-
-"run-parallel@npm:^1.1.9":
- version: 1.2.0
- resolution: "run-parallel@npm:1.2.0"
- dependencies:
- queue-microtask: "npm:^1.2.2"
- checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0":
- version: 5.2.1
- resolution: "safe-buffer@npm:5.2.1"
- checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
- languageName: node
- linkType: hard
-
-"safe-stable-stringify@npm:^2.3.1":
- version: 2.4.3
- resolution: "safe-stable-stringify@npm:2.4.3"
- checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768
- languageName: node
- linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0":
- version: 2.1.2
- resolution: "safer-buffer@npm:2.1.2"
- checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
- languageName: node
- linkType: hard
-
-"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.6.0":
- version: 7.6.0
- resolution: "semver@npm:7.6.0"
- dependencies:
- lru-cache: "npm:^6.0.0"
- bin:
- semver: bin/semver.js
- checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
- languageName: node
- linkType: hard
-
-"send@npm:0.18.0":
- version: 0.18.0
- resolution: "send@npm:0.18.0"
- dependencies:
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- encodeurl: "npm:~1.0.2"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- fresh: "npm:0.5.2"
- http-errors: "npm:2.0.0"
- mime: "npm:1.6.0"
- ms: "npm:2.1.3"
- on-finished: "npm:2.4.1"
- range-parser: "npm:~1.2.1"
- statuses: "npm:2.0.1"
- checksum: 10c0/0eb134d6a51fc13bbcb976a1f4214ea1e33f242fae046efc311e80aff66c7a43603e26a79d9d06670283a13000e51be6e0a2cb80ff0942eaf9f1cd30b7ae736a
- languageName: node
- linkType: hard
-
-"sentry-javascript-examples@workspace:.":
- version: 0.0.0-use.local
- resolution: "sentry-javascript-examples@workspace:."
- dependencies:
- "@eslint/js": "npm:^9.0.0"
- "@types/node": "npm:^20.12.5"
- "@typescript-eslint/eslint-plugin": "npm:^7.6.0"
- "@typescript-eslint/parser": "npm:^7.6.0"
- es-check: "npm:7.1.1"
- eslint: "npm:^9.0.0"
- globals: "npm:^15.0.0"
- nodemon: "npm:^3.1.0"
- prettier: "npm:^3.2.5"
- ts-node: "npm:10.9.2"
- typescript: "npm:5.4.4"
- typescript-eslint: "npm:^7.6.0"
- languageName: unknown
- linkType: soft
-
-"serve-static@npm:1.15.0":
- version: 1.15.0
- resolution: "serve-static@npm:1.15.0"
- dependencies:
- encodeurl: "npm:~1.0.2"
- escape-html: "npm:~1.0.3"
- parseurl: "npm:~1.3.3"
- send: "npm:0.18.0"
- checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba
- languageName: node
- linkType: hard
-
-"set-function-length@npm:^1.2.1":
- version: 1.2.2
- resolution: "set-function-length@npm:1.2.2"
- dependencies:
- define-data-property: "npm:^1.1.4"
- es-errors: "npm:^1.3.0"
- function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.2.4"
- gopd: "npm:^1.0.1"
- has-property-descriptors: "npm:^1.0.2"
- checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c
- languageName: node
- linkType: hard
-
-"setprototypeof@npm:1.2.0":
- version: 1.2.0
- resolution: "setprototypeof@npm:1.2.0"
- checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc
- languageName: node
- linkType: hard
-
-"shebang-command@npm:^2.0.0":
- version: 2.0.0
- resolution: "shebang-command@npm:2.0.0"
- dependencies:
- shebang-regex: "npm:^3.0.0"
- checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
- languageName: node
- linkType: hard
-
-"shebang-regex@npm:^3.0.0":
- version: 3.0.0
- resolution: "shebang-regex@npm:3.0.0"
- checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
- languageName: node
- linkType: hard
-
-"side-channel@npm:^1.0.4":
- version: 1.0.6
- resolution: "side-channel@npm:1.0.6"
- dependencies:
- call-bind: "npm:^1.0.7"
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.4"
- object-inspect: "npm:^1.13.1"
- checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^4.0.1":
- version: 4.1.0
- resolution: "signal-exit@npm:4.1.0"
- checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
- languageName: node
- linkType: hard
-
-"simple-swizzle@npm:^0.2.2":
- version: 0.2.2
- resolution: "simple-swizzle@npm:0.2.2"
- dependencies:
- is-arrayish: "npm:^0.3.1"
- checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308
- languageName: node
- linkType: hard
-
-"simple-update-notifier@npm:^2.0.0":
- version: 2.0.0
- resolution: "simple-update-notifier@npm:2.0.0"
- dependencies:
- semver: "npm:^7.5.3"
- checksum: 10c0/2a00bd03bfbcbf8a737c47ab230d7920f8bfb92d1159d421bdd194479f6d01ebc995d13fbe13d45dace23066a78a3dc6642999b4e3b38b847e6664191575b20c
- languageName: node
- linkType: hard
-
-"slash@npm:^3.0.0":
- version: 3.0.0
- resolution: "slash@npm:3.0.0"
- checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b
- languageName: node
- linkType: hard
-
-"smart-buffer@npm:^4.2.0":
- version: 4.2.0
- resolution: "smart-buffer@npm:4.2.0"
- checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
- languageName: node
- linkType: hard
-
-"socks-proxy-agent@npm:^8.0.3":
- version: 8.0.3
- resolution: "socks-proxy-agent@npm:8.0.3"
- dependencies:
- agent-base: "npm:^7.1.1"
- debug: "npm:^4.3.4"
- socks: "npm:^2.7.1"
- checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
- languageName: node
- linkType: hard
-
-"socks@npm:^2.7.1":
- version: 2.8.1
- resolution: "socks@npm:2.8.1"
- dependencies:
- ip-address: "npm:^9.0.5"
- smart-buffer: "npm:^4.2.0"
- checksum: 10c0/ac77b515c260473cc7c4452f09b20939e22510ce3ae48385c516d1d5784374d5cc75be3cb18ff66cc985a7f4f2ef8fef84e984c5ec70aad58355ed59241f40a8
- languageName: node
- linkType: hard
-
-"sprintf-js@npm:^1.1.3":
- version: 1.1.3
- resolution: "sprintf-js@npm:1.1.3"
- checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
- languageName: node
- linkType: hard
-
-"ssri@npm:^10.0.0":
- version: 10.0.5
- resolution: "ssri@npm:10.0.5"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8
- languageName: node
- linkType: hard
-
-"stack-trace@npm:0.0.x":
- version: 0.0.10
- resolution: "stack-trace@npm:0.0.10"
- checksum: 10c0/9ff3dabfad4049b635a85456f927a075c9d0c210e3ea336412d18220b2a86cbb9b13ec46d6c37b70a302a4ea4d49e30e5d4944dd60ae784073f1cde778ac8f4b
- languageName: node
- linkType: hard
-
-"statuses@npm:2.0.1":
- version: 2.0.1
- resolution: "statuses@npm:2.0.1"
- checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0
- languageName: node
- linkType: hard
-
-"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
- version: 4.2.3
- resolution: "string-width@npm:4.2.3"
- dependencies:
- emoji-regex: "npm:^8.0.0"
- is-fullwidth-code-point: "npm:^3.0.0"
- strip-ansi: "npm:^6.0.1"
- checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
- languageName: node
- linkType: hard
-
-"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
- version: 5.1.2
- resolution: "string-width@npm:5.1.2"
- dependencies:
- eastasianwidth: "npm:^0.2.0"
- emoji-regex: "npm:^9.2.2"
- strip-ansi: "npm:^7.0.1"
- checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
- languageName: node
- linkType: hard
-
-"string_decoder@npm:^1.1.1":
- version: 1.3.0
- resolution: "string_decoder@npm:1.3.0"
- dependencies:
- safe-buffer: "npm:~5.2.0"
- checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
- languageName: node
- linkType: hard
-
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
- version: 6.0.1
- resolution: "strip-ansi@npm:6.0.1"
- dependencies:
- ansi-regex: "npm:^5.0.1"
- checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^7.0.1":
- version: 7.1.0
- resolution: "strip-ansi@npm:7.1.0"
- dependencies:
- ansi-regex: "npm:^6.0.1"
- checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
- languageName: node
- linkType: hard
-
-"strip-json-comments@npm:^3.1.1":
- version: 3.1.1
- resolution: "strip-json-comments@npm:3.1.1"
- checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
- languageName: node
- linkType: hard
-
-"supports-color@npm:^5.5.0":
- version: 5.5.0
- resolution: "supports-color@npm:5.5.0"
- dependencies:
- has-flag: "npm:^3.0.0"
- checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
- languageName: node
- linkType: hard
-
-"supports-color@npm:^7.1.0":
- version: 7.2.0
- resolution: "supports-color@npm:7.2.0"
- dependencies:
- has-flag: "npm:^4.0.0"
- checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
- languageName: node
- linkType: hard
-
-"supports-color@npm:^8.1.1":
- version: 8.1.1
- resolution: "supports-color@npm:8.1.1"
- dependencies:
- has-flag: "npm:^4.0.0"
- checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89
- languageName: node
- linkType: hard
-
-"tar@npm:^6.1.11, tar@npm:^6.1.2":
- version: 6.2.1
- resolution: "tar@npm:6.2.1"
- dependencies:
- chownr: "npm:^2.0.0"
- fs-minipass: "npm:^2.0.0"
- minipass: "npm:^5.0.0"
- minizlib: "npm:^2.1.1"
- mkdirp: "npm:^1.0.3"
- yallist: "npm:^4.0.0"
- checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
- languageName: node
- linkType: hard
-
-"text-hex@npm:1.0.x":
- version: 1.0.0
- resolution: "text-hex@npm:1.0.0"
- checksum: 10c0/57d8d320d92c79d7c03ffb8339b825bb9637c2cbccf14304309f51d8950015c44464b6fd1b6820a3d4821241c68825634f09f5a2d9d501e84f7c6fd14376860d
- languageName: node
- linkType: hard
-
-"text-table@npm:^0.2.0":
- version: 0.2.0
- resolution: "text-table@npm:0.2.0"
- checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
- languageName: node
- linkType: hard
-
-"to-regex-range@npm:^5.0.1":
- version: 5.0.1
- resolution: "to-regex-range@npm:5.0.1"
- dependencies:
- is-number: "npm:^7.0.0"
- checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
- languageName: node
- linkType: hard
-
-"toidentifier@npm:1.0.1":
- version: 1.0.1
- resolution: "toidentifier@npm:1.0.1"
- checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1
- languageName: node
- linkType: hard
-
-"touch@npm:^3.1.0":
- version: 3.1.0
- resolution: "touch@npm:3.1.0"
- dependencies:
- nopt: "npm:~1.0.10"
- bin:
- nodetouch: ./bin/nodetouch.js
- checksum: 10c0/dacb4a639401b83b0a40b56c0565e01096e5ecf38b22a4840d9eeb642a5bea136c6a119e4543f9b172349a5ee343b10cda0880eb47f7d7ddfd6eac59dcf53244
- languageName: node
- linkType: hard
-
-"triple-beam@npm:^1.3.0":
- version: 1.4.1
- resolution: "triple-beam@npm:1.4.1"
- checksum: 10c0/4bf1db71e14fe3ff1c3adbe3c302f1fdb553b74d7591a37323a7badb32dc8e9c290738996cbb64f8b10dc5a3833645b5d8c26221aaaaa12e50d1251c9aba2fea
- languageName: node
- linkType: hard
-
-"ts-api-utils@npm:^1.3.0":
- version: 1.3.0
- resolution: "ts-api-utils@npm:1.3.0"
- peerDependencies:
- typescript: ">=4.2.0"
- checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c
- languageName: node
- linkType: hard
-
-"ts-node@npm:10.9.2":
- version: 10.9.2
- resolution: "ts-node@npm:10.9.2"
- dependencies:
- "@cspotcode/source-map-support": "npm:^0.8.0"
- "@tsconfig/node10": "npm:^1.0.7"
- "@tsconfig/node12": "npm:^1.0.7"
- "@tsconfig/node14": "npm:^1.0.0"
- "@tsconfig/node16": "npm:^1.0.2"
- acorn: "npm:^8.4.1"
- acorn-walk: "npm:^8.1.1"
- arg: "npm:^4.1.0"
- create-require: "npm:^1.1.0"
- diff: "npm:^4.0.1"
- make-error: "npm:^1.1.1"
- v8-compile-cache-lib: "npm:^3.0.1"
- yn: "npm:3.1.1"
- peerDependencies:
- "@swc/core": ">=1.2.50"
- "@swc/wasm": ">=1.2.50"
- "@types/node": "*"
- typescript: ">=2.7"
- peerDependenciesMeta:
- "@swc/core":
- optional: true
- "@swc/wasm":
- optional: true
- bin:
- ts-node: dist/bin.js
- ts-node-cwd: dist/bin-cwd.js
- ts-node-esm: dist/bin-esm.js
- ts-node-script: dist/bin-script.js
- ts-node-transpile-only: dist/bin-transpile.js
- ts-script: dist/bin-script-deprecated.js
- checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2
- languageName: node
- linkType: hard
-
-"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
- version: 0.4.0
- resolution: "type-check@npm:0.4.0"
- dependencies:
- prelude-ls: "npm:^1.2.1"
- checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
- languageName: node
- linkType: hard
-
-"type-is@npm:~1.6.18":
- version: 1.6.18
- resolution: "type-is@npm:1.6.18"
- dependencies:
- media-typer: "npm:0.3.0"
- mime-types: "npm:~2.1.24"
- checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d
- languageName: node
- linkType: hard
-
-"typescript-eslint@npm:^7.6.0":
- version: 7.6.0
- resolution: "typescript-eslint@npm:7.6.0"
- dependencies:
- "@typescript-eslint/eslint-plugin": "npm:7.6.0"
- "@typescript-eslint/parser": "npm:7.6.0"
- "@typescript-eslint/utils": "npm:7.6.0"
- peerDependencies:
- eslint: ^8.56.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/1950ae59069860cc802de9c1c4f15013099b677b47cabc8dc24200dbe9a4a5a3db5ff9b88e6813658b089e16294d75835b6c17d13a445cf29c954a71eb27ff6f
- languageName: node
- linkType: hard
-
-"typescript@npm:5.4.4":
- version: 5.4.4
- resolution: "typescript@npm:5.4.4"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10c0/4d8de0291204ed61ca97ad0cba2ce064e09c4988ca1c451c787e4653ba76296ba35177a52694e8a00cf4ef899d0ee83338663b926d8b7d55167ff0ba81549999
- languageName: node
- linkType: hard
-
-"typescript@patch:typescript@npm%3A5.4.4#optional!builtin":
- version: 5.4.4
- resolution: "typescript@patch:typescript@npm%3A5.4.4#optional!builtin::version=5.4.4&hash=5adc0c"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10c0/1fa41b9964a9ff0ed913b339c90b46031b2d2da3cb1a192af516610733f7f1d5f7f9754a8e22b9ac7076d3d8aedd2c4f84db3f113bad060eac3a95962443a1bf
- languageName: node
- linkType: hard
-
-"undefsafe@npm:^2.0.5":
- version: 2.0.5
- resolution: "undefsafe@npm:2.0.5"
- checksum: 10c0/96c0466a5fbf395917974a921d5d4eee67bca4b30d3a31ce7e621e0228c479cf893e783a109af6e14329b52fe2f0cb4108665fad2b87b0018c0df6ac771261d5
- languageName: node
- linkType: hard
-
-"undici-types@npm:~5.26.4":
- version: 5.26.5
- resolution: "undici-types@npm:5.26.5"
- checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501
- languageName: node
- linkType: hard
-
-"unique-filename@npm:^3.0.0":
- version: 3.0.0
- resolution: "unique-filename@npm:3.0.0"
- dependencies:
- unique-slug: "npm:^4.0.0"
- checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f
- languageName: node
- linkType: hard
-
-"unique-slug@npm:^4.0.0":
- version: 4.0.0
- resolution: "unique-slug@npm:4.0.0"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635
- languageName: node
- linkType: hard
-
-"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
- version: 1.0.0
- resolution: "unpipe@npm:1.0.0"
- checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c
- languageName: node
- linkType: hard
-
-"uri-js@npm:^4.2.2":
- version: 4.4.1
- resolution: "uri-js@npm:4.4.1"
- dependencies:
- punycode: "npm:^2.1.0"
- checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
- languageName: node
- linkType: hard
-
-"util-deprecate@npm:^1.0.1":
- version: 1.0.2
- resolution: "util-deprecate@npm:1.0.2"
- checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
- languageName: node
- linkType: hard
-
-"utils-merge@npm:1.0.1":
- version: 1.0.1
- resolution: "utils-merge@npm:1.0.1"
- checksum: 10c0/02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672
- languageName: node
- linkType: hard
-
-"v8-compile-cache-lib@npm:^3.0.1":
- version: 3.0.1
- resolution: "v8-compile-cache-lib@npm:3.0.1"
- checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391
- languageName: node
- linkType: hard
-
-"vary@npm:~1.1.2":
- version: 1.1.2
- resolution: "vary@npm:1.1.2"
- checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f
- languageName: node
- linkType: hard
-
-"which@npm:^2.0.1":
- version: 2.0.2
- resolution: "which@npm:2.0.2"
- dependencies:
- isexe: "npm:^2.0.0"
- bin:
- node-which: ./bin/node-which
- checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
- languageName: node
- linkType: hard
-
-"which@npm:^4.0.0":
- version: 4.0.0
- resolution: "which@npm:4.0.0"
- dependencies:
- isexe: "npm:^3.1.1"
- bin:
- node-which: bin/which.js
- checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a
- languageName: node
- linkType: hard
-
-"winston-transport@npm:^4.7.0":
- version: 4.7.0
- resolution: "winston-transport@npm:4.7.0"
- dependencies:
- logform: "npm:^2.3.2"
- readable-stream: "npm:^3.6.0"
- triple-beam: "npm:^1.3.0"
- checksum: 10c0/cd16f3d0ab56697f93c4899e0eb5f89690f291bb6cf309194819789326a7c7ed943ef00f0b2fab513b114d371314368bde1a7ae6252ad1516181a79f90199cd2
- languageName: node
- linkType: hard
-
-"winston@npm:^3.8.2":
- version: 3.13.0
- resolution: "winston@npm:3.13.0"
- dependencies:
- "@colors/colors": "npm:^1.6.0"
- "@dabh/diagnostics": "npm:^2.0.2"
- async: "npm:^3.2.3"
- is-stream: "npm:^2.0.0"
- logform: "npm:^2.4.0"
- one-time: "npm:^1.0.0"
- readable-stream: "npm:^3.4.0"
- safe-stable-stringify: "npm:^2.3.1"
- stack-trace: "npm:0.0.x"
- triple-beam: "npm:^1.3.0"
- winston-transport: "npm:^4.7.0"
- checksum: 10c0/2c3cc7389a691e1638edcb0d4bfea72caa82d87d5681ec6131ac9bae780d94d06fb7b112edcd4ec37c8b947a1b64943941b761e34d67c6b0dac6e9c31ae4b25b
- languageName: node
- linkType: hard
-
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
- version: 7.0.0
- resolution: "wrap-ansi@npm:7.0.0"
- dependencies:
- ansi-styles: "npm:^4.0.0"
- string-width: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^8.1.0":
- version: 8.1.0
- resolution: "wrap-ansi@npm:8.1.0"
- dependencies:
- ansi-styles: "npm:^6.1.0"
- string-width: "npm:^5.0.1"
- strip-ansi: "npm:^7.0.1"
- checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
- languageName: node
- linkType: hard
-
-"yallist@npm:^4.0.0":
- version: 4.0.0
- resolution: "yallist@npm:4.0.0"
- checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
- languageName: node
- linkType: hard
-
-"yn@npm:3.1.1":
- version: 3.1.1
- resolution: "yn@npm:3.1.1"
- checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443
- languageName: node
- linkType: hard
-
-"yocto-queue@npm:^0.1.0":
- version: 0.1.0
- resolution: "yocto-queue@npm:0.1.0"
- checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
- languageName: node
- linkType: hard