diff --git a/docs/content/en/configuration/options.md b/docs/content/en/configuration/options.md index cef09256..408c1ce6 100644 --- a/docs/content/en/configuration/options.md +++ b/docs/content/en/configuration/options.md @@ -158,17 +158,17 @@ The `dsn` is the only option that is required to enable Sentry reporting. - `@sentry/webpack-plugin@1` package must be installed manually as a dev dependency to be able to publish releases. + `@sentry/webpack-plugin@2` package must be installed manually as a dev dependency to be able to publish releases. -- Type: `Boolean` or [`WebpackPluginOptions`](https://github.com/getsentry/sentry-webpack-plugin) +- Type: `Boolean` or [`SentryWebpackPluginOptions`](https://github.com/getsentry/sentry-javascript-bundler-plugins/blob/main/packages/bundler-plugin-core/src/types.ts) - Default: `process.env.SENTRY_PUBLISH_RELEASE || false` -- Enables Sentry releases for better debugging using source maps. Uses [@sentry/webpack-plugin](https://github.com/getsentry/sentry-webpack-plugin). +- Enables Sentry releases for better debugging using source maps. Uses [@sentry/webpack-plugin](https://github.com/getsentry/sentry-javascript-bundler-plugins/). - Publishing releases requires the organization slug, project name and the Sentry authentication token to be provided. Those can be provided either via an object value or [environment variables or a properties file](https://docs.sentry.io/product/cli/configuration/#sentry-cli-working-with-projects). So for example, when using the object value, you'd set `authToken`, `org` and `project` options, and when using the environment variables you'd set `SENTRY_AUTH_TOKEN`, `SENTRY_ORG` and `SENTRY_PROJECT`. - It's recommended to pass an object value to this option rather than using the boolean `true`. When using the boolean, you have to provide all required options through other means mentioned above. - The releases are only published when this option is enabled and at the same time you are NOT running in development (`nuxt dev`) mode. -- See https://docs.sentry.io/workflow/releases for more information. Note that the Sentry CLI options mentioned in the documentation typically have a [@sentry/webpack-plugin](https://github.com/getsentry/sentry-webpack-plugin) equivalent. +- See https://docs.sentry.io/workflow/releases for more information. Note that the Sentry CLI options mentioned in the documentation typically have a [@sentry/webpack-plugin](https://github.com/getsentry/sentry-javascript-bundler-plugins/) equivalent. Example configuration: @@ -179,50 +179,37 @@ sentry: { authToken: '', org: 'MyCompany', project: 'my-project', - // Attach commits to the release (requires that the build triggered within a git repository). - setCommits: { - auto: true + release: { + // Attach commits to the release (requires that the build triggered within a git repository). + setCommits: { + auto: true + } } } } ``` -Note that the module sets the following defaults when publishing is enabled: - -```js -{ - include: [], // automatically set at publishing time to relevant paths for the bundles that were built - ignore: [ - 'node_modules', - '.nuxt/dist/client/img' - ], - configFile: '.sentryclirc', - release: '', // defaults to the value of "config.release" which can either be set manually or is determined automatically through `@sentry/cli` -} -``` - -- Providing custom values for `include` or `ignore` will result in provided values getting appended to default values. +- module by default includes all js/map assets generated during the build step. ### sourceMapStyle - Type: `String` -- Default: `source-map` -- Only has effect when `publishRelease` is enabled +- Default: `hidden-source-map` +- Only has an effect when `publishRelease` is enabled - The type of source maps generated when publishing release to Sentry. See https://webpack.js.org/configuration/devtool for a list of available options -- **Note**: Consider using `hidden-source-map` instead. For most people, that should be a better option but due to it being a breaking change, it won't be set as the default until next major release ### disableServerRelease - Type: `Boolean` - Default: `process.env.SENTRY_DISABLE_SERVER_RELEASE || false` -- Only has effect when `publishRelease` is enabled +- Only has an effect when `publishRelease` is enabled - See https://docs.sentry.io/workflow/releases for more information ### disableClientRelease - Type: `Boolean` - Default: `process.env.SENTRY_DISABLE_CLIENT_RELEASE || false` -- Only has effect when `publishRelease` is enabled +- Only has an effect when `publishRelease` is enabled - See https://docs.sentry.io/workflow/releases for more information ### clientIntegrations diff --git a/docs/content/en/getting-started/setup.md b/docs/content/en/getting-started/setup.md index 2b184d98..74225e6e 100644 --- a/docs/content/en/getting-started/setup.md +++ b/docs/content/en/getting-started/setup.md @@ -65,7 +65,7 @@ In Typescript or type-checked JavaScript projects, add `@nuxtjs/sentry` to the ` - The otherwise optional package `@sentry/webpack-plugin@1` has to be installed for types to be fully working. + The otherwise optional package `@sentry/webpack-plugin@2` has to be installed for types to be fully working. If not using the relevant functionality (`publishRelease` option is not enabled) then this package can be installed as dev-only dependency. diff --git a/docs/content/en/guide/migration.md b/docs/content/en/guide/migration.md index 1699bac4..95e91c88 100644 --- a/docs/content/en/guide/migration.md +++ b/docs/content/en/guide/migration.md @@ -7,6 +7,21 @@ category: Guide Follow this guide to upgrade from one major version to the other. +## Upgrading from v7 to v8 + +Breaking changes only affect the `publishRelease` and the (related to `publishRelease`) `sourceMapStyle` option. + +When using the `publishRelease` option, the `@sentry/webpack-plugin` package needs to be updated from version 1.x to 2.x. + +The options supported by the `publishRelease` object have also changed slightly: + - `configFile`, `dryRun`, `include`, `sourcemap` and `urlPrefix` options are no longer supported. + - `setCommits` option moved to `release.setCommits` + - `errorHandler` option signature has changed - see https://sentry.nuxtjs.org/guide/releases + +The default value of the `sourceMapStyle` option has changed from `source-map` to `hidden-source-map` since the new version of the webpack plugin can handle source maps without having to reference them directly in the source files. + +You can also check the [`@sentry/webpack-plugin` official migration guide](https://github.com/getsentry/sentry-javascript-bundler-plugins/blob/main/MIGRATION.md#upgrading-to-2x) for more information although not everything mentioned there applies to this module. + ## Upgrading from v6 to v7 Sentry SDK dependencies updated from v6 to v7. Please read about breaking changes in Sentry SDK's [Upgrading from v6.x to v7.x](https://github.com/getsentry/sentry-javascript/blob/master/MIGRATION.md#upgrading-from-6x-to-7x) document. diff --git a/docs/content/en/guide/releases.md b/docs/content/en/guide/releases.md index 7a0ea08a..39c346f0 100644 --- a/docs/content/en/guide/releases.md +++ b/docs/content/en/guide/releases.md @@ -14,8 +14,8 @@ category: Guide Follow the following steps to create and publish releases to Sentry. -1. Install the `@sentry/webpack-plugin@1` package as a dev dependency. -2. Enable the [publishRelease](http://localhost:3000/configuration/options#publishrelease) option. Follow the link for mode detailed explanation of available options. +1. Install the `@sentry/webpack-plugin@2` package as a dev dependency. +2. Enable the [publishRelease](/configuration/options#publishrelease) option. Follow the link for mode detailed explanation of available options. @@ -32,8 +32,8 @@ On error during publishing, the build will be interrupted. If you would instead sentry: { publishRelease: { // other options... - errorHandler(err, invokeErr, compilation) { - compilation.warnings.push(`Sentry Release Error: ${err.message}`); + errorHandler(error) { + console.error(`Sentry Release Error: ${error.message}`); }, }, } diff --git a/package.json b/package.json index 807bafdd..ac8f4df0 100755 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "release": "release-it", "test": "yarn prepack && vitest run && yarn lint:fixture && yarn typecheck", "test:watch": "vitest", - "typecheck": "tsc", + "typecheck": "yarn dev:prepare && tsc", "coverage": "codecov" }, "lint-staged": { @@ -78,7 +78,7 @@ "@nuxtjs/module-test-utils": "1.6.3", "@release-it/conventional-changelog": "7.0.0", "@sentry/profiling-node": "^1.1.2", - "@sentry/webpack-plugin": "1.20.1", + "@sentry/webpack-plugin": "2.7.1", "@size-limit/file": "^8.2.6", "@types/hash-sum": "1.0.0", "@types/lodash.mergewith": "4.6.7", diff --git a/src/hooks.ts b/src/hooks.ts index 7fb8f093..134aed80 100644 --- a/src/hooks.ts +++ b/src/hooks.ts @@ -1,15 +1,15 @@ import { fileURLToPath } from 'url' -import { resolve, posix } from 'path' +import { resolve } from 'path' import { defu } from 'defu' import type { ConsolaInstance } from 'consola' import type { Configuration as WebpackConfig } from 'webpack' -import type { SentryCliPluginOptions } from '@sentry/webpack-plugin' +import type { SentryWebpackPluginOptions } from '@sentry/webpack-plugin' import type { Options } from '@sentry/types' import * as Sentry from '@sentry/node' import { addPluginTemplate, addTemplate, addWebpackPlugin } from './kit-shim' import type { Nuxt } from './kit-shim' import type { ModuleConfiguration } from './types/configuration' -import { clientSentryEnabled, serverSentryEnabled, envToBool, canInitialize } from './utils' +import { clientSentryEnabled, serverSentryEnabled, canInitialize } from './utils' import { resolveRelease, ResolvedClientOptions, resolveClientOptions, ResolvedServerOptions, resolveServerOptions } from './options' import type { SentryHandlerProxy } from './options' @@ -62,7 +62,7 @@ export async function buildHook (nuxt: Nuxt, moduleOptions: ModuleConfiguration, } } -export async function webpackConfigHook (nuxt: Nuxt, webpackConfigs: WebpackConfig[], options: ModuleConfiguration & { publishRelease: SentryCliPluginOptions }, logger: ConsolaInstance): Promise { +export async function webpackConfigHook (nuxt: Nuxt, webpackConfigs: WebpackConfig[], options: ModuleConfiguration, logger: ConsolaInstance): Promise { let WebpackPlugin: typeof import('@sentry/webpack-plugin') try { WebpackPlugin = await (import('@sentry/webpack-plugin').then(m => m.default || m)) @@ -70,69 +70,32 @@ export async function webpackConfigHook (nuxt: Nuxt, webpackConfigs: WebpackConf throw new Error('The "@sentry/webpack-plugin" package must be installed as a dev dependency to use the "publishRelease" option.') } - const publishRelease: SentryCliPluginOptions = defu({}, options.publishRelease) - const nuxtOptions = nuxt.options - - if (!publishRelease.urlPrefix) { - // Set urlPrefix to match resources on the client. That's not technically correct for the server source maps, but it is what it is for now. - if (typeof (nuxtOptions.router.base) === 'string' && typeof (nuxtOptions.build.publicPath) === 'string') { - const publicPath = posix.join(nuxtOptions.router.base, nuxtOptions.build.publicPath) - publishRelease.urlPrefix = publicPath.startsWith('/') ? `~${publicPath}` : publicPath - } - } - - if (!Array.isArray(publishRelease.include)) { - const { include } = publishRelease - publishRelease.include = [...(include ? [include] : [])] + const publishRelease: SentryWebpackPluginOptions = defu(options.publishRelease) + if (!publishRelease.sourcemaps) { + publishRelease.sourcemaps = {} } - - const { buildDir } = nuxtOptions - - if (!options.disableServerRelease) { - publishRelease.include.push(`${buildDir}/dist/server`) + if (!publishRelease.sourcemaps.ignore) { + publishRelease.sourcemaps.ignore = [] } - if (!options.disableClientRelease) { - publishRelease.include.push(`${buildDir}/dist/client`) + if (!Array.isArray(publishRelease.sourcemaps.ignore)) { + publishRelease.sourcemaps.ignore = [publishRelease.sourcemaps.ignore] } - - publishRelease.release = options.config.release || publishRelease.release || await resolveRelease(options) - if (!publishRelease.release) { - // We've already tried to determine "release" manually using Sentry CLI so to avoid webpack - // plugin crashing, we'll just bail here. - logger.warn('Sentry release will not be published because "config.release" was not set nor it ' + - 'was possible to determine it automatically from the repository') - return + publishRelease.release = {} } - - const attachCommits = envToBool(process.env.SENTRY_AUTO_ATTACH_COMMITS) - - if (attachCommits) { - publishRelease.setCommits = publishRelease.setCommits || {} - - const { setCommits } = publishRelease - - if (setCommits.auto === undefined) { - setCommits.auto = true - } - - const repo = process.env.SENTRY_RELEASE_REPO || '' - - if (repo && setCommits.repo === undefined) { - setCommits.repo = repo - } + publishRelease.release.name = publishRelease.release.name || options.config.release || await resolveRelease(options) + if (!publishRelease.release.name) { + // We've already tried to determine "release" manually using Sentry CLI so to avoid webpack plugin crashing, we'll just bail here. + logger.warn('Sentry release will not be published because "config.release" or "publishRelease.release.name" was not set nor it ' + + 'was possible to determine it automatically from the repository.') + return } for (const config of webpackConfigs) { config.devtool = options.sourceMapStyle + config.plugins = config.plugins || [] + config.plugins.push(WebpackPlugin.sentryWebpackPlugin(publishRelease)) } - - // Add WebpackPlugin to the last build config - - const config = webpackConfigs[webpackConfigs.length - 1] - - config.plugins = config.plugins || [] - config.plugins.push(new WebpackPlugin(publishRelease)) } export async function initializeServerSentry (nuxt: Nuxt, moduleOptions: ModuleConfiguration, sentryHandlerProxy: SentryHandlerProxy, logger: ConsolaInstance): Promise { diff --git a/src/module.ts b/src/module.ts index aeb34431..e2754b42 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1,7 +1,7 @@ import { fileURLToPath } from 'url' import { defu } from 'defu' import { resolvePath } from 'mlly' -import type { SentryCliPluginOptions } from '@sentry/webpack-plugin' +import type { SentryWebpackPluginOptions } from '@sentry/webpack-plugin' import { captureException, withScope } from '@sentry/node' import type { Configuration as WebpackConfig } from 'webpack' import { defineNuxtModule, isNuxt2, useLogger } from './kit-shim' @@ -33,7 +33,7 @@ export default defineNuxtModule({ disableServerRelease: envToBool(process.env.SENTRY_DISABLE_SERVER_RELEASE) || false, disableClientRelease: envToBool(process.env.SENTRY_DISABLE_CLIENT_RELEASE) || false, logMockCalls: true, - sourceMapStyle: 'source-map', + sourceMapStyle: 'hidden-source-map', tracing: false, clientIntegrations: { ExtraErrorData: {}, @@ -56,17 +56,15 @@ export default defineNuxtModule({ requestHandlerConfig: {}, }), async setup (options, nuxt) { - const defaultsPublishRelease: SentryCliPluginOptions = { - include: [], - ignore: [ - 'node_modules', - '.nuxt/dist/client/img', - ], - configFile: '.sentryclirc', + const defaultsPublishRelease: SentryWebpackPluginOptions = { + sourcemaps: { + ignore: [ + 'node_modules/**/*', + ], + }, } if (options.publishRelease) { - // @ts-expect-error Defu introduces "null" value in its merged types which cause error. options.publishRelease = defu(options.publishRelease, defaultsPublishRelease) } @@ -155,7 +153,7 @@ export default defineNuxtModule({ // Enable publishing of sourcemaps if (options.publishRelease && !options.disabled && !nuxt.options.dev) { if (isNuxt2()) { - nuxt.hook('webpack:config', (webpackConfigs: WebpackConfig[]) => webpackConfigHook(nuxt, webpackConfigs, options as ModuleConfiguration & { publishRelease: SentryCliPluginOptions }, logger)) + nuxt.hook('webpack:config', (webpackConfigs: WebpackConfig[]) => webpackConfigHook(nuxt, webpackConfigs, options, logger)) } } }, diff --git a/src/types/configuration.d.ts b/src/types/configuration.d.ts index d8bc3293..a3b7639d 100644 --- a/src/types/configuration.d.ts +++ b/src/types/configuration.d.ts @@ -3,7 +3,7 @@ import { Options as SentryOptions, IntegrationClass } from '@sentry/types' import * as PluggableIntegrations from '@sentry/integrations' import { BrowserTracing, Integrations as BrowserIntegrations, Replay, vueRouterInstrumentation } from '@sentry/vue' import { Options as SentryVueOptions, TracingOptions as SentryVueTracingOptions } from '@sentry/vue/types/types' -import { SentryCliPluginOptions } from '@sentry/webpack-plugin' +import { SentryWebpackPluginOptions } from '@sentry/webpack-plugin' import { Integrations as NodeIntegrations, NodeOptions, Handlers } from '@sentry/node' type IntegrationsConfig>> = Partial<{ @@ -48,8 +48,8 @@ export interface ModuleConfiguration { initialize: boolean lazy: boolean | LazyConfiguration logMockCalls: boolean - /** See available options at https://github.com/getsentry/sentry-webpack-plugin */ - publishRelease: boolean | Partial + /** See available options at https://docs.sentry.io/platforms/node/sourcemaps/uploading/webpack/ */ + publishRelease: boolean | SentryWebpackPluginOptions runtimeConfigKey: string serverConfig: NodeOptions | string serverIntegrations: ServerIntegrations diff --git a/test/fixture/default/nuxt.config.cjs b/test/fixture/default/nuxt.config.cjs index 2ec44072..1d412868 100644 --- a/test/fixture/default/nuxt.config.cjs +++ b/test/fixture/default/nuxt.config.cjs @@ -30,12 +30,6 @@ const config = { }, customClientIntegrations: '~/config/custom-client-integrations.js', tracing: true, - publishRelease: { - authToken: 'fakeToken', - org: 'MyCompany', - project: 'TestProject', - dryRun: true, - }, }, } diff --git a/yarn.lock b/yarn.lock index c15019a5..02cd654b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2274,6 +2274,16 @@ "@sentry/utils" "7.63.0" tslib "^2.4.1 || ^1.9.3" +"@sentry-internal/tracing@7.64.0": + version "7.64.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.64.0.tgz#3e110473b8edf805b799cc91d6ee592830237bb4" + integrity sha512-1XE8W6ki7hHyBvX9hfirnGkKDBKNq3bDJyXS86E0bYVDl94nvbRM9BD9DHsCFetqYkVm1yDGEK+6aUVs4CztoQ== + dependencies: + "@sentry/core" "7.64.0" + "@sentry/types" "7.64.0" + "@sentry/utils" "7.64.0" + tslib "^2.4.1 || ^1.9.3" + "@sentry/browser@7.63.0": version "7.63.0" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.63.0.tgz#d7eee4be7bfff015f050bca83cafb111dc13d40d" @@ -2286,13 +2296,26 @@ "@sentry/utils" "7.63.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/cli@^1.75.1": - version "1.75.2" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.75.2.tgz#2c38647b38300e52c9839612d42b7c23f8d6455b" - integrity sha512-CG0CKH4VCKWzEaegouWfCLQt9SFN+AieFESCatJ7zSuJmzF05ywpMusjxqRul6lMwfUhRKjGKOzcRJ1jLsfTBw== +"@sentry/bundler-plugin-core@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.7.1.tgz#60ca41f79393263911ae6bc5530f387cb1e48e47" + integrity sha512-ZC/B/7FzzgGpux2t54B2ioXudlq60MHMVPaUeuFzWwxmxiArrV4uBXcp18RMW5ns4biik5WBAD72vbsoloBfIQ== + dependencies: + "@sentry/cli" "^2.20.1" + "@sentry/node" "^7.60.0" + "@sentry/utils" "^7.60.0" + dotenv "^16.3.1" + find-up "5.0.0" + glob "9.3.2" + magic-string "0.27.0" + unplugin "1.0.1" + +"@sentry/cli@^2.20.1": + version "2.20.5" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.20.5.tgz#255a5388ca24c211a0eae01dcc4ad813a7ff335a" + integrity sha512-ZvWb86eF0QXH9C5Mbi87aUmr8SH848yEpXJmlM2AoBowpE9kKDnewCAKvyXUihojUFwCSEEjoJhrRMMgmCZqXA== dependencies: https-proxy-agent "^5.0.0" - mkdirp "^0.5.5" node-fetch "^2.6.7" progress "^2.0.3" proxy-from-env "^1.1.0" @@ -2307,6 +2330,15 @@ "@sentry/utils" "7.63.0" tslib "^2.4.1 || ^1.9.3" +"@sentry/core@7.64.0": + version "7.64.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.64.0.tgz#9d61cdc29ba299dedbdcbe01cfadf94bd0b7df48" + integrity sha512-IzmEyl5sNG7NyEFiyFHEHC+sizsZp9MEw1+RJRLX6U5RITvcsEgcajSkHQFafaBPzRrcxZMdm47Cwhl212LXcw== + dependencies: + "@sentry/types" "7.64.0" + "@sentry/utils" "7.64.0" + tslib "^2.4.1 || ^1.9.3" + "@sentry/hub@^7.53.0": version "7.63.0" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.63.0.tgz#7bf9bbb5930c96d6c91f002029b4b64e66fcd42a" @@ -2341,6 +2373,20 @@ lru_map "^0.3.3" tslib "^2.4.1 || ^1.9.3" +"@sentry/node@^7.60.0": + version "7.64.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.64.0.tgz#c6f7a67c1442324298f0525e7191bc18572ee1ce" + integrity sha512-wRi0uTnp1WSa83X2yLD49tV9QPzGh5e42IKdIDBiQ7lV9JhLILlyb34BZY1pq6p4dp35yDasDrP3C7ubn7wo6A== + dependencies: + "@sentry-internal/tracing" "7.64.0" + "@sentry/core" "7.64.0" + "@sentry/types" "7.64.0" + "@sentry/utils" "7.64.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^2.4.1 || ^1.9.3" + "@sentry/profiling-node@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@sentry/profiling-node/-/profiling-node-1.1.2.tgz#2176aea2e50676a84469f16c8650e1b6d9b11816" @@ -2369,6 +2415,11 @@ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.63.0.tgz#8032029fee6f70e04b667646626a674b03e2f79b" integrity sha512-pZNwJVW7RqNLGuTUAhoygt0c9zmc0js10eANAz0MstygJRhQI1tqPDuiELVdujPrbeL+IFKF+7NvRDAydR2Niw== +"@sentry/types@7.64.0": + version "7.64.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.64.0.tgz#21fc545ea05c3c8c4c3e518583eca1a8c5429506" + integrity sha512-LqjQprWXjUFRmzIlUjyA+KL+38elgIYmAeoDrdyNVh8MK5IC1W2Lh1Q87b4yOiZeMiIhIVNBd7Ecoh2rodGrGA== + "@sentry/utils@7.63.0", "@sentry/utils@^7.53.0", "@sentry/utils@^7.63.0": version "7.63.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.63.0.tgz#7c598553b4dbb6e3740dc96bc7f112ec32edbe69" @@ -2377,6 +2428,14 @@ "@sentry/types" "7.63.0" tslib "^2.4.1 || ^1.9.3" +"@sentry/utils@7.64.0", "@sentry/utils@^7.60.0": + version "7.64.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.64.0.tgz#6fe3ce9a56d3433ed32119f914907361a54cc184" + integrity sha512-HRlM1INzK66Gt+F4vCItiwGKAng4gqzCR4C5marsL3qv6SrKH98dQnCGYgXluSWaaa56h97FRQu7TxCk6jkSvQ== + dependencies: + "@sentry/types" "7.64.0" + tslib "^2.4.1 || ^1.9.3" + "@sentry/vue@^7.63.0": version "7.63.0" resolved "https://registry.yarnpkg.com/@sentry/vue/-/vue-7.63.0.tgz#98abe95caba4b22891602175bfa874fb34eb3b78" @@ -2388,13 +2447,14 @@ "@sentry/utils" "7.63.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/webpack-plugin@1.20.1": - version "1.20.1" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.20.1.tgz#e70a2fe516f3a39a132acfa841e4f2ea2a1cecd2" - integrity sha512-klOLkfM/oSYzcR2M9oDmJA5/Mdaw0Mtck/h820Z+gqpd6WJepjhqVDel1z2VddaP/XMY0Dj6elCGp2/nDWNr0w== +"@sentry/webpack-plugin@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.7.1.tgz#f9475d24834a94cc6deba6c972afed28d491544e" + integrity sha512-YTlBFGVolXW7ZDoeg7cmLLCqIWNGvH9r3/q7FR1EBM5cDBf21juI+RVFM2mLf/bEu+Qf2uwt1tki8G1rfe7/0g== dependencies: - "@sentry/cli" "^1.75.1" - webpack-sources "^2.0.0 || ^3.0.0" + "@sentry/bundler-plugin-core" "2.7.1" + unplugin "1.0.1" + uuid "^9.0.0" "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -3210,7 +3270,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^8.0.4, acorn@^8.10.0, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.0.4, acorn@^8.10.0, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -6529,6 +6589,14 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -6551,14 +6619,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-versions@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" @@ -6958,6 +7018,16 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda" + integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^7.4.1" + minipass "^4.2.4" + path-scurry "^1.6.1" + glob@^10.2.2: version "10.3.3" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" @@ -8639,7 +8709,7 @@ macos-release@^3.1.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== -magic-string@^0.27.0: +magic-string@0.27.0, magic-string@^0.27.0: version "0.27.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== @@ -8925,6 +8995,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.1: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.1: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -8999,6 +9076,11 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + minipass@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" @@ -9041,7 +9123,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -9942,7 +10024,7 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: +path-scurry@^1.10.1, path-scurry@^1.6.1: version "1.10.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== @@ -13074,6 +13156,16 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +unplugin@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.0.1.tgz#83b528b981cdcea1cad422a12cd02e695195ef3f" + integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA== + dependencies: + acorn "^8.8.1" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -13236,6 +13328,11 @@ uuid@^8.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -13507,11 +13604,16 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -"webpack-sources@^2.0.0 || ^3.0.0": +webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== + webpack@^4.46.0: version "4.46.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"