From 27626adbe64470b9ddc8d5896ef998527f2d45cd Mon Sep 17 00:00:00 2001 From: s1gr1d Date: Wed, 10 Jul 2024 11:09:12 +0200 Subject: [PATCH 1/5] meta(changelog): Update changelog for 8.17.0 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4504804bc586..81b502aecd4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +## 8.17.0 + +- feat: Upgrade OTEL deps (#12809) +- fix(nuxt): Add module to build:transpile script (#12843) +- fix(browser): Allow SDK initialization in NW.js apps (#12846) + ## 8.16.0 ### Important Changes From a03e28cce8bcd9447077cc47f1b6a1f03a79f065 Mon Sep 17 00:00:00 2001 From: getsentry-bot Date: Wed, 10 Jul 2024 10:51:26 +0000 Subject: [PATCH 2/5] release: 8.17.0 --- .../browser-integration-tests/package.json | 4 ++-- .../bundle-analyzer-scenarios/package.json | 2 +- dev-packages/e2e-tests/package.json | 6 +++--- .../package.json | 2 +- .../node-integration-tests/package.json | 6 +++--- dev-packages/overhead-metrics/package.json | 2 +- dev-packages/rollup-utils/package.json | 2 +- dev-packages/size-limit-gh-action/package.json | 2 +- dev-packages/test-utils/package.json | 6 +++--- lerna.json | 2 +- packages/angular/package.json | 10 +++++----- packages/astro/package.json | 12 ++++++------ packages/aws-serverless/package.json | 10 +++++----- packages/browser-utils/package.json | 8 ++++---- packages/browser/package.json | 18 +++++++++--------- packages/bun/package.json | 12 ++++++------ packages/core/package.json | 6 +++--- packages/deno/package.json | 8 ++++---- packages/ember/package.json | 10 +++++----- packages/eslint-config-sdk/package.json | 6 +++--- packages/eslint-plugin-sdk/package.json | 2 +- packages/feedback/package.json | 8 ++++---- packages/gatsby/package.json | 10 +++++----- packages/google-cloud-serverless/package.json | 10 +++++----- packages/integration-shims/package.json | 8 ++++---- packages/nestjs/package.json | 6 +++--- packages/nextjs/package.json | 16 ++++++++-------- packages/node/package.json | 10 +++++----- packages/nuxt/package.json | 16 ++++++++-------- packages/opentelemetry/package.json | 8 ++++---- packages/profiling-node/package.json | 10 +++++----- packages/react/package.json | 10 +++++----- packages/remix/package.json | 14 +++++++------- packages/replay-canvas/package.json | 10 +++++----- packages/replay-internal/package.json | 12 ++++++------ packages/replay-worker/package.json | 2 +- packages/solid/package.json | 10 +++++----- packages/solidstart/package.json | 14 +++++++------- packages/svelte/package.json | 10 +++++----- packages/sveltekit/package.json | 14 +++++++------- packages/types/package.json | 2 +- packages/typescript/package.json | 2 +- packages/utils/package.json | 4 ++-- packages/utils/src/version.ts | 2 +- packages/vercel-edge/package.json | 8 ++++---- packages/vue/package.json | 10 +++++----- packages/wasm/package.json | 10 +++++----- 47 files changed, 186 insertions(+), 186 deletions(-) diff --git a/dev-packages/browser-integration-tests/package.json b/dev-packages/browser-integration-tests/package.json index f767a74fbb2d..bf54aedffede 100644 --- a/dev-packages/browser-integration-tests/package.json +++ b/dev-packages/browser-integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/browser-integration-tests", - "version": "8.16.0", + "version": "8.17.0", "main": "index.js", "license": "MIT", "engines": { @@ -43,7 +43,7 @@ "@babel/preset-typescript": "^7.16.7", "@playwright/test": "^1.44.1", "@sentry-internal/rrweb": "2.11.0", - "@sentry/browser": "8.16.0", + "@sentry/browser": "8.17.0", "axios": "1.6.7", "babel-loader": "^8.2.2", "html-webpack-plugin": "^5.5.0", diff --git a/dev-packages/bundle-analyzer-scenarios/package.json b/dev-packages/bundle-analyzer-scenarios/package.json index 1f43a05dc920..c878c460dade 100644 --- a/dev-packages/bundle-analyzer-scenarios/package.json +++ b/dev-packages/bundle-analyzer-scenarios/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/bundle-analyzer-scenarios", - "version": "8.16.0", + "version": "8.17.0", "description": "Scenarios to test bundle analysis with", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/dev-packages/bundle-analyzer-scenarios", diff --git a/dev-packages/e2e-tests/package.json b/dev-packages/e2e-tests/package.json index 4e6c66bb663c..6b07a13e5a64 100644 --- a/dev-packages/e2e-tests/package.json +++ b/dev-packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/e2e-tests", - "version": "8.16.0", + "version": "8.17.0", "license": "MIT", "private": true, "scripts": { @@ -22,9 +22,9 @@ "dotenv": "16.0.3", "esbuild": "0.20.0", "glob": "8.0.3", + "rimraf": "^5.0.0", "ts-node": "10.9.1", - "yaml": "2.2.2", - "rimraf": "^5.0.0" + "yaml": "2.2.2" }, "volta": { "extends": "../../package.json", diff --git a/dev-packages/external-contributor-gh-action/package.json b/dev-packages/external-contributor-gh-action/package.json index 67f9ab9259d7..34c99564d96d 100644 --- a/dev-packages/external-contributor-gh-action/package.json +++ b/dev-packages/external-contributor-gh-action/package.json @@ -1,7 +1,7 @@ { "name": "@sentry-internal/external-contributor-gh-action", "description": "An internal Github Action to add external contributors to the CHANGELOG.md file.", - "version": "8.16.0", + "version": "8.17.0", "license": "MIT", "engines": { "node": ">=18" diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 3c5869491951..4083fa0158df 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/node-integration-tests", - "version": "8.16.0", + "version": "8.17.0", "license": "MIT", "engines": { "node": ">=14.18" @@ -31,8 +31,8 @@ "@nestjs/core": "^10.3.3", "@nestjs/platform-express": "^10.3.3", "@prisma/client": "5.9.1", - "@sentry/node": "8.16.0", - "@sentry/types": "8.16.0", + "@sentry/node": "8.17.0", + "@sentry/types": "8.17.0", "@types/mongodb": "^3.6.20", "@types/mysql": "^2.15.21", "@types/pg": "^8.6.5", diff --git a/dev-packages/overhead-metrics/package.json b/dev-packages/overhead-metrics/package.json index b3075ef1ee99..181b0e1e0c61 100644 --- a/dev-packages/overhead-metrics/package.json +++ b/dev-packages/overhead-metrics/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "8.16.0", + "version": "8.17.0", "name": "@sentry-internal/overhead-metrics", "main": "index.js", "author": "Sentry", diff --git a/dev-packages/rollup-utils/package.json b/dev-packages/rollup-utils/package.json index 8a6b26a3c078..b6cf46778611 100644 --- a/dev-packages/rollup-utils/package.json +++ b/dev-packages/rollup-utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/rollup-utils", - "version": "8.16.0", + "version": "8.17.0", "description": "Rollup utilities used at Sentry for the Sentry JavaScript SDK", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/rollup-utils", diff --git a/dev-packages/size-limit-gh-action/package.json b/dev-packages/size-limit-gh-action/package.json index d754e1916ca3..bae0b9e3371c 100644 --- a/dev-packages/size-limit-gh-action/package.json +++ b/dev-packages/size-limit-gh-action/package.json @@ -1,7 +1,7 @@ { "name": "@sentry-internal/size-limit-gh-action", "description": "An internal Github Action to compare the current size of a PR against the one on develop.", - "version": "8.16.0", + "version": "8.17.0", "license": "MIT", "engines": { "node": ">=18" diff --git a/dev-packages/test-utils/package.json b/dev-packages/test-utils/package.json index d8452ee6782f..f6c125517861 100644 --- a/dev-packages/test-utils/package.json +++ b/dev-packages/test-utils/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "8.16.0", + "version": "8.17.0", "name": "@sentry-internal/test-utils", "author": "Sentry", "license": "MIT", @@ -45,8 +45,8 @@ }, "devDependencies": { "@playwright/test": "^1.44.1", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "volta": { "extends": "../../package.json" diff --git a/lerna.json b/lerna.json index d3087938610c..4365e3601d65 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "8.16.0", + "version": "8.17.0", "npmClient": "yarn" } diff --git a/packages/angular/package.json b/packages/angular/package.json index fc5d94ea5cda..ba12e247ec17 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/angular", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Angular", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular", @@ -21,10 +21,10 @@ "rxjs": "^6.5.5 || ^7.x" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "tslib": "^2.4.1" }, "devDependencies": { diff --git a/packages/astro/package.json b/packages/astro/package.json index b0d4a8c37385..2982fc1b2c95 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/astro", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Astro", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/astro", @@ -56,11 +56,11 @@ "astro": ">=3.x || >=4.0.0-beta" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@sentry/vite-plugin": "^2.20.1" }, "devDependencies": { diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index 030b12d1dd58..f94fbb596982 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/aws-serverless", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for AWS Lambda and AWS Serverless Environments", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/serverless", @@ -66,10 +66,10 @@ "dependencies": { "@opentelemetry/instrumentation-aws-lambda": "0.42.0", "@opentelemetry/instrumentation-aws-sdk": "0.42.0", - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@types/aws-lambda": "^8.10.62" }, "devDependencies": { diff --git a/packages/browser-utils/package.json b/packages/browser-utils/package.json index 584c84e92da1..8618050e627b 100644 --- a/packages/browser-utils/package.json +++ b/packages/browser-utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/browser-utils", - "version": "8.16.0", + "version": "8.17.0", "description": "Browser Utilities for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser-utils", @@ -39,9 +39,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "scripts": { "build": "run-p build:transpile build:types", diff --git a/packages/browser/package.json b/packages/browser/package.json index 870b06e752fe..4d71bfcae665 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/browser", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for browsers", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser", @@ -39,16 +39,16 @@ "access": "public" }, "dependencies": { - "@sentry-internal/browser-utils": "8.16.0", - "@sentry-internal/feedback": "8.16.0", - "@sentry-internal/replay": "8.16.0", - "@sentry-internal/replay-canvas": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry-internal/browser-utils": "8.17.0", + "@sentry-internal/feedback": "8.17.0", + "@sentry-internal/replay": "8.17.0", + "@sentry-internal/replay-canvas": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { - "@sentry-internal/integration-shims": "8.16.0", + "@sentry-internal/integration-shims": "8.17.0", "fake-indexeddb": "^4.0.1", "webpack": "^4.47.0" }, diff --git a/packages/bun/package.json b/packages/bun/package.json index 33e41b0e8df6..c5af58039854 100644 --- a/packages/bun/package.json +++ b/packages/bun/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/bun", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for bun", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/bun", @@ -39,11 +39,11 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { "bun-types": "latest" diff --git a/packages/core/package.json b/packages/core/package.json index 0b0da42d2894..55f99dc7f6e8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/core", - "version": "8.16.0", + "version": "8.17.0", "description": "Base implementation for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/core", @@ -39,8 +39,8 @@ "access": "public" }, "dependencies": { - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "scripts": { "build": "run-p build:transpile build:types", diff --git a/packages/deno/package.json b/packages/deno/package.json index 9fe4bd555c50..53104fd721dc 100644 --- a/packages/deno/package.json +++ b/packages/deno/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/deno", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Deno", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/deno", @@ -24,9 +24,9 @@ "/build" ], "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.5", diff --git a/packages/ember/package.json b/packages/ember/package.json index a431721bc8ea..e3a9b157b8f3 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/ember", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Ember.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/ember", @@ -33,10 +33,10 @@ "dependencies": { "@babel/core": "^7.24.4", "@embroider/macros": "^1.16.0", - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "ember-auto-import": "^2.7.2", "ember-cli-babel": "^8.2.0", "ember-cli-htmlbars": "^6.1.1", diff --git a/packages/eslint-config-sdk/package.json b/packages/eslint-config-sdk/package.json index 10094be82f49..7a60f92c57cc 100644 --- a/packages/eslint-config-sdk/package.json +++ b/packages/eslint-config-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-config-sdk", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK eslint config", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-config-sdk", @@ -22,8 +22,8 @@ "access": "public" }, "dependencies": { - "@sentry-internal/eslint-plugin-sdk": "8.16.0", - "@sentry-internal/typescript": "8.16.0", + "@sentry-internal/eslint-plugin-sdk": "8.17.0", + "@sentry-internal/typescript": "8.17.0", "@typescript-eslint/eslint-plugin": "^5.48.0", "@typescript-eslint/parser": "^5.48.0", "eslint-config-prettier": "^6.11.0", diff --git a/packages/eslint-plugin-sdk/package.json b/packages/eslint-plugin-sdk/package.json index 199386d18539..ca0bd9b38705 100644 --- a/packages/eslint-plugin-sdk/package.json +++ b/packages/eslint-plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-plugin-sdk", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK eslint plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-plugin-sdk", diff --git a/packages/feedback/package.json b/packages/feedback/package.json index f435ca3bab81..5cab5fd232ee 100644 --- a/packages/feedback/package.json +++ b/packages/feedback/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/feedback", - "version": "8.16.0", + "version": "8.17.0", "description": "Sentry SDK integration for user feedback", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/feedback", @@ -39,9 +39,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { "preact": "^10.19.4" diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 8e9b144ff189..aab0a97ff8b0 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/gatsby", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Gatsby.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/gatsby", @@ -45,10 +45,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/react": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/react": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@sentry/webpack-plugin": "2.16.0" }, "peerDependencies": { diff --git a/packages/google-cloud-serverless/package.json b/packages/google-cloud-serverless/package.json index f45cc8772da3..67c4e0b11c5b 100644 --- a/packages/google-cloud-serverless/package.json +++ b/packages/google-cloud-serverless/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/google-cloud-serverless", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Google Cloud Functions", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/google-cloud", @@ -48,10 +48,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@types/express": "^4.17.14" }, "devDependencies": { diff --git a/packages/integration-shims/package.json b/packages/integration-shims/package.json index 2ad4da98a39e..aff0473f929c 100644 --- a/packages/integration-shims/package.json +++ b/packages/integration-shims/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/integration-shims", - "version": "8.16.0", + "version": "8.17.0", "description": "Shims for integrations in Sentry SDK.", "main": "build/cjs/index.js", "module": "build/esm/index.js", @@ -55,9 +55,9 @@ "url": "https://github.com/getsentry/sentry-javascript/issues" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "engines": { "node": ">=14.18" diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index fd72f89569ba..b5058bf2c597 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/nestjs", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for NestJS", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nestjs", @@ -39,8 +39,8 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0" }, "scripts": { "build": "run-p build:transpile build:types", diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index f39e917a052f..3b812f37b46c 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/nextjs", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Next.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nextjs", @@ -71,13 +71,13 @@ "@opentelemetry/instrumentation-http": "0.52.1", "@opentelemetry/semantic-conventions": "^1.25.1", "@rollup/plugin-commonjs": "26.0.1", - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/react": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", - "@sentry/vercel-edge": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/react": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", + "@sentry/vercel-edge": "8.17.0", "@sentry/webpack-plugin": "2.20.1", "chalk": "3.0.0", "resolve": "1.22.8", diff --git a/packages/node/package.json b/packages/node/package.json index 81849e43a8d7..08b29345de79 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/node", - "version": "8.16.0", + "version": "8.17.0", "description": "Sentry Node SDK using OpenTelemetry for performance instrumentation", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/node", @@ -88,10 +88,10 @@ "@opentelemetry/sdk-trace-base": "^1.25.1", "@opentelemetry/semantic-conventions": "^1.25.1", "@prisma/instrumentation": "5.16.1", - "@sentry/core": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { "@types/node": "^14.18.0" diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 13ad8218c5f0..984d2e9b7668 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/nuxt", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Nuxt (EXPERIMENTAL)", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nuxt", @@ -43,14 +43,14 @@ }, "dependencies": { "@nuxt/kit": "^3.12.2", - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@sentry/vite-plugin": "2.20.1", - "@sentry/vue": "8.16.0" + "@sentry/vue": "8.17.0" }, "devDependencies": { "@nuxt/module-builder": "0.8.0", diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index ee7cc437e7f2..3ff264281023 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/opentelemetry", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry utilities for OpenTelemetry", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/opentelemetry", @@ -39,9 +39,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", diff --git a/packages/profiling-node/package.json b/packages/profiling-node/package.json index 14c6774b0d93..68b9e369153d 100644 --- a/packages/profiling-node/package.json +++ b/packages/profiling-node/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/profiling-node", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Node.js Profiling", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/profiling-node", @@ -75,10 +75,10 @@ "test": "cross-env SENTRY_PROFILER_BINARY_DIR=lib jest --config jest.config.js" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "detect-libc": "^2.0.2", "node-abi": "^3.61.0" }, diff --git a/packages/react/package.json b/packages/react/package.json index 0257b66532a6..5fdfd0633f13 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/react", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for React.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/react", @@ -39,10 +39,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 92a8062e1fca..1ec9d62b3b7f 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/remix", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Remix", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/remix", @@ -55,12 +55,12 @@ "@opentelemetry/instrumentation-http": "0.52.1", "@remix-run/router": "1.x", "@sentry/cli": "^2.32.1", - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/react": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/react": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "glob": "^10.3.4", "opentelemetry-instrumentation-remix": "0.7.1", "yargs": "^17.6.0" diff --git a/packages/replay-canvas/package.json b/packages/replay-canvas/package.json index 862dcf2df4a9..9d0bdb6eac50 100644 --- a/packages/replay-canvas/package.json +++ b/packages/replay-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/replay-canvas", - "version": "8.16.0", + "version": "8.17.0", "description": "Replay canvas integration", "main": "build/npm/cjs/index.js", "module": "build/npm/esm/index.js", @@ -69,10 +69,10 @@ "@sentry-internal/rrweb": "2.15.0" }, "dependencies": { - "@sentry-internal/replay": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry-internal/replay": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "engines": { "node": ">=14.18" diff --git a/packages/replay-internal/package.json b/packages/replay-internal/package.json index 6b3cbd92b49a..1ac8466f0e90 100644 --- a/packages/replay-internal/package.json +++ b/packages/replay-internal/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/replay", - "version": "8.16.0", + "version": "8.17.0", "description": "User replays for Sentry", "main": "build/npm/cjs/index.js", "module": "build/npm/esm/index.js", @@ -68,7 +68,7 @@ "homepage": "https://docs.sentry.io/platforms/javascript/session-replay/", "devDependencies": { "@babel/core": "^7.17.5", - "@sentry-internal/replay-worker": "8.16.0", + "@sentry-internal/replay-worker": "8.17.0", "@sentry-internal/rrweb": "2.15.0", "@sentry-internal/rrweb-snapshot": "2.15.0", "fflate": "^0.8.1", @@ -76,10 +76,10 @@ "jsdom-worker": "^0.2.1" }, "dependencies": { - "@sentry-internal/browser-utils": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry-internal/browser-utils": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "engines": { "node": ">=14.18" diff --git a/packages/replay-worker/package.json b/packages/replay-worker/package.json index 7786e0d08923..5e4aaa62be0d 100644 --- a/packages/replay-worker/package.json +++ b/packages/replay-worker/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/replay-worker", - "version": "8.16.0", + "version": "8.17.0", "description": "Worker for @sentry-internal/replay", "main": "build/esm/index.js", "module": "build/esm/index.js", diff --git a/packages/solid/package.json b/packages/solid/package.json index a39f468094fd..66c13d8a7f8d 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/solid", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Solid", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/solid", @@ -44,10 +44,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "peerDependencies": { "@solidjs/router": "^0.13.4", diff --git a/packages/solidstart/package.json b/packages/solidstart/package.json index da6616fc87cd..6a8e3d432bc9 100644 --- a/packages/solidstart/package.json +++ b/packages/solidstart/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/solidstart", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Solid Start", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/solidstart", @@ -66,12 +66,12 @@ } }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/solid": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/solid": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@sentry/vite-plugin": "2.19.0" }, "devDependencies": { diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 086c64c2014f..5e7406747832 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/svelte", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Svelte", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/svelte", @@ -39,10 +39,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "magic-string": "^0.30.0" }, "peerDependencies": { diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 2d2ee1d9048e..cbf009831ef0 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/sveltekit", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for SvelteKit", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/sveltekit", @@ -34,12 +34,12 @@ "@sveltejs/kit": "1.x || 2.x" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/node": "8.16.0", - "@sentry/opentelemetry": "8.16.0", - "@sentry/svelte": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0", + "@sentry/core": "8.17.0", + "@sentry/node": "8.17.0", + "@sentry/opentelemetry": "8.17.0", + "@sentry/svelte": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0", "@sentry/vite-plugin": "2.20.1", "magic-string": "0.30.7", "magicast": "0.2.8", diff --git a/packages/types/package.json b/packages/types/package.json index 2a6566a5f495..eeea7743d4e1 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/types", - "version": "8.16.0", + "version": "8.17.0", "description": "Types for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/types", diff --git a/packages/typescript/package.json b/packages/typescript/package.json index 05237200bc48..689c4965a8a3 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/typescript", - "version": "8.16.0", + "version": "8.17.0", "description": "Typescript configuration used at Sentry", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/typescript", diff --git a/packages/utils/package.json b/packages/utils/package.json index 223454790c45..8e4f1e87b8cb 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/utils", - "version": "8.16.0", + "version": "8.17.0", "description": "Utilities for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/utils", @@ -39,7 +39,7 @@ "access": "public" }, "dependencies": { - "@sentry/types": "8.16.0" + "@sentry/types": "8.17.0" }, "devDependencies": { "@types/array.prototype.flat": "^1.2.1", diff --git a/packages/utils/src/version.ts b/packages/utils/src/version.ts index 4583e91e3869..d0a2d3036f3d 100644 --- a/packages/utils/src/version.ts +++ b/packages/utils/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = '8.16.0'; +export const SDK_VERSION = '8.17.0'; diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index ac0c20035202..ef93102d9163 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vercel-edge", - "version": "8.16.0", + "version": "8.17.0", "description": "Offical Sentry SDK for the Vercel Edge Runtime", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/vercel-edge", @@ -39,9 +39,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "devDependencies": { "@edge-runtime/jest-environment": "2.2.3", diff --git a/packages/vue/package.json b/packages/vue/package.json index ef8af2601c65..74fafdc807e4 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vue", - "version": "8.16.0", + "version": "8.17.0", "description": "Official Sentry SDK for Vue.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/vue", @@ -39,10 +39,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "peerDependencies": { "vue": "2.x || 3.x" diff --git a/packages/wasm/package.json b/packages/wasm/package.json index b66bd95352ec..6c779926e475 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/wasm", - "version": "8.16.0", + "version": "8.17.0", "description": "Support for WASM.", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/wasm", @@ -39,10 +39,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.16.0", - "@sentry/core": "8.16.0", - "@sentry/types": "8.16.0", - "@sentry/utils": "8.16.0" + "@sentry/browser": "8.17.0", + "@sentry/core": "8.17.0", + "@sentry/types": "8.17.0", + "@sentry/utils": "8.17.0" }, "scripts": { "build": "run-p build:transpile build:bundle build:types", From 196fc09c9e55c038206d1208e1f9e514fc730dce Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Wed, 10 Jul 2024 15:25:29 +0200 Subject: [PATCH 3/5] fix(otel): Do not add `otel.kind: INTERNAL` attribute (#12841) Only add this if this is some other value, e.g. `CLIENT` or `SERVER`. It is useless to have the internal value there and potentially confusing (why is this there? what does internal even mean?) --- .../aws-serverless-esm/tests/basic.test.ts | 1 - .../create-next-app/tests/server-transactions.test.ts | 1 - .../nestjs/tests/span-decorator.test.ts | 2 -- .../nestjs/tests/transactions.test.ts | 4 ---- .../node-connect/tests/transactions.test.ts | 2 -- .../node-express-cjs-preload/tests/server.test.ts | 3 --- .../node-express-esm-loader/tests/server.test.ts | 3 --- .../node-express-esm-preload/tests/server.test.ts | 3 --- .../node-express/tests/transactions.test.ts | 6 ------ .../node-fastify/tests/transactions.test.ts | 4 ---- .../node-hapi/tests/transactions.test.ts | 2 -- .../node-koa/tests/transactions.test.ts | 4 ---- .../node-otel-sdk-node/tests/transactions.test.ts | 6 ------ .../suites/tracing/apollo-graphql/test.ts | 2 -- .../suites/tracing/connect/test.ts | 1 - .../suites/tracing/nestjs/test.ts | 1 - .../suites/tracing/prisma-orm/test.ts | 11 ----------- packages/node/test/integration/scope.test.ts | 1 - packages/node/test/integration/transactions.test.ts | 10 ---------- packages/opentelemetry/src/spanExporter.ts | 8 +++++--- packages/opentelemetry/test/integration/scope.test.ts | 1 - .../test/integration/transactions.test.ts | 8 -------- packages/opentelemetry/test/trace.test.ts | 6 ------ .../test/server/instrumentation-otel/action.test.ts | 3 --- .../test/server/instrumentation-otel/loader.test.ts | 4 ---- 25 files changed, 5 insertions(+), 92 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/aws-serverless-esm/tests/basic.test.ts b/dev-packages/e2e-tests/test-applications/aws-serverless-esm/tests/basic.test.ts index 8e507a469235..83fab96ee117 100644 --- a/dev-packages/e2e-tests/test-applications/aws-serverless-esm/tests/basic.test.ts +++ b/dev-packages/e2e-tests/test-applications/aws-serverless-esm/tests/basic.test.ts @@ -31,7 +31,6 @@ test('AWS Serverless SDK sends events in ESM mode', async ({ request }) => { 'sentry.source': 'component', 'sentry.origin': 'auto.function.serverless', 'sentry.op': 'function.aws.lambda', - 'otel.kind': 'INTERNAL', }, op: 'function.aws.lambda', origin: 'auto.function.serverless', diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/tests/server-transactions.test.ts b/dev-packages/e2e-tests/test-applications/create-next-app/tests/server-transactions.test.ts index 1d789cb4950c..56be8b65d60b 100644 --- a/dev-packages/e2e-tests/test-applications/create-next-app/tests/server-transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-next-app/tests/server-transactions.test.ts @@ -40,7 +40,6 @@ test('Sends server-side transactions to Sentry', async ({ baseURL }) => { spans: [ { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'test-span', diff --git a/dev-packages/e2e-tests/test-applications/nestjs/tests/span-decorator.test.ts b/dev-packages/e2e-tests/test-applications/nestjs/tests/span-decorator.test.ts index 3efdfb979d73..28c925727d89 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs/tests/span-decorator.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs/tests/span-decorator.test.ts @@ -24,7 +24,6 @@ test('Transaction includes span and correct value for decorated async function', data: { 'sentry.origin': 'manual', 'sentry.op': 'wait and return a string', - 'otel.kind': 'INTERNAL', }, description: 'wait', parent_span_id: expect.any(String), @@ -60,7 +59,6 @@ test('Transaction includes span and correct value for decorated sync function', data: { 'sentry.origin': 'manual', 'sentry.op': 'return a string', - 'otel.kind': 'INTERNAL', }, description: 'getString', parent_span_id: expect.any(String), diff --git a/dev-packages/e2e-tests/test-applications/nestjs/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs/tests/transactions.test.ts index 22cb0f8e6a8c..ae5d8b63b16d 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs/tests/transactions.test.ts @@ -54,7 +54,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'express.name': '/test-transaction', 'express.type': 'request_handler', 'http.route': '/test-transaction', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'request_handler.express', }, @@ -70,7 +69,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'test-span', @@ -84,7 +82,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'child-span', @@ -106,7 +103,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'nestjs.version': expect.any(String), 'nestjs.type': 'handler', 'nestjs.callback': 'testTransaction', - 'otel.kind': 'INTERNAL', }, description: 'testTransaction', parent_span_id: expect.any(String), diff --git a/dev-packages/e2e-tests/test-applications/node-connect/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-connect/tests/transactions.test.ts index 031fa71ec581..f0da250d8be9 100644 --- a/dev-packages/e2e-tests/test-applications/node-connect/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-connect/tests/transactions.test.ts @@ -53,7 +53,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { { data: { 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', }, description: 'test-span', parent_span_id: expect.any(String), @@ -71,7 +70,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/test-transaction', 'connect.type': 'request_handler', 'connect.name': '/test-transaction', - 'otel.kind': 'INTERNAL', }, op: 'request_handler.connect', description: '/test-transaction', diff --git a/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/tests/server.test.ts b/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/tests/server.test.ts index 5b8fd26f1647..5316cc377358 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/tests/server.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/tests/server.test.ts @@ -66,7 +66,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'query', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -86,7 +85,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'expressInit', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -106,7 +104,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': '/test-transaction/:param', 'express.type': 'request_handler', 'http.route': '/test-transaction/:param', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'request_handler.express', }, diff --git a/dev-packages/e2e-tests/test-applications/node-express-esm-loader/tests/server.test.ts b/dev-packages/e2e-tests/test-applications/node-express-esm-loader/tests/server.test.ts index 3b65819e2c29..06e2c2e09434 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-esm-loader/tests/server.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-esm-loader/tests/server.test.ts @@ -66,7 +66,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'query', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -86,7 +85,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'expressInit', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -106,7 +104,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': '/test-transaction/:param', 'express.type': 'request_handler', 'http.route': '/test-transaction/:param', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'request_handler.express', }, diff --git a/dev-packages/e2e-tests/test-applications/node-express-esm-preload/tests/server.test.ts b/dev-packages/e2e-tests/test-applications/node-express-esm-preload/tests/server.test.ts index e7b9a3faa878..9d6b10a3dd74 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-esm-preload/tests/server.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-esm-preload/tests/server.test.ts @@ -66,7 +66,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'query', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -86,7 +85,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': 'expressInit', 'express.type': 'middleware', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'middleware.express', }, @@ -106,7 +104,6 @@ test('Should record a transaction for route with parameters', async ({ request } 'express.name': '/test-transaction/:param', 'express.type': 'request_handler', 'http.route': '/test-transaction/:param', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.express', 'sentry.op': 'request_handler.express', }, diff --git a/dev-packages/e2e-tests/test-applications/node-express/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-express/tests/transactions.test.ts index 03262edcf6b5..fede408d258e 100644 --- a/dev-packages/e2e-tests/test-applications/node-express/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express/tests/transactions.test.ts @@ -65,7 +65,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/', 'express.name': 'query', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'query', op: 'middleware.express', @@ -85,7 +84,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/', 'express.name': 'expressInit', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'expressInit', op: 'middleware.express', @@ -105,7 +103,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/test-transaction', 'express.name': '/test-transaction', 'express.type': 'request_handler', - 'otel.kind': 'INTERNAL', }, description: '/test-transaction', op: 'request_handler.express', @@ -146,7 +143,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/', 'express.name': 'query', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'query', op: 'middleware.express', @@ -166,7 +162,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/', 'express.name': 'expressInit', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'expressInit', op: 'middleware.express', @@ -186,7 +181,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/test-exception/:id', 'express.name': '/test-exception/:id', 'express.type': 'request_handler', - 'otel.kind': 'INTERNAL', }, description: '/test-exception/:id', op: 'request_handler.express', diff --git a/dev-packages/e2e-tests/test-applications/node-fastify/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-fastify/tests/transactions.test.ts index fa0ace0e1e5d..c9cb53afb94c 100644 --- a/dev-packages/e2e-tests/test-applications/node-fastify/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-fastify/tests/transactions.test.ts @@ -63,7 +63,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'plugin.name': 'fastify -> sentry-fastify-error-handler', 'fastify.type': 'middleware', 'hook.name': 'onRequest', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.fastify', 'sentry.op': 'middleware.fastify', }, @@ -83,7 +82,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'plugin.name': 'fastify -> sentry-fastify-error-handler', 'fastify.type': 'request_handler', 'http.route': '/test-transaction', - 'otel.kind': 'INTERNAL', 'sentry.op': 'request_handler.fastify', 'sentry.origin': 'auto.http.otel.fastify', }, @@ -100,7 +98,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { expect(spans).toContainEqual({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'test-span', @@ -115,7 +112,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { expect(spans).toContainEqual({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'child-span', diff --git a/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts index 4fd0c72ffd54..c3237de74a5a 100644 --- a/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts @@ -63,7 +63,6 @@ test('Sends successful transaction', async ({ baseURL }) => { 'hapi.type': 'router', 'http.method': 'GET', 'http.route': '/test-success', - 'otel.kind': 'INTERNAL', 'sentry.op': 'router.hapi', 'sentry.origin': 'auto.http.otel.hapi', }, @@ -81,7 +80,6 @@ test('Sends successful transaction', async ({ baseURL }) => { // this comes from "onPreResponse" data: { 'hapi.type': 'server.ext', - 'otel.kind': 'INTERNAL', 'sentry.op': 'server.ext.hapi', 'sentry.origin': 'auto.http.otel.hapi', 'server.ext.type': 'onPreResponse', diff --git a/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts index fd57b23cb8bb..4c52c932e7b4 100644 --- a/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts @@ -53,7 +53,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { data: { 'koa.name': '', 'koa.type': 'middleware', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.koa', 'sentry.op': 'middleware.koa', }, @@ -72,7 +71,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/test-transaction', 'koa.name': '/test-transaction', 'koa.type': 'router', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.koa', 'sentry.op': 'router.koa', }, @@ -88,7 +86,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'test-span', @@ -102,7 +99,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'child-span', diff --git a/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/tests/transactions.test.ts index 39a7d27e9cb1..f7fee0559a97 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/tests/transactions.test.ts @@ -77,7 +77,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/', 'express.name': 'query', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'query', op: 'middleware.express', @@ -97,7 +96,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/', 'express.name': 'expressInit', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'expressInit', op: 'middleware.express', @@ -117,7 +115,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/test-transaction', 'express.name': '/test-transaction', 'express.type': 'request_handler', - 'otel.kind': 'INTERNAL', }, description: '/test-transaction', op: 'request_handler.express', @@ -158,7 +155,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/', 'express.name': 'query', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'query', op: 'middleware.express', @@ -178,7 +174,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/', 'express.name': 'expressInit', 'express.type': 'middleware', - 'otel.kind': 'INTERNAL', }, description: 'expressInit', op: 'middleware.express', @@ -198,7 +193,6 @@ test('Sends an API route transaction for an errored route', async ({ baseURL }) 'http.route': '/test-exception/:id', 'express.name': '/test-exception/:id', 'express.type': 'request_handler', - 'otel.kind': 'INTERNAL', }, description: '/test-exception/:id', op: 'request_handler.express', diff --git a/dev-packages/node-integration-tests/suites/tracing/apollo-graphql/test.ts b/dev-packages/node-integration-tests/suites/tracing/apollo-graphql/test.ts index 593ccff485fe..5bf91f7653c1 100644 --- a/dev-packages/node-integration-tests/suites/tracing/apollo-graphql/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/apollo-graphql/test.ts @@ -9,7 +9,6 @@ describe('GraphQL/Apollo Tests', () => { data: { 'graphql.operation.type': 'query', 'graphql.source': '{hello}', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.graphql.otel.graphql', }, description: 'query', @@ -31,7 +30,6 @@ describe('GraphQL/Apollo Tests', () => { 'graphql.operation.name': 'Mutation', 'graphql.operation.type': 'mutation', 'graphql.source': 'mutation Mutation($email: String) {\n login(email: $email)\n}', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.graphql.otel.graphql', }, description: 'mutation Mutation', diff --git a/dev-packages/node-integration-tests/suites/tracing/connect/test.ts b/dev-packages/node-integration-tests/suites/tracing/connect/test.ts index e343e6edf6fd..ad49a4e4532d 100644 --- a/dev-packages/node-integration-tests/suites/tracing/connect/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/connect/test.ts @@ -15,7 +15,6 @@ describe('connect auto-instrumentation', () => { 'connect.name': '/', 'connect.type': 'request_handler', 'http.route': '/', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.http.otel.connect', 'sentry.op': 'request_handler.connect', }), diff --git a/dev-packages/node-integration-tests/suites/tracing/nestjs/test.ts b/dev-packages/node-integration-tests/suites/tracing/nestjs/test.ts index abb9cf6f0bdd..2b42f23c857a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/nestjs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/nestjs/test.ts @@ -27,7 +27,6 @@ conditionalTest({ min: 16 })('nestjs auto instrumentation', () => { 'nestjs.callback': 'getHello', 'nestjs.controller': 'AppController', 'nestjs.type': 'request_context', - 'otel.kind': 'INTERNAL', 'sentry.op': 'http', }), }), diff --git a/dev-packages/node-integration-tests/suites/tracing/prisma-orm/test.ts b/dev-packages/node-integration-tests/suites/tracing/prisma-orm/test.ts index 3c96c6d80779..dd92de5d0292 100644 --- a/dev-packages/node-integration-tests/suites/tracing/prisma-orm/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/prisma-orm/test.ts @@ -11,7 +11,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { method: 'create', model: 'User', name: 'User.create', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:client:operation', @@ -19,7 +18,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:client:serialize', @@ -27,7 +25,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:client:connect', @@ -35,7 +32,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:engine', @@ -44,7 +40,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { expect.objectContaining({ data: { 'db.type': 'postgres', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:engine:connection', @@ -55,7 +50,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { 'db.statement': expect.stringContaining( 'INSERT INTO "public"."User" ("createdAt","email","name") VALUES ($1,$2,$3) RETURNING "public"."User"."id", "public"."User"."createdAt", "public"."User"."email", "public"."User"."name" /* traceparent', ), - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', 'db.system': 'prisma', 'sentry.op': 'db', @@ -67,7 +61,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:engine:serialize', @@ -75,7 +68,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:engine:response_json_serialization', @@ -86,7 +78,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { method: 'findMany', model: 'User', name: 'User.findMany', - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:client:operation', @@ -94,7 +85,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:client:serialize', @@ -102,7 +92,6 @@ conditionalTest({ min: 16 })('Prisma ORM Tests', () => { }), expect.objectContaining({ data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'auto.db.otel.prisma', }, description: 'prisma:engine', diff --git a/packages/node/test/integration/scope.test.ts b/packages/node/test/integration/scope.test.ts index 036ab4741fa8..1a7a899ab423 100644 --- a/packages/node/test/integration/scope.test.ts +++ b/packages/node/test/integration/scope.test.ts @@ -100,7 +100,6 @@ describe('Integration | Scope', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', 'sentry.source': 'custom', 'sentry.sample_rate': 1, diff --git a/packages/node/test/integration/transactions.test.ts b/packages/node/test/integration/transactions.test.ts index e3c9203ddaf5..048496f363b4 100644 --- a/packages/node/test/integration/transactions.test.ts +++ b/packages/node/test/integration/transactions.test.ts @@ -87,7 +87,6 @@ describe('Integration | Transactions', () => { expect(transaction.contexts?.trace).toEqual({ data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -133,7 +132,6 @@ describe('Integration | Transactions', () => { expect(spans).toEqual([ { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 1', @@ -147,7 +145,6 @@ describe('Integration | Transactions', () => { }, { data: { - 'otel.kind': 'INTERNAL', 'test.inner': 'test value', 'sentry.origin': 'manual', }, @@ -241,7 +238,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -280,7 +276,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op b', 'sentry.origin': 'manual', 'sentry.source': 'custom', @@ -386,7 +381,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', 'sentry.source': 'custom', 'test.outer': 'test value', @@ -422,7 +416,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', 'sentry.source': 'custom', 'test.outer': 'test value b', @@ -495,7 +488,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -532,7 +524,6 @@ describe('Integration | Transactions', () => { expect(spans).toEqual([ { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 1', @@ -546,7 +537,6 @@ describe('Integration | Transactions', () => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 2', diff --git a/packages/opentelemetry/src/spanExporter.ts b/packages/opentelemetry/src/spanExporter.ts index 3064de5818aa..5714a3d93970 100644 --- a/packages/opentelemetry/src/spanExporter.ts +++ b/packages/opentelemetry/src/spanExporter.ts @@ -352,9 +352,11 @@ function removeSentryAttributes(data: Record): Record { const attributes = span.attributes; - const data: Record = { - 'otel.kind': SpanKind[span.kind], - }; + const data: Record = {}; + + if (span.kind !== SpanKind.INTERNAL) { + data['otel.kind'] = SpanKind[span.kind]; + } if (attributes[SEMATTRS_HTTP_STATUS_CODE]) { const statusCode = attributes[SEMATTRS_HTTP_STATUS_CODE] as string; diff --git a/packages/opentelemetry/test/integration/scope.test.ts b/packages/opentelemetry/test/integration/scope.test.ts index d4cbdfa8f411..c2e3dcc86701 100644 --- a/packages/opentelemetry/test/integration/scope.test.ts +++ b/packages/opentelemetry/test/integration/scope.test.ts @@ -107,7 +107,6 @@ describe('Integration | Scope', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', 'sentry.source': 'custom', 'sentry.sample_rate': 1, diff --git a/packages/opentelemetry/test/integration/transactions.test.ts b/packages/opentelemetry/test/integration/transactions.test.ts index 13f8c91af7b7..fe03fc8a1030 100644 --- a/packages/opentelemetry/test/integration/transactions.test.ts +++ b/packages/opentelemetry/test/integration/transactions.test.ts @@ -102,7 +102,6 @@ describe('Integration | Transactions', () => { expect(transaction.contexts?.trace).toEqual({ data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -148,7 +147,6 @@ describe('Integration | Transactions', () => { expect(spans).toEqual([ { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 1', @@ -162,7 +160,6 @@ describe('Integration | Transactions', () => { }, { data: { - 'otel.kind': 'INTERNAL', 'test.inner': 'test value', 'sentry.origin': 'manual', }, @@ -256,7 +253,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -295,7 +291,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op b', 'sentry.origin': 'manual', 'sentry.source': 'custom', @@ -376,7 +371,6 @@ describe('Integration | Transactions', () => { contexts: expect.objectContaining({ trace: { data: { - 'otel.kind': 'INTERNAL', 'sentry.op': 'test op', 'sentry.origin': 'auto.test', 'sentry.source': 'task', @@ -413,7 +407,6 @@ describe('Integration | Transactions', () => { expect(spans).toEqual([ { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 1', @@ -427,7 +420,6 @@ describe('Integration | Transactions', () => { }, { data: { - 'otel.kind': 'INTERNAL', 'sentry.origin': 'manual', }, description: 'inner span 2', diff --git a/packages/opentelemetry/test/trace.test.ts b/packages/opentelemetry/test/trace.test.ts index 6fd4ada4dc46..d3ac52327bb6 100644 --- a/packages/opentelemetry/test/trace.test.ts +++ b/packages/opentelemetry/test/trace.test.ts @@ -379,7 +379,6 @@ describe('trace', () => { 'sentry.source': 'custom', 'sentry.sample_rate': 1, 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', }, span_id: expect.any(String), trace_id: expect.any(String), @@ -403,7 +402,6 @@ describe('trace', () => { data: { 'sentry.source': 'custom', 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', 'sentry.sample_rate': 1, }, parent_span_id: innerParentSpanId, @@ -630,7 +628,6 @@ describe('trace', () => { 'sentry.source': 'custom', 'sentry.sample_rate': 1, 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', }, span_id: expect.any(String), trace_id: expect.any(String), @@ -654,7 +651,6 @@ describe('trace', () => { data: { 'sentry.source': 'custom', 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', 'sentry.sample_rate': 1, }, parent_span_id: innerParentSpanId, @@ -918,7 +914,6 @@ describe('trace', () => { 'sentry.source': 'custom', 'sentry.sample_rate': 1, 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', }, span_id: expect.any(String), trace_id: expect.any(String), @@ -942,7 +937,6 @@ describe('trace', () => { data: { 'sentry.source': 'custom', 'sentry.origin': 'manual', - 'otel.kind': 'INTERNAL', 'sentry.sample_rate': 1, }, parent_span_id: innerParentSpanId, diff --git a/packages/remix/test/integration/test/server/instrumentation-otel/action.test.ts b/packages/remix/test/integration/test/server/instrumentation-otel/action.test.ts index a784cd3b8d9c..f883c4bfeee5 100644 --- a/packages/remix/test/integration/test/server/instrumentation-otel/action.test.ts +++ b/packages/remix/test/integration/test/server/instrumentation-otel/action.test.ts @@ -22,7 +22,6 @@ describe('Remix API Actions', () => { data: { 'code.function': 'action', 'sentry.op': 'action.remix', - 'otel.kind': 'INTERNAL', 'match.route.id': `routes/action-json-response${useV2 ? '.' : '/'}$id`, 'match.params.id': '123123', }, @@ -31,7 +30,6 @@ describe('Remix API Actions', () => { data: { 'code.function': 'loader', 'sentry.op': 'loader.remix', - 'otel.kind': 'INTERNAL', 'match.route.id': `routes/action-json-response${useV2 ? '.' : '/'}$id`, 'match.params.id': '123123', }, @@ -40,7 +38,6 @@ describe('Remix API Actions', () => { data: { 'code.function': 'loader', 'sentry.op': 'loader.remix', - 'otel.kind': 'INTERNAL', 'match.route.id': 'root', 'match.params.id': '123123', }, diff --git a/packages/remix/test/integration/test/server/instrumentation-otel/loader.test.ts b/packages/remix/test/integration/test/server/instrumentation-otel/loader.test.ts index 62e0bf78ac10..49b0fa7665fd 100644 --- a/packages/remix/test/integration/test/server/instrumentation-otel/loader.test.ts +++ b/packages/remix/test/integration/test/server/instrumentation-otel/loader.test.ts @@ -102,7 +102,6 @@ describe('Remix API Loaders', () => { { data: { 'code.function': 'loader', - 'otel.kind': 'INTERNAL', 'sentry.op': 'loader.remix', }, origin: 'manual', @@ -110,7 +109,6 @@ describe('Remix API Loaders', () => { { data: { 'code.function': 'loader', - 'otel.kind': 'INTERNAL', 'sentry.op': 'loader.remix', }, origin: 'manual', @@ -244,7 +242,6 @@ describe('Remix API Loaders', () => { data: { 'code.function': 'loader', 'sentry.op': 'loader.remix', - 'otel.kind': 'INTERNAL', 'match.route.id': `routes/loader-defer-response${useV2 ? '.' : '/'}$id`, }, }, @@ -252,7 +249,6 @@ describe('Remix API Loaders', () => { data: { 'code.function': 'loader', 'sentry.op': 'loader.remix', - 'otel.kind': 'INTERNAL', 'match.route.id': 'root', }, }, From 2f0422430e10cbb963807f6b2d09b7ed6ffc2511 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 10 Jul 2024 09:55:51 -0400 Subject: [PATCH 4/5] feat(tracing): add long animation frame tracing (#12646) Adds an option to trace long animation frames as per #11719. This tracing feature is disabled by default. Currently, this feature https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Long_animation_frame_timing is only supported by Chromium browsers. Usage is opt-in: ```js Sentry.init({ dsn: '__PUBLIC_DSN__', integrations: [ Sentry.browserTracingIntegration({ enableLongAnimationFrame: true, }), ], tracesSampleRate: 1, }); ``` --- .size-limit.js | 2 +- .../assets/script.js | 12 ++ .../long-animation-frame-disabled/init.js | 11 ++ .../template.html | 10 ++ .../long-animation-frame-disabled/test.ts | 27 +++++ .../assets/script.js | 25 ++++ .../long-animation-frame-enabled/init.js | 15 +++ .../template.html | 13 ++ .../long-animation-frame-enabled/test.ts | 112 +++++++++++++++++ .../assets/script.js | 12 ++ .../long-animation-frame-non-chromium/init.js | 11 ++ .../template.html | 10 ++ .../long-animation-frame-non-chromium/test.ts | 27 +++++ .../assets/script.js | 25 ++++ .../init.js | 15 +++ .../template.html | 13 ++ .../test.ts | 114 ++++++++++++++++++ .../assets/script.js | 12 ++ .../long-tasks-no-animation-frame/init.js | 15 +++ .../template.html | 10 ++ .../long-tasks-no-animation-frame/test.ts | 37 ++++++ packages/browser-utils/src/index.ts | 1 + .../src/metrics/browserMetrics.ts | 54 +++++++++ .../browser-utils/src/metrics/instrument.ts | 11 ++ .../src/tracing/browserTracingIntegration.ts | 15 ++- 25 files changed, 607 insertions(+), 2 deletions(-) create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/assets/script.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/template.html create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/test.ts create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/assets/script.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/template.html create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/test.ts create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/assets/script.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/template.html create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/test.ts create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/assets/script.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/template.html create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/test.ts create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/assets/script.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/template.html create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/test.ts diff --git a/.size-limit.js b/.size-limit.js index 636b9c64413a..a5ce210ef737 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -177,7 +177,7 @@ module.exports = [ path: createCDNPath('bundle.tracing.replay.min.js'), gzip: false, brotli: false, - limit: '220 KB', + limit: '221 KB', }, { name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed', diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/assets/script.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/assets/script.js new file mode 100644 index 000000000000..9ac3d6fb33d2 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/assets/script.js @@ -0,0 +1,12 @@ +(() => { + const startTime = Date.now(); + + function getElasped() { + const time = Date.now(); + return time - startTime; + } + + while (getElasped() < 101) { + // + } +})(); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/init.js new file mode 100644 index 000000000000..e1b3f6b13b01 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/init.js @@ -0,0 +1,11 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [ + Sentry.browserTracingIntegration({ enableLongTask: false, enableLongAnimationFrame: false, idleTimeout: 9000 }), + ], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/template.html b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/template.html new file mode 100644 index 000000000000..4cd015b16f51 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/template.html @@ -0,0 +1,10 @@ + + + + + + +
Rendered Before Long Animation Frame
+ + + diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/test.ts new file mode 100644 index 000000000000..2527d5a67302 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/test.ts @@ -0,0 +1,27 @@ +import type { Route } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +sentryTest( + 'should not capture long animation frame when flag is disabled.', + async ({ browserName, getLocalTestPath, page }) => { + // Long animation frames only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getFirstSentryEnvelopeRequest(page, url); + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui')); + + expect(uiSpans?.length).toBe(0); + }, +); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/assets/script.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/assets/script.js new file mode 100644 index 000000000000..10552eeb5bd5 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/assets/script.js @@ -0,0 +1,25 @@ +function getElapsed(startTime) { + const time = Date.now(); + return time - startTime; +} + +function handleClick() { + const startTime = Date.now(); + while (getElapsed(startTime) < 105) { + // + } +} + +function start() { + const startTime = Date.now(); + while (getElapsed(startTime) < 105) { + // + } +} + +// trigger 2 long-animation-frame events +// one from the top-level and the other from an event-listener +start(); + +const button = document.getElementById('clickme'); +button.addEventListener('click', handleClick); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/init.js new file mode 100644 index 000000000000..4be408ceab7e --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/init.js @@ -0,0 +1,15 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [ + Sentry.browserTracingIntegration({ + idleTimeout: 9000, + enableLongTask: false, + enableLongAnimationFrame: true, + }), + ], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/template.html b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/template.html new file mode 100644 index 000000000000..ed02d1117097 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/template.html @@ -0,0 +1,13 @@ + + + + + + +
Rendered Before Long Animation Frame
+ + + + diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/test.ts new file mode 100644 index 000000000000..850e75dbed1f --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/test.ts @@ -0,0 +1,112 @@ +import type { Route } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/browser'; +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +sentryTest( + 'should capture long animation frame for top-level script.', + async ({ browserName, getLocalTestPath, page }) => { + // Long animation frames only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const promise = getFirstSentryEnvelopeRequest(page); + + await page.goto(url); + + await new Promise(resolve => setTimeout(resolve, 1000)); + + const eventData = await promise; + + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); + + expect(uiSpans?.length).toEqual(1); + + const [topLevelUISpan] = uiSpans || []; + expect(topLevelUISpan).toEqual( + expect.objectContaining({ + op: 'ui.long-animation-frame', + description: 'Main UI thread blocked', + parent_span_id: eventData.contexts?.trace?.span_id, + data: { + 'code.filepath': 'https://example.com/path/to/script.js', + 'browser.script.source_char_position': 0, + 'browser.script.invoker': 'https://example.com/path/to/script.js', + 'browser.script.invoker_type': 'classic-script', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', + }, + }), + ); + const start = topLevelUISpan.start_timestamp ?? 0; + const end = topLevelUISpan.timestamp ?? 0; + const duration = end - start; + + expect(duration).toBeGreaterThanOrEqual(0.1); + expect(duration).toBeLessThanOrEqual(0.15); + }, +); + +sentryTest( + 'should capture long animation frame for event listener.', + async ({ browserName, getLocalTestPath, page }) => { + // Long animation frames only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const promise = getFirstSentryEnvelopeRequest(page); + + await page.goto(url); + + // trigger long animation frame function + await page.getByRole('button').click(); + + await new Promise(resolve => setTimeout(resolve, 1000)); + + const eventData = await promise; + + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); + + expect(uiSpans?.length).toEqual(2); + + // ignore the first ui span (top-level long animation frame) + const [, eventListenerUISpan] = uiSpans || []; + + expect(eventListenerUISpan).toEqual( + expect.objectContaining({ + op: 'ui.long-animation-frame', + description: 'Main UI thread blocked', + parent_span_id: eventData.contexts?.trace?.span_id, + data: { + 'browser.script.invoker': 'BUTTON#clickme.onclick', + 'browser.script.invoker_type': 'event-listener', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', + }, + }), + ); + const start = eventListenerUISpan.start_timestamp ?? 0; + const end = eventListenerUISpan.timestamp ?? 0; + const duration = end - start; + + expect(duration).toBeGreaterThanOrEqual(0.1); + expect(duration).toBeLessThanOrEqual(0.15); + }, +); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/assets/script.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/assets/script.js new file mode 100644 index 000000000000..9ac3d6fb33d2 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/assets/script.js @@ -0,0 +1,12 @@ +(() => { + const startTime = Date.now(); + + function getElasped() { + const time = Date.now(); + return time - startTime; + } + + while (getElasped() < 101) { + // + } +})(); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/init.js new file mode 100644 index 000000000000..ca1bf10dcddd --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/init.js @@ -0,0 +1,11 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [ + Sentry.browserTracingIntegration({ enableLongTask: true, enableLongAnimationFrame: true, idleTimeout: 9000 }), + ], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/template.html b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/template.html new file mode 100644 index 000000000000..5c3a14114991 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/template.html @@ -0,0 +1,10 @@ + + + + + + +
Rendered Before Long Task
+ + + diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/test.ts new file mode 100644 index 000000000000..65fb6664ac82 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/test.ts @@ -0,0 +1,27 @@ +import type { Route } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +sentryTest( + 'should not capture long animation frame or long task when browser is non-chromium', + async ({ browserName, getLocalTestPath, page }) => { + // Only test non-chromium browsers + if (shouldSkipTracingTest() || browserName === 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getFirstSentryEnvelopeRequest(page, url); + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui')); + + expect(uiSpans?.length).toBe(0); + }, +); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/assets/script.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/assets/script.js new file mode 100644 index 000000000000..10552eeb5bd5 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/assets/script.js @@ -0,0 +1,25 @@ +function getElapsed(startTime) { + const time = Date.now(); + return time - startTime; +} + +function handleClick() { + const startTime = Date.now(); + while (getElapsed(startTime) < 105) { + // + } +} + +function start() { + const startTime = Date.now(); + while (getElapsed(startTime) < 105) { + // + } +} + +// trigger 2 long-animation-frame events +// one from the top-level and the other from an event-listener +start(); + +const button = document.getElementById('clickme'); +button.addEventListener('click', handleClick); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/init.js new file mode 100644 index 000000000000..d81b8932803c --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/init.js @@ -0,0 +1,15 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [ + Sentry.browserTracingIntegration({ + idleTimeout: 9000, + enableLongTask: true, + enableLongAnimationFrame: true, + }), + ], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/template.html b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/template.html new file mode 100644 index 000000000000..ed02d1117097 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/template.html @@ -0,0 +1,13 @@ + + + + + + +
Rendered Before Long Animation Frame
+ + + + diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/test.ts new file mode 100644 index 000000000000..1949e44bd398 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-and-animation-frame-enabled/test.ts @@ -0,0 +1,114 @@ +import type { Route } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/browser'; +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +sentryTest( + 'should capture long animation frame for top-level script.', + async ({ browserName, getLocalTestPath, page }) => { + // Long animation frames only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + // Long animation frame should take priority over long tasks + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const promise = getFirstSentryEnvelopeRequest(page); + + await page.goto(url); + + await new Promise(resolve => setTimeout(resolve, 1000)); + + const eventData = await promise; + + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); + + expect(uiSpans?.length).toEqual(1); + + const [topLevelUISpan] = uiSpans || []; + expect(topLevelUISpan).toEqual( + expect.objectContaining({ + op: 'ui.long-animation-frame', + description: 'Main UI thread blocked', + parent_span_id: eventData.contexts?.trace?.span_id, + data: { + 'code.filepath': 'https://example.com/path/to/script.js', + 'browser.script.source_char_position': 0, + 'browser.script.invoker': 'https://example.com/path/to/script.js', + 'browser.script.invoker_type': 'classic-script', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', + }, + }), + ); + const start = topLevelUISpan.start_timestamp ?? 0; + const end = topLevelUISpan.timestamp ?? 0; + const duration = end - start; + + expect(duration).toBeGreaterThanOrEqual(0.1); + expect(duration).toBeLessThanOrEqual(0.15); + }, +); + +sentryTest( + 'should capture long animation frame for event listener.', + async ({ browserName, getLocalTestPath, page }) => { + // Long animation frames only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => + route.fulfill({ path: `${__dirname}/assets/script.js` }), + ); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const promise = getFirstSentryEnvelopeRequest(page); + + await page.goto(url); + + // trigger long animation frame function + await page.getByRole('button').click(); + + await new Promise(resolve => setTimeout(resolve, 1000)); + + const eventData = await promise; + + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); + + expect(uiSpans?.length).toEqual(2); + + // ignore the first ui span (top-level long animation frame) + const [, eventListenerUISpan] = uiSpans || []; + + expect(eventListenerUISpan).toEqual( + expect.objectContaining({ + op: 'ui.long-animation-frame', + description: 'Main UI thread blocked', + parent_span_id: eventData.contexts?.trace?.span_id, + data: { + 'browser.script.invoker': 'BUTTON#clickme.onclick', + 'browser.script.invoker_type': 'event-listener', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', + }, + }), + ); + const start = eventListenerUISpan.start_timestamp ?? 0; + const end = eventListenerUISpan.timestamp ?? 0; + const duration = end - start; + + expect(duration).toBeGreaterThanOrEqual(0.1); + expect(duration).toBeLessThanOrEqual(0.15); + }, +); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/assets/script.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/assets/script.js new file mode 100644 index 000000000000..5a2aef02028d --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/assets/script.js @@ -0,0 +1,12 @@ +(() => { + const startTime = Date.now(); + + function getElasped() { + const time = Date.now(); + return time - startTime; + } + + while (getElasped() < 105) { + // + } +})(); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/init.js new file mode 100644 index 000000000000..0e35db50764f --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/init.js @@ -0,0 +1,15 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [ + Sentry.browserTracingIntegration({ + idleTimeout: 9000, + enableLongTask: true, + enableLongAnimationFrame: false, + }), + ], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/template.html b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/template.html new file mode 100644 index 000000000000..5c3a14114991 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/template.html @@ -0,0 +1,10 @@ + + + + + + +
Rendered Before Long Task
+ + + diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/test.ts new file mode 100644 index 000000000000..6189758c0340 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/long-tasks-no-animation-frame/test.ts @@ -0,0 +1,37 @@ +import type { Route } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +sentryTest('should capture long task.', async ({ browserName, getLocalTestPath, page }) => { + // Long tasks only work on chrome + if (shouldSkipTracingTest() || browserName !== 'chromium') { + sentryTest.skip(); + } + + await page.route('**/path/to/script.js', (route: Route) => route.fulfill({ path: `${__dirname}/assets/script.js` })); + + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getFirstSentryEnvelopeRequest(page, url); + const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui')); + + expect(uiSpans?.length).toBeGreaterThan(0); + + const [firstUISpan] = uiSpans || []; + expect(firstUISpan).toEqual( + expect.objectContaining({ + op: 'ui.long-task', + description: 'Main UI thread blocked', + parent_span_id: eventData.contexts?.trace?.span_id, + }), + ); + const start = firstUISpan.start_timestamp ?? 0; + const end = firstUISpan.timestamp ?? 0; + const duration = end - start; + + expect(duration).toBeGreaterThanOrEqual(0.1); + expect(duration).toBeLessThanOrEqual(0.15); +}); diff --git a/packages/browser-utils/src/index.ts b/packages/browser-utils/src/index.ts index f59ccbf8da8f..c71b2d70e31d 100644 --- a/packages/browser-utils/src/index.ts +++ b/packages/browser-utils/src/index.ts @@ -11,6 +11,7 @@ export { addPerformanceEntries, startTrackingInteractions, startTrackingLongTasks, + startTrackingLongAnimationFrames, startTrackingWebVitals, startTrackingINP, registerInpInteractionListener, diff --git a/packages/browser-utils/src/metrics/browserMetrics.ts b/packages/browser-utils/src/metrics/browserMetrics.ts index 4e473e42ea47..cb48c2e8b675 100644 --- a/packages/browser-utils/src/metrics/browserMetrics.ts +++ b/packages/browser-utils/src/metrics/browserMetrics.ts @@ -8,6 +8,7 @@ import { spanToJSON } from '@sentry/core'; import { DEBUG_BUILD } from '../debug-build'; import { WINDOW } from '../types'; import { + type PerformanceLongAnimationFrameTiming, addClsInstrumentationHandler, addFidInstrumentationHandler, addLcpInstrumentationHandler, @@ -120,6 +121,59 @@ export function startTrackingLongTasks(): void { }); } +/** + * Start tracking long animation frames. + */ +export function startTrackingLongAnimationFrames(): void { + // NOTE: the current web-vitals version (3.5.2) does not support long-animation-frame, so + // we directly observe `long-animation-frame` events instead of through the web-vitals + // `observe` helper function. + const observer = new PerformanceObserver(list => { + for (const entry of list.getEntries() as PerformanceLongAnimationFrameTiming[]) { + if (!getActiveSpan()) { + return; + } + if (!entry.scripts[0]) { + return; + } + + const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime); + const duration = msToSec(entry.duration); + + const attributes: SpanAttributes = { + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', + }; + const initialScript = entry.scripts[0]; + if (initialScript) { + const { invoker, invokerType, sourceURL, sourceFunctionName, sourceCharPosition } = initialScript; + attributes['browser.script.invoker'] = invoker; + attributes['browser.script.invoker_type'] = invokerType; + if (sourceURL) { + attributes['code.filepath'] = sourceURL; + } + if (sourceFunctionName) { + attributes['code.function'] = sourceFunctionName; + } + if (sourceCharPosition !== -1) { + attributes['browser.script.source_char_position'] = sourceCharPosition; + } + } + + const span = startInactiveSpan({ + name: 'Main UI thread blocked', + op: 'ui.long-animation-frame', + startTime, + attributes, + }); + if (span) { + span.end(startTime + duration); + } + } + }); + + observer.observe({ type: 'long-animation-frame', buffered: true }); +} + /** * Start tracking interaction events. */ diff --git a/packages/browser-utils/src/metrics/instrument.ts b/packages/browser-utils/src/metrics/instrument.ts index e22a345e3116..39292fb19b83 100644 --- a/packages/browser-utils/src/metrics/instrument.ts +++ b/packages/browser-utils/src/metrics/instrument.ts @@ -36,6 +36,17 @@ interface PerformanceEventTiming extends PerformanceEntry { interactionId?: number; } +interface PerformanceScriptTiming extends PerformanceEntry { + sourceURL: string; + sourceFunctionName: string; + sourceCharPosition: number; + invoker: string; + invokerType: string; +} +export interface PerformanceLongAnimationFrameTiming extends PerformanceEntry { + scripts: PerformanceScriptTiming[]; +} + interface Metric { /** * The name of the metric (in acronym form). diff --git a/packages/browser/src/tracing/browserTracingIntegration.ts b/packages/browser/src/tracing/browserTracingIntegration.ts index c058b1930928..0423831219e2 100644 --- a/packages/browser/src/tracing/browserTracingIntegration.ts +++ b/packages/browser/src/tracing/browserTracingIntegration.ts @@ -5,6 +5,7 @@ import { registerInpInteractionListener, startTrackingINP, startTrackingInteractions, + startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingWebVitals, } from '@sentry-internal/browser-utils'; @@ -102,6 +103,13 @@ export interface BrowserTracingOptions { */ enableLongTask: boolean; + /** + * If true, Sentry will capture long animation frames and add them to the corresponding transaction. + * + * Default: false + */ + enableLongAnimationFrame: boolean; + /** * If true, Sentry will capture first input delay and add it to the corresponding transaction. * @@ -160,6 +168,7 @@ const DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = { instrumentPageLoad: true, markBackgroundSpan: true, enableLongTask: true, + enableLongAnimationFrame: false, enableInp: true, _experiments: {}, ...defaultRequestInstrumentationOptions, @@ -180,6 +189,7 @@ export const browserTracingIntegration = ((_options: Partial Date: Wed, 10 Jul 2024 10:06:00 -0400 Subject: [PATCH 5/5] ref(typescript): Remove dom types from main tsconfig (#12836) Remove `dom` types from `packages/typescript/tsconfig.json` and add it to the respective packages that need them. This is important because we should only be adding `dom` types to packages that will be used in the browser. --- dev-packages/node-integration-tests/suites/tsconfig.json | 6 ++++++ dev-packages/node-integration-tests/tsconfig.json | 3 +++ dev-packages/node-integration-tests/tsconfig.test.json | 3 +++ packages/angular/tsconfig.ngc.json | 2 +- packages/browser-utils/tsconfig.json | 2 +- packages/browser/tsconfig.json | 2 +- packages/core/tsconfig.test.json | 1 + packages/ember/tsconfig.json | 1 + packages/gatsby/tsconfig.json | 1 + packages/react/tsconfig.json | 1 + packages/remix/tsconfig.test.json | 1 + packages/replay-canvas/tsconfig.json | 1 + packages/replay-canvas/tsconfig.test.json | 1 + packages/replay-internal/tsconfig.json | 1 + packages/solid/tsconfig.json | 4 +++- packages/svelte/tsconfig.json | 4 +++- packages/typescript/tsconfig.json | 2 +- packages/vercel-edge/tsconfig.json | 5 ++++- packages/vue/tsconfig.json | 2 +- packages/wasm/tsconfig.json | 2 +- 20 files changed, 36 insertions(+), 9 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tsconfig.json b/dev-packages/node-integration-tests/suites/tsconfig.json index 120c3aff3716..c8f7f2d29f65 100644 --- a/dev-packages/node-integration-tests/suites/tsconfig.json +++ b/dev-packages/node-integration-tests/suites/tsconfig.json @@ -1,3 +1,9 @@ { "extends": "../tsconfig.test.json", + + "compilerOptions": { + // Although this seems wrong to include `DOM` here, it's necessary to make + // global fetch available in tests in lower Node versions. + "lib": ["DOM", "ES2018"], + } } diff --git a/dev-packages/node-integration-tests/tsconfig.json b/dev-packages/node-integration-tests/tsconfig.json index 92db70d5ca09..9ef29d983a08 100644 --- a/dev-packages/node-integration-tests/tsconfig.json +++ b/dev-packages/node-integration-tests/tsconfig.json @@ -4,6 +4,9 @@ "include": ["utils/**/*.ts", "src/**/*.ts"], "compilerOptions": { + // Although this seems wrong to include `DOM` here, it's necessary to make + // global fetch available in tests in lower Node versions. + "lib": ["DOM", "ES2018"], // package-specific options "esModuleInterop": true, "types": ["node", "jest"] diff --git a/dev-packages/node-integration-tests/tsconfig.test.json b/dev-packages/node-integration-tests/tsconfig.test.json index 5a37b90c4fe2..3bd3452a3ead 100644 --- a/dev-packages/node-integration-tests/tsconfig.test.json +++ b/dev-packages/node-integration-tests/tsconfig.test.json @@ -4,6 +4,9 @@ "include": ["suites/**/*.ts"], "compilerOptions": { + // Although this seems wrong to include `DOM` here, it's necessary to make + // global fetch available in tests in lower Node versions. + "lib": ["DOM", "ES2018"], // should include all types from `./tsconfig.json` plus types for all test frameworks used "types": ["node", "jest"] diff --git a/packages/angular/tsconfig.ngc.json b/packages/angular/tsconfig.ngc.json index e915bd8cc32c..df29c7ffdfee 100644 --- a/packages/angular/tsconfig.ngc.json +++ b/packages/angular/tsconfig.ngc.json @@ -7,7 +7,7 @@ "compilerOptions": { "target": "es2018", "declarationMap": false, - "lib": ["dom", "es2018"], + "lib": ["DOM", "ES2018"], "baseUrl": "./" }, "angularCompilerOptions": { diff --git a/packages/browser-utils/tsconfig.json b/packages/browser-utils/tsconfig.json index bf45a09f2d71..6d1756d12826 100644 --- a/packages/browser-utils/tsconfig.json +++ b/packages/browser-utils/tsconfig.json @@ -4,6 +4,6 @@ "include": ["src/**/*"], "compilerOptions": { - // package-specific options + "lib": ["DOM", "ES2018"], } } diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index f88d8939acf7..6b204e508047 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -4,6 +4,6 @@ "include": ["src/**/*", "test/loader.js"], "compilerOptions": { - // package-specific options + "lib": ["DOM", "ES2018"], } } diff --git a/packages/core/tsconfig.test.json b/packages/core/tsconfig.test.json index 87f6afa06b86..6fde53bec436 100644 --- a/packages/core/tsconfig.test.json +++ b/packages/core/tsconfig.test.json @@ -4,6 +4,7 @@ "include": ["test/**/*"], "compilerOptions": { + "lib": ["DOM", "ES2018"], // should include all types from `./tsconfig.json` plus types for all test frameworks used "types": ["node", "jest"] diff --git a/packages/ember/tsconfig.json b/packages/ember/tsconfig.json index 95bb38c78628..584a13e19669 100644 --- a/packages/ember/tsconfig.json +++ b/packages/ember/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "target": "es2022", + "lib": ["DOM", "ES2022"], "allowJs": true, "moduleResolution": "node", "allowSyntheticDefaultImports": true, diff --git a/packages/gatsby/tsconfig.json b/packages/gatsby/tsconfig.json index b2c40b91a630..77d5f63b9345 100644 --- a/packages/gatsby/tsconfig.json +++ b/packages/gatsby/tsconfig.json @@ -4,6 +4,7 @@ "include": ["src/**/*"], "compilerOptions": { + "lib": ["DOM", "ES2018"], // package-specific options "jsx": "react" } diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json index f074f990a911..67260f799e86 100644 --- a/packages/react/tsconfig.json +++ b/packages/react/tsconfig.json @@ -4,6 +4,7 @@ "include": ["src/**/*"], "compilerOptions": { + "lib": ["DOM", "ES2018"], // package-specific options "esModuleInterop": true, "jsx": "react" diff --git a/packages/remix/tsconfig.test.json b/packages/remix/tsconfig.test.json index ffcc2b26016c..3d6564a39ff5 100644 --- a/packages/remix/tsconfig.test.json +++ b/packages/remix/tsconfig.test.json @@ -4,6 +4,7 @@ "include": ["test/**/*", "vitest.config.ts"], "compilerOptions": { + "lib": ["DOM", "ES2018"], "types": ["node", "jest"], "esModuleInterop": true } diff --git a/packages/replay-canvas/tsconfig.json b/packages/replay-canvas/tsconfig.json index f8f54556da93..cd1b8207ea06 100644 --- a/packages/replay-canvas/tsconfig.json +++ b/packages/replay-canvas/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { + "lib": ["DOM", "ES2018"], "module": "esnext" }, "include": ["src/**/*.ts"] diff --git a/packages/replay-canvas/tsconfig.test.json b/packages/replay-canvas/tsconfig.test.json index ad87caa06c48..3995d3e18e59 100644 --- a/packages/replay-canvas/tsconfig.test.json +++ b/packages/replay-canvas/tsconfig.test.json @@ -4,6 +4,7 @@ "include": ["test/**/*.ts", "jest.config.ts", "jest.setup.ts"], "compilerOptions": { + "lib": ["DOM", "ES2018"], "types": ["node", "jest"], "esModuleInterop": true, "allowJs": true, diff --git a/packages/replay-internal/tsconfig.json b/packages/replay-internal/tsconfig.json index f8f54556da93..cd1b8207ea06 100644 --- a/packages/replay-internal/tsconfig.json +++ b/packages/replay-internal/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { + "lib": ["DOM", "ES2018"], "module": "esnext" }, "include": ["src/**/*.ts"] diff --git a/packages/solid/tsconfig.json b/packages/solid/tsconfig.json index b0eb9ecb6476..6d1756d12826 100644 --- a/packages/solid/tsconfig.json +++ b/packages/solid/tsconfig.json @@ -3,5 +3,7 @@ "include": ["src/**/*"], - "compilerOptions": {} + "compilerOptions": { + "lib": ["DOM", "ES2018"], + } } diff --git a/packages/svelte/tsconfig.json b/packages/svelte/tsconfig.json index b0eb9ecb6476..6d1756d12826 100644 --- a/packages/svelte/tsconfig.json +++ b/packages/svelte/tsconfig.json @@ -3,5 +3,7 @@ "include": ["src/**/*"], - "compilerOptions": {} + "compilerOptions": { + "lib": ["DOM", "ES2018"], + } } diff --git a/packages/typescript/tsconfig.json b/packages/typescript/tsconfig.json index bee7b140cf96..4281e8d08380 100644 --- a/packages/typescript/tsconfig.json +++ b/packages/typescript/tsconfig.json @@ -7,7 +7,7 @@ "importHelpers": true, "inlineSources": true, "isolatedModules": true, - "lib": ["es2018", "dom"], + "lib": ["ES2018"], "moduleResolution": "node", "noErrorTruncation": true, "noFallthroughCasesInSwitch": true, diff --git a/packages/vercel-edge/tsconfig.json b/packages/vercel-edge/tsconfig.json index f288bd1b84e2..fc8caeb42e65 100644 --- a/packages/vercel-edge/tsconfig.json +++ b/packages/vercel-edge/tsconfig.json @@ -4,7 +4,10 @@ "include": ["src/**/*"], "compilerOptions": { - // package-specific options + // Note: using `dom` here is inaccurate for the vercel-edge runtime, but needed + // because @edge-runtime/types does not type things like fetch or RequestInit + // ref: https://github.com/vercel/edge-runtime/issues/506 + "lib": ["DOM", "ES2018"], "types": ["@edge-runtime/types"] } } diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json index bf45a09f2d71..6d1756d12826 100644 --- a/packages/vue/tsconfig.json +++ b/packages/vue/tsconfig.json @@ -4,6 +4,6 @@ "include": ["src/**/*"], "compilerOptions": { - // package-specific options + "lib": ["DOM", "ES2018"], } } diff --git a/packages/wasm/tsconfig.json b/packages/wasm/tsconfig.json index bf45a09f2d71..6d1756d12826 100644 --- a/packages/wasm/tsconfig.json +++ b/packages/wasm/tsconfig.json @@ -4,6 +4,6 @@ "include": ["src/**/*"], "compilerOptions": { - // package-specific options + "lib": ["DOM", "ES2018"], } }