diff --git a/.changeset/sweet-suns-repair.md b/.changeset/sweet-suns-repair.md new file mode 100644 index 0000000..979f04d --- /dev/null +++ b/.changeset/sweet-suns-repair.md @@ -0,0 +1,7 @@ +--- +"saleor-app-emails-and-messages": minor +"saleor-app-products-feed": minor +"saleor-app-crm": minor +--- + +Added Sentry config. If Sentry is configured in ENV, it will use default Sentry configuration for Next.js to send errors to the Sentry diff --git a/apps/crm/.gitignore b/apps/crm/.gitignore new file mode 100644 index 0000000..19baec3 --- /dev/null +++ b/apps/crm/.gitignore @@ -0,0 +1,3 @@ + +# Sentry Auth Token +.sentryclirc diff --git a/apps/crm/next.config.js b/apps/crm/next.config.js index 34c4a4b..498f10b 100644 --- a/apps/crm/next.config.js +++ b/apps/crm/next.config.js @@ -20,3 +20,50 @@ module.exports = () => { transpilePackages: ["@saleor/apps-shared"], }; }; + +const isSentryEnvAvailable = + process.env.SENTRY_AUTH_TOKEN && + process.env.SENTRY_PROJECT && + process.env.SENTRY_ORG && + process.env.SENTRY_AUTH_TOKEN; + +const { withSentryConfig } = require("@sentry/nextjs"); + +module.exports = withSentryConfig( + module.exports, + { + /* + * For all available options, see: + * https://github.com/getsentry/sentry-webpack-plugin#options + */ + + // Suppresses source map uploading logs during build + silent: true, + + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + }, + { + disableClientWebpackPlugin: !isSentryEnvAvailable, + disableServerWebpackPlugin: !isSentryEnvAvailable, + /* + * For all available options, see: + * https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + */ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, + + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } +); diff --git a/apps/crm/package.json b/apps/crm/package.json index 4f02d9f..e9c28f4 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -20,6 +20,7 @@ "@saleor/app-sdk": "0.38.0", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "0.8.0-pre.84", + "@sentry/nextjs": "^7.52.1", "@tanstack/react-query": "^4.28.0", "@trpc/client": "^10.18.0", "@trpc/next": "^10.18.0", diff --git a/apps/crm/sentry.client.config.ts b/apps/crm/sentry.client.config.ts new file mode 100644 index 0000000..2424fae --- /dev/null +++ b/apps/crm/sentry.client.config.ts @@ -0,0 +1,34 @@ +/* + * This file configures the initialization of Sentry on the client. + * The config you add here will be used whenever a users loads a page in their browser. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + replaysOnErrorSampleRate: 1.0, + + /* + * This sets the sample rate to be 10%. You may want this to be 100% while + * in development and sample at a lower rate in production + */ + replaysSessionSampleRate: 0.1, + + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], +}); diff --git a/apps/crm/sentry.edge.config.ts b/apps/crm/sentry.edge.config.ts new file mode 100644 index 0000000..eab720a --- /dev/null +++ b/apps/crm/sentry.edge.config.ts @@ -0,0 +1,18 @@ +/* + * This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). + * The config you add here will be used whenever one of the edge features is loaded. + * Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/crm/sentry.server.config.ts b/apps/crm/sentry.server.config.ts new file mode 100644 index 0000000..ab8b8db --- /dev/null +++ b/apps/crm/sentry.server.config.ts @@ -0,0 +1,17 @@ +/* + * This file configures the initialization of Sentry on the server. + * The config you add here will be used whenever the server handles a request. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/crm/turbo.json b/apps/crm/turbo.json index 525cb03..5626d85 100644 --- a/apps/crm/turbo.json +++ b/apps/crm/turbo.json @@ -14,7 +14,11 @@ "REST_APL_TOKEN", "ALLOWED_DOMAIN_PATTERN", "MAILCHIMP_CLIENT_SECRET", - "MAILCHIMP_CLIENT_ID" + "MAILCHIMP_CLIENT_ID", + "NEXT_PUBLIC_SENTRY_DSN", + "SENTRY_PROJECT", + "SENTRY_AUTH_TOKEN", + "SENTRY_ORG" ] } } diff --git a/apps/emails-and-messages/.gitignore b/apps/emails-and-messages/.gitignore new file mode 100644 index 0000000..19baec3 --- /dev/null +++ b/apps/emails-and-messages/.gitignore @@ -0,0 +1,3 @@ + +# Sentry Auth Token +.sentryclirc diff --git a/apps/emails-and-messages/next.config.js b/apps/emails-and-messages/next.config.js index 10d6d54..d756789 100644 --- a/apps/emails-and-messages/next.config.js +++ b/apps/emails-and-messages/next.config.js @@ -3,3 +3,47 @@ module.exports = { reactStrictMode: true, transpilePackages: ["@saleor/apps-shared"], }; + +const isSentryEnvAvailable = + process.env.SENTRY_AUTH_TOKEN && process.env.SENTRY_PROJECT && process.env.SENTRY_ORG && process.env.SENTRY_AUTH_TOKEN; + +const { withSentryConfig } = require("@sentry/nextjs"); + +module.exports = withSentryConfig( + module.exports, + { + /* + * For all available options, see: + * https://github.com/getsentry/sentry-webpack-plugin#options + */ + + // Suppresses source map uploading logs during build + silent: true, + + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + }, + { + disableClientWebpackPlugin: !isSentryEnvAvailable, + disableServerWebpackPlugin: !isSentryEnvAvailable, + /* + * For all available options, see: + * https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + */ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, + + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } +); diff --git a/apps/emails-and-messages/package.json b/apps/emails-and-messages/package.json index d9b50b6..2a99365 100644 --- a/apps/emails-and-messages/package.json +++ b/apps/emails-and-messages/package.json @@ -25,6 +25,7 @@ "@saleor/macaw-ui": "^0.7.2", "@sendgrid/client": "^7.7.0", "@sendgrid/mail": "^7.7.0", + "@sentry/nextjs": "^7.52.1", "@tanstack/react-query": "^4.24.4", "@trpc/client": "^10.13.0", "@trpc/next": "^10.13.0", diff --git a/apps/emails-and-messages/sentry.client.config.ts b/apps/emails-and-messages/sentry.client.config.ts new file mode 100644 index 0000000..3a23c6d --- /dev/null +++ b/apps/emails-and-messages/sentry.client.config.ts @@ -0,0 +1,34 @@ +/* + * This file configures the initialization of Sentry on the client. + * The config you add here will be used whenever a users loads a page in their browser. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + replaysOnErrorSampleRate: 1.0, + + /* + * This sets the sample rate to be 10%. You may want this to be 100% while + * in development and sample at a lower rate in production + */ + replaysSessionSampleRate: 0.1, + + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], +}); diff --git a/apps/emails-and-messages/sentry.edge.config.ts b/apps/emails-and-messages/sentry.edge.config.ts new file mode 100644 index 0000000..1f52245 --- /dev/null +++ b/apps/emails-and-messages/sentry.edge.config.ts @@ -0,0 +1,18 @@ +/* + * This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). + * The config you add here will be used whenever one of the edge features is loaded. + * Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/emails-and-messages/sentry.server.config.ts b/apps/emails-and-messages/sentry.server.config.ts new file mode 100644 index 0000000..979384c --- /dev/null +++ b/apps/emails-and-messages/sentry.server.config.ts @@ -0,0 +1,17 @@ +/* + * This file configures the initialization of Sentry on the server. + * The config you add here will be used whenever the server handles a request. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/emails-and-messages/turbo.json b/apps/emails-and-messages/turbo.json index 1ccbc44..b9b2f47 100644 --- a/apps/emails-and-messages/turbo.json +++ b/apps/emails-and-messages/turbo.json @@ -13,7 +13,11 @@ "REST_APL_TOKEN", "NEXT_PUBLIC_VERCEL_ENV", "VERCEL_URL", - "PORT" + "PORT", + "SENTRY_ORG", + "SENTRY_PROJECT", + "SENTRY_DSN", + "SENTRY_AUTH_TOKEN" ] } } diff --git a/apps/products-feed/.gitignore b/apps/products-feed/.gitignore new file mode 100644 index 0000000..19baec3 --- /dev/null +++ b/apps/products-feed/.gitignore @@ -0,0 +1,3 @@ + +# Sentry Auth Token +.sentryclirc diff --git a/apps/products-feed/next.config.js b/apps/products-feed/next.config.js index 10d6d54..841ec92 100644 --- a/apps/products-feed/next.config.js +++ b/apps/products-feed/next.config.js @@ -3,3 +3,51 @@ module.exports = { reactStrictMode: true, transpilePackages: ["@saleor/apps-shared"], }; + +const isSentryEnvAvailable = + process.env.SENTRY_AUTH_TOKEN && + process.env.SENTRY_PROJECT && + process.env.SENTRY_ORG && + process.env.SENTRY_AUTH_TOKEN && + process.env.NEXT_PUBLIC_SENTRY_DSN; + +const { withSentryConfig } = require("@sentry/nextjs"); + +module.exports = withSentryConfig( + module.exports, + { + /* + * For all available options, see: + * https://github.com/getsentry/sentry-webpack-plugin#options + */ + + // Suppresses source map uploading logs during build + silent: true, + + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + }, + { + disableServerWebpackPlugin: !isSentryEnvAvailable, + disableClientWebpackPlugin: !isSentryEnvAvailable, + /* + * For all available options, see: + * https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + */ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, + + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } +); diff --git a/apps/products-feed/package.json b/apps/products-feed/package.json index 28b854d..2f274ff 100644 --- a/apps/products-feed/package.json +++ b/apps/products-feed/package.json @@ -23,6 +23,7 @@ "@saleor/app-sdk": "0.38.0", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", + "@sentry/nextjs": "^7.52.1", "@tanstack/react-query": "^4.24.2", "@trpc/client": "^10.9.0", "@trpc/next": "^10.9.0", diff --git a/apps/products-feed/sentry.client.config.ts b/apps/products-feed/sentry.client.config.ts new file mode 100644 index 0000000..2424fae --- /dev/null +++ b/apps/products-feed/sentry.client.config.ts @@ -0,0 +1,34 @@ +/* + * This file configures the initialization of Sentry on the client. + * The config you add here will be used whenever a users loads a page in their browser. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + replaysOnErrorSampleRate: 1.0, + + /* + * This sets the sample rate to be 10%. You may want this to be 100% while + * in development and sample at a lower rate in production + */ + replaysSessionSampleRate: 0.1, + + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], +}); diff --git a/apps/products-feed/sentry.edge.config.ts b/apps/products-feed/sentry.edge.config.ts new file mode 100644 index 0000000..eab720a --- /dev/null +++ b/apps/products-feed/sentry.edge.config.ts @@ -0,0 +1,18 @@ +/* + * This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). + * The config you add here will be used whenever one of the edge features is loaded. + * Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/products-feed/sentry.server.config.ts b/apps/products-feed/sentry.server.config.ts new file mode 100644 index 0000000..ab8b8db --- /dev/null +++ b/apps/products-feed/sentry.server.config.ts @@ -0,0 +1,17 @@ +/* + * This file configures the initialization of Sentry on the server. + * The config you add here will be used whenever the server handles a request. + * https://docs.sentry.io/platforms/javascript/guides/nextjs/ + */ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/apps/products-feed/turbo.json b/apps/products-feed/turbo.json index bb82a54..c9e9f0a 100644 --- a/apps/products-feed/turbo.json +++ b/apps/products-feed/turbo.json @@ -13,7 +13,6 @@ "REST_APL_TOKEN", "NEXT_PUBLIC_SENTRY_DSN", "SENTRY_DSN", - "NEXT_PUBLIC_SENTRY_DSN", "SENTRY_ORG", "SENTRY_PROJECT", "SENTRY_AUTH_TOKEN", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c38bf04..40587fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,6 +185,9 @@ importers: '@saleor/macaw-ui': specifier: 0.8.0-pre.84 version: 0.8.0-pre.84(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) + '@sentry/nextjs': + specifier: ^7.52.1 + version: 7.52.1(next@13.3.0)(react@18.2.0) '@tanstack/react-query': specifier: ^4.28.0 version: 4.28.0(react-dom@18.2.0)(react@18.2.0) @@ -490,6 +493,9 @@ importers: '@sendgrid/mail': specifier: ^7.7.0 version: 7.7.0 + '@sentry/nextjs': + specifier: ^7.52.1 + version: 7.52.1(next@13.3.0)(react@18.2.0) '@tanstack/react-query': specifier: ^4.24.4 version: 4.24.4(react-dom@18.2.0)(react@18.2.0) @@ -1085,6 +1091,9 @@ importers: '@saleor/macaw-ui': specifier: ^0.7.2 version: 0.7.2(@material-ui/core@4.12.4)(@material-ui/icons@4.11.3)(@material-ui/lab@4.0.0-alpha.61)(@types/react@18.0.27)(react-dom@18.2.0)(react-helmet@6.1.0)(react@18.2.0) + '@sentry/nextjs': + specifier: ^7.52.1 + version: 7.52.1(next@13.3.0)(react@18.2.0) '@tanstack/react-query': specifier: ^4.24.2 version: 4.24.4(react-dom@18.2.0)(react@18.2.0) @@ -5728,6 +5737,16 @@ packages: tslib: 1.14.1 dev: false + /@sentry-internal/tracing@7.52.1: + resolution: {integrity: sha512-6N99rE+Ek0LgbqSzI/XpsKSLUyJjQ9nychViy+MP60p1x+hllukfTsDbNtUNrPlW0Bx+vqUrWKkAqmTFad94TQ==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.52.1 + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + tslib: 1.14.1 + dev: false + /@sentry/browser@7.36.0: resolution: {integrity: sha512-Mu0OpisCZFICBGxVXdHWjUDgSvuQKjnO9acNcXR1+68IU08iX+cU6f2kq6VzI4mW/pNieI20FDFbx9KA0YZ4+A==} engines: {node: '>=8'} @@ -5785,6 +5804,18 @@ packages: tslib: 1.14.1 dev: false + /@sentry/browser@7.52.1: + resolution: {integrity: sha512-HrCOfieX68t+Wj42VIkraLYwx8kN5311SdBkHccevWs2Y2dZU7R9iLbI87+nb5kpOPQ7jVWW7d6QI/yZmliYgQ==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.52.1 + '@sentry/core': 7.52.1 + '@sentry/replay': 7.52.1 + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + tslib: 1.14.1 + dev: false + /@sentry/cli@1.74.6: resolution: {integrity: sha512-pJ7JJgozyjKZSTjOGi86chIngZMLUlYt2HOog+OJn+WGvqEkVymu8m462j1DiXAnex9NspB4zLLNuZ/R6rTQHg==} engines: {node: '>= 8'} @@ -5848,6 +5879,15 @@ packages: tslib: 1.14.1 dev: false + /@sentry/core@7.52.1: + resolution: {integrity: sha512-36clugQu5z/9jrit1gzI7KfKbAUimjRab39JeR0mJ6pMuKLTTK7PhbpUAD4AQBs9qVeXN2c7h9SVZiSA0UDvkg==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + tslib: 1.14.1 + dev: false + /@sentry/integrations@7.36.0: resolution: {integrity: sha512-wrRoUqdeGi64NNimGVk8U8DBiXamxTYPBux0/faFDyau8EJyQFcv8zOyB78Za4W2Ss3ZXNaE/WtFF8UxalHzBQ==} engines: {node: '>=8'} @@ -5898,6 +5938,16 @@ packages: tslib: 1.14.1 dev: false + /@sentry/integrations@7.52.1: + resolution: {integrity: sha512-4uejF01723wzEHjcP5AcNcV+Z/6U27b1LyaDu0jY3XDry98MMjhS/ASzecLpaEFxi3dh/jMTUrNp1u7WMj59Lg==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + localforage: 1.10.0 + tslib: 1.14.1 + dev: false + /@sentry/nextjs@7.36.0(next@13.3.0)(react@18.2.0): resolution: {integrity: sha512-7IUwBjCjo3rWuvEG16D1wKb0D+aMyCU920VGCAQVZaqTZAgrgAKfpTa1Sk0fmDxYglW1EBI9QM+WEnOa9RleLw==} engines: {node: '>=8'} @@ -6049,6 +6099,36 @@ packages: - supports-color dev: false + /@sentry/nextjs@7.52.1(next@13.3.0)(react@18.2.0): + resolution: {integrity: sha512-zd1StGdAn0vSS21l4gVyzCtfnEbJ+e5ZIgLZiaLUOSvKdMAtIlhXTotpn7CILIx+PzjOwiRFWp1XtSoU4FZyZg==} + engines: {node: '>=8'} + peerDependencies: + next: ^10.0.8 || ^11.0 || ^12.0 || ^13.0 + react: 16.x || 17.x || 18.x + webpack: '>= 4.0.0' + peerDependenciesMeta: + webpack: + optional: true + dependencies: + '@rollup/plugin-commonjs': 24.0.0(rollup@2.78.0) + '@sentry/core': 7.52.1 + '@sentry/integrations': 7.52.1 + '@sentry/node': 7.52.1 + '@sentry/react': 7.52.1(react@18.2.0) + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + '@sentry/webpack-plugin': 1.20.0 + chalk: 3.0.0 + next: 13.3.0(@babel/core@7.21.4)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + rollup: 2.78.0 + stacktrace-parser: 0.1.10 + tslib: 1.14.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /@sentry/node@7.36.0: resolution: {integrity: sha512-nAHAY+Rbn5OlTpNX/i6wYrmw3hT/BtwPZ/vNU52cKgw7CpeE1UrCeFjnPn18rQPB7lIh7x0vNvoaPrfemRzpSQ==} engines: {node: '>=8'} @@ -6126,6 +6206,22 @@ packages: - supports-color dev: false + /@sentry/node@7.52.1: + resolution: {integrity: sha512-n3frjYbkY/+eZ5RTQMaipv6Hh9w3ia40GDeRK6KJQit7OLKLmXisD+FsdYzm8Jc784csSvb6HGGVgqLpO1p9Og==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.52.1 + '@sentry/core': 7.52.1 + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + dev: false + /@sentry/react@7.36.0(react@18.2.0): resolution: {integrity: sha512-ttrRqbgeqvkV3DwkDRZC/V8OEnBKGpQf4dKpG8oMlfdVbMTINzrxYUgkhi9xAkxkH9O+vj3Md8L3Rdqw/SDwKQ==} engines: {node: '>=8'} @@ -6196,6 +6292,20 @@ packages: tslib: 1.14.1 dev: false + /@sentry/react@7.52.1(react@18.2.0): + resolution: {integrity: sha512-RRH+GJE5TNg5QS86bSjSZuR2snpBTOO5/SU9t4BOqZMknzhMVTClGMm84hffJa9pMPMJPQ2fWQAbhrlD8RcF6w==} + engines: {node: '>=8'} + peerDependencies: + react: 15.x || 16.x || 17.x || 18.x + dependencies: + '@sentry/browser': 7.52.1 + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + tslib: 1.14.1 + dev: false + /@sentry/replay@7.36.0: resolution: {integrity: sha512-wNbME74/2GtkqdDXz7NaStyfPWVLjYmN9TFWvu6E9sNl9pkDDvii/Qc8F6ps1wa7bozkKcWRHgNvYiGCxUBHcg==} engines: {node: '>=12'} @@ -6241,6 +6351,15 @@ packages: '@sentry/utils': 7.46.0 dev: false + /@sentry/replay@7.52.1: + resolution: {integrity: sha512-A+RaUmpU9/yBHnU3ATemc6wAvobGno0yf5R6fZYkAFoo2FCR2YG6AXxkTazymIf8v2DnLGaSDORYDPdhQClU9A==} + engines: {node: '>=12'} + dependencies: + '@sentry/core': 7.52.1 + '@sentry/types': 7.52.1 + '@sentry/utils': 7.52.1 + dev: false + /@sentry/tracing@7.36.0: resolution: {integrity: sha512-5R5mfWMDncOcTMmmyYMjgus1vZJzIFw4LHaSbrX7e1IRNT/6vFyNeVxATa2ePXb9mI3XHo5f2p7YrnreAtaSXw==} engines: {node: '>=8'} @@ -6296,6 +6415,11 @@ packages: engines: {node: '>=8'} dev: false + /@sentry/types@7.52.1: + resolution: {integrity: sha512-OMbGBPrJsw0iEXwZ2bJUYxewI1IEAU2e1aQGc0O6QW5+6hhCh+8HO8Xl4EymqwejjztuwStkl6G1qhK+Q0/Row==} + engines: {node: '>=8'} + dev: false + /@sentry/utils@7.36.0: resolution: {integrity: sha512-mgDi5X5Bm0sydCzXpnyKD/sD98yc2qnKXyRdNX4HRRwruhC/P53LT0hGhZXsyqsB/l8OAMl0zWXJLg0xONQsEw==} engines: {node: '>=8'} @@ -6336,6 +6460,14 @@ packages: tslib: 1.14.1 dev: false + /@sentry/utils@7.52.1: + resolution: {integrity: sha512-MPt1Xu/jluulknW8CmZ2naJ53jEdtdwCBSo6fXJvOTI0SDqwIPbXDVrsnqLAhVJuIN7xbkj96nuY/VBR6S5sWg==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.52.1 + tslib: 1.14.1 + dev: false + /@sentry/webpack-plugin@1.20.0: resolution: {integrity: sha512-Ssj1mJVFsfU6vMCOM2d+h+KQR7QHSfeIP16t4l20Uq/neqWXZUQ2yvQfe4S3BjdbJXz/X4Rw8Hfy1Sd0ocunYw==} engines: {node: '>= 8'}