From 0b2a7a360600e3b6d2971b1fd6dc888d68416dc1 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Wed, 9 Oct 2024 21:26:58 +0300 Subject: [PATCH] feat(plugin-sentry): update plugin to 3.0 (#8613) Updates the plugin to 3.0 Test: ```sh NEXT_PUBLIC_SENTRY_DSN= pnpm dev plugin-sentry ``` Example: ```ts sentryPlugin({ options: { captureErrors: [400, 403], context: ({ defaultContext, req }) => { return { ...defaultContext, tags: { locale: req.locale, }, } }, debug: true, }, Sentry, }) ``` --- app/global-error.tsx | 27 + docs/plugins/sentry.mdx | 60 +- instrumentation.ts | 5 + next.config.mjs | 13 +- package.json | 2 + packages/plugin-form-builder/package.json | 1 - packages/plugin-redirects/package.json | 9 +- packages/plugin-search/package.json | 1 - packages/plugin-sentry/package.json | 30 +- .../plugin-sentry/src/captureException.ts | 5 - packages/plugin-sentry/src/exports/client.ts | 1 + packages/plugin-sentry/src/index.ts | 96 +- packages/plugin-sentry/src/mocks/mockFile.js | 4 - packages/plugin-sentry/src/plugin.spec.ts | 77 +- packages/plugin-sentry/src/plugin.ts | 35 - .../src/providers/AdminErrorBoundary.tsx | 12 + packages/plugin-sentry/src/startSentry.ts | 63 - packages/plugin-sentry/src/types.ts | 40 +- packages/plugin-sentry/tsconfig.json | 4 +- packages/plugin-stripe/package.json | 1 - pnpm-lock.yaml | 1707 ++++++++++++++--- sentry.client.config.ts | 26 + sentry.server.config.ts | 18 + test/package.json | 1 + .../{components.tsx => TestErrors.tsx} | 25 +- test/plugin-sentry/config.ts | 22 +- test/plugin-sentry/payload-types.ts | 24 + tsconfig.json | 8 +- 28 files changed, 1867 insertions(+), 450 deletions(-) create mode 100644 app/global-error.tsx create mode 100644 instrumentation.ts delete mode 100644 packages/plugin-sentry/src/captureException.ts create mode 100644 packages/plugin-sentry/src/exports/client.ts delete mode 100644 packages/plugin-sentry/src/mocks/mockFile.js delete mode 100644 packages/plugin-sentry/src/plugin.ts create mode 100644 packages/plugin-sentry/src/providers/AdminErrorBoundary.tsx delete mode 100644 packages/plugin-sentry/src/startSentry.ts create mode 100644 sentry.client.config.ts create mode 100644 sentry.server.config.ts rename test/plugin-sentry/{components.tsx => TestErrors.tsx} (83%) diff --git a/app/global-error.tsx b/app/global-error.tsx new file mode 100644 index 0000000000..5171ecbd54 --- /dev/null +++ b/app/global-error.tsx @@ -0,0 +1,27 @@ +/* eslint-disable no-restricted-exports */ +'use client' + +import * as Sentry from '@sentry/nextjs' +import NextError from 'next/error.js' +import { useEffect } from 'react' + +export default function GlobalError({ error }: { error: { digest?: string } & Error }) { + useEffect(() => { + if (process.env.NEXT_PUBLIC_SENTRY_DSN) { + Sentry.captureException(error) + } + }, [error]) + + return ( + + + {/* `NextError` is the default Next.js error page component. Its type + definition requires a `statusCode` prop. However, since the App Router + does not expose status codes for errors, we simply pass 0 to render a + generic error message. */} + {/* @ts-expect-error types repo */} + + + + ) +} diff --git a/docs/plugins/sentry.mdx b/docs/plugins/sentry.mdx index 6e81088924..0ac5263564 100644 --- a/docs/plugins/sentry.mdx +++ b/docs/plugins/sentry.mdx @@ -31,7 +31,7 @@ This multi-faceted software offers a range of features that will help you manage - **Integrations**: Connects with various tools and services for enhanced workflow and issue management - This plugin is completely open-source and the [source code can be found here](https://github.com/payloadcms/payload/tree/main/packages/plugin-sentry). If you need help, check out our [Community Help](https://payloadcms.com/community-help). If you think you've found a bug, please [open a new issue](https://github.com/payloadcms/payload/issues/new?assignees=&labels=plugin%3A%20seo&template=bug_report.md&title=plugin-seo%3A) with as much detail as possible. + This plugin is completely open-source and the [source code can be found here](https://github.com/payloadcms/payload/tree/beta/packages/plugin-sentry). If you need help, check out our [Community Help](https://payloadcms.com/community-help). If you think you've found a bug, please [open a new issue](https://github.com/payloadcms/payload/issues/new?assignees=&labels=plugin%3A%20seo&template=bug_report.md&title=plugin-sentry%3A) with as much detail as possible. ## Installation @@ -42,6 +42,15 @@ Install the plugin using any JavaScript package manager like [Yarn](https://yarn pnpm add @payloadcms/plugin-sentry ``` +## Sentry for Next.js setup +This plugin requires to complete the [Sentry + Next.js setup](https://docs.sentry.io/platforms/javascript/guides/nextjs/) before. + +You can use either the [automatic setup](https://docs.sentry.io/platforms/javascript/guides/nextjs/#install) with the installation wizard: +```sh +npx @sentry/wizard@latest -i nextjs +``` +Or the [Manual Setup](https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/) + ## Basic Usage In the `plugins` array of your [Payload Config](https://payloadcms.com/docs/configuration/overview), call the plugin and pass in your Sentry DSN as an option. @@ -51,11 +60,13 @@ import { buildConfig } from 'payload' import { sentryPlugin } from '@payloadcms/plugin-sentry' import { Pages, Media } from './collections' +import * as Sentry from '@sentry/nextjs' + const config = buildConfig({ collections: [Pages, Media], plugins: [ sentryPlugin({ - dsn: 'https://61edebas776889984d323d777@o4505289711681536.ingest.sentry.io/4505357433352176', + Sentry, }), ], }) @@ -65,58 +76,55 @@ export default config ## Options -- `dsn` : string | **required** +- `Sentry` : Sentry | **required** - Sentry automatically assigns a DSN when you create a project, the unique DSN informs Sentry where to send events so they are associated with the correct project. + The `Sentry` instance - You can find your project DSN (Data Source Name) by visiting [sentry.io](sentry.io) and navigating to your [Project] > Settings > Client Keys (DSN). + Make sure to complete the [Sentry for Next.js Setup](#sentry-for-nextjs-setup) before. - `enabled`: boolean | optional - Set to false to disable the plugin. Defaults to true. + Set to false to disable the plugin. Defaults to `true`. -- `init` : ClientOptions | optional +- `context`: `(args: ContextArgs) => Partial | Promise>` - Sentry allows a variety of options to be passed into the Sentry.init() function, see the full list of options [here](https://docs.sentry.io/platforms/node/guides/express/configuration/options). - -- `requestHandler` : RequestHandlerOptions | optional - - Accepts options that let you decide what data should be included in the event sent to Sentry, checkout the options [here](https://docs.sentry.io/platforms/node/guides/express/configuration/options). + Pass additional [contextual data](https://docs.sentry.io/platforms/javascript/enriching-events/context/#passing-context-directly) to Sentry - `captureErrors`: number[] | optional By default, `Sentry.errorHandler` will capture only errors with a status code of 500 or higher. To capture additional error codes, pass the values as numbers in an array. -To see all options available, visit the [Sentry Docs](https://docs.sentry.io/platforms/node/guides/express/configuration/options). - ### Example Configure any of these options by passing them to the plugin: ```ts import { buildConfig } from 'payload' -import { sentry } from '@payloadcms/plugin-sentry' +import { sentryPlugin } from '@payloadcms/plugin-sentry' + +import * as Sentry from '@sentry/nextjs' + import { Pages, Media } from './collections' const config = buildConfig({ collections: [Pages, Media], plugins: [ - sentry({ - dsn: 'https://61edebas777689984d323d777@o4505289711681536.ingest.sentry.io/4505357433352176', + sentryPlugin({ options: { - init: { - debug: true, - environment: 'development', - tracesSampleRate: 1.0, + captureErrors: [400, 403], + context: ({ defaultContext, req }) => { + return { + ...defaultContext, + tags: { + locale: req.locale, + }, + } }, - requestHandler: { - serverName: false, - user: ['email'], - }, - captureErrors: [400, 403, 404], + debug: true, }, + Sentry, }), ], }) diff --git a/instrumentation.ts b/instrumentation.ts new file mode 100644 index 0000000000..41a4d932dc --- /dev/null +++ b/instrumentation.ts @@ -0,0 +1,5 @@ +export async function register() { + if (process.env.NEXT_RUNTIME === 'nodejs') { + await import('./sentry.server.config.js') + } +} diff --git a/next.config.mjs b/next.config.mjs index e994553195..fcaddd3b38 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,6 +1,6 @@ import bundleAnalyzer from '@next/bundle-analyzer' - -import withPayload from './packages/next/src/withPayload.js' +import { withSentryConfig } from '@sentry/nextjs' +import { withPayload } from './packages/next/src/withPayload.js' import path from 'path' import { fileURLToPath } from 'url' @@ -11,8 +11,7 @@ const withBundleAnalyzer = bundleAnalyzer({ enabled: process.env.ANALYZE === 'true', }) -// eslint-disable-next-line no-restricted-exports -export default withBundleAnalyzer( +const config = withBundleAnalyzer( withPayload({ eslint: { ignoreDuringBuilds: true, @@ -23,7 +22,6 @@ export default withBundleAnalyzer( env: { PAYLOAD_CORE_DEV: 'true', ROOT_DIR: path.resolve(dirname), - PAYLOAD_CI_DEPENDENCY_CHECKER: 'true', }, async redirects() { return [ @@ -48,3 +46,8 @@ export default withBundleAnalyzer( }, }), ) + +export default withSentryConfig(config, { + telemetry: false, + tunnelRoute: '/monitoring-tunnel', +}) diff --git a/package.json b/package.json index 19f55e7178..ccbd05fef5 100644 --- a/package.json +++ b/package.json @@ -111,6 +111,8 @@ "@payloadcms/eslint-plugin": "workspace:*", "@payloadcms/live-preview-react": "workspace:*", "@playwright/test": "1.46.0", + "@sentry/nextjs": "^8.33.1", + "@sentry/node": "^8.33.1", "@swc-node/register": "1.10.9", "@swc/cli": "0.4.0", "@swc/jest": "0.2.36", diff --git a/packages/plugin-form-builder/package.json b/packages/plugin-form-builder/package.json index adce91910c..c5990ac5d0 100644 --- a/packages/plugin-form-builder/package.json +++ b/packages/plugin-form-builder/package.json @@ -60,7 +60,6 @@ "devDependencies": { "@payloadcms/eslint-config": "workspace:*", "@types/escape-html": "^1.0.4", - "@types/express": "^4.17.21", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", "copyfiles": "^2.4.1", diff --git a/packages/plugin-redirects/package.json b/packages/plugin-redirects/package.json index a5a689070d..0f88f41992 100644 --- a/packages/plugin-redirects/package.json +++ b/packages/plugin-redirects/package.json @@ -50,9 +50,6 @@ }, "devDependencies": { "@payloadcms/eslint-config": "workspace:*", - "@types/express": "^4.17.9", - "@types/react": "npm:types-react@19.0.0-rc.1", - "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", "payload": "workspace:*" }, "peerDependencies": { @@ -74,9 +71,5 @@ "main": "./dist/index.js", "types": "./dist/index.d.ts" }, - "homepage:": "https://payloadcms.com", - "overrides": { - "@types/react": "npm:types-react@19.0.0-rc.1", - "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1" - } + "homepage:": "https://payloadcms.com" } diff --git a/packages/plugin-search/package.json b/packages/plugin-search/package.json index 9b3a7b974b..b9e9dbbe52 100644 --- a/packages/plugin-search/package.json +++ b/packages/plugin-search/package.json @@ -55,7 +55,6 @@ }, "devDependencies": { "@payloadcms/eslint-config": "workspace:*", - "@types/express": "^4.17.9", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", "payload": "workspace:*" diff --git a/packages/plugin-sentry/package.json b/packages/plugin-sentry/package.json index 14500ed4b7..93391c328d 100644 --- a/packages/plugin-sentry/package.json +++ b/packages/plugin-sentry/package.json @@ -1,6 +1,6 @@ { "name": "@payloadcms/plugin-sentry", - "version": "0.0.6", + "version": "3.0.0-beta.111", "description": "Sentry plugin for Payload", "keywords": [ "payload", @@ -23,6 +23,11 @@ "import": "./src/index.ts", "types": "./src/index.ts", "default": "./src/index.ts" + }, + "./client": { + "import": "./src/exports/client.ts", + "types": "./src/exports/client.ts", + "default": "./src/exports/client.ts" } }, "main": "./src/index.ts", @@ -31,32 +36,24 @@ "dist" ], "scripts": { - "build": "echo \"Build temporarily disabled.\" && exit 0", + "build": "pnpm copyfiles && pnpm build:types && pnpm build:swc", "build:swc": "swc ./src -d ./dist --config-file .swcrc-build --strip-leading-paths", "build:types": "tsc --emitDeclarationOnly --outDir dist", "clean": "rimraf {dist,*.tsbuildinfo}", + "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/", "lint": "eslint .", "lint:fix": "eslint . --fix", "prepublishOnly": "pnpm clean && pnpm turbo build" }, "dependencies": { - "@sentry/node": "^7.55.2", - "@sentry/types": "^7.54.0", - "express": "^4.18.2" + "@sentry/nextjs": "^8.33.1", + "@sentry/types": "^8.33.1" }, "devDependencies": { "@payloadcms/eslint-config": "workspace:*", - "@types/express": "^4.17.9", - "@types/jest": "29.5.12", - "@types/node": "22.5.4", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", - "copyfiles": "^2.4.1", - "cross-env": "^7.0.3", - "jest": "^29.7.0", - "nodemon": "3.0.3", - "payload": "workspace:*", - "ts-jest": "^29.1.0" + "payload": "workspace:*" }, "peerDependencies": { "payload": "workspace:*", @@ -69,6 +66,11 @@ "import": "./dist/index.js", "types": "./dist/index.d.ts", "default": "./dist/index.js" + }, + "./client": { + "import": "./dist/exports/client.js", + "types": "./dist/exports/client.d.ts", + "default": "./dist/exports/client.js" } }, "main": "./dist/index.js", diff --git a/packages/plugin-sentry/src/captureException.ts b/packages/plugin-sentry/src/captureException.ts deleted file mode 100644 index 1882c36547..0000000000 --- a/packages/plugin-sentry/src/captureException.ts +++ /dev/null @@ -1,5 +0,0 @@ -import * as Sentry from '@sentry/node' - -export const captureException = (err: Error): void => { - Sentry.captureException(err) -} diff --git a/packages/plugin-sentry/src/exports/client.ts b/packages/plugin-sentry/src/exports/client.ts new file mode 100644 index 0000000000..058835124e --- /dev/null +++ b/packages/plugin-sentry/src/exports/client.ts @@ -0,0 +1 @@ +export { AdminErrorBoundary } from '../providers/AdminErrorBoundary.js' diff --git a/packages/plugin-sentry/src/index.ts b/packages/plugin-sentry/src/index.ts index ed640820b5..9a214571e2 100644 --- a/packages/plugin-sentry/src/index.ts +++ b/packages/plugin-sentry/src/index.ts @@ -1,2 +1,94 @@ -export { sentryPlugin } from './plugin.js' -export type { PluginOptions } from './types.js' +import type { ScopeContext } from '@sentry/types' +import type { APIError, Config } from 'payload' + +import type { PluginOptions } from './types.js' + +export { PluginOptions } +/** + * @example + * ```ts + * import * as Sentry from '@sentry/nextjs' + * + * sentryPlugin({ + * options: { + * captureErrors: [400, 403], + * context: ({ defaultContext, req }) => { + * return { + * ...defaultContext, + * tags: { + * locale: req.locale, + * }, + * } + * }, + * debug: true, + * }, + * Sentry, + * }) + * ``` + */ +export const sentryPlugin = + (pluginOptions: PluginOptions) => + (config: Config): Config => { + const { enabled = true, options = {}, Sentry } = pluginOptions + + if (!enabled || !Sentry) { + return config + } + + const { captureErrors = [], debug = false } = options + + return { + ...config, + admin: { + ...config.admin, + components: { + ...config.admin?.components, + providers: [ + ...(config.admin?.components?.providers ?? []), + '@payloadcms/plugin-sentry/client#AdminErrorBoundary', + ], + }, + }, + hooks: { + afterError: [ + ...(config.hooks?.afterError ?? []), + async (args) => { + if ('status' in args.error) { + const apiError = args.error as APIError + if (apiError.status >= 500 || captureErrors.includes(apiError.status)) { + let context: Partial = { + extra: { + errorCollectionSlug: args.collection?.slug, + }, + ...(args.req.user && { + user: { + id: args.req.user.id, + collection: args.req.user.collection, + email: args.req.user.email, + ip_address: args.req.headers?.get('X-Forwarded-For') ?? undefined, + username: args.req.user.username, + }, + }), + } + + if (options?.context) { + context = await options.context({ + ...args, + defaultContext: context, + }) + } + + const id = Sentry.captureException(args.error, context) + + if (debug) { + args.req.payload.logger.info( + `Captured exception ${id} to Sentry, error msg: ${args.error.message}`, + ) + } + } + } + }, + ], + }, + } + } diff --git a/packages/plugin-sentry/src/mocks/mockFile.js b/packages/plugin-sentry/src/mocks/mockFile.js deleted file mode 100644 index 6da9278115..0000000000 --- a/packages/plugin-sentry/src/mocks/mockFile.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - captureException: () => {}, - startSentry: () => {}, -} diff --git a/packages/plugin-sentry/src/plugin.spec.ts b/packages/plugin-sentry/src/plugin.spec.ts index 9c6dd96f7e..48df70e271 100644 --- a/packages/plugin-sentry/src/plugin.spec.ts +++ b/packages/plugin-sentry/src/plugin.spec.ts @@ -1,47 +1,96 @@ -import type { Config } from 'payload' +import type { AfterErrorHook, AfterErrorHookArgs, Config, PayloadRequest } from 'payload' -import { defaults } from 'payload' +import { APIError, defaults } from 'payload' -import { sentryPlugin } from './plugin' +import { sentryPlugin } from './index' +import { randomUUID } from 'crypto' -describe('plugin', () => { +const mockExceptionID = randomUUID() + +const mockSentry = { + captureException() { + return mockExceptionID + }, +} + +describe('@payloadcms/plugin-sentry - unit', () => { it('should run the plugin', () => { - const plugin = sentryPlugin({ dsn: 'asdf', enabled: true }) + const plugin = sentryPlugin({ Sentry: mockSentry, enabled: true }) const config = plugin(createConfig()) assertPluginRan(config) }) - it('should default enable: true', () => { - const plugin = sentryPlugin({ dsn: 'asdf' }) + it('should default enabled: true', () => { + const plugin = sentryPlugin({ Sentry: mockSentry }) const config = plugin(createConfig()) assertPluginRan(config) }) - it('should not run if dsn is not provided', () => { - const plugin = sentryPlugin({ dsn: null, enabled: true }) + it('should not run if Sentry is not provided', () => { + const plugin = sentryPlugin({ enabled: true }) const config = plugin(createConfig()) assertPluginDidNotRun(config) }) it('should respect enabled: false', () => { - const plugin = sentryPlugin({ dsn: null, enabled: false }) + const plugin = sentryPlugin({ Sentry: mockSentry, enabled: false }) const config = plugin(createConfig()) assertPluginDidNotRun(config) }) + + it('should execute Sentry.captureException with correct errors / args', async () => { + const hintTimestamp = Date.now() + + const plugin = sentryPlugin({ + Sentry: mockSentry, + options: { + context: ({ defaultContext }) => ({ + ...defaultContext, + extra: { + ...defaultContext.extra, + hintTimestamp, + }, + }), + }, + }) + const config = plugin(createConfig()) + + const hook = config.hooks?.afterError?.[0] as AfterErrorHook + + const error = new APIError('ApiError', 500) + + const afterErrorHookArgs: AfterErrorHookArgs = { + req: {} as PayloadRequest, + context: {}, + error, + collection: { slug: 'mock-slug' } as any, + } + + const captureExceptionSpy = jest.spyOn(mockSentry, 'captureException') + + await hook(afterErrorHookArgs) + + expect(captureExceptionSpy).toHaveBeenCalledTimes(1) + expect(captureExceptionSpy).toHaveBeenCalledWith(error, { + extra: { + errorCollectionSlug: 'mock-slug', + hintTimestamp, + }, + }) + expect(captureExceptionSpy).toHaveReturnedWith(mockExceptionID) + }) }) function assertPluginRan(config: Config) { - expect(config.hooks?.afterError).toBeDefined() - expect(config.onInit).toBeDefined() + expect(config.hooks?.afterError?.[0]).toBeDefined() } function assertPluginDidNotRun(config: Config) { - expect(config.hooks?.afterError).toBeUndefined() - expect(config.onInit).toBeUndefined() + expect(config.hooks?.afterError?.[0]).toBeUndefined() } function createConfig(overrides?: Partial): Config { diff --git a/packages/plugin-sentry/src/plugin.ts b/packages/plugin-sentry/src/plugin.ts deleted file mode 100644 index bf31a93d90..0000000000 --- a/packages/plugin-sentry/src/plugin.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { Config } from 'payload' - -import type { PluginOptions } from './types.js' - -import { captureException } from './captureException.js' -import { startSentry } from './startSentry.js' - -export const sentryPlugin = - (pluginOptions: PluginOptions) => - (incomingConfig: Config): Config => { - const config = { ...incomingConfig } - - if (pluginOptions.enabled === false || !pluginOptions.dsn) { - return config - } - - config.hooks = { - ...(incomingConfig.hooks || {}), - - afterError: [ - ({ error }) => { - captureException(error) - }, - ], - } - - config.onInit = async (payload) => { - if (incomingConfig.onInit) { - await incomingConfig.onInit(payload) - } - startSentry(pluginOptions, payload) - } - - return config - } diff --git a/packages/plugin-sentry/src/providers/AdminErrorBoundary.tsx b/packages/plugin-sentry/src/providers/AdminErrorBoundary.tsx new file mode 100644 index 0000000000..869e89dbf4 --- /dev/null +++ b/packages/plugin-sentry/src/providers/AdminErrorBoundary.tsx @@ -0,0 +1,12 @@ +'use client' + +import type { ReactNode } from 'react' + +import { ErrorBoundary } from '@sentry/nextjs' + +/** + * Captures errored components to Sentry + */ +export const AdminErrorBoundary = ({ children }: { children: ReactNode }) => { + return {children} +} diff --git a/packages/plugin-sentry/src/startSentry.ts b/packages/plugin-sentry/src/startSentry.ts deleted file mode 100644 index abd7322364..0000000000 --- a/packages/plugin-sentry/src/startSentry.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { NextFunction, Request, Response } from 'express' -import type express from 'express' -import type { Payload } from 'payload' - -/* eslint-disable no-console */ -import * as Sentry from '@sentry/node' - -import type { PluginOptions } from './types' - -export const startSentry = (pluginOptions: PluginOptions, payload: Payload): void => { - const { dsn, options } = pluginOptions - const { express: app } = payload - - if (!dsn || !app) { - return - } - - try { - Sentry.init({ - ...options?.init, - dsn, - integrations: [ - ...(options?.init?.integrations || []), - new Sentry.Integrations.Http({ tracing: true }), - new Sentry.Integrations.Express({ app }), - ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(), - ], - }) - - app.use(Sentry.Handlers.requestHandler(options?.requestHandler || {}) as express.RequestHandler) - app.use(Sentry.Handlers.tracingHandler()) - - app.use( - Sentry.Handlers.errorHandler({ - shouldHandleError(error) { - if (error.status === 500) { - return true - } - if ( - options?.captureErrors && - typeof error.status === 'number' && - options.captureErrors.includes(error.status) - ) { - return true - } - return false - }, - }) as express.ErrorRequestHandler, - ) - - app.use(function onError( - _err: unknown, - _req: Request, - res: { sentry?: string } & Response, - _next: NextFunction, - ) { - res.statusCode = 500 - res.end(res.sentry + '\n') - }) - } catch (err: unknown) { - console.log('There was an error initializing Sentry, please ensure you entered a valid DSN') - } -} diff --git a/packages/plugin-sentry/src/types.ts b/packages/plugin-sentry/src/types.ts index bba085f7ae..ad327811ac 100644 --- a/packages/plugin-sentry/src/types.ts +++ b/packages/plugin-sentry/src/types.ts @@ -1,36 +1,46 @@ -import type { RequestHandlerOptions } from '@sentry/node/types/handlers' -import type { ClientOptions } from '@sentry/types' +import type { ScopeContext } from '@sentry/types' +import type { AfterErrorHookArgs } from 'payload' + +type SentryInstance = { + captureException: (err: Error, hint: any) => string +} + +type ContextArgs = { + defaultContext: Partial +} & AfterErrorHookArgs export interface PluginOptions { - /** - * Sentry DSN (Data Source Name) - * This is required unless enabled is set to false. - * Sentry automatically assigns a DSN when you create a project. - * If you don't have a DSN yet, you can create a new project here: https://sentry.io - */ - dsn: null | string /** * Enable or disable Sentry plugin - * @default false + * @default true */ enabled?: boolean /** * Options passed directly to Sentry - * @default false */ options?: { /** * Sentry will only capture 500 errors by default. * If you want to capture other errors, you can add them as an array here. + * @default [] */ captureErrors?: number[] /** - * Passes any valid options to Sentry.init() + * Set `ScopeContext` for `Sentry.captureException` which includes `user` and other info. */ - init?: Partial + context?: (args: ContextArgs) => Partial | Promise> /** - * Passes any valid options to Sentry.Handlers.requestHandler() + * Log captured exceptions, + * @default false */ - requestHandler?: RequestHandlerOptions + debug?: boolean } + /** + * Instance of Sentry from + * ```ts + * import * as Sentry from '@sentry/nextjs' + * ``` + * This is required unless enabled is set to false. + */ + Sentry?: SentryInstance } diff --git a/packages/plugin-sentry/tsconfig.json b/packages/plugin-sentry/tsconfig.json index b8c565b374..2b3fd0af7a 100644 --- a/packages/plugin-sentry/tsconfig.json +++ b/packages/plugin-sentry/tsconfig.json @@ -5,8 +5,8 @@ "noEmit": false /* Do not emit outputs. */, "emitDeclarationOnly": true, "outDir": "./dist" /* Specify an output folder for all emitted files. */, - "rootDir": "./src" /* Specify the root folder within your source files. */, - "strict": true + "rootDir": "./src", /* Specify the root folder within your source files. */ + "jsx": "react-jsx" }, "exclude": [ "dist", diff --git a/packages/plugin-stripe/package.json b/packages/plugin-stripe/package.json index d51285f5fd..f230580525 100644 --- a/packages/plugin-stripe/package.json +++ b/packages/plugin-stripe/package.json @@ -63,7 +63,6 @@ "devDependencies": { "@payloadcms/eslint-config": "workspace:*", "@payloadcms/next": "workspace:*", - "@types/express": "^4.17.9", "@types/lodash.get": "^4.4.7", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5dda476ded..9c6ceb4956 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,6 +45,12 @@ importers: '@playwright/test': specifier: 1.46.0 version: 1.46.0 + '@sentry/nextjs': + specifier: ^8.33.1 + version: 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4))(react@19.0.0-rc-3edc000d-20240926)(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))) + '@sentry/node': + specifier: ^8.33.1 + version: 8.33.1 '@swc-node/register': specifier: 1.10.9 version: 1.10.9(@swc/core@1.7.10(@swc/helpers@0.5.13))(@swc/types@0.1.12)(typescript@5.6.2) @@ -107,7 +113,7 @@ importers: version: 0.23.2-df9e596 drizzle-orm: specifier: 0.32.1 - version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) + version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) escape-html: specifier: ^1.0.3 version: 1.0.3 @@ -143,7 +149,7 @@ importers: version: 9.4.1(@aws-sdk/credential-providers@3.630.0(@aws-sdk/client-sso-oidc@3.629.0(@aws-sdk/client-sts@3.629.0))) next: specifier: 15.0.0-canary.173 - version: 15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) + version: 15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) open: specifier: ^10.1.0 version: 10.1.0 @@ -313,7 +319,7 @@ importers: version: 0.23.2-df9e596 drizzle-orm: specifier: 0.32.1 - version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) + version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) pg: specifier: 8.11.3 version: 8.11.3 @@ -359,7 +365,7 @@ importers: version: 0.23.2-df9e596 drizzle-orm: specifier: 0.32.1 - version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) + version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) prompts: specifier: 2.4.2 version: 2.4.2 @@ -399,7 +405,7 @@ importers: version: 0.23.2-df9e596 drizzle-orm: specifier: 0.32.1 - version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) + version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) pg: specifier: 8.11.3 version: 8.11.3 @@ -439,7 +445,7 @@ importers: version: 2.11.2 drizzle-orm: specifier: 0.32.1 - version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) + version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1) prompts: specifier: 2.4.2 version: 2.4.2 @@ -717,7 +723,7 @@ importers: version: 1.6.2 next: specifier: ^15.0.0-canary.173 - version: 15.0.0-canary.173(@babel/core@7.25.2)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)(sass@1.77.4) + version: 15.0.0-canary.173(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)(sass@1.77.4) path-to-regexp: specifier: ^6.2.1 version: 6.2.2 @@ -1017,9 +1023,6 @@ importers: '@types/escape-html': specifier: ^1.0.4 version: 1.0.4 - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 '@types/react': specifier: npm:types-react@19.0.0-rc.1 version: types-react@19.0.0-rc.1 @@ -1050,15 +1053,6 @@ importers: '@payloadcms/eslint-config': specifier: workspace:* version: link:../eslint-config - '@types/express': - specifier: ^4.17.9 - version: 4.17.21 - '@types/react': - specifier: npm:types-react@19.0.0-rc.1 - version: types-react@19.0.0-rc.1 - '@types/react-dom': - specifier: npm:types-react-dom@19.0.0-rc.1 - version: types-react-dom@19.0.0-rc.1 payload: specifier: workspace:* version: link:../payload @@ -1078,9 +1072,6 @@ importers: '@payloadcms/eslint-config': specifier: workspace:* version: link:../eslint-config - '@types/express': - specifier: ^4.17.9 - version: 4.17.21 '@types/react': specifier: npm:types-react@19.0.0-rc.1 version: types-react@19.0.0-rc.1 @@ -1093,15 +1084,12 @@ importers: packages/plugin-sentry: dependencies: - '@sentry/node': - specifier: ^7.55.2 - version: 7.118.0 + '@sentry/nextjs': + specifier: ^8.33.1 + version: 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4))(react@19.0.0-rc-3edc000d-20240926)(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))) '@sentry/types': - specifier: ^7.54.0 - version: 7.118.0 - express: - specifier: ^4.18.2 - version: 4.19.2 + specifier: ^8.33.1 + version: 8.33.1 react: specifier: 19.0.0-rc-3edc000d-20240926 version: 19.0.0-rc-3edc000d-20240926 @@ -1112,39 +1100,15 @@ importers: '@payloadcms/eslint-config': specifier: workspace:* version: link:../eslint-config - '@types/express': - specifier: ^4.17.9 - version: 4.17.21 - '@types/jest': - specifier: 29.5.12 - version: 29.5.12 - '@types/node': - specifier: 22.5.4 - version: 22.5.4 '@types/react': specifier: npm:types-react@19.0.0-rc.1 version: types-react@19.0.0-rc.1 '@types/react-dom': specifier: npm:types-react-dom@19.0.0-rc.1 version: types-react-dom@19.0.0-rc.1 - copyfiles: - specifier: 2.4.1 - version: 2.4.1 - cross-env: - specifier: 7.0.3 - version: 7.0.3 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.4)(babel-plugin-macros@3.1.0) - nodemon: - specifier: 3.0.3 - version: 3.0.3 payload: specifier: workspace:* version: link:../payload - ts-jest: - specifier: ^29.1.0 - version: 29.2.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.5.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2) packages/plugin-seo: dependencies: @@ -1201,9 +1165,6 @@ importers: '@payloadcms/next': specifier: workspace:* version: link:../next - '@types/express': - specifier: ^4.17.9 - version: 4.17.21 '@types/lodash.get': specifier: ^4.4.7 version: 4.4.9 @@ -1457,7 +1418,7 @@ importers: version: link:../plugin-cloud-storage uploadthing: specifier: ^6.10.1 - version: 6.13.2(express@4.19.2)(next@15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)) + version: 6.13.2(express@4.19.2)(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)) devDependencies: payload: specifier: workspace:* @@ -1544,7 +1505,7 @@ importers: version: 2.3.0 next: specifier: ^15.0.0-canary.173 - version: 15.0.0-canary.173(@babel/core@7.25.2)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) + version: 15.0.0-canary.173(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) object-to-formdata: specifier: 4.5.1 version: 4.5.1 @@ -1741,6 +1702,9 @@ importers: '@payloadcms/ui': specifier: workspace:* version: link:../packages/ui + '@sentry/nextjs': + specifier: ^8.33.1 + version: 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4))(react@19.0.0-rc-3edc000d-20240926)(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))) '@sentry/react': specifier: ^7.77.0 version: 7.118.0(react@19.0.0-rc-3edc000d-20240926) @@ -1785,7 +1749,7 @@ importers: version: 0.18.0 next: specifier: 15.0.0-canary.173 - version: 15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) + version: 15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) payload: specifier: workspace:* version: link:../packages/payload @@ -1815,7 +1779,7 @@ importers: version: 5.6.2 uploadthing: specifier: ^6.10.1 - version: 6.13.2(express@4.19.2)(next@15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)) + version: 6.13.2(express@4.19.2)(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)) uuid: specifier: 10.0.0 version: 10.0.0 @@ -3582,6 +3546,9 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -3836,6 +3803,206 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@opentelemetry/api-logs@0.52.1': + resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==} + engines: {node: '>=14'} + + '@opentelemetry/api-logs@0.53.0': + resolution: {integrity: sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@1.26.0': + resolution: {integrity: sha512-HedpXXYzzbaoutw6DFLWLDket2FwLkLpil4hGCZ1xYEIMTcivdfwEOISgdbLEWyG3HW52gTq2V9mOVJrONgiwg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@1.26.0': + resolution: {integrity: sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/instrumentation-amqplib@0.42.0': + resolution: {integrity: sha512-fiuU6OKsqHJiydHWgTRQ7MnIrJ2lEqsdgFtNIH4LbAUJl/5XmrIeoDzDnox+hfkgWK65jsleFuQDtYb5hW1koQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-connect@0.39.0': + resolution: {integrity: sha512-pGBiKevLq7NNglMgqzmeKczF4XQMTOUOTkK8afRHMZMnrK3fcETyTH7lVaSozwiOM3Ws+SuEmXZT7DYrrhxGlg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-dataloader@0.12.0': + resolution: {integrity: sha512-pnPxatoFE0OXIZDQhL2okF//dmbiWFzcSc8pUg9TqofCLYZySSxDCgQc69CJBo5JnI3Gz1KP+mOjS4WAeRIH4g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-express@0.42.0': + resolution: {integrity: sha512-YNcy7ZfGnLsVEqGXQPT+S0G1AE46N21ORY7i7yUQyfhGAL4RBjnZUqefMI0NwqIl6nGbr1IpF0rZGoN8Q7x12Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-fastify@0.39.0': + resolution: {integrity: sha512-SS9uSlKcsWZabhBp2szErkeuuBDgxOUlllwkS92dVaWRnMmwysPhcEgHKB8rUe3BHg/GnZC1eo1hbTZv4YhfoA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-fs@0.15.0': + resolution: {integrity: sha512-JWVKdNLpu1skqZQA//jKOcKdJC66TWKqa2FUFq70rKohvaSq47pmXlnabNO+B/BvLfmidfiaN35XakT5RyMl2Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-generic-pool@0.39.0': + resolution: {integrity: sha512-y4v8Y+tSfRB3NNBvHjbjrn7rX/7sdARG7FuK6zR8PGb28CTa0kHpEGCJqvL9L8xkTNvTXo+lM36ajFGUaK1aNw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-graphql@0.43.0': + resolution: {integrity: sha512-aI3YMmC2McGd8KW5du1a2gBA0iOMOGLqg4s9YjzwbjFwjlmMNFSK1P3AIg374GWg823RPUGfVTIgZ/juk9CVOA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-hapi@0.41.0': + resolution: {integrity: sha512-jKDrxPNXDByPlYcMdZjNPYCvw0SQJjN+B1A+QH+sx+sAHsKSAf9hwFiJSrI6C4XdOls43V/f/fkp9ITkHhKFbQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.53.0': + resolution: {integrity: sha512-H74ErMeDuZfj7KgYCTOFGWF5W9AfaPnqLQQxeFq85+D29wwV2yqHbz2IKLYpkOh7EI6QwDEl7rZCIxjJLyc/CQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-ioredis@0.43.0': + resolution: {integrity: sha512-i3Dke/LdhZbiUAEImmRG3i7Dimm/BD7t8pDDzwepSvIQ6s2X6FPia7561gw+64w+nx0+G9X14D7rEfaMEmmjig==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-kafkajs@0.3.0': + resolution: {integrity: sha512-UnkZueYK1ise8FXQeKlpBd7YYUtC7mM8J0wzUSccEfc/G8UqHQqAzIyYCUOUPUKp8GsjLnWOOK/3hJc4owb7Jg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-koa@0.43.0': + resolution: {integrity: sha512-lDAhSnmoTIN6ELKmLJBplXzT/Jqs5jGZehuG22EdSMaTwgjMpxMDI1YtlKEhiWPWkrz5LUsd0aOO0ZRc9vn3AQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-lru-memoizer@0.40.0': + resolution: {integrity: sha512-21xRwZsEdMPnROu/QsaOIODmzw59IYpGFmuC4aFWvMj6stA8+Ei1tX67nkarJttlNjoM94um0N4X26AD7ff54A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongodb@0.47.0': + resolution: {integrity: sha512-yqyXRx2SulEURjgOQyJzhCECSh5i1uM49NUaq9TqLd6fA7g26OahyJfsr9NE38HFqGRHpi4loyrnfYGdrsoVjQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongoose@0.42.0': + resolution: {integrity: sha512-AnWv+RaR86uG3qNEMwt3plKX1ueRM7AspfszJYVkvkehiicC3bHQA6vWdb6Zvy5HAE14RyFbu9+2hUUjR2NSyg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql2@0.41.0': + resolution: {integrity: sha512-REQB0x+IzVTpoNgVmy5b+UnH1/mDByrneimP6sbDHkp1j8QOl1HyWOrBH/6YWR0nrbU3l825Em5PlybjT3232g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql@0.41.0': + resolution: {integrity: sha512-jnvrV6BsQWyHS2qb2fkfbfSb1R/lmYwqEZITwufuRl37apTopswu9izc0b1CYRp/34tUG/4k/V39PND6eyiNvw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-nestjs-core@0.40.0': + resolution: {integrity: sha512-WF1hCUed07vKmf5BzEkL0wSPinqJgH7kGzOjjMAiTGacofNXjb/y4KQ8loj2sNsh5C/NN7s1zxQuCgbWbVTGKg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pg@0.44.0': + resolution: {integrity: sha512-oTWVyzKqXud1BYEGX1loo2o4k4vaU1elr3vPO8NZolrBtFvQ34nx4HgUaexUDuEog00qQt+MLR5gws/p+JXMLQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-redis-4@0.42.0': + resolution: {integrity: sha512-NaD+t2JNcOzX/Qa7kMy68JbmoVIV37fT/fJYzLKu2Wwd+0NCxt+K2OOsOakA8GVg8lSpFdbx4V/suzZZ2Pvdjg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-undici@0.6.0': + resolution: {integrity: sha512-ABJBhm5OdhGmbh0S/fOTE4N69IZ00CsHC5ijMYfzbw3E5NwLgpQk5xsljaECrJ8wz1SfXbO03FiSuu5AyRAkvQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + + '@opentelemetry/instrumentation@0.52.1': + resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.53.0': + resolution: {integrity: sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/redis-common@0.36.2': + resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} + engines: {node: '>=14'} + + '@opentelemetry/resources@1.26.0': + resolution: {integrity: sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-metrics@1.26.0': + resolution: {integrity: sha512-0SvDXmou/JjzSDOjUmetAAvcKQW6ZrvosU0rkbDGpXvvZN+pQF6JbK/Kd4hNdK4q/22yeruqvukXEJyySTzyTQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@1.26.0': + resolution: {integrity: sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.27.0': + resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==} + engines: {node: '>=14'} + + '@opentelemetry/sql-common@0.40.1': + resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@oxc-resolver/binding-darwin-arm64@1.10.2': resolution: {integrity: sha512-aOCZYXqmFL+2sXlaVkYbAOtICGGeTFtmdul8OimQfOXHJods6YHJ2nR6+rEeBcJzaXyXPP18ne1IsEc4AYL1IA==} cpu: [arm64] @@ -3903,40 +4070,159 @@ packages: '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@prisma/instrumentation@5.19.1': + resolution: {integrity: sha512-VLnzMQq7CWroL5AeaW0Py2huiNKeoMfCH3SUxstdzPrlWQi6UQ9UrfcbUkNHlVFqOMacqy8X/8YtE0kuKDpD9w==} + '@react-email/render@0.0.7': resolution: {integrity: sha512-hMMhxk6TpOcDC5qnKzXPVJoVGEwfm+U5bGOPH+MyTTlx0F02RLQygcATBKsbP7aI/mvkmBAZoFbgPIHop7ovug==} engines: {node: '>=16.0.0'} + '@rollup/plugin-commonjs@26.0.1': + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.1.2': + resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@selderee/plugin-htmlparser2@0.10.0': resolution: {integrity: sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA==} + '@sentry-internal/browser-utils@8.33.1': + resolution: {integrity: sha512-TW6/r+Gl5jiXv54iK1xZ3mlVgTS/jaBp4vcQ0xGMdgiQ3WchEPcFSeYovL+YHT3tSud0GZqVtDQCz+5i76puqA==} + engines: {node: '>=14.18'} + '@sentry-internal/feedback@7.118.0': resolution: {integrity: sha512-IYOGRcqIqKJJpMwBBv+0JTu0FPpXnakJYvOx/XEa/SNyF5+l7b9gGEjUVWh1ok50kTLW/XPnpnXNAGQcoKHg+w==} engines: {node: '>=12'} + '@sentry-internal/feedback@8.33.1': + resolution: {integrity: sha512-qauMRTm3qDaLqZ3ibI03cj4gLF40y0ij65nj+cns6iWxGCtPrO8tjvXFWuQsE7Aye9dGMnBgmv7uN+NTUtC3RA==} + engines: {node: '>=14.18'} + '@sentry-internal/replay-canvas@7.118.0': resolution: {integrity: sha512-XxHlCClvrxmVKpiZetFYyiBaPQNiojoBGFFVgbbWBIAPc+fWeLJ2BMoQEBjn/0NA/8u8T6lErK5YQo/eIx9+XQ==} engines: {node: '>=12'} + '@sentry-internal/replay-canvas@8.33.1': + resolution: {integrity: sha512-nsxTFTPCT10Ty/v6+AiST3+yotGP1sUb8xqfKB9fPnS1hZHFryp0NnEls7xFjBsBbZPU1GpFkzrk/E6JFzixDQ==} + engines: {node: '>=14.18'} + + '@sentry-internal/replay@8.33.1': + resolution: {integrity: sha512-fm4coIOjmanU29NOVN9MyaP4fUCOYytbtFqVSKRFNZQ/xAgNeySiBIbUd6IjujMmnOk9bY0WEUMcdm3Uotjdog==} + engines: {node: '>=14.18'} + '@sentry-internal/tracing@7.118.0': resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==} engines: {node: '>=8'} + '@sentry/babel-plugin-component-annotate@2.22.3': + resolution: {integrity: sha512-OlHA+i+vnQHRIdry4glpiS/xTOtgjmpXOt6IBOUqynx5Jd/iK1+fj+t8CckqOx9wRacO/hru2wfW/jFq0iViLg==} + engines: {node: '>= 14'} + '@sentry/browser@7.118.0': resolution: {integrity: sha512-8onDOFV1VLEoBuqA5yaJeR3FF1JNuxr5C7p1oN3OwY724iTVqQnOLmZKZaSnHV3RkY67wKDGQkQIie14sc+42g==} engines: {node: '>=8'} + '@sentry/browser@8.33.1': + resolution: {integrity: sha512-c6zI/igexkLwZuGk+u8Rj26ChjxGgkhe6ZbKFsXCYaKAp5ep5X7HQRkkqgbxApiqlC0LduHdd/ymzh139JLg8w==} + engines: {node: '>=14.18'} + + '@sentry/bundler-plugin-core@2.22.3': + resolution: {integrity: sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ==} + engines: {node: '>= 14'} + + '@sentry/cli-darwin@2.37.0': + resolution: {integrity: sha512-CsusyMvO0eCPSN7H+sKHXS1pf637PWbS4rZak/7giz/z31/6qiXmeMlcL3f9lLZKtFPJmXVFO9uprn1wbBVF8A==} + engines: {node: '>=10'} + os: [darwin] + + '@sentry/cli-linux-arm64@2.37.0': + resolution: {integrity: sha512-2vzUWHLZ3Ct5gpcIlfd/2Qsha+y9M8LXvbZE26VxzYrIkRoLAWcnClBv8m4XsHLMURYvz3J9QSZHMZHSO7kAzw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux, freebsd] + + '@sentry/cli-linux-arm@2.37.0': + resolution: {integrity: sha512-Dz0qH4Yt+gGUgoVsqVt72oDj4VQynRF1QB1/Sr8g76Vbi+WxWZmUh0iFwivYVwWxdQGu/OQrE0tx946HToCRyA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd] + + '@sentry/cli-linux-i686@2.37.0': + resolution: {integrity: sha512-MHRLGs4t/CQE1pG+mZBQixyWL6xDZfNalCjO8GMcTTbZFm44S3XRHfYJZNVCgdtnUP7b6OHGcu1v3SWE10LcwQ==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd] + + '@sentry/cli-linux-x64@2.37.0': + resolution: {integrity: sha512-k76ClefKZaDNJZU/H3mGeR8uAzAGPzDRG/A7grzKfBeyhP3JW09L7Nz9IQcSjCK+xr399qLhM2HFCaPWQ6dlMw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd] + + '@sentry/cli-win32-i686@2.37.0': + resolution: {integrity: sha512-FFyi5RNYQQkEg4GkP2f3BJcgQn0F4fjFDMiWkjCkftNPXQG+HFUEtrGsWr6mnHPdFouwbYg3tEPUWNxAoypvTw==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [win32] + + '@sentry/cli-win32-x64@2.37.0': + resolution: {integrity: sha512-nSMj4OcfQmyL+Tu/jWCJwhKCXFsCZW1MUk6wjjQlRt9SDLfgeapaMlK1ZvT1eZv5ZH6bj3qJfefwj4U8160uOA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@sentry/cli@2.37.0': + resolution: {integrity: sha512-fM3V4gZRJR/s8lafc3O07hhOYRnvkySdPkvL/0e0XW0r+xRwqIAgQ5ECbsZO16A5weUiXVSf03ztDL1FcmbJCQ==} + engines: {node: '>= 10'} + hasBin: true + '@sentry/core@7.118.0': resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==} engines: {node: '>=8'} + '@sentry/core@8.33.1': + resolution: {integrity: sha512-3SS41suXLFzxL3OQvTMZ6q92ZapELVq2l2SoWlZopcamWhog2Ru0dp2vkunq97kFHb2TzKRTlFH4+4gbT8SJug==} + engines: {node: '>=14.18'} + '@sentry/integrations@7.118.0': resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==} engines: {node: '>=8'} - '@sentry/node@7.118.0': - resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==} - engines: {node: '>=8'} + '@sentry/nextjs@8.33.1': + resolution: {integrity: sha512-XLUyib6bCv2iynKaoYIotVKzLsGc9lr6QI4ZV3/PstiiXKwtTm1TPdBfIlrDJMGIMxH7Z/DmkvJNSESV19Ui6Q==} + engines: {node: '>=14.18'} + peerDependencies: + next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 + webpack: '>=5.0.0' + peerDependenciesMeta: + webpack: + optional: true + + '@sentry/node@8.33.1': + resolution: {integrity: sha512-0Xmlrl5nU5Bx6YybaIfztyOIiIXW5X64vcK0u94Sg4uHcDO7YvEbhflKjp669ds2I6ZQ/czqxnaAY8gM6P2SCA==} + engines: {node: '>=14.18'} + + '@sentry/opentelemetry@8.33.1': + resolution: {integrity: sha512-D2aE2G0DUHLLnfbOXrTjiNJKAs/RZfOBJMidI4fC2AIwqCmrp55Aex4dRq4hxd8MPLR92Kt/ikHeJxlzWB15KA==} + engines: {node: '>=14.18'} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/core': ^1.25.1 + '@opentelemetry/instrumentation': ^0.53.0 + '@opentelemetry/sdk-trace-base': ^1.26.0 + '@opentelemetry/semantic-conventions': ^1.27.0 '@sentry/react@7.118.0': resolution: {integrity: sha512-oEYe5TGk8S7YzPsFqDf4xDHjfzs35/QFE+dou3S2d24OYpso8Tq4C5f1VzYmnOOyy85T7JNicYLSo0n0NSJvQg==} @@ -3944,6 +4230,12 @@ packages: peerDependencies: react: 19.0.0-rc-3edc000d-20240926 + '@sentry/react@8.33.1': + resolution: {integrity: sha512-SsEX05xfcfOvo7/pK1UyeyTAYWH8iSIsXXlsjvnSRsbuJkjb0c+q6yiZpj3A2PRdbcx43nTVE1n0lSpgaqj2HA==} + engines: {node: '>=14.18'} + peerDependencies: + react: 19.0.0-rc-3edc000d-20240926 + '@sentry/replay@7.118.0': resolution: {integrity: sha512-boQfCL+1L/tSZ9Huwi00+VtU+Ih1Lcg8HtxBuAsBCJR9pQgUL5jp7ECYdTeeHyCh/RJO7JqV1CEoGTgohe10mA==} engines: {node: '>=12'} @@ -3952,10 +4244,28 @@ packages: resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==} engines: {node: '>=8'} + '@sentry/types@8.33.1': + resolution: {integrity: sha512-GjoAMvwtpIemoF/IiwZ7A60g4nQv3qwzR21GvJqDVUoKD0e8pv9OLX+HyXoUat4wEDGSuDUcUyUKD2G+od73QA==} + engines: {node: '>=14.18'} + '@sentry/utils@7.118.0': resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==} engines: {node: '>=8'} + '@sentry/utils@8.33.1': + resolution: {integrity: sha512-uzuYpiiJuFY3N4WNHMBWUQX5oNv2t/TbG0OHRp3Rr7yeu+HSfD542TIp9/gMZ+G0Cxd8AmVO3wkKIFbk0TL4Qg==} + engines: {node: '>=14.18'} + + '@sentry/vercel-edge@8.33.1': + resolution: {integrity: sha512-YKAsFAm4ctsKRdoS3LkYF4oG5BD1chT4Uqy4AaBhlz0s5iHxBI7YzZFbcW4YiNnDWT80tdF+FS7AvUAjy+npoA==} + engines: {node: '>=14.18'} + + '@sentry/webpack-plugin@2.22.3': + resolution: {integrity: sha512-Sq1S6bL3nuoTP5typkj+HPjQ13dqftIE8kACAq4tKkXOpWO9bf6HtqcruEQCxMekbWDTdljsrknQ17ZBx2q66Q==} + engines: {node: '>= 14'} + peerDependencies: + webpack: '>=4.40.0' + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4317,9 +4627,6 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/body-scroll-lock@3.1.2': resolution: {integrity: sha512-ELhtuphE/YbhEcpBf/rIV9Tl3/O0A0gpCVD+oYFSS8bWstHFJUgA4nNw1ZakVlRC38XaQEIsBogUZKWIPBvpfQ==} @@ -4332,8 +4639,8 @@ packages: '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/connect@3.4.36': + resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} '@types/escape-html@1.0.4': resolution: {integrity: sha512-qZ72SFTgUAZ5a7Tj6kf2SHLetiH5S6f8G5frB2SPQ3EyF02kxdyBFf4Tz4banE3xCgGnKgWLt//a6VuYHKYJTg==} @@ -4350,12 +4657,6 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/find-node-modules@2.1.2': resolution: {integrity: sha512-5hRcqDclY6MTkHXJBc5q79z5luG+IJRlGR01wluMVMM9lYogYc2sfclXTVU5Edp0Ja4viIOCDI1lXhFRlsNTKA==} @@ -4374,9 +4675,6 @@ packages: '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/is-hotkey@0.1.10': resolution: {integrity: sha512-RvC8KMw5BCac1NvRRyaHgMMEtBaZ6wh0pyPTBu7izn4Sj/AX9Y4aXU5c7rX8PnM/knsuUpC1IeoBkANtxBypsQ==} @@ -4416,9 +4714,6 @@ packages: '@types/lodash@4.17.7': resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} @@ -4431,6 +4726,9 @@ packages: '@types/mongoose-aggregate-paginate-v2@1.0.6': resolution: {integrity: sha512-EXkgB/nJ1x3UcoEk1pD67+uXtijveHZtbg2H3wtZk2SnCFBB5cMw7MQRu9/GgyEP/KKXuWFt1JABv7m+Kls0ug==} + '@types/mysql@2.15.26': + resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} + '@types/node@22.5.4': resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} @@ -4440,21 +4738,24 @@ packages: '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/pg-pool@2.0.6': + resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + '@types/pg@8.10.2': resolution: {integrity: sha512-MKFs9P6nJ+LAeHLU3V0cODEOgyThJ3OAnmOlsZsxux6sfQs3HRXR5bBn7xG5DjckEFhTAxsXi7k7cd0pCMxpJw==} '@types/pg@8.11.6': resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + '@types/pg@8.6.1': + resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + '@types/pluralize@0.0.33': resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4473,15 +4774,12 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/shelljs@0.8.15': resolution: {integrity: sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==} + '@types/shimmer@1.2.0': + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -4612,6 +4910,57 @@ packages: '@vue/shared@3.4.37': resolution: {integrity: sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==} + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -4631,6 +4980,11 @@ packages: acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4657,6 +5011,11 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -5034,6 +5393,10 @@ packages: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -5068,6 +5431,10 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -5644,6 +6011,10 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -5678,6 +6049,9 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -5898,6 +6272,10 @@ packages: peerDependencies: eslint: '>=8.44.0' + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + eslint-scope@8.0.2: resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5942,6 +6320,10 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -6302,6 +6684,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -6310,6 +6695,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -6516,9 +6905,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -6541,6 +6927,9 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-in-the-middle@1.11.2: + resolution: {integrity: sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==} + import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} @@ -6736,6 +7125,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6980,6 +7372,10 @@ packages: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7175,6 +7571,10 @@ packages: resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} engines: {node: '>=18.0.0'} + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + localforage@1.10.0: resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} @@ -7249,6 +7649,10 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7354,6 +7758,10 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} @@ -7369,6 +7777,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -7401,6 +7813,9 @@ packages: mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + module-details-from-path@1.0.3: + resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + monaco-editor@0.38.0: resolution: {integrity: sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==} @@ -7495,6 +7910,9 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + new-find-package-json@2.0.0: resolution: {integrity: sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==} engines: {node: '>=12.22.0'} @@ -7568,11 +7986,6 @@ packages: resolution: {integrity: sha512-qtoKfGFhvIFW5kLfrkw2R6Nm6Ur4LNUMykyqu6n9BRKJuyQrqEGwdXXUAbwWEKt33dlWUGXb7rzmJP/p4+O+CA==} engines: {node: '>=6.0.0'} - nodemon@3.0.3: - resolution: {integrity: sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==} - engines: {node: '>=10'} - hasBin: true - noms@0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} @@ -8012,6 +8425,10 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -8035,9 +8452,6 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -8079,6 +8493,9 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -8251,6 +8668,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-in-the-middle@7.4.0: + resolution: {integrity: sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==} + engines: {node: '>=8.6.0'} + requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} @@ -8322,6 +8743,11 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -8500,6 +8926,10 @@ packages: scheduler@0.25.0-rc-5dcb0097-20240918: resolution: {integrity: sha512-Sr3CaLDHJIA1p7wzNF8EyZ/JzetrV21S0sY6byC3AhREQMoEuKol8BSmXM5gd8Aoxo92uW9WCjWL0hwdb2DtqQ==} + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + scmp@2.1.0: resolution: {integrity: sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==} @@ -8544,6 +8974,9 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -8591,6 +9024,9 @@ packages: engines: {node: '>=4'} hasBin: true + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + short-unique-id@5.2.0: resolution: {integrity: sha512-cMGfwNyfDZ/nzJ2k2M+ClthBIh//GlZl1JEf47Uoa9XR11bz8Pa2T2wQO4bVrRdH48LrIDWJahQziKo3MjhsWg==} hasBin: true @@ -8618,10 +9054,6 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} - simple-wcswidth@1.0.1: resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} @@ -8746,6 +9178,10 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + state-local@1.0.7: resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} @@ -8921,6 +9357,10 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} @@ -8958,6 +9398,27 @@ packages: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + engines: {node: '>=10'} + hasBin: true + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -9020,10 +9481,6 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} - hasBin: true - tough-cookie@4.1.4: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} @@ -9160,6 +9617,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + type-fest@3.13.0: resolution: {integrity: sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==} engines: {node: '>=14.16'} @@ -9214,9 +9675,6 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -9259,6 +9717,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin@1.0.1: + resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} + untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -9370,6 +9831,10 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -9386,6 +9851,23 @@ packages: engines: {node: '>= 10.13.0'} hasBin: true + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -10304,7 +10786,7 @@ snapshots: '@babel/traverse': 7.25.3 '@babel/types': 7.25.2 convert-source-map: 2.0.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10370,7 +10852,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -11128,7 +11610,7 @@ snapshots: '@babel/parser': 7.25.3 '@babel/template': 7.25.0 '@babel/types': 7.25.2 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11630,7 +12112,7 @@ snapshots: '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -11638,7 +12120,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.2 @@ -12032,6 +12514,11 @@ snapshots: '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': @@ -12360,6 +12847,267 @@ snapshots: '@one-ini/wasm@0.1.1': {} + '@opentelemetry/api-logs@0.52.1': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api-logs@0.53.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@1.26.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.27.0 + + '@opentelemetry/instrumentation-amqplib@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-connect@0.39.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@types/connect': 3.4.36 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dataloader@0.12.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-express@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fastify@0.39.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.15.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-generic-pool@0.39.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-graphql@0.43.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-hapi@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-ioredis@0.43.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-kafkajs@0.3.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-koa@0.43.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-lru-memoizer@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongodb@0.47.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongoose@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql2@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@types/mysql': 2.15.26 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-nestjs-core@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-pg@0.44.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.6 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-redis-4@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-undici@0.6.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.52.1 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.11.2 + require-in-the-middle: 7.4.0 + semver: 7.6.3 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.53.0 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.11.2 + require-in-the-middle: 7.4.0 + semver: 7.6.3 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/redis-common@0.36.2': {} + + '@opentelemetry/resources@1.26.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + + '@opentelemetry/sdk-metrics@1.26.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + + '@opentelemetry/semantic-conventions@1.27.0': {} + + '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@oxc-resolver/binding-darwin-arm64@1.10.2': optional: true @@ -12404,6 +13152,14 @@ snapshots: '@polka/url@1.0.0-next.25': {} + '@prisma/instrumentation@5.19.1': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + '@react-email/render@0.0.7': dependencies: html-to-text: 9.0.3 @@ -12411,17 +13167,48 @@ snapshots: react: 19.0.0-rc-3edc000d-20240926 react-dom: 19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926) + '@rollup/plugin-commonjs@26.0.1(rollup@3.29.5)': + dependencies: + '@rollup/pluginutils': 5.1.2(rollup@3.29.5) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 10.4.5 + is-reference: 1.2.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 3.29.5 + + '@rollup/pluginutils@5.1.2(rollup@3.29.5)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.5 + '@selderee/plugin-htmlparser2@0.10.0': dependencies: domhandler: 5.0.3 selderee: 0.10.0 + '@sentry-internal/browser-utils@8.33.1': + dependencies: + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry-internal/feedback@7.118.0': dependencies: '@sentry/core': 7.118.0 '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 + '@sentry-internal/feedback@8.33.1': + dependencies: + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry-internal/replay-canvas@7.118.0': dependencies: '@sentry/core': 7.118.0 @@ -12429,12 +13216,28 @@ snapshots: '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 + '@sentry-internal/replay-canvas@8.33.1': + dependencies: + '@sentry-internal/replay': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + + '@sentry-internal/replay@8.33.1': + dependencies: + '@sentry-internal/browser-utils': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry-internal/tracing@7.118.0': dependencies: '@sentry/core': 7.118.0 '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 + '@sentry/babel-plugin-component-annotate@2.22.3': {} + '@sentry/browser@7.118.0': dependencies: '@sentry-internal/feedback': 7.118.0 @@ -12446,11 +13249,80 @@ snapshots: '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 + '@sentry/browser@8.33.1': + dependencies: + '@sentry-internal/browser-utils': 8.33.1 + '@sentry-internal/feedback': 8.33.1 + '@sentry-internal/replay': 8.33.1 + '@sentry-internal/replay-canvas': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + + '@sentry/bundler-plugin-core@2.22.3': + dependencies: + '@babel/core': 7.25.2 + '@sentry/babel-plugin-component-annotate': 2.22.3 + '@sentry/cli': 2.37.0 + dotenv: 16.4.5 + find-up: 5.0.0 + glob: 9.3.5 + magic-string: 0.30.8 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/cli-darwin@2.37.0': + optional: true + + '@sentry/cli-linux-arm64@2.37.0': + optional: true + + '@sentry/cli-linux-arm@2.37.0': + optional: true + + '@sentry/cli-linux-i686@2.37.0': + optional: true + + '@sentry/cli-linux-x64@2.37.0': + optional: true + + '@sentry/cli-win32-i686@2.37.0': + optional: true + + '@sentry/cli-win32-x64@2.37.0': + optional: true + + '@sentry/cli@2.37.0': + dependencies: + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 2.37.0 + '@sentry/cli-linux-arm': 2.37.0 + '@sentry/cli-linux-arm64': 2.37.0 + '@sentry/cli-linux-i686': 2.37.0 + '@sentry/cli-linux-x64': 2.37.0 + '@sentry/cli-win32-i686': 2.37.0 + '@sentry/cli-win32-x64': 2.37.0 + transitivePeerDependencies: + - encoding + - supports-color + '@sentry/core@7.118.0': dependencies: '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 + '@sentry/core@8.33.1': + dependencies: + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry/integrations@7.118.0': dependencies: '@sentry/core': 7.118.0 @@ -12458,13 +13330,86 @@ snapshots: '@sentry/utils': 7.118.0 localforage: 1.10.0 - '@sentry/node@7.118.0': + '@sentry/nextjs@8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4))(react@19.0.0-rc-3edc000d-20240926)(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)))': dependencies: - '@sentry-internal/tracing': 7.118.0 - '@sentry/core': 7.118.0 - '@sentry/integrations': 7.118.0 - '@sentry/types': 7.118.0 - '@sentry/utils': 7.118.0 + '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@rollup/plugin-commonjs': 26.0.1(rollup@3.29.5) + '@sentry-internal/browser-utils': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/node': 8.33.1 + '@sentry/opentelemetry': 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) + '@sentry/react': 8.33.1(react@19.0.0-rc-3edc000d-20240926) + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry/vercel-edge': 8.33.1 + '@sentry/webpack-plugin': 2.22.3(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))) + chalk: 3.0.0 + next: 15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) + resolve: 1.22.8 + rollup: 3.29.5 + stacktrace-parser: 0.1.10 + optionalDependencies: + webpack: 5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)) + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/core' + - '@opentelemetry/instrumentation' + - '@opentelemetry/sdk-trace-base' + - encoding + - react + - supports-color + + '@sentry/node@8.33.1': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.12.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fastify': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.15.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.3.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.47.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-nestjs-core': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.44.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis-4': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@prisma/instrumentation': 5.19.1 + '@sentry/core': 8.33.1 + '@sentry/opentelemetry': 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + import-in-the-middle: 1.11.2 + transitivePeerDependencies: + - supports-color + + '@sentry/opentelemetry@8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 '@sentry/react@7.118.0(react@19.0.0-rc-3edc000d-20240926)': dependencies: @@ -12475,6 +13420,15 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.0.0-rc-3edc000d-20240926 + '@sentry/react@8.33.1(react@19.0.0-rc-3edc000d-20240926)': + dependencies: + '@sentry/browser': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + hoist-non-react-statics: 3.3.2 + react: 19.0.0-rc-3edc000d-20240926 + '@sentry/replay@7.118.0': dependencies: '@sentry-internal/tracing': 7.118.0 @@ -12484,10 +13438,32 @@ snapshots: '@sentry/types@7.118.0': {} + '@sentry/types@8.33.1': {} + '@sentry/utils@7.118.0': dependencies: '@sentry/types': 7.118.0 + '@sentry/utils@8.33.1': + dependencies: + '@sentry/types': 8.33.1 + + '@sentry/vercel-edge@8.33.1': + dependencies: + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + + '@sentry/webpack-plugin@2.22.3(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)))': + dependencies: + '@sentry/bundler-plugin-core': 2.22.3 + unplugin: 1.0.1 + uuid: 9.0.0 + webpack: 5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)) + transitivePeerDependencies: + - encoding + - supports-color + '@sinclair/typebox@0.27.8': {} '@sindresorhus/is@4.6.0': {} @@ -12850,7 +13826,7 @@ snapshots: '@swc-node/sourcemap-support': 0.5.1 '@swc/core': 1.7.10(@swc/helpers@0.5.13) colorette: 2.0.20 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 oxc-resolver: 1.10.2 pirates: 4.0.6 tslib: 2.6.3 @@ -12977,11 +13953,6 @@ snapshots: dependencies: '@babel/types': 7.25.2 - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 22.5.4 - '@types/body-scroll-lock@3.1.2': {} '@types/busboy@1.5.4': @@ -12997,7 +13968,7 @@ snapshots: '@types/caseless@0.12.5': {} - '@types/connect@3.4.38': + '@types/connect@3.4.36': dependencies: '@types/node': 22.5.4 @@ -13018,20 +13989,6 @@ snapshots: '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.5': - dependencies: - '@types/node': 22.5.4 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.7 - '@types/find-node-modules@2.1.2': {} '@types/fs-extra@11.0.4': @@ -13054,8 +14011,6 @@ snapshots: '@types/http-cache-semantics@4.0.4': {} - '@types/http-errors@2.0.4': {} - '@types/is-hotkey@0.1.10': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -13104,8 +14059,6 @@ snapshots: '@types/lodash@4.17.7': {} - '@types/mime@1.3.5': {} - '@types/minimatch@5.1.2': {} '@types/minimist@1.2.2': {} @@ -13120,6 +14073,10 @@ snapshots: - aws-crt - supports-color + '@types/mysql@2.15.26': + dependencies: + '@types/node': 22.5.4 + '@types/node@22.5.4': dependencies: undici-types: 6.19.8 @@ -13130,6 +14087,10 @@ snapshots: '@types/parse-json@4.0.2': {} + '@types/pg-pool@2.0.6': + dependencies: + '@types/pg': 8.10.2 + '@types/pg@8.10.2': dependencies: '@types/node': 22.5.4 @@ -13142,6 +14103,12 @@ snapshots: pg-protocol: 1.6.1 pg-types: 4.0.2 + '@types/pg@8.6.1': + dependencies: + '@types/node': 22.5.4 + pg-protocol: 1.6.1 + pg-types: 2.2.0 + '@types/pluralize@0.0.33': {} '@types/prompts@2.4.9': @@ -13149,8 +14116,6 @@ snapshots: '@types/node': 22.5.4 kleur: 3.0.3 - '@types/qs@6.9.15': {} - '@types/range-parser@1.2.7': {} '@types/react-datepicker@6.2.0(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)': @@ -13188,22 +14153,13 @@ snapshots: '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.5.4 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 22.5.4 - '@types/send': 0.17.4 - '@types/shelljs@0.8.15': dependencies: '@types/glob': 7.2.0 '@types/node': 22.5.4 + '@types/shimmer@1.2.0': {} + '@types/stack-utils@2.0.3': {} '@types/to-snake-case@1.0.0': {} @@ -13257,7 +14213,7 @@ snapshots: '@typescript-eslint/types': 8.3.0 '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 eslint: 9.9.1(jiti@1.21.6) optionalDependencies: typescript: 5.6.2 @@ -13273,7 +14229,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2) - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 @@ -13287,7 +14243,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.3.0 '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -13390,6 +14346,86 @@ snapshots: '@vue/shared@3.4.37': {} + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + abab@2.0.6: {} abbrev@2.0.0: {} @@ -13402,12 +14438,17 @@ snapshots: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + optional: true acorn-globals@7.0.1: dependencies: acorn: 8.12.1 acorn-walk: 8.3.3 + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -13420,13 +14461,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -13435,6 +14476,10 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -13509,7 +14554,8 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 - array-flatten@1.1.1: {} + array-flatten@1.1.1: + optional: true array-includes@3.1.8: dependencies: @@ -13771,6 +14817,7 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + optional: true body-scroll-lock@4.0.0-beta.0: {} @@ -13914,6 +14961,11 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -13963,6 +15015,8 @@ snapshots: chownr@3.0.0: {} + chrome-trace-event@1.0.4: {} + ci-info@3.9.0: {} ci-info@4.0.0: {} @@ -14089,7 +15143,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-type@1.0.5: {} + content-type@1.0.5: + optional: true convert-gitmoji@0.1.5: {} @@ -14097,9 +15152,11 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} + cookie-signature@1.0.6: + optional: true - cookie@0.6.0: {} + cookie@0.6.0: + optional: true copyfiles@2.4.1: dependencies: @@ -14211,16 +15268,15 @@ snapshots: debug@2.6.9: dependencies: ms: 2.0.0 + optional: true debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.3.6(supports-color@5.5.0): + debug@4.3.6: dependencies: ms: 2.1.2 - optionalDependencies: - supports-color: 5.5.0 decimal.js@10.4.3: {} @@ -14309,13 +15365,15 @@ snapshots: delayed-stream@1.0.0: {} - depd@2.0.0: {} + depd@2.0.0: + optional: true dequal@2.0.3: {} destr@2.0.3: {} - destroy@1.2.0: {} + destroy@1.2.0: + optional: true detect-file@1.0.0: {} @@ -14381,20 +15439,22 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1): + drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1): optionalDependencies: '@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) '@neondatabase/serverless': 0.9.4 + '@opentelemetry/api': 1.9.0 '@types/pg': 8.10.2 '@types/react': types-react@19.0.0-rc.1 '@vercel/postgres': 0.9.0 pg: 8.11.3 react: 19.0.0-rc-3edc000d-20240926 - drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1): + drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1): optionalDependencies: '@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) '@neondatabase/serverless': 0.9.4 + '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.6 '@types/react': types-react@19.0.0-rc.1 '@vercel/postgres': 0.9.0 @@ -14423,7 +15483,8 @@ snapshots: minimatch: 9.0.1 semver: 7.6.3 - ee-first@1.1.1: {} + ee-first@1.1.1: + optional: true effect@3.4.5: {} @@ -14441,12 +15502,18 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} + encodeurl@1.0.2: + optional: true end-of-stream@1.4.4: dependencies: once: 1.4.0 + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@4.5.0: {} entities@5.0.0: {} @@ -14541,6 +15608,8 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + es-module-lexer@1.5.4: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -14563,7 +15632,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.19.12): dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 esbuild: 0.19.12 transitivePeerDependencies: - supports-color @@ -14690,7 +15759,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2) - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 doctrine: 3.0.0 eslint: 9.9.1(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 @@ -14906,6 +15975,11 @@ snapshots: regexp-ast-analysis: 0.7.1 scslre: 0.3.0 + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 @@ -14928,7 +16002,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -14974,13 +16048,16 @@ snapshots: dependencies: estraverse: 5.3.0 + estraverse@4.3.0: {} + estraverse@5.3.0: {} estree-walker@2.0.2: {} esutils@2.0.3: {} - etag@1.8.1: {} + etag@1.8.1: + optional: true event-target-shim@5.0.1: {} @@ -15089,6 +16166,7 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + optional: true ext-list@2.2.2: dependencies: @@ -15207,6 +16285,7 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + optional: true find-cache-dir@3.3.2: dependencies: @@ -15255,7 +16334,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.6): optionalDependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 for-each@0.3.3: dependencies: @@ -15288,9 +16367,11 @@ snapshots: dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: {} + forwarded@0.2.0: + optional: true - fresh@0.5.2: {} + fresh@0.5.2: + optional: true fs-constants@1.0.0: {} @@ -15412,6 +16493,8 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@10.4.5: dependencies: foreground-child: 3.3.0 @@ -15430,6 +16513,13 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 @@ -15609,19 +16699,20 @@ snapshots: setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 + optional: true http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -15635,14 +16726,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -15657,6 +16748,7 @@ snapshots: iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 + optional: true iconv-lite@0.6.3: dependencies: @@ -15664,8 +16756,6 @@ snapshots: ieee754@1.2.1: {} - ignore-by-default@1.0.1: {} - ignore@5.3.2: {} image-size@1.1.1: @@ -15683,6 +16773,13 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-in-the-middle@1.11.2: + dependencies: + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + cjs-module-lexer: 1.3.1 + module-details-from-path: 1.0.3 + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 @@ -15718,7 +16815,8 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} + ipaddr.js@1.9.1: + optional: true is-arguments@1.1.1: dependencies: @@ -15839,6 +16937,10 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -15940,7 +17042,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -16276,6 +17378,12 @@ snapshots: jest-util: 29.7.0 string-length: 4.0.2 + jest-worker@27.5.1: + dependencies: + '@types/node': 22.5.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jest-worker@29.7.0: dependencies: '@types/node': 22.5.4 @@ -16502,7 +17610,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.4 @@ -16522,6 +17630,8 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 + loader-runner@4.3.0: {} + localforage@1.10.0: dependencies: lie: 3.1.1 @@ -16589,6 +17699,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.8: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -16614,14 +17728,16 @@ snapshots: crypt: 0.0.2 is-buffer: 1.1.6 - media-typer@0.3.0: {} + media-typer@0.3.0: + optional: true memoize-one@6.0.0: {} memory-pager@1.5.0: optional: true - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.1: + optional: true merge-stream@2.0.0: {} @@ -16629,7 +17745,8 @@ snapshots: merge@2.1.1: {} - methods@1.1.2: {} + methods@1.1.2: + optional: true micromatch@4.0.7: dependencies: @@ -16644,7 +17761,8 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} + mime@1.6.0: + optional: true mime@3.0.0: {} @@ -16670,6 +17788,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.1: dependencies: brace-expansion: 2.0.1 @@ -16684,6 +17806,8 @@ snapshots: dependencies: yallist: 4.0.0 + minipass@4.2.8: {} + minipass@5.0.0: {} minipass@7.1.2: {} @@ -16711,6 +17835,8 @@ snapshots: pkg-types: 1.1.3 ufo: 1.5.4 + module-details-from-path@1.0.3: {} + monaco-editor@0.38.0: {} mongodb-connection-string-url@2.6.0: @@ -16722,7 +17848,7 @@ snapshots: dependencies: async-mutex: 0.4.1 camelcase: 6.3.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 find-cache-dir: 3.3.2 follow-redirects: 1.15.6(debug@4.3.6) https-proxy-agent: 7.0.5 @@ -16795,7 +17921,7 @@ snapshots: mquery@4.0.3: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -16803,7 +17929,8 @@ snapshots: mrmime@2.0.0: {} - ms@2.0.0: {} + ms@2.0.0: + optional: true ms@2.1.2: {} @@ -16817,15 +17944,18 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} + negotiator@0.6.3: + optional: true + + neo-async@2.6.2: {} new-find-package-json@2.0.0: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.6 transitivePeerDependencies: - supports-color - next@15.0.0-canary.173(@babel/core@7.25.2)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4): + next@15.0.0-canary.173(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4): dependencies: '@next/env': 15.0.0-canary.173 '@swc/counter': 0.1.3 @@ -16846,6 +17976,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.0.0-canary.173 '@next/swc-win32-ia32-msvc': 15.0.0-canary.173 '@next/swc-win32-x64-msvc': 15.0.0-canary.173 + '@opentelemetry/api': 1.9.0 '@playwright/test': 1.46.0 babel-plugin-react-compiler: 0.0.0-experimental-24ec0eb-20240918 sass: 1.77.4 @@ -16854,7 +17985,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.0.0-canary.173(@babel/core@7.25.2)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)(sass@1.77.4): + next@15.0.0-canary.173(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)(sass@1.77.4): dependencies: '@next/env': 15.0.0-canary.173 '@swc/counter': 0.1.3 @@ -16875,6 +18006,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.0.0-canary.173 '@next/swc-win32-ia32-msvc': 15.0.0-canary.173 '@next/swc-win32-x64-msvc': 15.0.0-canary.173 + '@opentelemetry/api': 1.9.0 '@playwright/test': 1.46.0 babel-plugin-react-compiler: 0.0.0-experimental-24ec0eb-20240918 sass: 1.77.4 @@ -16883,7 +18015,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4): + next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4): dependencies: '@next/env': 15.0.0-canary.173 '@swc/counter': 0.1.3 @@ -16904,6 +18036,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.0.0-canary.173 '@next/swc-win32-ia32-msvc': 15.0.0-canary.173 '@next/swc-win32-x64-msvc': 15.0.0-canary.173 + '@opentelemetry/api': 1.9.0 '@playwright/test': 1.46.0 babel-plugin-react-compiler: 0.0.0-experimental-24ec0eb-20240918 sass: 1.77.4 @@ -16949,19 +18082,6 @@ snapshots: nodemailer@6.9.10: {} - nodemon@3.0.3: - dependencies: - chokidar: 3.6.0 - debug: 4.3.6(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 7.6.3 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.1 - undefsafe: 2.0.5 - noms@0.0.0: dependencies: inherits: 2.0.4 @@ -17046,6 +18166,7 @@ snapshots: on-finished@2.4.1: dependencies: ee-first: 1.1.1 + optional: true once@1.4.0: dependencies: @@ -17162,7 +18283,8 @@ snapshots: leac: 0.6.0 peberminta: 0.8.0 - parseurl@1.3.3: {} + parseurl@1.3.3: + optional: true path-exists@4.0.0: {} @@ -17181,7 +18303,8 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.7: + optional: true path-to-regexp@6.2.2: {} @@ -17406,6 +18529,8 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -17423,6 +18548,7 @@ snapshots: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 + optional: true proxy-from-env@1.1.0: {} @@ -17430,8 +18556,6 @@ snapshots: psl@1.9.0: {} - pstree.remy@1.1.8: {} - pump@3.0.0: dependencies: end-of-stream: 1.4.4 @@ -17446,6 +18570,7 @@ snapshots: qs@6.11.0: dependencies: side-channel: 1.0.6 + optional: true qs@6.13.0: dependencies: @@ -17465,6 +18590,10 @@ snapshots: quick-lru@5.1.1: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + range-parser@1.2.1: {} raw-body@2.5.2: @@ -17473,6 +18602,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 + optional: true rc9@2.1.2: dependencies: @@ -17685,6 +18815,14 @@ snapshots: require-from-string@2.0.2: {} + require-in-the-middle@7.4.0: + dependencies: + debug: 4.3.6 + module-details-from-path: 1.0.3 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + requireindex@1.2.0: {} requires-port@1.0.0: {} @@ -17754,6 +18892,10 @@ snapshots: dependencies: glob: 10.4.5 + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + run-applescript@5.0.0: dependencies: execa: 5.1.1 @@ -17889,6 +19031,12 @@ snapshots: scheduler@0.25.0-rc-5dcb0097-20240918: {} + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + scmp@2.1.0: {} scroll-into-view-if-needed@2.2.31: @@ -17938,6 +19086,11 @@ snapshots: statuses: 2.0.1 transitivePeerDependencies: - supports-color + optional: true + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 serve-static@1.15.0: dependencies: @@ -17947,6 +19100,7 @@ snapshots: send: 0.18.0 transitivePeerDependencies: - supports-color + optional: true server-only@0.0.1: {} @@ -17966,7 +19120,8 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} + setprototypeof@1.2.0: + optional: true sharp@0.32.6: dependencies: @@ -18024,6 +19179,8 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 + shimmer@1.2.1: {} + short-unique-id@5.2.0: {} side-channel@1.0.6: @@ -18051,10 +19208,6 @@ snapshots: dependencies: is-arrayish: 0.3.2 - simple-update-notifier@2.0.0: - dependencies: - semver: 7.6.3 - simple-wcswidth@1.0.1: {} sirv@2.0.4: @@ -18189,9 +19342,14 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stacktrace-parser@0.1.10: + dependencies: + type-fest: 0.7.1 + state-local@1.0.7: {} - statuses@2.0.1: {} + statuses@2.0.1: + optional: true std-env@3.7.0: {} @@ -18365,6 +19523,8 @@ snapshots: tabbable@6.2.0: {} + tapable@2.2.1: {} + tar-fs@2.1.1: dependencies: chownr: 1.1.4 @@ -18438,6 +19598,24 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + terser-webpack-plugin@5.3.10(@swc/core@1.7.10(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)) + optionalDependencies: + '@swc/core': 1.7.10(@swc/helpers@0.5.13) + + terser@5.34.1: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -18483,7 +19661,8 @@ snapshots: dependencies: to-no-case: 1.0.2 - toidentifier@1.0.1: {} + toidentifier@1.0.1: + optional: true token-types@5.0.1: dependencies: @@ -18497,8 +19676,6 @@ snapshots: totalist@3.0.1: {} - touch@3.1.1: {} - tough-cookie@4.1.4: dependencies: psl: 1.9.0 @@ -18610,12 +19787,15 @@ snapshots: type-fest@0.21.3: {} + type-fest@0.7.1: {} + type-fest@3.13.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + optional: true typed-array-buffer@1.0.2: dependencies: @@ -18681,8 +19861,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undefsafe@2.0.5: {} - undici-types@6.19.8: {} undici@5.28.4: @@ -18710,7 +19888,15 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: {} + unpipe@1.0.0: + optional: true + + unplugin@1.0.1: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 untildify@4.0.0: {} @@ -18720,7 +19906,7 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.1 - uploadthing@6.13.2(express@4.19.2)(next@15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)): + uploadthing@6.13.2(express@4.19.2)(next@15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4)): dependencies: '@effect/schema': 0.68.12(effect@3.4.5) '@uploadthing/mime-types': 0.2.10 @@ -18730,7 +19916,7 @@ snapshots: std-env: 3.7.0 optionalDependencies: express: 4.19.2 - next: 15.0.0-canary.173(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) + next: 15.0.0-canary.173(@opentelemetry/api@1.9.0)(@playwright/test@1.46.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@0.0.0-experimental-24ec0eb-20240918)(react-dom@19.0.0-rc-3edc000d-20240926(react@19.0.0-rc-3edc000d-20240926))(react@19.0.0-rc-3edc000d-20240926)(sass@1.77.4) uri-js@4.4.1: dependencies: @@ -18760,7 +19946,8 @@ snapshots: util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} + utils-merge@1.0.1: + optional: true uuid@10.0.0: {} @@ -18778,7 +19965,8 @@ snapshots: varint@6.0.0: {} - vary@1.1.2: {} + vary@1.1.2: + optional: true vue@3.4.37(typescript@5.6.2): dependencies: @@ -18798,6 +19986,11 @@ snapshots: dependencies: makeerror: 1.0.12 + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + web-streams-polyfill@3.3.3: {} webidl-conversions@3.0.1: {} @@ -18823,6 +20016,40 @@ snapshots: - bufferutil - utf-8-validate + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.5.0: {} + + webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13)): + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.10(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.10(@swc/helpers@0.5.13))) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 diff --git a/sentry.client.config.ts b/sentry.client.config.ts new file mode 100644 index 0000000000..2e6cd580d0 --- /dev/null +++ b/sentry.client.config.ts @@ -0,0 +1,26 @@ +import * as Sentry from '@sentry/nextjs' + +const dsn = process.env.NEXT_PUBLIC_SENTRY_DSN + +Sentry.init({ + dsn, + // Replay may only be enabled for the client-side + integrations: [Sentry.replayIntegration()], + + // Set tracesSampleRate to 1.0 to capture 100% + // of transactions for tracing. + // We recommend adjusting this value in production + tracesSampleRate: 1.0, + + // Capture Replay for 10% of all sessions, + // plus for 100% of sessions with an error + enabled: !!dsn, + replaysOnErrorSampleRate: 1.0, + replaysSessionSampleRate: 0.1, + + // ... + + // Note: if you want to override the automatic release value, do not set a + // `release` value here - use the environment variable `SENTRY_RELEASE`, so + // that it will also get attached to your source maps +}) diff --git a/sentry.server.config.ts b/sentry.server.config.ts new file mode 100644 index 0000000000..0271baa468 --- /dev/null +++ b/sentry.server.config.ts @@ -0,0 +1,18 @@ +import * as Sentry from '@sentry/nextjs' +const dsn = process.env.NEXT_PUBLIC_SENTRY_DSN + +const enabled = !!dsn + +Sentry.init({ + dsn, + enabled, + skipOpenTelemetrySetup: true, + tracesSampleRate: 1.0, +}) + +if (enabled) { + // eslint-disable-next-line no-console + console.log('Sentry inited') +} + +export {} diff --git a/test/package.json b/test/package.json index 23185e6b38..34f56bd24d 100644 --- a/test/package.json +++ b/test/package.json @@ -56,6 +56,7 @@ "@payloadcms/storage-vercel-blob": "workspace:*", "@payloadcms/translations": "workspace:*", "@payloadcms/ui": "workspace:*", + "@sentry/nextjs": "^8.33.1", "@sentry/react": "^7.77.0", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", diff --git a/test/plugin-sentry/components.tsx b/test/plugin-sentry/TestErrors.tsx similarity index 83% rename from test/plugin-sentry/components.tsx rename to test/plugin-sentry/TestErrors.tsx index 8f00a44181..a244808719 100644 --- a/test/plugin-sentry/components.tsx +++ b/test/plugin-sentry/TestErrors.tsx @@ -1,7 +1,10 @@ 'use client' -import * as Sentry from '@sentry/react' -import React from 'react' -export const testErrors = () => { + +import { useState } from 'react' + +export const TestErrors = () => { + const [throwClientSide, setThrowClientSide] = useState(false) + const notFound = async () => { const req = await fetch('http://localhost:3000/api/users/notFound', { method: 'GET', @@ -60,8 +63,12 @@ export const testErrors = () => { }) } + const ThrowClientSide = () => { + throw new Error('client side error') + } + return ( - + <>

Test Errors

+ + {throwClientSide && }
-
+ ) } diff --git a/test/plugin-sentry/config.ts b/test/plugin-sentry/config.ts index beb811903f..4f902b6305 100644 --- a/test/plugin-sentry/config.ts +++ b/test/plugin-sentry/config.ts @@ -3,6 +3,8 @@ import path from 'path' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) import { sentryPlugin } from '@payloadcms/plugin-sentry' +import * as Sentry from '@sentry/nextjs' +import { APIError } from 'payload' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { devUser } from '../credentials.js' @@ -12,7 +14,7 @@ import { Users } from './collections/Users.js' export default buildConfigWithDefaults({ admin: { components: { - beforeDashboard: ['/components.js#testErrors'], + beforeDashboard: ['/TestErrors.js#TestErrors'], }, importMap: { baseDir: path.resolve(dirname), @@ -29,17 +31,21 @@ export default buildConfigWithDefaults({ }, }) }, + endpoints: [ + { + path: '/exception', + handler: () => { + throw new APIError('Test Plugin-Sentry Exception', 500) + }, + method: 'get', + }, + ], plugins: [ sentryPlugin({ - dsn: 'https://61edebe5ee6d4d38a9d6459c7323d777@o4505289711681536.ingest.sentry.io/4505357688242176', + Sentry, options: { + debug: true, captureErrors: [400, 403, 404], - init: { - debug: true, - }, - requestHandler: { - serverName: false, - }, }, }), ], diff --git a/test/plugin-sentry/payload-types.ts b/test/plugin-sentry/payload-types.ts index 70c5e03ee4..22ba068560 100644 --- a/test/plugin-sentry/payload-types.ts +++ b/test/plugin-sentry/payload-types.ts @@ -13,6 +13,7 @@ export interface Config { collections: { posts: Post; users: User; + 'payload-locked-documents': PayloadLockedDocument; 'payload-preferences': PayloadPreference; 'payload-migrations': PayloadMigration; }; @@ -70,6 +71,29 @@ export interface User { lockUntil?: string | null; password?: string | null; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-locked-documents". + */ +export interface PayloadLockedDocument { + id: string; + document?: + | ({ + relationTo: 'posts'; + value: string | Post; + } | null) + | ({ + relationTo: 'users'; + value: string | User; + } | null); + globalSlug?: string | null; + user: { + relationTo: 'users'; + value: string | User; + }; + updatedAt: string; + createdAt: string; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences". diff --git a/tsconfig.json b/tsconfig.json index ae27597fb0..d28ddbca63 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -78,6 +78,9 @@ "@payloadcms/plugin-seo/client": [ "./packages/plugin-seo/src/exports/client.ts" ], + "@payloadcms/plugin-sentry/client": [ + "./packages/plugin-sentry/src/exports/client.ts" + ], "@payloadcms/plugin-stripe/client": [ "./packages/plugin-stripe/src/exports/client.ts" ], @@ -171,6 +174,9 @@ "app", "next-env.d.ts", ".next/types/**/*.ts", - "scripts/**/*.ts" + "scripts/**/*.ts", + "instrumentation.ts", + "sentry.server.config.ts", + "sentry.client.config.ts" ] }