From b50faf69f65d4956a3bb06cab29790d0d4b5c318 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Wed, 23 Oct 2024 15:57:06 +0200 Subject: [PATCH 01/13] deps: Bump Sentry SDK to `8.36.0-beta.0` (#11640) --- apps/changelog/package.json | 4 +- package.json | 4 +- yarn.lock | 615 ++++++++++++------------------------ 3 files changed, 204 insertions(+), 419 deletions(-) diff --git a/apps/changelog/package.json b/apps/changelog/package.json index deddf700ed92ba..e0722f6791109e 100644 --- a/apps/changelog/package.json +++ b/apps/changelog/package.json @@ -21,7 +21,7 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-toolbar": "^1.0.4", "@radix-ui/themes": "^2.0.3", - "@sentry/nextjs": "8.34.0", + "@sentry/nextjs": "8.36.0-beta.0", "@spotlightjs/spotlight": "^2.1.1", "next": "15.0.0-rc.1", "next-auth": "^4.24.5", @@ -63,4 +63,4 @@ "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1" } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 5c7e9161a8fa3d..38ea1b5d6cebca 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@radix-ui/react-toolbar": "^1.0.4", "@radix-ui/themes": "^2.0.3", "@sentry-internal/global-search": "^1.1.0", - "@sentry/nextjs": "8.29.0", + "@sentry/nextjs": "8.36.0-beta.0", "@types/mdx": "^2.0.9", "algoliasearch": "^4.23.3", "esbuild": "^0.19.8", @@ -137,4 +137,4 @@ "node": "20.11.0", "yarn": "1.22.21" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 32cc39c6a2ab16..ed1a1ddd3230a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1981,13 +1981,6 @@ dependencies: "@opentelemetry/semantic-conventions" "1.25.0" -"@opentelemetry/core@1.25.1", "@opentelemetry/core@^1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz" - integrity sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ== - dependencies: - "@opentelemetry/semantic-conventions" "1.25.1" - "@opentelemetry/core@1.26.0": version "1.26.0" resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.26.0.tgz#7d84265aaa850ed0ca5813f97d831155be42b328" @@ -1995,6 +1988,13 @@ dependencies: "@opentelemetry/semantic-conventions" "1.27.0" +"@opentelemetry/core@^1.25.1": + version "1.25.1" + resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz" + integrity sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ== + dependencies: + "@opentelemetry/semantic-conventions" "1.25.1" + "@opentelemetry/instrumentation-amqplib@^0.42.0": version "0.42.0" resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.42.0.tgz#b3cab5a7207736a30d769962eed3af3838f986c4" @@ -2021,19 +2021,19 @@ dependencies: "@opentelemetry/instrumentation" "^0.53.0" -"@opentelemetry/instrumentation-express@0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.42.0.tgz#279f195aa66baee2b98623a16666c6229c8e7564" - integrity sha512-YNcy7ZfGnLsVEqGXQPT+S0G1AE46N21ORY7i7yUQyfhGAL4RBjnZUqefMI0NwqIl6nGbr1IpF0rZGoN8Q7x12Q== +"@opentelemetry/instrumentation-express@0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.43.0.tgz#35ff5bcf40b816d9a9159d5f7814ed7e5d83f69b" + integrity sha512-bxTIlzn9qPXJgrhz8/Do5Q3jIlqfpoJrSUtVGqH+90eM1v2PkPHc+SdE+zSqe4q9Y1UQJosmZ4N4bm7Zj/++MA== dependencies: "@opentelemetry/core" "^1.8.0" "@opentelemetry/instrumentation" "^0.53.0" "@opentelemetry/semantic-conventions" "^1.27.0" -"@opentelemetry/instrumentation-fastify@0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.39.0.tgz#96a040e4944daf77c53a8fe5a128bc3b2568e4aa" - integrity sha512-SS9uSlKcsWZabhBp2szErkeuuBDgxOUlllwkS92dVaWRnMmwysPhcEgHKB8rUe3BHg/GnZC1eo1hbTZv4YhfoA== +"@opentelemetry/instrumentation-fastify@0.40.0": + version "0.40.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.40.0.tgz#0c57608ac202337d56b53338f1fc9369d224306b" + integrity sha512-74qj4nG3zPtU7g2x4sm2T4R3/pBMyrYstTsqSZwdlhQk1SD4l8OSY9sPRX1qkhfxOuW3U4KZQAV/Cymb3fB6hg== dependencies: "@opentelemetry/core" "^1.8.0" "@opentelemetry/instrumentation" "^0.53.0" @@ -2197,17 +2197,6 @@ semver "^7.5.2" shimmer "^1.2.1" -"@opentelemetry/instrumentation@^0.46.0": - version "0.46.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.46.0.tgz#a8a252306f82e2eace489312798592a14eb9830e" - integrity sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw== - dependencies: - "@types/shimmer" "^1.0.2" - import-in-the-middle "1.7.1" - require-in-the-middle "^7.1.1" - semver "^7.5.2" - shimmer "^1.2.1" - "@opentelemetry/instrumentation@^0.49 || ^0.50 || ^0.51 || ^0.52.0": version "0.52.1" resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz#2e7e46a38bd7afbf03cf688c862b0b43418b7f48" @@ -2241,14 +2230,6 @@ "@opentelemetry/core" "1.25.0" "@opentelemetry/semantic-conventions" "1.25.0" -"@opentelemetry/resources@1.25.1", "@opentelemetry/resources@^1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.25.1.tgz#bb9a674af25a1a6c30840b755bc69da2796fefbb" - integrity sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ== - dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" - "@opentelemetry/resources@1.26.0", "@opentelemetry/resources@^1.26.0": version "1.26.0" resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.26.0.tgz#da4c7366018bd8add1f3aa9c91c6ac59fd503cef" @@ -2275,15 +2256,6 @@ "@opentelemetry/resources" "1.25.0" "@opentelemetry/semantic-conventions" "1.25.0" -"@opentelemetry/sdk-trace-base@^1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz#cbc1e60af255655d2020aa14cde17b37bd13df37" - integrity sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw== - dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/resources" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" - "@opentelemetry/sdk-trace-base@^1.26.0": version "1.26.0" resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz#0c913bc6d2cfafd901de330e4540952269ae579c" @@ -2293,7 +2265,7 @@ "@opentelemetry/resources" "1.26.0" "@opentelemetry/semantic-conventions" "1.27.0" -"@opentelemetry/semantic-conventions@1.23.0", "@opentelemetry/semantic-conventions@^1.17.0": +"@opentelemetry/semantic-conventions@1.23.0": version "1.23.0" resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz" integrity sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg== @@ -2303,7 +2275,7 @@ resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.0.tgz" integrity sha512-M+kkXKRAIAiAP6qYyesfrC5TOmDpDVtsxuGfPcqd9B/iBrac+E14jYwrgm0yZBUIbIP2OnqC3j+UgkXLm1vxUQ== -"@opentelemetry/semantic-conventions@1.25.1", "@opentelemetry/semantic-conventions@^1.25.1": +"@opentelemetry/semantic-conventions@1.25.1": version "1.25.1" resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz" integrity sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ== @@ -3146,41 +3118,23 @@ resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz" integrity sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw== -"@sentry-internal/browser-utils@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.29.0.tgz#c84e8d8a08170dbf52968e6b563775949c2ac532" - integrity sha512-6HpyQkaqPvK6Lnigjlarq/LDYgXT2OBNf24RK7z0ipJSxSIpmtelfzHbnwWYnypNDXfTDdPm97fZEenQHryYJA== - dependencies: - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry-internal/browser-utils@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.34.0.tgz#36a50d503ad4ad51fce22e80670f8fd6fd195a27" - integrity sha512-4AcYOzPzD1tL5eSRQ/GpKv5enquZf4dMVUez99/Bh3va8qiJrNP55AcM7UzZ7WZLTqKygIYruJTU5Zu2SpEAPQ== - dependencies: - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry-internal/feedback@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.29.0.tgz#9c562f7d13794131b6ac87860cda5492ed538e37" - integrity sha512-yAL5YMEFk4XaeVRUGEguydahRzaQrNPAaWRv6k+XRzCv9CGBhxb14KXQc9X/penlauMFcDfgelCPKcTqcf6wDw== +"@sentry-internal/browser-utils@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.36.0-beta.0.tgz#9671e4c51c8b1db1b46fb16a9e95a66bec28d6e8" + integrity sha512-igUcDI5FY8QVwmqg+46oPOWFmtD1GRgCtNfRMLlvMNMX6OTJ01FDNChzQDGs2AAxhKV8QSN07oZex4O6MGFliw== dependencies: - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" -"@sentry-internal/feedback@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.34.0.tgz#ff0db65c36f13665db99e3e22f2032bfdda98731" - integrity sha512-aYSM2KPUs0FLPxxbJCFSwCYG70VMzlT04xepD1Y/tTlPPOja/02tSv2tyOdZbv8Uw7xslZs3/8Lhj74oYcTBxw== +"@sentry-internal/feedback@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.36.0-beta.0.tgz#76399209d434a10acdd6150c85877cc7e8162283" + integrity sha512-kPKBR2qOKM4n4Ehcyb9eckRrMGOQdn09+jg2QqTmTW6qkZKBElTRdmIqFlNHCzaTE4eZqyoFUFRygFhSYH9QIg== dependencies: - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" "@sentry-internal/global-search@^1.1.0": version "1.1.0" @@ -3196,130 +3150,97 @@ htmlparser2 "^4.1.0" title-case "^3.0.2" -"@sentry-internal/replay-canvas@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.29.0.tgz#57a08adec35641607b53ea079f7a6ef539e98c00" - integrity sha512-W2YbZRvp2lYC50V51fNLcnoIiK1Km4vSc+v6SL7c//lv2qpyumoUAAIDKY+14s8Lgt1RsR6rfZhfheD4O/6WSQ== - dependencies: - "@sentry-internal/replay" "8.29.0" - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry-internal/replay-canvas@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.34.0.tgz#10acadaef74e982dee2b9842a3eb6fec73f032ed" - integrity sha512-x8KhZcCDpbKHqFOykYXiamX6x0LRxv6N1OJHoH+XCrMtiDBZr4Yo30d/MaS6rjmKGMtSRij30v+Uq+YWIgxUrg== - dependencies: - "@sentry-internal/replay" "8.34.0" - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry-internal/replay@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.29.0.tgz#d704ad5a137c3dd6fe398e0c9856c4fc043be707" - integrity sha512-Xgv/eYucsm7GaGKms2ClQ02NpD07MxjoTjp1/vYZm0H4Q08dVphVZrQp7hL1oX/VD9mb5SFyyKuuIRqIu7S8RA== - dependencies: - "@sentry-internal/browser-utils" "8.29.0" - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry-internal/replay@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.34.0.tgz#b730919a174cc5ae8a77f79fb24a5ffb18e44db5" - integrity sha512-EoMh9NYljNewZK1quY23YILgtNdGgrkzJ9TPsj6jXUG0LZ0Q7N7eFWd0xOEDBvFxrmI3cSXF1i4d1sBb+eyKRw== - dependencies: - "@sentry-internal/browser-utils" "8.34.0" - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry/babel-plugin-component-annotate@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.3.tgz#de4970d51a54ef52b21f0d6ec49bd06bf37753c1" - integrity sha512-OlHA+i+vnQHRIdry4glpiS/xTOtgjmpXOt6IBOUqynx5Jd/iK1+fj+t8CckqOx9wRacO/hru2wfW/jFq0iViLg== - -"@sentry/browser@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.29.0.tgz#d60a754a26c5235fab05fe2e675ced07209aaa88" - integrity sha512-aKTy4H/3RI0q9LIeepesjWGlGNeh4HGFfwQjzHME8gcWCQ5LSlzYX4U+hu2yp7r1Jfd9MUTFfOuuLih2HGLGsQ== - dependencies: - "@sentry-internal/browser-utils" "8.29.0" - "@sentry-internal/feedback" "8.29.0" - "@sentry-internal/replay" "8.29.0" - "@sentry-internal/replay-canvas" "8.29.0" - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry/browser@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.34.0.tgz#d2dfc2dbbfa9132d5c3e951f0a4b467805bc4c75" - integrity sha512-3HHG2NXxzHq1lVmDy2uRjYjGNf9NsJsTPlOC70vbQdOb+S49EdH/XMPy+J3ruIoyv6Cu0LwvA6bMOM6rHZOgNQ== - dependencies: - "@sentry-internal/browser-utils" "8.34.0" - "@sentry-internal/feedback" "8.34.0" - "@sentry-internal/replay" "8.34.0" - "@sentry-internal/replay-canvas" "8.34.0" - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry/bundler-plugin-core@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.3.tgz#f8c0a25321216ae9777749c1a4b9d982ae1ec2e1" - integrity sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ== +"@sentry-internal/replay-canvas@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.36.0-beta.0.tgz#d0bac8303608b7c001981fc633b8824be7e3b122" + integrity sha512-GLnLTBzMvXab+MrCsdZ91odDGUWeH0rIGR73XjqvKrXOY0Ps7gJlUV6XqIyrsQBpgP5vThT6lMBPzkqXkxqVgw== + dependencies: + "@sentry-internal/replay" "8.36.0-beta.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + +"@sentry-internal/replay@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.36.0-beta.0.tgz#ced9bbd912138eaf7bef538d5d72830104a62721" + integrity sha512-ZEdwQXoVeeyIuIPoqYQuTCsydqn47Gl5+dL+VEb+cCH3x6mOG+rkN/d85OGf+aPwPpuvv9cLVrEnqiyDa/HApg== + dependencies: + "@sentry-internal/browser-utils" "8.36.0-beta.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + +"@sentry/babel-plugin-component-annotate@2.22.6": + version "2.22.6" + resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.6.tgz#829d6caf2c95c1c46108336de4e1049e6521435e" + integrity sha512-V2g1Y1I5eSe7dtUVMBvAJr8BaLRr4CLrgNgtPaZyMT4Rnps82SrZ5zqmEkLXPumlXhLUWR6qzoMNN2u+RXVXfQ== + +"@sentry/browser@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.36.0-beta.0.tgz#df3d45638fe52fefc58889d99e765cdbb14558d3" + integrity sha512-MXPv1nMj75ZNvie1pM4SDwyER9eZ/JbYbTkEyATJ7fmkO+laWbyRVbunVHhiYtBB18xh2MEPxrEuxWcGgNo5Bg== + dependencies: + "@sentry-internal/browser-utils" "8.36.0-beta.0" + "@sentry-internal/feedback" "8.36.0-beta.0" + "@sentry-internal/replay" "8.36.0-beta.0" + "@sentry-internal/replay-canvas" "8.36.0-beta.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + +"@sentry/bundler-plugin-core@2.22.6": + version "2.22.6" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.6.tgz#a1ea1fd43700a3ece9e7db016997e79a2782b87d" + integrity sha512-1esQdgSUCww9XAntO4pr7uAM5cfGhLsgTK9MEwAKNfvpMYJi9NUTYa3A7AZmdA8V6107Lo4OD7peIPrDRbaDCg== dependencies: "@babel/core" "^7.18.5" - "@sentry/babel-plugin-component-annotate" "2.22.3" - "@sentry/cli" "^2.33.1" + "@sentry/babel-plugin-component-annotate" "2.22.6" + "@sentry/cli" "^2.36.1" dotenv "^16.3.1" find-up "^5.0.0" glob "^9.3.2" magic-string "0.30.8" unplugin "1.0.1" -"@sentry/cli-darwin@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.36.0.tgz#08963db8d702fce38d3f4fd1928201aef43cd70f" - integrity sha512-+vqJN7wycr7Tt/UICHNtctfDnmISwMqox2Izhb29+nh2j+xsEwHBTdlVolw8e5rb97Sm/sGG+0msSlPUBF4f1g== - -"@sentry/cli-linux-arm64@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.36.0.tgz#4f0ee8df3dc81a509d1b9ada02d8f8f38c5f92c7" - integrity sha512-stFAgqpDN2sy0B4lB8hq1R2cWZAxeeqTYvJHiNBTUDuEUrTS3HxTftXgX28cBXHKjFanTC58jraw5dfm8KjRUA== - -"@sentry/cli-linux-arm@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.36.0.tgz#fbd3f19d618471fd487bfe22b6277e907e71198d" - integrity sha512-Nc6yOFTJrTbTyX8H2f/uEJSZ0uK0YQ955UzV8mqbcQpycEzMD1kkxidu3AauT9fNJlzwx5rx4UGmHSjZkzFhAw== - -"@sentry/cli-linux-i686@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.36.0.tgz#c8d76cde9ca7c4b3fe93ae7603f62854628b48c4" - integrity sha512-Liis5qyDcnmq5X4B1M5vOH/3vO7uvLF1dXwLRGCrrsA8olDh/v9cMMNcG7n7GfkVbvf6PPg32JiJ0SwG7ZL2ZA== - -"@sentry/cli-linux-x64@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.36.0.tgz#6f8cddb5d9434a30d1b51ffdddffc25a7d939577" - integrity sha512-myzppIE+008jKZdDzkNIHm0FdIk94l6GNk0A3XYh7r9S/sTMWaxq6u6CR2aqDX1X18Ksh7kxHhMnKep4Fd+TqQ== - -"@sentry/cli-win32-i686@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.36.0.tgz#53d93ebcd553b5663df77977f120477475d98ed5" - integrity sha512-as/TKSH1evLKMkziRQklpKjwwVuqs1LST/Od544XISbGwUPtMTP9rOyzc3zxT2LI9dfSshJP/wRWru2oytBGkg== - -"@sentry/cli-win32-x64@2.36.0": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.36.0.tgz#5f3ca05bfd324313cb2cd3d7a78429af1fcffc24" - integrity sha512-9Adpiadr/mMWkNQaWDy3hL6P0WV1P1fYzZiQxSh0xRkRCbyV27LKeJvVjhmGiZOlygZFzksZW9qNDd4d6BmEXQ== - -"@sentry/cli@^2.33.1": - version "2.36.0" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.36.0.tgz#9a4464fceb500dce5318ac09ec9dbaedbe217d79" - integrity sha512-GraZSztW394hxI1btVDYGyGkM2Wr7UK4vItBIm62xh7rpNkX7Ia4nWUC9inuzK5THEk4GbF/F89J3mb8QJt47g== +"@sentry/cli-darwin@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.38.0.tgz#fb99e2b97e4cf5d244fe41b97ffda49314f6c2af" + integrity sha512-OvOaV9Vg4+b9ObK2z1oFj3zbRoqOSpD/wSz9t/mtSWwMQi7wlUXj88XGGsL5ZwF7VGBYL+kX59X3Ygl+dHFPlg== + +"@sentry/cli-linux-arm64@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.38.0.tgz#0e31f47b21f7e18fb175c5ff1ddc060bad49edd1" + integrity sha512-oUiRTyek0Ixe30zoqNlEFsLY07B9hK3FRXKv5lw341rim9PiTteh5tk5ewpuD63K+QjbEAJqp4f3zM19DEASlg== + +"@sentry/cli-linux-arm@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.38.0.tgz#e15356adefcd9e24c3cdb05c59c0a1d97f637142" + integrity sha512-lXMSEX1Sv9F2wXnnAlsS+kwy09iLQTfK10n08xzeJLIvUCLua/OFInwH6WUxNT3tIBPfBVQZPR7iQMRycH4Ilw== + +"@sentry/cli-linux-i686@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.38.0.tgz#cb352e3f649b4c12e0b98045ef63a851891ff1b0" + integrity sha512-+luFmbQymDON16O7R/A7bmnkUjtnq1nRSehnnRJjuFCtDABCKatZzBjWvan0KNgzHhCquMSvEqHKzfVSptHeHw== + +"@sentry/cli-linux-x64@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.38.0.tgz#f9a17eb547b3bc24faa5b1d7383347396568780f" + integrity sha512-yY593xXbf2W+afyHKDvO4QJwoWQX97/K0NYUAqnpg3TVmIfLV9DNVid+M1w6vKIif6n8UQgAFWtR1Ys4P75mBg== + +"@sentry/cli-win32-i686@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.38.0.tgz#8bea105dcb16f1ac0bb697ad3d9a8d6e7597add4" + integrity sha512-ipDnBvXaMqi0ZbkT/pqB11F4AaicVz5YRoidn5oxi1IJPDUd8qF0mnqabALLH3mAd5TOtKBliY5pllCFG/TvzA== + +"@sentry/cli-win32-x64@2.38.0": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.38.0.tgz#3dab5cf4543aeb3b307f7a048e114a0d0e3d45c0" + integrity sha512-NqlKOqNF8i239mygARkNZK9BPzwWK91j+HPEfCKoHsZKHeBT1JauoipgPykO21qn04erq5pJkA0MsiuNRNQnMA== + +"@sentry/cli@^2.36.1": + version "2.38.0" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.38.0.tgz#96091548960d8653c602323fed43bd3505acb30e" + integrity sha512-ld9+1GdPkDaFr6T4SGocxoMcrBB/K6Z37TvBx8IMrDQC+eJDkBFiyqmHnzrj/8xoj5O220pqjPZCfvqzH268sQ== dependencies: https-proxy-agent "^5.0.0" node-fetch "^2.6.7" @@ -3327,115 +3248,49 @@ proxy-from-env "^1.1.0" which "^2.0.2" optionalDependencies: - "@sentry/cli-darwin" "2.36.0" - "@sentry/cli-linux-arm" "2.36.0" - "@sentry/cli-linux-arm64" "2.36.0" - "@sentry/cli-linux-i686" "2.36.0" - "@sentry/cli-linux-x64" "2.36.0" - "@sentry/cli-win32-i686" "2.36.0" - "@sentry/cli-win32-x64" "2.36.0" - -"@sentry/core@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.29.0.tgz#52032ece2d7b60f3775f10189c27e26b1cebdbca" - integrity sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw== - dependencies: - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry/core@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.34.0.tgz#92efe1cc8ced843beee636c344e66086d8915563" - integrity sha512-adrXCTK/zsg5pJ67lgtZqdqHvyx6etMjQW3P82NgWdj83c8fb+zH+K79Z47pD4zQjX0ou2Ws5nwwi4wJbz4bfA== - dependencies: - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry/nextjs@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-8.29.0.tgz#7dbfd6c3565d56de87d9325ebf62d116cced9c40" - integrity sha512-Ce7mt07YtIlNc69tEoSingQYRdZW51RgPq5FsXiDOMngHfos/9Y3JrWLFoTOq7RMtRz1/AlhaFinpt9U/qvaPw== - dependencies: - "@opentelemetry/instrumentation-http" "0.53.0" - "@opentelemetry/semantic-conventions" "^1.25.1" - "@rollup/plugin-commonjs" "26.0.1" - "@sentry/core" "8.29.0" - "@sentry/node" "8.29.0" - "@sentry/opentelemetry" "8.29.0" - "@sentry/react" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - "@sentry/vercel-edge" "8.29.0" - "@sentry/webpack-plugin" "2.22.3" - chalk "3.0.0" - resolve "1.22.8" - rollup "3.29.4" - stacktrace-parser "^0.1.10" - -"@sentry/nextjs@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-8.34.0.tgz#1447c147bbc39dce2aff0244ec56845a31d0abd0" - integrity sha512-REHE3E21Mnm92B3BfJz3GTMsaZM8vaDJAe7RlAMDltESRECv+ELJ5qVRLgAp8Bd6w4mG8IRNINmK2UwHrAIi9g== + "@sentry/cli-darwin" "2.38.0" + "@sentry/cli-linux-arm" "2.38.0" + "@sentry/cli-linux-arm64" "2.38.0" + "@sentry/cli-linux-i686" "2.38.0" + "@sentry/cli-linux-x64" "2.38.0" + "@sentry/cli-win32-i686" "2.38.0" + "@sentry/cli-win32-x64" "2.38.0" + +"@sentry/core@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.36.0-beta.0.tgz#50ecb633779cd9907ff51267474b7ba873c9ce5b" + integrity sha512-xqX89llAZ3vqbbRRJv65ThF3HW53hec+QFOsJ6YSKeiih/Y3q81JxLjAUDo5KxwLYrOtI/8fUUgEKbnVOpV/ew== + dependencies: + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + +"@sentry/nextjs@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-8.36.0-beta.0.tgz#726296db7ada16a9ffed45f83bff7bd0c6f2d7ca" + integrity sha512-/KOSGuTTTUVwbsVDTBqvtvvhstQpU+2IhWyOsKSKBUKI9d3bHLioK/E+2yPG3BfDIKKaHr47MIjKojQ+zHhOFQ== dependencies: + "@opentelemetry/api" "^1.9.0" "@opentelemetry/instrumentation-http" "0.53.0" "@opentelemetry/semantic-conventions" "^1.27.0" "@rollup/plugin-commonjs" "26.0.1" - "@sentry-internal/browser-utils" "8.34.0" - "@sentry/core" "8.34.0" - "@sentry/node" "8.34.0" - "@sentry/opentelemetry" "8.34.0" - "@sentry/react" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - "@sentry/vercel-edge" "8.34.0" - "@sentry/webpack-plugin" "2.22.3" + "@sentry-internal/browser-utils" "8.36.0-beta.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/node" "8.36.0-beta.0" + "@sentry/opentelemetry" "8.36.0-beta.0" + "@sentry/react" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + "@sentry/vercel-edge" "8.36.0-beta.0" + "@sentry/webpack-plugin" "2.22.6" chalk "3.0.0" resolve "1.22.8" rollup "3.29.5" stacktrace-parser "^0.1.10" -"@sentry/node@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.29.0.tgz#6e462b8802356a630c56733dc795a4035464c4ab" - integrity sha512-RCKpWR6DUWmlxtms10MRXwJZRrFt1a2P38FjwEEahcdcK1R6wB8GPf0GO4JnJAiw6oeM0MERSqLIcSLT8+FxtA== - dependencies: - "@opentelemetry/api" "^1.9.0" - "@opentelemetry/context-async-hooks" "^1.25.1" - "@opentelemetry/core" "^1.25.1" - "@opentelemetry/instrumentation" "^0.53.0" - "@opentelemetry/instrumentation-connect" "0.39.0" - "@opentelemetry/instrumentation-express" "0.42.0" - "@opentelemetry/instrumentation-fastify" "0.39.0" - "@opentelemetry/instrumentation-fs" "0.15.0" - "@opentelemetry/instrumentation-generic-pool" "0.39.0" - "@opentelemetry/instrumentation-graphql" "0.43.0" - "@opentelemetry/instrumentation-hapi" "0.41.0" - "@opentelemetry/instrumentation-http" "0.53.0" - "@opentelemetry/instrumentation-ioredis" "0.43.0" - "@opentelemetry/instrumentation-koa" "0.43.0" - "@opentelemetry/instrumentation-mongodb" "0.47.0" - "@opentelemetry/instrumentation-mongoose" "0.42.0" - "@opentelemetry/instrumentation-mysql" "0.41.0" - "@opentelemetry/instrumentation-mysql2" "0.41.0" - "@opentelemetry/instrumentation-nestjs-core" "0.40.0" - "@opentelemetry/instrumentation-pg" "0.44.0" - "@opentelemetry/instrumentation-redis-4" "0.42.0" - "@opentelemetry/resources" "^1.25.1" - "@opentelemetry/sdk-trace-base" "^1.25.1" - "@opentelemetry/semantic-conventions" "^1.25.1" - "@prisma/instrumentation" "5.19.1" - "@sentry/core" "8.29.0" - "@sentry/opentelemetry" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - import-in-the-middle "^1.11.0" - optionalDependencies: - opentelemetry-instrumentation-fetch-node "1.2.3" - -"@sentry/node@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.34.0.tgz#7a2e4f719c8b0ec87c643b74f1084d5c8f362bd9" - integrity sha512-Q7BPp7Y8yCcwD620xoziWSOuPi/PCIdttkczvB0BGzBRYh2s702h+qNusRijRpVNZmzmYOo9m1x7Y1O/b8/v2A== +"@sentry/node@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.36.0-beta.0.tgz#1caabe2c2ca89939452eb9ac159e29f192ad2b5f" + integrity sha512-rWirVGDt5NiSQjyWnX/lBR59mx+cU8d0mVBNjOhZZRR9Rsn6WbzmKVVHeQGqqT1TT509cWGSdOkqr3BWgKA4yw== dependencies: "@opentelemetry/api" "^1.9.0" "@opentelemetry/context-async-hooks" "^1.25.1" @@ -3444,8 +3299,8 @@ "@opentelemetry/instrumentation-amqplib" "^0.42.0" "@opentelemetry/instrumentation-connect" "0.39.0" "@opentelemetry/instrumentation-dataloader" "0.12.0" - "@opentelemetry/instrumentation-express" "0.42.0" - "@opentelemetry/instrumentation-fastify" "0.39.0" + "@opentelemetry/instrumentation-express" "0.43.0" + "@opentelemetry/instrumentation-fastify" "0.40.0" "@opentelemetry/instrumentation-fs" "0.15.0" "@opentelemetry/instrumentation-generic-pool" "0.39.0" "@opentelemetry/instrumentation-graphql" "0.43.0" @@ -3467,100 +3322,60 @@ "@opentelemetry/sdk-trace-base" "^1.26.0" "@opentelemetry/semantic-conventions" "^1.27.0" "@prisma/instrumentation" "5.19.1" - "@sentry/core" "8.34.0" - "@sentry/opentelemetry" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - import-in-the-middle "^1.11.0" - -"@sentry/opentelemetry@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.29.0.tgz#6ae54c640155925fc42ac86f37d125f9bb983794" - integrity sha512-MtfjDMUuKFYlyw9hZohp9xnphz+6QosyHb2zCV3e/fANoA53FDxmg/Co7haMohUCiOwwJPytUmSQQaP0nyL2Uw== - dependencies: - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry/opentelemetry@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.34.0.tgz#2e4b264521610bf0fc9b5aaf908a49e07e93dc4d" - integrity sha512-WS91L+HVKGVIzOgt0szGp+24iKOs86BZsAHGt0HWnMR4kqWP6Ak+TLvqWDCxnuzniZMxdewDGA8p5hrBAPsmsA== - dependencies: - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - -"@sentry/react@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.29.0.tgz#f69b87a7947213dcaabdd18bafb6ac818d30f0a2" - integrity sha512-ux+9rNHx2ZyWC94OBb5K1HFQU/v64gL/n3co9e/3cD9nUnqXMJuw/IofiwD1fv6nfdWECLU50A1OtXhA9/c+XQ== - dependencies: - "@sentry/browser" "8.29.0" - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/opentelemetry" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + import-in-the-middle "^1.11.2" + +"@sentry/opentelemetry@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.36.0-beta.0.tgz#9c5b23ad99a353565193989e69e22b16090a82e6" + integrity sha512-LTzkJ2kdv6wNl7qr8ODLI/NTFA9LkxwCiYjbwNo59YIUlFiTmpUQ+hhb/9ckO28kPjTrmjPdHuOnD9geUj8KPw== + dependencies: + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" + +"@sentry/react@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.36.0-beta.0.tgz#253bffebe6ee339d6e81f3e086a8844fd5fba989" + integrity sha512-QYjayYK3ZXTN3Qmw585s/7sHAbsxCqY7AWY1YP1irB+zKLUjxBOLx50cptfREg1bkkhsIvhkgoCJldopLQfsdg== + dependencies: + "@sentry/browser" "8.36.0-beta.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" hoist-non-react-statics "^3.3.2" -"@sentry/react@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.34.0.tgz#f131d3b7168469617722474a3465a16cdcd77cb4" - integrity sha512-gIgzhj7h67C+Sdq2ul4fOSK142Gf0uV99bqHRdtIiUlXw9yjzZQY5TKTtzbOaevn7qBJ0xrRKtIRUbOBMl0clw== - dependencies: - "@sentry/browser" "8.34.0" - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" - hoist-non-react-statics "^3.3.2" - -"@sentry/types@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.29.0.tgz#c19e43524b8e7766028f4da8f02eddcc33518541" - integrity sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg== - -"@sentry/types@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.34.0.tgz#b02da72d1be67df5246aa9a97ca661ee71569372" - integrity sha512-zLRc60CzohGCo6zNsNeQ9JF3SiEeRE4aDCP9fDDdIVCOKovS+mn1rtSip0qd0Vp2fidOu0+2yY0ALCz1A3PJSQ== +"@sentry/types@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.36.0-beta.0.tgz#4a57b4e38c90a1a7819f1eb57cdf2d56652aee13" + integrity sha512-QsRVoAhNEVVMj+U7lBkl4R3SlP//dxrYVbaXm4goOe1epian0n1xQJKy15yQ4OIyer32Wqv6PsBP8PgFA7irlA== -"@sentry/utils@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.29.0.tgz#d4a36643369e30ba62ef8f40f149420a100f64bb" - integrity sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w== +"@sentry/utils@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.36.0-beta.0.tgz#9c62534fa1ef81e794df55b5e2af3c8110bf10df" + integrity sha512-/fAri9gxIDz7t7trW16jnBnMcIY/fj2UJPSky4/KskKdlMhBppLLZ7RhWnfIRsWvUS+oiYsgFxbdgWevhkMVPw== dependencies: - "@sentry/types" "8.29.0" + "@sentry/types" "8.36.0-beta.0" -"@sentry/utils@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.34.0.tgz#5ba543381a9de0ada1196df1fc5cde3b891de41e" - integrity sha512-W1KoRlFUjprlh3t86DZPFxLfM6mzjRzshVfMY7vRlJFymBelJsnJ3A1lPeBZM9nCraOSiw6GtOWu6k5BAkiGIg== +"@sentry/vercel-edge@8.36.0-beta.0": + version "8.36.0-beta.0" + resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.36.0-beta.0.tgz#b0f1219280210f8fa6cca3f14352bca2394d44d1" + integrity sha512-WtD99gtOb9NksfjK+Y+ZSf7sAxBjuXN2qjQHh8V0Dgl/51LpwXjX20ohjrZybK2225exbC3qnf+IGBiOVIlyDg== dependencies: - "@sentry/types" "8.34.0" - -"@sentry/vercel-edge@8.29.0": - version "8.29.0" - resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.29.0.tgz#3d5e42db56ada63da9aa6922b19953472fe798f5" - integrity sha512-utNt38aX/2v6vgD8Wje29Zfb4injpSJTY7GMIFWYe65oivSRHwieqqlOrZ5B3pCSTSUADsGKK+pexgdxwRIGlA== - dependencies: - "@sentry/core" "8.29.0" - "@sentry/types" "8.29.0" - "@sentry/utils" "8.29.0" - -"@sentry/vercel-edge@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.34.0.tgz#271b705e02c8b32e219beafcae191f57af324029" - integrity sha512-yF6043FcVO9GqPawCJZp0psEL8iF9+5bOlAdQydCyaj2BtDgFvAeBVI19qlDeAHhqsXNfTD0JsIox2aJPNupwg== - dependencies: - "@sentry/core" "8.34.0" - "@sentry/types" "8.34.0" - "@sentry/utils" "8.34.0" + "@opentelemetry/api" "^1.9.0" + "@sentry/core" "8.36.0-beta.0" + "@sentry/types" "8.36.0-beta.0" + "@sentry/utils" "8.36.0-beta.0" -"@sentry/webpack-plugin@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.22.3.tgz#a9eeb4689c062eb6dc50671c09f06ec6875b9b02" - integrity sha512-Sq1S6bL3nuoTP5typkj+HPjQ13dqftIE8kACAq4tKkXOpWO9bf6HtqcruEQCxMekbWDTdljsrknQ17ZBx2q66Q== +"@sentry/webpack-plugin@2.22.6": + version "2.22.6" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.22.6.tgz#8c9d27d5cd89153a5b6e08cc9dcb3048b122ffbc" + integrity sha512-BiLhAzQYAz/9kCXKj2LeUKWf/9GBVn2dD0DeYK89s+sjDEaxjbcLBBiLlLrzT7eC9QVj2tUZRKOi6puCfc8ysw== dependencies: - "@sentry/bundler-plugin-core" "2.22.3" + "@sentry/bundler-plugin-core" "2.22.6" unplugin "1.0.1" uuid "^9.0.0" @@ -4307,11 +4122,6 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - acorn-import-attributes@^1.9.5: version "1.9.5" resolved "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz" @@ -7285,20 +7095,10 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz#3e111ff79c639d0bde459bd7ba29dd9fdf357364" - integrity sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg== - dependencies: - acorn "^8.8.2" - acorn-import-assertions "^1.9.0" - cjs-module-lexer "^1.2.2" - module-details-from-path "^1.0.3" - -import-in-the-middle@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.11.0.tgz#a94c4925b8da18256cde3b3b7b38253e6ca5e708" - integrity sha512-5DimNQGoe0pLUHbR9qK84iWaWjjbsxiqXnw6Qz64+azRgleqv9k2kTt5fw7QsOpmaGYtuxxursnPPsnTKEx10Q== +import-in-the-middle@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz#dd848e72b63ca6cd7c34df8b8d97fc9baee6174f" + integrity sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA== dependencies: acorn "^8.8.2" acorn-import-attributes "^1.9.5" @@ -9936,14 +9736,6 @@ openid-client@^5.4.0: object-hash "^2.2.0" oidc-token-hash "^5.0.3" -opentelemetry-instrumentation-fetch-node@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/opentelemetry-instrumentation-fetch-node/-/opentelemetry-instrumentation-fetch-node-1.2.3.tgz#beb24048bdccb1943ba2a5bbadca68020e448ea7" - integrity sha512-Qb11T7KvoCevMaSeuamcLsAD+pZnavkhDnlVL0kRozfhl42dKG5Q3anUklAFKJZjY3twLR+BnRa6DlwwkIE/+A== - dependencies: - "@opentelemetry/instrumentation" "^0.46.0" - "@opentelemetry/semantic-conventions" "^1.17.0" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" @@ -11193,13 +10985,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@3.29.4: - version "3.29.4" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== - optionalDependencies: - fsevents "~2.3.2" - rollup@3.29.5: version "3.29.5" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54" From 5a8f8bb68c2010414f89bd28bd221217c6815b96 Mon Sep 17 00:00:00 2001 From: Sentry Release Bot <75840458+getsentry-release@users.noreply.github.com> Date: Wed, 23 Oct 2024 08:02:30 -0700 Subject: [PATCH 02/13] Bump API schema to 344e7ff8 (#11641) Co-authored-by: openapi-getsentry-bot --- src/build/resolveOpenAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/resolveOpenAPI.ts b/src/build/resolveOpenAPI.ts index 90c686e0b48af3..c80040617e927e 100644 --- a/src/build/resolveOpenAPI.ts +++ b/src/build/resolveOpenAPI.ts @@ -8,7 +8,7 @@ import {DeRefedOpenAPI} from './open-api/types'; // SENTRY_API_SCHEMA_SHA is used in the sentry-docs GHA workflow in getsentry/sentry-api-schema. // DO NOT change variable name unless you change it in the sentry-docs GHA workflow in getsentry/sentry-api-schema. -const SENTRY_API_SCHEMA_SHA = '1cb62e91358e53df6c1b72516d48aa252d043a8b'; +const SENTRY_API_SCHEMA_SHA = '344e7ff838687726f81cfab3998555df401cef0b'; const activeEnv = process.env.GATSBY_ENV || process.env.NODE_ENV || 'development'; From cbd9baaa4b3e7cb175a13c7895947bb1ed5306a9 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Wed, 23 Oct 2024 09:45:18 -0700 Subject: [PATCH 03/13] Small wording updates to trace explorer.mdx (#11627) --- docs/product/explore/traces/index.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/product/explore/traces/index.mdx b/docs/product/explore/traces/index.mdx index ac76a1e0dbb4cb..fa94f926616a3b 100644 --- a/docs/product/explore/traces/index.mdx +++ b/docs/product/explore/traces/index.mdx @@ -24,11 +24,11 @@ To get started, go to the [Traces](https://sentry.io/orgredirect/organizations/: Each set of search conditions helps you find a specific kind of span within a trace. You can either: - Use a single set of conditions to search across all spans. -**Example:** Single condition: Find traces where a user with email `ztv@example.com` loaded a specific frontend route: +**Single Condition Example:** Find traces where a user with email `ztv@example.com` loaded a specific frontend route: ![Exampe of search with one span conditions set](./img/traces-one-span-conditions-example.png) - Use multiple sets of conditions to search for traces containing all specified span types. -**Example:** Multiple conditions: Find traces where a user with the email `ztv@example.com` loaded a page on your frontend on a specific route AND a slow database query was present: +**Multiple Conditions Example:** Find traces where a user with the email `ztv@example.com` loaded a page on your frontend on a specific route AND a slow database query was present: ![Example of search with multiple span conditions](./img/traces-multiple-span-conditions-example.png) Because traces range accross multiple projects, there's no project filter, but you can filter by projects with similar sets of span conditions by adding `project:your-project-here` in the search. @@ -66,7 +66,7 @@ Search results are displayed as a list of traces. Each row corresponds to a sing ### Span Details -Expand a trace to see the matching spans in the following table format: +Expand a trace to see the matching spans and the following information: - **Span ID**: Links to the span in the Trace View. - **Description**: Includes project, `span.op`, and `span.description`. From e8bfe3f2af6c91443469899892845384ca210c3e Mon Sep 17 00:00:00 2001 From: Ivan Dlugos <6349682+vaind@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:55:13 +0200 Subject: [PATCH 04/13] feat: add flutter replay docs (#11611) * feat: add flutte replay docs * Apply suggestions from code review Co-authored-by: Liza Mock --------- Co-authored-by: Liza Mock --- .../android/session-replay/index.mdx | 2 +- .../apple/guides/ios/session-replay/index.mdx | 2 +- .../flutter/session-replay/index.mdx | 101 ++++++++++++++++++ .../react-native/session-replay/index.mdx | 2 +- .../explore/session-replay/mobile/index.mdx | 7 +- 5 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 docs/platforms/flutter/session-replay/index.mdx diff --git a/docs/platforms/android/session-replay/index.mdx b/docs/platforms/android/session-replay/index.mdx index 41cc5b6d7438b8..422b5a554293cb 100644 --- a/docs/platforms/android/session-replay/index.mdx +++ b/docs/platforms/android/session-replay/index.mdx @@ -115,7 +115,7 @@ options.experimental.sessionReplay.maskAllImages = false ## Error Linking -Errors that happen on the page while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: +Errors that happen while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: - The replay was rate-limited and couldn't be accepted. - The replay was deleted by a member of your org. diff --git a/docs/platforms/apple/guides/ios/session-replay/index.mdx b/docs/platforms/apple/guides/ios/session-replay/index.mdx index 9f4289ad815019..a82572249a7610 100644 --- a/docs/platforms/apple/guides/ios/session-replay/index.mdx +++ b/docs/platforms/apple/guides/ios/session-replay/index.mdx @@ -92,7 +92,7 @@ options.experimental.sessionReplay.redactAllImages = false ## Error Linking -Errors that happen on the page while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: +Errors that happen while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: - The replay was rate-limited and couldn't be accepted. - The replay was deleted by a member of your org. diff --git a/docs/platforms/flutter/session-replay/index.mdx b/docs/platforms/flutter/session-replay/index.mdx new file mode 100644 index 00000000000000..d350fd4a8f6094 --- /dev/null +++ b/docs/platforms/flutter/session-replay/index.mdx @@ -0,0 +1,101 @@ +--- +title: Set Up Session Replay +sidebar_order: 5500 +notSupported: +description: "Learn how to enable the Mobile Session Replay Beta in your app." +--- + + + +Mobile support for Session Replay is in Beta. Features available in Beta are still work-in-progress and may have bugs. We recognize the irony. + +If you have any questions, feedback or would like to report a bug, please open a [GitHub issue](https://github.com/getsentry/sentry-dart/issues/new?template=BUG_REPORT.yml) with a link to a relevant replay in Sentry if possible. + + + +[Session Replay](/product/explore/session-replay/) helps you get to the root cause of an error or latency issue faster by providing you with a reproduction of what was happening in the user's device before, during, and after the issue. You can rewind and replay your application's state and see key user interactions, like taps, swipes, network requests, and console entries, in a single UI. + +By default, our Session Replay SDK masks all text content, images, and user input, giving you heightened confidence that no sensitive data will leave the device. To learn more, see [product docs](/product/explore/session-replay/). + +## Pre-requisites + +Make sure your Sentry Flutter SDK version is at least 8.9.0, which is required for Session Replay. +You can update your `pubspec.yaml` to the matching version: + +```yaml +dependencies: + sentry_flutter: ^8.9.0 +``` + +## Setup + +To set up the integration, add the following to your Sentry initialization: + +```dart +await SentryFlutter.init( + (options) { + ... + options.experimental.replay.sessionSampleRate = 1.0; + options.experimental.replay.onErrorSampleRate = 1.0; + }, + appRunner: () => runApp(MyApp()), +); +``` + +## Verify + +While you're testing, we recommend that you set to `1.0`. This ensures that every user session will be sent to Sentry. + +Once testing is complete, **we recommend lowering this value in production**. We still recommend keeping set to `1.0`. + +## Sampling + +Sampling allows you to control how much of your website's traffic will result in a Session Replay. There are two sample rates you can adjust to get the replays relevant to you: + +1. - The sample rate for + replays that begin recording immediately and last the entirety of a user's session. +2. - The sample rate for + replays that are recorded when an error happens. This type of replay will record + up to a minute of events prior to the error and continue recording until the session + ends. + +Sampling starts as soon as a session begins. The is then evaluated. If the session is sampled, replay recording will start immediately. If not, will be evaluated. If the session is sampled at this point, the replay will be buffered and will only be uploaded to Sentry if an error occurs. + +## Privacy + +The SDK is recording and aggressively redacting (masking) all text and images, according to the configuration in `options.experimental.replay`. +You can tune this and add custom masking rules to fit your needs. For example, you can explicitly mask or unmask widgets by type, +or you can even have a callback to decide whether a specific widget instance should be masked: + +```dart + options.experimental.replay.mask(); + options.experimental.replay.unmask(); + options.experimental.replay.maskCallback( + (Element element, Text widget) => + (widget.data?.contains('secret') ?? false) + ? SentryMaskingDecision.mask + : SentryMaskingDecision.continueProcessing); +``` + +You can find more details in the documentation for each method. + + + +If you find that data isn't being redacted with the default settings, please let us know by creating a [GitHub issue](https://github.com/getsentry/sentry-dart/issues/new?template=BUG_REPORT.yml). + + + +To disable redaction altogether (not to be used on applications with sensitive data): + +```dart + options.experimental.replay.maskAllText = false; + options.experimental.replay.maskAllImages = false; +``` + +## Error Linking + +Errors that happen while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: + +- The replay was rate-limited and couldn't be accepted. +- The replay was deleted by a member of your org. +- There were network errors and the replay wasn't saved. diff --git a/docs/platforms/react-native/session-replay/index.mdx b/docs/platforms/react-native/session-replay/index.mdx index 37efcabcb46b06..6d88fd78d7b373 100644 --- a/docs/platforms/react-native/session-replay/index.mdx +++ b/docs/platforms/react-native/session-replay/index.mdx @@ -128,7 +128,7 @@ const config = getSentryExpoConfig(__dirname, { ## Error Linking -Errors that happen on the page while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: +Errors that happen while a replay is running will be linked to the replay, making it possible to jump between related issues and replays. However, it's **possible** that in some cases the error count reported on the **Replays Details** page won't match the actual errors that have been captured. That's because errors can be lost, and while this is uncommon, there are a few reasons why it could happen: - The replay was rate-limited and couldn't be accepted. - The replay was deleted by a member of your org. diff --git a/docs/product/explore/session-replay/mobile/index.mdx b/docs/product/explore/session-replay/mobile/index.mdx index fb79e16050eb2e..1ac32377b4cd15 100644 --- a/docs/product/explore/session-replay/mobile/index.mdx +++ b/docs/product/explore/session-replay/mobile/index.mdx @@ -56,13 +56,14 @@ These breadcrumbs are synced with the replay player and will auto-scroll as the ## SDKs Supported -Session Replay for mobile is currently available for Android, iOS, and React Native SDKs. Support for [Flutter](/platforms/flutter/) is being tracked on this [GitHub issue](https://github.com/getsentry/sentry-dart/issues/1193). +Session Replay for mobile is currently available for Android and iOS on both native SDKs, as well as for React Native and Flutter. -We recommend updating to the latest, but the miminum versions supported are: +We recommend updating to the latest version, but the minimum versions supported are: - [iOS](/platforms/apple/guides/ios/session-replay/), [8.31.1](https://github.com/getsentry/sentry-cocoa/releases) - [Android](/platforms/android/session-replay/), [7.12.0](https://github.com/getsentry/sentry-java/releases) - [React Native](/platforms/react-native/session-replay/), [5.26.0](https://github.com/getsentry/sentry-react-native/releases) +- [Flutter](/platforms/flutter/session-replay/), [8.9.0](https://github.com/getsentry/sentry-dart/releases) ## Frequently Asked Questions @@ -77,7 +78,7 @@ Additionally, we offer a self-serve deletion capability of individual replays in For most mobile applications, the performance overhead of our client SDK will be imperceptible to end-users. In our own testing, the overhead was not noticeable by end-users. However, this testing was not exhaustive and you may discover the recording overhead may negatively impact your mobile application performance depending on your application complexity. To reduce the performance overhead, we only take screenshots when something changes on the screen. Our default frame rate is 1 frame (16ms) per second of the main thread time. -If you experience any performance degradations after installing Session Replay, please open an issue on GitHub for your respective SDK: [Android](https://github.com/getsentry/sentry-java/issues/new/choose), [iOS](https://github.com/getsentry/sentry-cocoa/issues/new/choose) and [React Native](https://github.com/getsentry/sentry-react-native/issues/new/choose). +If you experience any performance degradations after installing Session Replay, please open an issue on GitHub for your respective SDK: [Android](https://github.com/getsentry/sentry-java/issues/new/choose), [iOS](https://github.com/getsentry/sentry-cocoa/issues/new/choose), [React Native](https://github.com/getsentry/sentry-react-native/issues/new/choose), and [Flutter](https://github.com/getsentry/sentry-dart/issues/new/choose). **How much does it cost to use Session Replay for mobile?** From e61b9ab5dbac94db88b4f16bb9c7a104d79c0047 Mon Sep 17 00:00:00 2001 From: Joris Bayer Date: Thu, 24 Oct 2024 06:12:37 +0000 Subject: [PATCH 05/13] getsentry/relay@918f15b2e21d421d640adb5aaaf38d677d5f0e41 --- src/data/relay_metrics.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/data/relay_metrics.json b/src/data/relay_metrics.json index 4901c785fd1f42..e42a5b73309b9d 100644 --- a/src/data/relay_metrics.json +++ b/src/data/relay_metrics.json @@ -819,6 +819,12 @@ "description": "A number of messages queued in a services inbound message channel.\n\nThis metric is emitted once per second for every running service. Without backlogs, this\nnumber should be close to `0`. If this number is monotonically increasing, the service is\nnot able to process the inbound message volume.\n\nThis metric is tagged with:\n- `service`: The fully qualified type name of the service implementation.", "features": [] }, + { + "type": "Counter", + "name": "service.idle_time_nanos", + "description": "The amount of time a service spends waiting for new messages.\n\nThis is an indicator of how much more load a service can take on.\n\nCaveat: Some services circumvent the service framework by using custom incoming queues.\nFor these, we cannot fully rely on this metric.\n\nThis metric is tagged with:\n- `service`: The fully qualified type name of the service implementation.", + "features": [] + }, { "type": "Timer", "name": "store.message.duration", From cf1861e31ea86cd91461d5daef25d94568236c95 Mon Sep 17 00:00:00 2001 From: Joris Bayer Date: Thu, 24 Oct 2024 06:30:26 +0000 Subject: [PATCH 06/13] getsentry/relay@9b909b8b90839ed478a4ba453ead2d985ec3c8f4 --- src/data/relay_metrics.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/data/relay_metrics.json b/src/data/relay_metrics.json index e42a5b73309b9d..12bd91c1c2d427 100644 --- a/src/data/relay_metrics.json +++ b/src/data/relay_metrics.json @@ -29,12 +29,30 @@ "description": "The amount of bytes in the item payloads of an envelope pushed to the envelope buffer.\n\nThis is not quite the same as the actual size of a serialized envelope, because it ignores\nthe envelope header and item headers.", "features": [] }, + { + "type": "Histogram", + "name": "buffer.envelope_size", + "description": "Size of a serialized envelope pushed to the envelope buffer (sampled).", + "features": [] + }, + { + "type": "Histogram", + "name": "buffer.envelope_size.compressed", + "description": "Size of a compressed envelope pushed to the envelope buffer (sampled).", + "features": [] + }, { "type": "Counter", "name": "buffer.envelope_stacks_popped", "description": "Number of times an envelope stack is popped from the priority queue of stacks in the\nenvelope buffer.", "features": [] }, + { + "type": "Timer", + "name": "buffer.envelopes_compression", + "description": "Timing in milliseconds for the time it takes for the envelopes to be compressed (sampled).", + "features": [] + }, { "type": "Histogram", "name": "buffer.envelopes_count", From 147f8ee0b41501fff9d48815688d34ab43fd13f4 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 24 Oct 2024 09:37:22 +0200 Subject: [PATCH 07/13] docs(browser): Update supported browsers due to `globalThis` usage (#11431) --- .../common/troubleshooting/supported-browsers.mdx | 12 ++++++------ .../migration/javascript-v8/compatible-browsers.mdx | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/platforms/javascript/common/troubleshooting/supported-browsers.mdx b/docs/platforms/javascript/common/troubleshooting/supported-browsers.mdx index 3e723dbe61b581..45810fbbf22ecb 100644 --- a/docs/platforms/javascript/common/troubleshooting/supported-browsers.mdx +++ b/docs/platforms/javascript/common/troubleshooting/supported-browsers.mdx @@ -16,14 +16,14 @@ notSupported: - javascript.nestjs --- -Sentry's JavaScript SDKs support ES2018 compatible browsers. The minimum supported browser versions are: +Sentry's JavaScript SDKs require ES2018 compatibility plus support for [`globalThis`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis). The minimum supported browser versions are: -- Chrome 63 +- Chrome 71 - Edge 79 -- Safari/iOS Safari 12 -- Firefox 58 -- Opera 50 -- Samsung Internet 8.2 +- Safari 12.1, iOS Safari 12.2 +- Firefox 65 +- Opera 58 +- Samsung Internet 10 In addition, the Sentry JavaScript SDKs require the `fetch` API to be available. If you need to support browser-like environments that do not have `fetch` available, you should include a polyfill for the fetch API. diff --git a/includes/migration/javascript-v8/compatible-browsers.mdx b/includes/migration/javascript-v8/compatible-browsers.mdx index 9d3bf7c9762bad..2783a972cc30ff 100644 --- a/includes/migration/javascript-v8/compatible-browsers.mdx +++ b/includes/migration/javascript-v8/compatible-browsers.mdx @@ -1,10 +1,10 @@ -The SDK now only works with ES2018 compatible browsers. The minimum supported browser versions are: +The SDK now requires ES2018 compatibility plus support for [`globalThis`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis). The minimum supported browser versions are: -- Chrome 63 +- Chrome 71 - Edge 79 -- Safari/iOS Safari 12 -- Firefox 58 -- Opera 50 -- Samsung Internet 8.2 +- Safari 12.1, iOS Safari 12.2 +- Firefox 65 +- Opera 58 +- Samsung Internet 10 For IE11 support please transpile your code to ES5 using babel or similar and add required polyfills. From d233e6bd522e597c056d13d9d8e9cbd5630323f2 Mon Sep 17 00:00:00 2001 From: Dhiogo Brustolin Date: Thu, 24 Oct 2024 10:12:15 +0200 Subject: [PATCH 08/13] feat(apple): Update cocoa session replay FAQ (#11637) Adding an extra FAQ item for cocoa session replay --- docs/platforms/apple/guides/ios/session-replay/index.mdx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/platforms/apple/guides/ios/session-replay/index.mdx b/docs/platforms/apple/guides/ios/session-replay/index.mdx index a82572249a7610..5385f78427466d 100644 --- a/docs/platforms/apple/guides/ios/session-replay/index.mdx +++ b/docs/platforms/apple/guides/ios/session-replay/index.mdx @@ -101,7 +101,13 @@ Errors that happen while a replay is running will be linked to the replay, makin ### FAQ Q: Does Session Replay work with SwiftUI? + A: Yes. It works with both UIKit and SwiftUI. +Q: Why are parts of my replay not masked? + +A: Text views, input views, images, video players and webviews are all masked by default. Images with bundled assets aren't masked because the likelihood of these assets containing PII is low. If you encounter a view that should be masked by default, consider opening a [GitHub issue](https://github.com/getsentry/sentry-cocoa/issues). + Q: What's the lowest version of iOS supported? -A: Session Replay recording happens even on the lowest version supported by the Sentry SDK. (Today that's iOS 12.) + +A: Session Replay recording happens even on the lowest version supported by the Sentry SDK, which is aligend with appstore support. \ No newline at end of file From 12096bc9df6b53a795d81cbcf76c0bdf7974162a Mon Sep 17 00:00:00 2001 From: Charly Gomez Date: Thu, 24 Oct 2024 10:25:23 +0200 Subject: [PATCH 09/13] docs(js): Update package install page (#11610) --- .../javascript/common/install/npm.mdx | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/platforms/javascript/common/install/npm.mdx b/docs/platforms/javascript/common/install/npm.mdx index e800ac7b704d61..4d832bbeee5275 100644 --- a/docs/platforms/javascript/common/install/npm.mdx +++ b/docs/platforms/javascript/common/install/npm.mdx @@ -35,4 +35,24 @@ notSupported: - javascript.cloudflare --- - +The npm package for Sentry offers several advantages for specific use cases: + +- **Framework-specific features**: If you're using a framework like React or Vue, installing the corresponding Sentry SDK (e.g., `@sentry/react` or `@sentry/vue`) via npm provides framework-specific features and optimizations. + +- **Full public API access**: The npm package exposes the complete set of Sentry's public APIs, allowing for more extensive customization and functionality. + +- **Version control**: Installing via npm gives you full control over the SDK version, enabling you to manage updates and ensure compatibility with your project. + +- **Build process integration**: Using the npm package allows for better integration with your build process and bundling tools. + +```bash {tabTitle:npm} +npm install @sentry/browser --save +``` + +```bash {tabTitle:yarn} +yarn add @sentry/browser +``` + +```bash {tabTitle:pnpm} +pnpm add @sentry/browser +``` From 6f675a2646bb53dc98734758858c13be60aeb039 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Thu, 24 Oct 2024 12:24:16 +0200 Subject: [PATCH 10/13] [Python] Updated celery instrumentation documentation (#11600) Better description on how and where to setup the Python SDK when you use Celery. --------- Co-authored-by: Liza Mock Co-authored-by: Daniel Szoke <7881302+szokeasaurusrex@users.noreply.github.com> --- .../python/integrations/celery/crons.mdx | 51 ++++----- .../python/integrations/celery/index.mdx | 108 +++++++++++++++--- 2 files changed, 113 insertions(+), 46 deletions(-) diff --git a/docs/platforms/python/integrations/celery/crons.mdx b/docs/platforms/python/integrations/celery/crons.mdx index 6c4181452ec7ce..290a395b2afc7e 100644 --- a/docs/platforms/python/integrations/celery/crons.mdx +++ b/docs/platforms/python/integrations/celery/crons.mdx @@ -10,17 +10,16 @@ Sentry Crons allows you to monitor the uptime and performance of any scheduled, Use the Celery integration to monitor your [Celery periodic tasks](https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html) and get notified when a task is missed (or doesn't start when expected), if it fails due to a problem in the runtime (such as an error), or if it fails by exceeding its maximum runtime. -Please note that monitors will only be created on the task's first run. + Please note that a cron monitor will only be created the first time your task runs. -First, set up your Celery beat schedule: +Get started by setting up your Celery beat schedule: -```python +```python {filename:tasks.py} # tasks.py from celery import Celery from celery.schedules import crontab - app = Celery('tasks', broker='...') app.conf.beat_schedule = { 'set-in-beat-schedule': { @@ -30,30 +29,28 @@ app.conf.beat_schedule = { }, } ``` + -Please note that only crontab parseable schedules will be successfully upserted. + Please note that only schedules that can be parsed by crontab will be successfully + updated or inserted. -Next, we need to initialize Sentry. Where to do this depends on how you run beat: +Next, initialize Sentry. Where to do this depends on how you run beat: + - If beat is running in your worker process (that is, you're running your worker with the `-B`/`--beat` option), initialize Sentry in either the `celeryd_init` or `beat_init` signal. -- If beat is running in a separate process, you need to initialize Sentry in *both* the `celeryd_init` and `beat_init` signal. +- If beat is running in a separate process, you need to initialize Sentry in _both_ the `celeryd_init` and `beat_init` signal. Make sure to also set `monitor_beat_tasks=True` in `CeleryIntegration`. - In addition to capturing errors, you can monitor interactions between multiple services or applications by [enabling tracing](/concepts/key-terms/tracing/). You can also collect and analyze performance profiles from real users with [profiling](/product/explore/profiling/). Select which Sentry features you'd like to install in addition to Error Monitoring to get the corresponding installation and configuration instructions below. -```python {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +```python {diff} {filename:tasks.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} # tasks.py from celery import signals @@ -72,11 +69,11 @@ def init_sentry(**kwargs): # of sampled transactions. # We recommend adjusting this value in production. profiles_sample_rate=1.0, - integrations=[ - CeleryIntegration( - monitor_beat_tasks=True - ) - ], ++ integrations=[ ++ CeleryIntegration( ++ monitor_beat_tasks=True ++ ) ++ ], environment="local.dev.grace", release="v1.0", ) @@ -98,17 +95,16 @@ You don't need to create Cron Monitors for your tasks on Sentry.io, we'll do it You can exclude Celery Beat tasks from being auto-instrumented. To do this, add a list of tasks you want to exclude as option `exclude_beat_tasks` when creating `CeleryIntegration`. The list can contain simple strings with the full task name, as specified in the Celery Beat schedule, or regular expressions to match multiple tasks. - -```python +```python {diff} sentry_sdk.init( # ... integrations=[ CeleryIntegration( monitor_beat_tasks=True, - exclude_beat_tasks=[ - "some-task-a", - "payment-check-.*", - ] ++ exclude_beat_tasks=[ ++ "some-task-a", ++ "payment-check-.*", ++ ] ), ], ) @@ -128,7 +124,7 @@ Make sure the Sentry `@sentry_sdk.monitor` decorator is below Celery's `@app.tas -```python +```python {diff} {filename:tasks.py} # tasks.py from celery import Celery, signals @@ -143,9 +139,8 @@ def init_sentry(**kwargs): # same as above ) - @app.task -@sentry_sdk.monitor(monitor_slug='') # 👈 this is the new line. ++@sentry_sdk.monitor(monitor_slug='') def tell_the_world(msg): print(msg) ``` diff --git a/docs/platforms/python/integrations/celery/index.mdx b/docs/platforms/python/integrations/celery/index.mdx index 983ead03abd711..a597a5ce032e45 100644 --- a/docs/platforms/python/integrations/celery/index.mdx +++ b/docs/platforms/python/integrations/celery/index.mdx @@ -17,36 +17,108 @@ pip install --upgrade 'sentry-sdk[celery]' If you have the `celery` package in your dependencies, the Celery integration will be enabled automatically when you initialize the Sentry SDK. -Make sure that the **call to `init` is loaded on worker startup**, and not only in the module where your tasks are defined. Otherwise, the initialization happens too late and events might end up not being reported. + + Make sure that the call to `sentry_sdk.init()` is loaded on worker startup and + not only in the module where your tasks are defined. Otherwise, the + initialization may happen too late and events might not get reported. + + +### Set up Celery Without Django - +When using Celery without Django, you'll need to initialize the Sentry SDK in both your application and the Celery worker processes spawned by the Celery daemon. -### Standalone Setup +In addition to capturing errors, you can use Sentry for [distributed tracing](/concepts/key-terms/tracing/) and [profiling](/product/explore/profiling/). Select what you'd like to install to get the corresponding installation and configuration instructions below. -If you're using Celery standalone, there are two ways to set this up: +#### Set up Sentry in Celery Daemon or Worker Processes -- Initializing the SDK in the configuration file loaded with Celery's `--config` parameter -- Initializing the SDK by hooking it to either the [`celeryd_init`](https://docs.celeryq.dev/en/stable/userguide/signals.html?#celeryd-init) or [`worker_init`](https://docs.celeryq.dev/en/stable/userguide/signals.html?#worker-init) signals + - ```python - import sentry_sdk - from celery import Celery, signals +```python {filename:tasks.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +from celery import Celery, signals +import sentry_sdk + +# Initializing Celery +app = Celery("tasks", broker="...") + +# Initialize Sentry SDK on Celery startup +@signals.celeryd_init.connect +def init_sentry(**_kwargs): + sentry_sdk.init( + dsn="___PUBLIC_DSN___", + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for tracing. + traces_sample_rate=1.0, + # Set profiles_sample_rate to 1.0 to profile 100% + # of sampled transactions. + # We recommend adjusting this value in production. + profiles_sample_rate=1.0, + ) + +# Task definitions go here +@app.task +def add(x, y): + return x + y +``` - app = Celery("myapp") +The [`celeryd_init`](https://docs.celeryq.dev/en/stable/userguide/signals.html?#celeryd-init) signal is triggered when the Celery daemon starts, before the worker processes are spawned. If you need to initialize Sentry for each individual worker process, us the [`worker_init`](https://docs.celeryq.dev/en/stable/userguide/signals.html?#worker-init) signal instead. - #@signals.worker_init.connect - @signals.celeryd_init.connect - def init_sentry(**_kwargs): - sentry_sdk.init(...) # same as above - ``` +#### Set up Sentry in Your Application -### Setup With Django + + +```python {filename:main.py} {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +from tasks import add +import sentry_sdk + +def main(): + # Initializing Sentry SDK in our process + sentry_sdk.init( + dsn="___PUBLIC_DSN___", + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for tracing. + traces_sample_rate=1.0, + # Set profiles_sample_rate to 1.0 to profile 100% + # of sampled transactions. + # We recommend adjusting this value in production. + profiles_sample_rate=1.0, + ) + + # Enqueueing a task to be processed by Celery + with sentry_sdk.start_transaction(name="calling-a-celery-task"): + result = add.delay(4, 4) + +if __name__ == "__main__": + main() +``` -If you're using Celery with Django in a conventional setup, have already initialized the SDK in [your `settings.py` file](/platforms/python/integrations/django/#configure), and have Celery using the same settings with [`config_from_object`](https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html), you don't need to initialize the SDK separately for Celery. +### Set up Celery With Django + +If you're using Celery with Django in a typical setup, have initialized the SDK in your `settings.py` file (as described in the [Django integration documentation](/platforms/python/integrations/django/#configure)), and have your Celery configured to use the same settings as [`config_from_object`](https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html), there's no need to initialize the Celery SDK separately. ## Verify -To verify if your SDK is initialized on worker start, you can pass `debug=True` to `sentry_sdk.init()` to see extra output when the SDK is initialized. If the output appears during worker startup and not only after a task has started, then it's working properly. +To confirm that your SDK is initialized on worker start, pass `debug=True` to `sentry_sdk.init()`. This will add extra output to your Celery logs when the SDK is initialized. If you see the output during worker startup, and not just after a task has started, then it's working correctly. + +The snippet below includes an intentional `ZeroDivisionError` in the Celery task that will be captured by Sentry. To trigger the error call `debug_sentry.delay()`: + +```python {filename:tasks.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +from celery import Celery, signals +import sentry_sdk + +app = Celery("tasks", broker="...") + +@signals.celeryd_init.connect +def init_sentry(**_kwargs): + sentry_sdk.init(...) # same as above + +@app.task +def debug_sentry(): + 1/0 +``` From 7626ad711458548b420f3b73110bf5d88841302d Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Thu, 24 Oct 2024 12:25:46 +0200 Subject: [PATCH 11/13] [Python] Document `failed_request_status_codes` option better (#11598) Better describe `failed_request_status_codes` option. --------- Co-authored-by: Liza Mock --- docs/platforms/python/integrations/fastapi/index.mdx | 3 +++ docs/platforms/python/integrations/starlette/index.mdx | 3 +++ 2 files changed, 6 insertions(+) diff --git a/docs/platforms/python/integrations/fastapi/index.mdx b/docs/platforms/python/integrations/fastapi/index.mdx index 4235e97c77f15b..1f466ecb111d81 100644 --- a/docs/platforms/python/integrations/fastapi/index.mdx +++ b/docs/platforms/python/integrations/fastapi/index.mdx @@ -134,6 +134,9 @@ You can pass the following keyword arguments to `StarletteIntegration()` and `Fa A `set` of integers that will determine which status codes should be reported to Sentry. + The `failed_request_status_codes` option determines whether [`HTTPException`](https://fastapi.tiangolo.com/reference/exceptions/?h=httpexception) exceptions should be + reported to Sentry. Unhandled exceptions that don't have a `status_code` attribute will always be reported to Sentry. + Examples of valid `failed_request_status_codes`: - `{500}` will only send events on HTTP 500. diff --git a/docs/platforms/python/integrations/starlette/index.mdx b/docs/platforms/python/integrations/starlette/index.mdx index d370efa1f2dccf..396de6001989a1 100644 --- a/docs/platforms/python/integrations/starlette/index.mdx +++ b/docs/platforms/python/integrations/starlette/index.mdx @@ -91,6 +91,9 @@ You can pass the following keyword arguments to `StarletteIntegration()`: A `set` of integers that will determine which status codes should be reported to Sentry. + The `failed_request_status_codes` option determines whether [`HTTPException`](https://www.starlette.io/exceptions/#httpexception) exceptions should be + reported to Sentry. Unhandled exceptions that don't have a `status_code` attribute will always be reported to Sentry. + Examples of valid `failed_request_status_codes`: - `{500}` will only send events on HTTP 500. From 71be38c7f2a4f934c7bb5882ae4cce7819eb2e87 Mon Sep 17 00:00:00 2001 From: Sigrid Huemer <32902192+s1gr1d@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:15:06 +0200 Subject: [PATCH 12/13] docs(user-feedback): Add snippet for manual injection (#11502) * docs(user-feedback): Add snippet for manual injection * review suggestions --- .../user-feedback/configuration/index.mdx | 48 ++----------------- .../common/user-feedback/v7/index.mdx | 2 +- .../manual-injection/javascript.mdx | 12 +++++ .../manual-injection/javascript.nextjs.mdx | 26 ++++++++++ .../manual-injection/javascript.react.mdx | 26 ++++++++++ .../manual-injection/javascript.remix.mdx | 26 ++++++++++ 6 files changed, 96 insertions(+), 44 deletions(-) create mode 100644 platform-includes/user-feedback/manual-injection/javascript.mdx create mode 100644 platform-includes/user-feedback/manual-injection/javascript.nextjs.mdx create mode 100644 platform-includes/user-feedback/manual-injection/javascript.react.mdx create mode 100644 platform-includes/user-feedback/manual-injection/javascript.remix.mdx diff --git a/docs/platforms/javascript/common/user-feedback/configuration/index.mdx b/docs/platforms/javascript/common/user-feedback/configuration/index.mdx index 76692df0dea42f..3f22cff3bd60ba 100644 --- a/docs/platforms/javascript/common/user-feedback/configuration/index.mdx +++ b/docs/platforms/javascript/common/user-feedback/configuration/index.mdx @@ -30,45 +30,7 @@ The following options can be configured for the integration in `feedbackIntegrat If you have `autoInject: true` a button will be inserted into the page that triggers the form to pop up so the user can enter their feedback. If instead you want to control when this injection happens, call the `feedback.createWidget()` method to get a reference to an `Actor` object, and then call `appendToDom()` to insert it into the page. -```javascript -const feedback = feedbackIntegration({ - // Disable injecting the default widget - autoInject: false, -}); - -// Create and render the button -const widget = feedback.createWidget(); - -// Later, when it's time to clean up: -widget.removeFromDom(); -``` -```typescript {tabTitle: NextJS} -function ToggleFeedbackButton() { - const [feedback, setFeedback] = useState(); - // Read `getFeedback` on the client only, to avoid hydration errors when server rendering - useEffect(() => { - setFeedback(Sentry.getFeedback()); - }, []); - - const [widget, setWidget] = useState(); - return ( - - ); -} -``` - + Read more about how to [use your own UI](#bring-your-own-button) below. @@ -257,7 +219,7 @@ You can use your own button instead of the default injected button to trigger th ```javascript const feedback = feedbackIntegration({ - // Disable injecting the default widget + // Disable the injection of the default widget autoInject: false, }); @@ -268,7 +230,7 @@ feedback.attachTo(document.querySelector("#your-button"), { ```typescript {tabTitle: NextJs} function AttachToFeedbackButton() { const [feedback, setFeedback] = useState(); - // Read `getFeedback` on the client only, to avoid hydration errors when server rendering + // Read `getFeedback` on the client only, to avoid hydration errors during server rendering useEffect(() => { setFeedback(Sentry.getFeedback()); }, []); @@ -294,7 +256,7 @@ Alternatively, you can call `feedback.createForm()` and have full control over w ```javascript const feedback = feedbackIntegration({ - // Disable injecting the default widget + // Disable the injection of the default widget autoInject: false, }); @@ -305,7 +267,7 @@ form.open(); ```typescript {tabTitle: NextJS} function CreateFeedbackFromButton() { const [feedback, setFeedback] = useState(); - // Read `getFeedback` on the client only, to avoid hydration errors when server rendering + // Read `getFeedback` on the client only, to avoid hydration errors during server rendering useEffect(() => { setFeedback(Sentry.getFeedback()); }, []); diff --git a/docs/platforms/javascript/common/user-feedback/v7/index.mdx b/docs/platforms/javascript/common/user-feedback/v7/index.mdx index 4886d98a831a2d..23f0fc55f55835 100644 --- a/docs/platforms/javascript/common/user-feedback/v7/index.mdx +++ b/docs/platforms/javascript/common/user-feedback/v7/index.mdx @@ -169,7 +169,7 @@ You can use your own button instead of the default injected button to trigger th ```javascript const feedback = feedbackIntegration({ - // Disable injecting the default widget + // Disable the injection of the default widget autoInject: false, }); diff --git a/platform-includes/user-feedback/manual-injection/javascript.mdx b/platform-includes/user-feedback/manual-injection/javascript.mdx new file mode 100644 index 00000000000000..e88b38df8afaf5 --- /dev/null +++ b/platform-includes/user-feedback/manual-injection/javascript.mdx @@ -0,0 +1,12 @@ +```javascript +const feedback = feedbackIntegration({ + // Disable the injection of the default widget + autoInject: false, +}); + +// Create and render the button +const widget = feedback.createWidget(); + +// Later, when it's time to clean up: +widget.removeFromDom(); +``` diff --git a/platform-includes/user-feedback/manual-injection/javascript.nextjs.mdx b/platform-includes/user-feedback/manual-injection/javascript.nextjs.mdx new file mode 100644 index 00000000000000..ba550240945dc0 --- /dev/null +++ b/platform-includes/user-feedback/manual-injection/javascript.nextjs.mdx @@ -0,0 +1,26 @@ +```jsx {tabTitle: NextJS} +function ToggleFeedbackButton() { + const [feedback, setFeedback] = useState(); + // Read `getFeedback` on the client only, to avoid hydration errors during server rendering + useEffect(() => { + setFeedback(Sentry.getFeedback()); + }, []); + + const [widget, setWidget] = useState(); + return ( + + ); +} +``` diff --git a/platform-includes/user-feedback/manual-injection/javascript.react.mdx b/platform-includes/user-feedback/manual-injection/javascript.react.mdx new file mode 100644 index 00000000000000..72874082fc1dfd --- /dev/null +++ b/platform-includes/user-feedback/manual-injection/javascript.react.mdx @@ -0,0 +1,26 @@ +```jsx {tabTitle: React} +function ToggleFeedbackButton() { + const [feedback, setFeedback] = useState(); + // Read `getFeedback` on the client only, to avoid hydration errors during server rendering + useEffect(() => { + setFeedback(Sentry.getFeedback()); + }, []); + + const [widget, setWidget] = useState(); + return ( + + ); +} +``` diff --git a/platform-includes/user-feedback/manual-injection/javascript.remix.mdx b/platform-includes/user-feedback/manual-injection/javascript.remix.mdx new file mode 100644 index 00000000000000..c352ddf3050428 --- /dev/null +++ b/platform-includes/user-feedback/manual-injection/javascript.remix.mdx @@ -0,0 +1,26 @@ +```jsx {tabTitle: Remix} +function ToggleFeedbackButton() { + const [feedback, setFeedback] = useState(); + // Read `getFeedback` on the client only, to avoid hydration errors during server rendering + useEffect(() => { + setFeedback(Sentry.getFeedback()); + }, []); + + const [widget, setWidget] = useState(); + return ( + + ); +} +``` From 7db6d3214c14d1aef79288fe6560fbc6b47a0b19 Mon Sep 17 00:00:00 2001 From: Sigrid Huemer <32902192+s1gr1d@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:38:16 +0200 Subject: [PATCH 13/13] docs(nuxt): Add docs for Pinia plugin (#11638) * docs(nuxt): Add docs for Pinia plugin * review comments --- .../javascript/guides/nuxt/features/pinia.mdx | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 docs/platforms/javascript/guides/nuxt/features/pinia.mdx diff --git a/docs/platforms/javascript/guides/nuxt/features/pinia.mdx b/docs/platforms/javascript/guides/nuxt/features/pinia.mdx new file mode 100644 index 00000000000000..5634aec74cdd65 --- /dev/null +++ b/docs/platforms/javascript/guides/nuxt/features/pinia.mdx @@ -0,0 +1,104 @@ +--- +title: Pinia +description: "Learn about enabling Sentry's Pinia plugin in Nuxt." +--- + +To capture [Pinia](https://pinia.vuejs.org/) state data, add `trackPinia` to your client-side Sentry configuration: + +```javascript {3} {filename:sentry.client.config.ts} +Sentry.init({ + dsn: "___PUBLIC_DSN___", + trackPinia: true // `true` will apply default options +}); +``` + +## Normalization Depth + +By default, Sentry SDKs normalize any context to a depth of 3. You may want to increase this for sending Pinia states by passing `normalizeDepth` to the `Sentry.init` call: + +```javascript {4} {filename:sentry.client.config.ts} +Sentry.init({ + dsn: "___PUBLIC_DSN___", + trackPinia: true, + normalizeDepth: 10, // Or however deep you want your state context to be. +}); +``` + +## Options + +When enabling `trackPinia` with `true`, all default options are automatically applied. To configure the Pinia plugin manually, pass an options object to `trackPinia`. + + + +While we try our best to filter out Personally Identifiable Information (PII) such as user passwords, we advise against sending sensitive information to Sentry. + + + + +### `attachPiniaState` (Boolean) + +This is used to attach Pinia state to Sentry events. By default, this is set to `true`. If you don't want to attach Pinia state to events being sent to Sentry, set this to `false`: + +```javascript {2} {filename:sentry.client.config.ts} +trackPinia: { + attachPiniaState: false +} +``` + +### `addBreadcrumbs` (Boolean) + +This is used to add breadcrumbs to Sentry events. By default, this is set to `true`. If you don't want to add breadcrumbs to events being sent to Sentry, set this to `false`: + +```javascript {2} {filename:sentry.client.config.ts} +trackPinia: { + addBreadcrumbs: false +} +``` + +### `actionTransformer` (Function) + +This can be used to remove sensitive information from Pinia actions. The first parameter passed to the function is the Pinia action name. We send all actions by default, if you don't want an action name sent to Sentry, use `return null`: + +```javascript {2-9} {filename:sentry.client.config.ts} +trackPinia: { + actionTransformer: (action) => { + if (action === "GOVERNMENT_SECRETS") { + // Return null to not log the action to Sentry + return null; + } + + return action; + }, +} +``` + +### `stateTransformer` (Function) + +This is used to remove sensitive information from a Pinia state. The first parameter passed to the function is the Pinia state. We attach all state changes by default. If you don't want to attach state changes to events being sent to Sentry, use `return null`. Note, that if you choose not to send state to Sentry, your errors might not have the latest version attached: + +```javascript {2-23} {filename:sentry.client.config.ts} +trackPinia: { + stateTransformer: (state) => { + if (state.topSecret.doNotSend) { + // Return null to not send this version of the state. + return null; + } + + // Transform the state to remove sensitive information + const transformedState = { + ...state, + topSecret: { + ...state.topSecret, + // Replace sensitive information with something else + nuclearLaunchCodes: "I love pizza", + // or just remove it entirely + hiddenTreasureLocation: null, + }, + // You should also remove large data that is irrelevant to debugging to not clutter your Sentry issues + giganticState: null, + }; + + return transformedState; + }, +} +```