From 30153e7ba848eaf887303ccbf1600912c83f3bd7 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 15 Mar 2024 09:33:56 +0100 Subject: [PATCH 01/56] fix(ci): Fix path to aws serverless layer zip (#11114) --- .github/workflows/build.yml | 3 +-- scripts/aws-deploy-local-layer.sh | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c216581322a..d2662cdd2157 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,6 @@ env: ${{ github.workspace }}/packages/ember/*.d.ts ${{ github.workspace }}/packages/gatsby/*.d.ts ${{ github.workspace }}/packages/core/src/version.ts - ${{ github.workspace }}/packages/serverless ${{ github.workspace }}/packages/utils/cjs ${{ github.workspace }}/packages/utils/esm @@ -385,7 +384,7 @@ jobs: ${{ github.workspace }}/packages/replay/build/bundles/** ${{ github.workspace }}/packages/replay-canvas/build/bundles/** ${{ github.workspace }}/packages/**/*.tgz - ${{ github.workspace }}/packages/serverless/build/aws/dist-serverless/*.zip + ${{ github.workspace }}/packages/aws-serverless/build/aws/dist-serverless/*.zip job_browser_unit_tests: name: Browser Unit Tests diff --git a/scripts/aws-deploy-local-layer.sh b/scripts/aws-deploy-local-layer.sh index db5398adbc63..67af94b1838a 100755 --- a/scripts/aws-deploy-local-layer.sh +++ b/scripts/aws-deploy-local-layer.sh @@ -13,15 +13,15 @@ set -euo pipefail # Remove old distribution directories and zip files. echo "Preparing local directories for new build..." rm -rf dist-serverless/ -rm -rf ./packages/serverless/build -rm -rf ./packages/serverless/dist -rm -rf ./packages/serverless/node_modules +rm -rf ./packages/aws-serverless/build +rm -rf ./packages/aws-serverless/dist +rm -rf ./packages/aws-serverless/node_modules # Creating Lambda layer -echo "Creating Lambda layer in ./packages/serverless/build/aws/dist-serverless..." -cd packages/serverless +echo "Creating Lambda layer in ./packages/aws-serverless/build/aws/dist-serverless..." +cd packages/aws-serverless yarn build -echo "Done creating Lambda layer in ./packages/serverless/build/aws/dist-serverless." +echo "Done creating Lambda layer in ./packages/aws-serverless/build/aws/dist-serverless." # Deploying zipped Lambda layer to AWS ZIP=$(ls build/aws/dist-serverless | grep sentry-node-serverless | head -n 1) From 7466a52c87c857b4644dbf1e070b5f818aa9129e Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 15 Mar 2024 10:17:28 +0100 Subject: [PATCH 02/56] test(node): Use different test server ports for `node` and `node-experimental` packages (#11116) --- packages/node-experimental/test/transports/http.test.ts | 4 ++-- packages/node-experimental/test/transports/https.test.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/node-experimental/test/transports/http.test.ts b/packages/node-experimental/test/transports/http.test.ts index be33fe618aa1..81eb40656b44 100644 --- a/packages/node-experimental/test/transports/http.test.ts +++ b/packages/node-experimental/test/transports/http.test.ts @@ -53,14 +53,14 @@ function setupTestServer( res.connection?.end(); }); - testServer.listen(18099); + testServer.listen(18100); return new Promise(resolve => { testServer?.on('listening', resolve); }); } -const TEST_SERVER_URL = 'http://localhost:18099'; +const TEST_SERVER_URL = 'http://localhost:18100'; const EVENT_ENVELOPE = createEnvelope({ event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2', sent_at: '123' }, [ [{ type: 'event' }, { event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2' }] as EventItem, diff --git a/packages/node-experimental/test/transports/https.test.ts b/packages/node-experimental/test/transports/https.test.ts index 82be28f84e9a..f3603e60f771 100644 --- a/packages/node-experimental/test/transports/https.test.ts +++ b/packages/node-experimental/test/transports/https.test.ts @@ -53,14 +53,14 @@ function setupTestServer( res.connection?.end(); }); - testServer.listen(8099); + testServer.listen(8100); return new Promise(resolve => { testServer?.on('listening', resolve); }); } -const TEST_SERVER_URL = 'https://localhost:8099'; +const TEST_SERVER_URL = 'https://localhost:8100'; const EVENT_ENVELOPE = createEnvelope({ event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2', sent_at: '123' }, [ [{ type: 'event' }, { event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2' }] as EventItem, From 13139d006aa0ce6328ba6c70dea4e48414468b52 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 15 Mar 2024 10:11:03 +0000 Subject: [PATCH 03/56] ci: Re-add size limit action (#11096) Size seems to be much increased, let's figure this out in follow ups. Also there is some issue with it reading next.js sizes, also something we can look at in follow ups... I disabled these size checks for now. The action is now inlined as a package in the monorepo, as our fork has been archived and the upstream package is not really maintained and works pretty different from what we need. Now we at least have full control over this. --- .github/workflows/build.yml | 28 ++ .size-limit.js | 84 ++-- .../size-limit-gh-action/.eslintrc.cjs | 14 + dev-packages/size-limit-gh-action/action.yml | 17 + dev-packages/size-limit-gh-action/index.mjs | 298 ++++++++++++ .../size-limit-gh-action/package.json | 29 ++ package.json | 7 +- yarn.lock | 441 +++++++++++++++--- 8 files changed, 799 insertions(+), 119 deletions(-) create mode 100644 dev-packages/size-limit-gh-action/.eslintrc.cjs create mode 100644 dev-packages/size-limit-gh-action/action.yml create mode 100644 dev-packages/size-limit-gh-action/index.mjs create mode 100644 dev-packages/size-limit-gh-action/package.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2662cdd2157..27aae6342cef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -277,6 +277,34 @@ jobs: # `job_build` can't see `job_install_deps` and what it returned) dependency_cache_key: ${{ needs.job_install_deps.outputs.dependency_cache_key }} + job_size_check: + name: Size Check + needs: [job_get_metadata, job_build] + timeout-minutes: 15 + runs-on: ubuntu-20.04 + if: + github.event_name == 'pull_request' || needs.job_get_metadata.outputs.is_develop == 'true' || + needs.job_get_metadata.outputs.is_release == 'true' + steps: + - name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }}) + uses: actions/checkout@v4 + with: + ref: ${{ env.HEAD_COMMIT }} + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version-file: 'package.json' + - name: Restore caches + uses: ./.github/actions/restore-cache + env: + DEPENDENCY_CACHE_KEY: ${{ needs.job_build.outputs.dependency_cache_key }} + - name: Check bundle sizes + uses: ./dev-packages/size-limit-gh-action + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + # Only run comparison against develop if this is a PR + comparison_branch: ${{ (github.event_name == 'pull_request' && github.base_ref) || ''}} + job_lint: name: Lint # Even though the linter only checks source code, not built code, it needs the built code in order check that all diff --git a/.size-limit.js b/.size-limit.js index c984f999e15a..68e7f534efa6 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -1,28 +1,28 @@ module.exports = [ // Main browser webpack builds { - name: '@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)', + name: '@sentry/browser (incl. Tracing, Replay, Feedback)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, replayIntegration, browserTracingIntegration, feedbackIntegration }', gzip: true, limit: '90 KB', }, { - name: '@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)', + name: '@sentry/browser (incl. Tracing, Replay)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, replayIntegration, browserTracingIntegration }', gzip: true, - limit: '75 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. Tracing, Replay with Canvas) - Webpack (gzipped)', + name: '@sentry/browser (incl. Tracing, Replay with Canvas)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, replayIntegration, browserTracingIntegration, replayCanvasIntegration }', gzip: true, limit: '90 KB', }, { - name: '@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)', + name: '@sentry/browser (incl. Tracing, Replay) - with treeshaking flags', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, replayIntegration, browserTracingIntegration }', gzip: true, @@ -41,98 +41,98 @@ module.exports = [ }, }, { - name: '@sentry/browser (incl. Tracing) - Webpack (gzipped)', + name: '@sentry/browser (incl. Tracing)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, browserTracingIntegration }', gzip: true, - limit: '35 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. browserTracingIntegration) - Webpack (gzipped)', + name: '@sentry/browser (incl. browserTracingIntegration)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, browserTracingIntegration }', gzip: true, - limit: '35 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. feedbackIntegration) - Webpack (gzipped)', + name: '@sentry/browser (incl. feedbackIntegration)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, feedbackIntegration }', gzip: true, - limit: '50 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. feedbackModalIntegration) - Webpack (gzipped)', + name: '@sentry/browser (incl. feedbackModalIntegration)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, feedbackIntegration, feedbackModalIntegration }', gzip: true, - limit: '50 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. feedbackScreenshotIntegration) - Webpack (gzipped)', + name: '@sentry/browser (incl. feedbackScreenshotIntegration)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, feedbackIntegration, feedbackModalIntegration, feedbackScreenshotIntegration }', gzip: true, - limit: '50 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. sendFeedback) - Webpack (gzipped)', + name: '@sentry/browser (incl. sendFeedback)', path: 'packages/browser/build/npm/esm/index.js', import: '{ init, sendFeedback }', gzip: true, - limit: '50 KB', + limit: '90 KB', }, { - name: '@sentry/browser - Webpack (gzipped)', + name: '@sentry/browser', path: 'packages/browser/build/npm/esm/index.js', import: '{ init }', gzip: true, - limit: '28 KB', + limit: '90 KB', }, // Browser CDN bundles { - name: '@sentry/browser (incl. Tracing, Replay, Feedback) - CDN Bundle (gzipped)', + name: 'CDN Bundle (incl. Tracing, Replay, Feedback)', path: 'packages/browser/build/bundles/bundle.tracing.replay.feedback.min.js', gzip: true, limit: '90 KB', }, { - name: '@sentry/browser (incl. Tracing, Replay) - CDN Bundle (gzipped)', + name: 'CDN Bundle (incl. Tracing, Replay)', path: 'packages/browser/build/bundles/bundle.tracing.replay.min.js', gzip: true, - limit: '75 KB', + limit: '90 KB', }, { - name: '@sentry/browser (incl. Tracing) - CDN Bundle (gzipped)', + name: 'CDN Bundle (incl. Tracing)', path: 'packages/browser/build/bundles/bundle.tracing.min.js', gzip: true, - limit: '37 KB', + limit: '40 KB', }, { - name: '@sentry/browser - CDN Bundle (gzipped)', + name: 'CDN Bundle', path: 'packages/browser/build/bundles/bundle.min.js', gzip: true, - limit: '28 KB', + limit: '30 KB', }, // browser CDN bundles (non-gzipped) { - name: '@sentry/browser (incl. Tracing, Replay) - CDN Bundle (minified & uncompressed)', + name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed', path: 'packages/browser/build/bundles/bundle.tracing.replay.min.js', gzip: false, brotli: false, limit: '260 KB', }, { - name: '@sentry/browser (incl. Tracing) - CDN Bundle (minified & uncompressed)', + name: 'CDN Bundle (incl. Tracing) - uncompressed', path: 'packages/browser/build/bundles/bundle.tracing.min.js', gzip: false, brotli: false, - limit: '105 KB', + limit: '120 KB', }, { - name: '@sentry/browser - CDN Bundle (minified & uncompressed)', + name: 'CDN Bundle - uncompressed', path: 'packages/browser/build/bundles/bundle.min.js', gzip: false, brotli: false, @@ -141,40 +141,34 @@ module.exports = [ // React { - name: '@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)', + name: '@sentry/react (incl. Tracing, Replay)', path: 'packages/react/build/esm/index.js', import: '{ init, browserTracingIntegration, replayIntegration }', gzip: true, - limit: '75 KB', + limit: '90 KB', }, { - name: '@sentry/react - Webpack (gzipped)', + name: '@sentry/react', path: 'packages/react/build/esm/index.js', import: '{ init }', gzip: true, - limit: '30 KB', + limit: '90 KB', }, // Next.js - { - name: '@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)', + // TODO: Re-enable these, when we figure out why they break... + /* { + name: '@sentry/nextjs Client (incl. Tracing, Replay)', path: 'packages/nextjs/build/esm/client/index.js', import: '{ init, browserTracingIntegration, replayIntegration }', gzip: true, limit: '110 KB', }, { - name: '@sentry/nextjs Client - Webpack (gzipped)', + name: '@sentry/nextjs Client', path: 'packages/nextjs/build/esm/client/index.js', import: '{ init }', gzip: true, limit: '57 KB', - }, - { - name: '@sentry-internal/feedback - Webpack (gzipped)', - path: 'packages/feedback/build/npm/esm/index.js', - import: '{ feedbackIntegration }', - gzip: true, - limit: '25 KB', - }, + }, */ ]; diff --git a/dev-packages/size-limit-gh-action/.eslintrc.cjs b/dev-packages/size-limit-gh-action/.eslintrc.cjs new file mode 100644 index 000000000000..8c67e0037908 --- /dev/null +++ b/dev-packages/size-limit-gh-action/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + extends: ['../../.eslintrc.js'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 'latest', + }, + + overrides: [ + { + files: ['*.mjs'], + extends: ['@sentry-internal/sdk/src/base'], + }, + ], +}; diff --git a/dev-packages/size-limit-gh-action/action.yml b/dev-packages/size-limit-gh-action/action.yml new file mode 100644 index 000000000000..bfaa23fd85b3 --- /dev/null +++ b/dev-packages/size-limit-gh-action/action.yml @@ -0,0 +1,17 @@ +name: 'size-limit-gh-action' +description: 'Run size-limit comparison' +inputs: + github_token: + required: true + description: 'a github access token' + comparison_branch: + required: false + default: "" + description: "If set, compare the current branch with this branch" + threshold: + required: false + default: "0.0125" + description: "The percentage threshold for size changes before posting a comment" +runs: + using: 'node20' + main: 'index.mjs' diff --git a/dev-packages/size-limit-gh-action/index.mjs b/dev-packages/size-limit-gh-action/index.mjs new file mode 100644 index 000000000000..43f4f3a96f65 --- /dev/null +++ b/dev-packages/size-limit-gh-action/index.mjs @@ -0,0 +1,298 @@ +import { promises as fs } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import * as artifact from '@actions/artifact'; +import * as core from '@actions/core'; +import { exec } from '@actions/exec'; +import { context, getOctokit } from '@actions/github'; +import * as glob from '@actions/glob'; +import bytes from 'bytes'; +import { markdownTable } from 'markdown-table'; + +import download from 'github-fetch-workflow-artifact'; + +const SIZE_LIMIT_HEADING = '## size-limit report 📦 '; +const ARTIFACT_NAME = 'size-limit-action'; +const RESULTS_FILE = 'size-limit-results.json'; + +async function fetchPreviousComment(octokit, repo, pr) { + const { data: commentList } = await octokit.rest.issues.listComments({ + ...repo, + issue_number: pr.number, + }); + + const sizeLimitComment = commentList.find(comment => comment.body.startsWith(SIZE_LIMIT_HEADING)); + return !sizeLimitComment ? null : sizeLimitComment; +} + +class SizeLimit { + formatBytes(size) { + return bytes.format(size, { unitSeparator: ' ' }); + } + + formatTime(seconds) { + if (seconds >= 1) { + return `${Math.ceil(seconds * 10) / 10} s`; + } + + return `${Math.ceil(seconds * 1000)} ms`; + } + + formatChange(base = 0, current = 0) { + if (base === 0) { + return 'added'; + } + + if (current === 0) { + return 'removed'; + } + + const value = ((current - base) / base) * 100; + const formatted = (Math.sign(value) * Math.ceil(Math.abs(value) * 100)) / 100; + + if (value > 0) { + return `+${formatted}% 🔺`; + } + + if (value === 0) { + return `${formatted}%`; + } + + return `${formatted}% 🔽`; + } + + formatLine(value, change) { + return `${value} (${change})`; + } + + formatSizeResult(name, base, current) { + return [name, this.formatLine(this.formatBytes(current.size), this.formatChange(base.size, current.size))]; + } + + formatTimeResult(name, base, current) { + return [ + name, + this.formatLine(this.formatBytes(current.size), this.formatChange(base.size, current.size)), + this.formatLine(this.formatTime(current.loading), this.formatChange(base.loading, current.loading)), + this.formatLine(this.formatTime(current.running), this.formatChange(base.running, current.running)), + this.formatTime(current.total), + ]; + } + + parseResults(output) { + const results = JSON.parse(output); + + return results.reduce((current, result) => { + let time = {}; + + if (result.loading !== undefined && result.running !== undefined) { + const loading = +result.loading; + const running = +result.running; + + time = { + running, + loading, + total: loading + running, + }; + } + + return { + // biome-ignore lint/performance/noAccumulatingSpread: + ...current, + [result.name]: { + name: result.name, + size: +result.size, + ...time, + }, + }; + }, {}); + } + + hasSizeChanges(base, current, threshold = 0) { + const names = [...new Set([...(base ? Object.keys(base) : []), ...Object.keys(current)])]; + const isSize = names.some(name => current[name] && current[name].total === undefined); + + // Always return true if time results are present + if (!isSize) { + return true; + } + + return !!names.find(name => { + const baseResult = base?.[name] || EmptyResult; + const currentResult = current[name] || EmptyResult; + + if (baseResult.size === 0 && currentResult.size === 0) { + return true; + } + + return Math.abs((currentResult.size - baseResult.size) / baseResult.size) * 100 > threshold; + }); + } + + formatResults(base, current) { + const names = [...new Set([...(base ? Object.keys(base) : []), ...Object.keys(current)])]; + const isSize = names.some(name => current[name] && current[name].total === undefined); + const header = isSize ? SIZE_RESULTS_HEADER : TIME_RESULTS_HEADER; + const fields = names.map(name => { + const baseResult = base?.[name] || EmptyResult; + const currentResult = current[name] || EmptyResult; + + if (isSize) { + return this.formatSizeResult(name, baseResult, currentResult); + } + return this.formatTimeResult(name, baseResult, currentResult); + }); + + return [header, ...fields]; + } +} + +async function execSizeLimit() { + let output = ''; + + const status = await exec('yarn run --silent size-limit --json', [], { + windowsVerbatimArguments: false, + ignoreReturnCode: true, + cwd: process.cwd(), + listeners: { + stdout: data => { + output += data.toString(); + }, + }, + }); + + return { status, output }; +} + +const SIZE_RESULTS_HEADER = ['Path', 'Size']; +const TIME_RESULTS_HEADER = ['Path', 'Size', 'Loading time (3g)', 'Running time (snapdragon)', 'Total time']; + +const EmptyResult = { + name: '-', + size: 0, + running: 0, + loading: 0, + total: 0, +}; + +async function run() { + const { getInput, setFailed } = core; + + try { + const { payload, repo } = context; + const pr = payload.pull_request; + + const comparisonBranch = getInput('comparison_branch'); + const githubToken = getInput('github_token'); + const threshold = getInput('threshold'); + + if (!comparisonBranch && !pr) { + throw new Error('No PR found. Only pull_request workflows are supported.'); + } + + const octokit = getOctokit(githubToken); + const limit = new SizeLimit(); + const artifactClient = artifact.create(); + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const resultsFilePath = path.resolve(__dirname, RESULTS_FILE); + + // If we have no comparison branch, we just run size limit & store the result as artifact + if (!comparisonBranch) { + let base; + const { output: baseOutput } = await execSizeLimit(); + + try { + base = limit.parseResults(baseOutput); + } catch (error) { + core.error('Error parsing size-limit output. The output should be a json.'); + throw error; + } + + try { + await fs.writeFile(resultsFilePath, JSON.stringify(base), 'utf8'); + } catch (err) { + core.error(err); + } + const globber = await glob.create(resultsFilePath, { + followSymbolicLinks: false, + }); + const files = await globber.glob(); + + await artifactClient.uploadArtifact(ARTIFACT_NAME, files, process.env); + + return; + } + + // Else, we run size limit for the current branch, AND fetch it for the comparison branch + let base; + let current; + + try { + // Ignore failures here as it is likely that this only happens when introducing size-limit + // and this has not been run on the main branch yet + await download(octokit, { + ...repo, + artifactName: ARTIFACT_NAME, + branch: comparisonBranch, + downloadPath: __dirname, + workflowEvent: 'push', + workflowName: `${process.env.GITHUB_WORKFLOW || ''}`, + }); + base = JSON.parse(await fs.readFile(resultsFilePath, { encoding: 'utf8' })); + } catch (error) { + core.startGroup('Warning, unable to find base results'); + core.debug(error); + core.endGroup(); + } + + const { status, output } = await execSizeLimit(); + try { + current = limit.parseResults(output); + } catch (error) { + core.error('Error parsing size-limit output. The output should be a json.'); + throw error; + } + + const thresholdNumber = Number(threshold); + + // @ts-ignore + const sizeLimitComment = await fetchPreviousComment(octokit, repo, pr); + + const shouldComment = + isNaN(thresholdNumber) || limit.hasSizeChanges(base, current, thresholdNumber) || sizeLimitComment; + + if (shouldComment) { + const body = [SIZE_LIMIT_HEADING, markdownTable(limit.formatResults(base, current))].join('\r\n'); + + try { + if (!sizeLimitComment) { + await octokit.rest.issues.createComment({ + ...repo, + issue_number: pr.number, + body, + }); + } else { + await octokit.rest.issues.updateComment({ + ...repo, + comment_id: sizeLimitComment.id, + body, + }); + } + } catch (error) { + core.error( + "Error updating comment. This can happen for PR's originating from a fork without write permissions.", + ); + } + } + + if (status > 0) { + setFailed('Size limit has been exceeded.'); + } + } catch (error) { + core.error(error); + setFailed(error.message); + } +} + +run(); diff --git a/dev-packages/size-limit-gh-action/package.json b/dev-packages/size-limit-gh-action/package.json new file mode 100644 index 000000000000..aefa894b0179 --- /dev/null +++ b/dev-packages/size-limit-gh-action/package.json @@ -0,0 +1,29 @@ +{ + "name": "@sentry-internal/size-limit-gh-action", + "description": "An internal Github Action to compare the current size of a PR against the one on develop.", + "version": "8.0.0-alpha.2", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "private": true, + "main": "index.mjs", + "type": "module", + "scripts": { + "lint": "eslint . --format stylish", + "fix": "eslint . --format stylish --fix" + }, + "dependencies": { + "@actions/core": "1.10.1", + "@actions/exec": "1.1.1", + "@actions/github": "6.0.0", + "@actions/artifact": "1.1.2", + "@actions/glob": "0.4.0", + "markdown-table": "3.0.3", + "github-fetch-workflow-artifact": "2.0.0", + "bytes": "3.1.2" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/package.json b/package.json index 28d2fb4e74a3..dfd75a12e843 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "dev-packages/e2e-tests", "dev-packages/node-integration-tests", "dev-packages/overhead-metrics", + "dev-packages/size-limit-gh-action", "dev-packages/rollup-utils" ], "devDependencies": { @@ -93,8 +94,8 @@ "@rollup/plugin-sucrase": "^5.0.2", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@size-limit/file": "~11.0.1", - "@size-limit/webpack": "~11.0.1", + "@size-limit/file": "~11.1.0", + "@size-limit/webpack": "~11.1.0", "@strictsoftware/typedoc-plugin-monorepo": "^0.3.1", "@types/chai": "^4.1.3", "@types/jest": "^27.4.1", @@ -125,7 +126,7 @@ "rollup-plugin-cleanup": "^3.2.1", "rollup-plugin-license": "^3.3.1", "sinon": "^7.3.2", - "size-limit": "~11.0.1", + "size-limit": "~11.1.0", "ts-jest": "^27.1.4", "ts-node": "10.9.1", "typedoc": "^0.18.0", diff --git a/yarn.lock b/yarn.lock index fbce753719c1..ea5bbcb29957 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,72 @@ # yarn lockfile v1 +"@actions/artifact@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@actions/artifact/-/artifact-1.1.2.tgz#13e796ce35214bd6486508f97b29b4b8e44f5a35" + integrity sha512-1gLONA4xw3/Q/9vGxKwkFdV9u1LE2RWGx/IpAqg28ZjprCnJFjwn4pA7LtShqg5mg5WhMek2fjpyH1leCmOlQQ== + dependencies: + "@actions/core" "^1.9.1" + "@actions/http-client" "^2.0.1" + tmp "^0.2.1" + tmp-promise "^3.0.2" + +"@actions/core@1.10.1", "@actions/core@^1.6.0", "@actions/core@^1.9.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a" + integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== + dependencies: + "@actions/http-client" "^2.0.1" + uuid "^8.3.2" + +"@actions/exec@1.1.1", "@actions/exec@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611" + integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== + dependencies: + "@actions/io" "^1.0.1" + +"@actions/github@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@actions/github/-/github-6.0.0.tgz#65883433f9d81521b782a64cc1fd45eef2191ea7" + integrity sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g== + dependencies: + "@actions/http-client" "^2.2.0" + "@octokit/core" "^5.0.1" + "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/plugin-rest-endpoint-methods" "^10.0.0" + +"@actions/github@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.1.1.tgz#40b9b9e1323a5efcf4ff7dadd33d8ea51651bbcb" + integrity sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g== + dependencies: + "@actions/http-client" "^2.0.1" + "@octokit/core" "^3.6.0" + "@octokit/plugin-paginate-rest" "^2.17.0" + "@octokit/plugin-rest-endpoint-methods" "^5.13.0" + +"@actions/glob@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@actions/glob/-/glob-0.4.0.tgz#b169b1c1c72f41e5df7b3d9349539c88fa68403c" + integrity sha512-+eKIGFhsFa4EBwaf/GMyzCdWrXWymGXfFmZU3FHQvYS8mPcHtTtZONbkcqqUMzw9mJ/pImEBFET1JNifhqGsAQ== + dependencies: + "@actions/core" "^1.9.1" + minimatch "^3.0.4" + +"@actions/http-client@^2.0.1", "@actions/http-client@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.1.tgz#ed3fe7a5a6d317ac1d39886b0bb999ded229bb38" + integrity sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw== + dependencies: + tunnel "^0.0.6" + undici "^5.25.4" + +"@actions/io@^1.0.1", "@actions/io@^1.1.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71" + integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== + "@ampproject/remapping@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-1.0.1.tgz#1398e73e567c2a7992df6554c15bb94a89b68ba2" @@ -4488,6 +4554,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.20": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jsdevtools/coverage-istanbul-loader@3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" @@ -4869,6 +4943,13 @@ resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.4.1.tgz#d48b2b6f9762dcda5ae51b4f4ecd354479f42605" integrity sha512-MAy719VC8hCPkYJ6j5Gl+s4pevWL0dxbzcXtQDstC0Y7XWPFmHS+CDgK8zHWfaN8mK6Sebv+nTQ+e/ptEu1+TA== +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + "@octokit/auth-token@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.2.tgz#a0fc8de149fd15876e1ac78f6525c1c5ab48435f" @@ -4876,6 +4957,24 @@ dependencies: "@octokit/types" "^8.0.0" +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + "@octokit/core@^4.1.0": version "4.2.0" resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz#8c253ba9605aca605bc46187c34fcccae6a96648" @@ -4902,6 +5001,28 @@ before-after-hook "^2.2.0" universal-user-agent "^6.0.0" +"@octokit/core@^5.0.1": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" + integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.0.0" + "@octokit/request" "^8.0.2" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + "@octokit/endpoint@^7.0.0": version "7.0.3" resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.3.tgz#0b96035673a9e3bedf8bab8f7335de424a2147ed" @@ -4911,6 +5032,23 @@ is-plain-object "^5.0.0" universal-user-agent "^6.0.0" +"@octokit/endpoint@^9.0.0": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" + integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== + dependencies: + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" + "@octokit/graphql@^5.0.0": version "5.0.4" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.4.tgz#519dd5c05123868276f3ae4e50ad565ed7dff8c8" @@ -4920,6 +5058,20 @@ "@octokit/types" "^8.0.0" universal-user-agent "^6.0.0" +"@octokit/graphql@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== + dependencies: + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + "@octokit/openapi-types@^14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a" @@ -4935,11 +5087,23 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== +"@octokit/openapi-types@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-20.0.0.tgz#9ec2daa0090eeb865ee147636e0c00f73790c6e5" + integrity sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA== + "@octokit/plugin-enterprise-rest@6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== +"@octokit/plugin-paginate-rest@^2.17.0": + version "2.21.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== + dependencies: + "@octokit/types" "^6.40.0" + "@octokit/plugin-paginate-rest@^6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz#f34b5a7d9416019126042cd7d7b811e006c0d561" @@ -4955,11 +5119,33 @@ "@octokit/tsconfig" "^1.0.2" "@octokit/types" "^9.2.3" +"@octokit/plugin-paginate-rest@^9.0.0": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz#2e2a2f0f52c9a4b1da1a3aa17dabe3c459b9e401" + integrity sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw== + dependencies: + "@octokit/types" "^12.6.0" + "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-rest-endpoint-methods@^10.0.0": + version "10.4.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz#41ba478a558b9f554793075b2e20cd2ef973be17" + integrity sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg== + dependencies: + "@octokit/types" "^12.6.0" + +"@octokit/plugin-rest-endpoint-methods@^5.13.0": + version "5.16.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== + dependencies: + "@octokit/types" "^6.39.0" + deprecation "^2.3.1" + "@octokit/plugin-rest-endpoint-methods@^7.0.0": version "7.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz#f7ebe18144fd89460f98f35a587b056646e84502" @@ -4975,6 +5161,15 @@ dependencies: "@octokit/types" "^10.0.0" +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + "@octokit/request-error@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.2.tgz#f74c0f163d19463b87528efe877216c41d6deb0a" @@ -4984,6 +5179,27 @@ deprecation "^2.0.0" once "^1.4.0" +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== + dependencies: + "@octokit/types" "^12.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + "@octokit/request@^6.0.0": version "6.2.2" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.2.tgz#a2ba5ac22bddd5dcb3f539b618faa05115c5a255" @@ -4996,6 +5212,16 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.0" +"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.2.0.tgz#125c547bc3f4c0e2dfa38c6829a1cf00027fbd98" + integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== + dependencies: + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + "@octokit/rest@19.0.11": version "19.0.11" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" @@ -5028,6 +5254,20 @@ dependencies: "@octokit/openapi-types" "^18.0.0" +"@octokit/types@^12.0.0", "@octokit/types@^12.6.0": + version "12.6.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.6.0.tgz#8100fb9eeedfe083aae66473bd97b15b62aedcb2" + integrity sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw== + dependencies: + "@octokit/openapi-types" "^20.0.0" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + "@octokit/types@^8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f" @@ -6086,10 +6326,10 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== -"@sindresorhus/merge-streams@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" - integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== +"@sindresorhus/merge-streams@^2.1.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" + integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": version "1.8.2" @@ -6157,18 +6397,18 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@size-limit/file@~11.0.1": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-11.0.1.tgz#882ca942341f58fea048aa2f403e73a8a34cd882" - integrity sha512-ioSYJ1WY66kc9+3dgTHi5mT/gcaNNCJ22xU87cjzfKiNxmol+lGsNKbplmrJf+QezvPH9kRIFOWxBjGY+DOt3g== +"@size-limit/file@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-11.1.0.tgz#9fe6497f5782cf4d887439b2ded1daf2ad2da620" + integrity sha512-C7Tr9dvw8Jx8If2xyGt0OprB+t03tAf259QJYi4WSl3IRMxH7l8k9qyITa/KCFcmH7tVBduNRSnHAL8Cf90EfQ== -"@size-limit/webpack@~11.0.1": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-11.0.1.tgz#dd7bd770314e6c017724c34659481d62fbbd39e2" - integrity sha512-aQLzpXpp0Xx/AqijgpXnxJGQ3bypLo0acLt8ar3OH83w4cKE1choYROxBsqGFpPSMlwXjCIAwLxLmU98pClPzA== +"@size-limit/webpack@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-11.1.0.tgz#955fa23defae08697caa924c11df4e510dd03884" + integrity sha512-Tijbk9hgr2fPDz6M7ig7K4AbD8sacEljO+1c0bVVEr0JdbO7fv5dWsjS0lzKt+EM3GiuGPUVPZ4f381t/FzTSw== dependencies: - nanoid "^5.0.4" - webpack "^5.89.0" + nanoid "^5.0.6" + webpack "^5.90.3" "@socket.io/base64-arraybuffer@~1.0.2": version "1.0.2" @@ -6336,6 +6576,13 @@ resolved "https://registry.yarnpkg.com/@types/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#5433a141730f8e1d7a8e7486458ceb8144ee5edc" integrity sha512-JOvNJUU/zjfJWcA1aHDnCKHwQjZ7VQ3UNfbcMKXrkQKKyMkJHrQ9vpSVMhgsztrtsbIRJKazMDvg2QggFVwJqw== +"@types/async-retry@^1.4.3": + version "1.4.8" + resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.4.8.tgz#eb32df13aceb9ba1a8a80e7fe518ff4e3fe46bb3" + integrity sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA== + dependencies: + "@types/retry" "*" + "@types/aws-lambda@^8.10.62": version "8.10.73" resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.73.tgz#77773c9accb2cec26fcb7c6b510a555805604a53" @@ -6707,7 +6954,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@1.0.5", "@types/estree@^1.0.1": +"@types/estree@1.0.5", "@types/estree@^1.0.1", "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -7272,6 +7519,11 @@ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.3.tgz#066742d69a0bbba8c5d7d517f82e1140ddeb3c3c" integrity sha512-NH5oErHOtHZYcjCtg69t26aXEk4BN2zLWqf7wnDZ+dpe0iR7Rds1SPGEItl3fca21oOe0n3OCnZ4W7jBxu7FOw== +"@types/retry@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" + integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== + "@types/rimraf@^2.0.2", "@types/rimraf@^2.0.3": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.4.tgz#403887b0b53c6100a6c35d2ab24f6ccc042fec46" @@ -9212,7 +9464,7 @@ async-promise-queue@^1.0.3, async-promise-queue@^1.0.5: async "^2.4.1" debug "^2.6.8" -async-retry@^1.2.1: +async-retry@^1.2.1, async-retry@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== @@ -11043,6 +11295,16 @@ browserslist@^4.16.1, browserslist@^4.21.5, browserslist@^4.6.4: node-releases "^2.0.8" update-browserslist-db "^1.0.10" +browserslist@^4.21.10, browserslist@^4.22.2: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + browserslist@^4.21.9: version "4.22.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" @@ -11053,16 +11315,6 @@ browserslist@^4.21.9: node-releases "^2.0.13" update-browserslist-db "^1.0.13" -browserslist@^4.22.2: - version "4.23.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== - dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - browserstack-local@^1.3.7: version "1.4.8" resolved "https://registry.yarnpkg.com/browserstack-local/-/browserstack-local-1.4.8.tgz#07f74a19b324cf2de69ffe65f9c2baa3a2dd9a0e" @@ -11764,6 +12016,21 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -17180,6 +17447,18 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-fetch-workflow-artifact@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-fetch-workflow-artifact/-/github-fetch-workflow-artifact-2.0.0.tgz#0d763aec2fb3c6d81a165695892c4cda5892f2ac" + integrity sha512-FexZF1gRVKvbzVzOiHXDPFOkGkuqw7XqFoPc084WRBAj7juQqqMi4tCokaBof5I7N49kHYzsHpOVtIkvd/N5cQ== + dependencies: + "@actions/core" "^1.6.0" + "@actions/exec" "^1.1.0" + "@actions/github" "^5.0.0" + "@actions/io" "^1.1.1" + "@types/async-retry" "^1.4.3" + async-retry "^1.3.3" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -17445,12 +17724,12 @@ globby@^13.1.2: merge2 "^1.4.1" slash "^4.0.0" -globby@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" - integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== +globby@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" + integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== dependencies: - "@sindresorhus/merge-streams" "^1.0.0" + "@sindresorhus/merge-streams" "^2.1.0" fast-glob "^3.3.2" ignore "^5.2.4" path-type "^5.0.0" @@ -20173,6 +20452,11 @@ jest@^27.5.1: import-local "^3.0.2" jest-cli "^27.5.1" +jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + jmespath@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" @@ -21031,10 +21315,10 @@ lilconfig@^2.0.3: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== -lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== +lilconfig@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== line-column@^1.0.2: version "1.0.2" @@ -21899,7 +22183,7 @@ markdown-it@^8.3.1: mdurl "^1.0.1" uc.micro "^1.0.5" -markdown-table@^3.0.0: +markdown-table@3.0.3, markdown-table@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== @@ -23320,10 +23604,10 @@ nanoid@^3.3.7: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -nanoid@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.4.tgz#d2b608d8169d7da669279127615535705aa52edf" - integrity sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig== +nanoid@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.6.tgz#7f99a033aa843e4dcf9778bdaec5eb02f4dc44d5" + integrity sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA== nanomatch@^1.2.9: version "1.2.13" @@ -29282,15 +29566,16 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@~11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-11.0.1.tgz#e34ab3302b83833843d578e70a2bf3c6da29f123" - integrity sha512-6L80ocVspWPrhIRg8kPl41VypqTGH8/lu9e6TJiSJpkNLtOR2h/EEqdAO/wNJOv/sUVtjX+lVEWrzBpItGP+gQ== +size-limit@~11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-11.1.0.tgz#f0386fac40bfc26f4d8940e9d4824135e8391691" + integrity sha512-HvqVEUDJ3y/XL69pR3vxTavPr6s4S9ScJhHjLEjpctF0Ymgo1StmHgFeQoyQYb/1ip7olkWxJG3wRcZk1hZcPg== dependencies: bytes-iec "^3.1.1" - chokidar "^3.5.3" - globby "^14.0.0" - lilconfig "^3.0.0" + chokidar "^3.6.0" + globby "^14.0.1" + jiti "^1.21.0" + lilconfig "^3.1.1" nanospinner "^1.1.0" picocolors "^1.0.0" @@ -30838,16 +31123,16 @@ terser-webpack-plugin@^5.1.3: source-map "^0.6.1" terser "^5.7.2" -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" terser@5.14.2: version "5.14.2" @@ -30886,17 +31171,7 @@ terser@^5.0.0, terser@^5.10.0, terser@^5.7.2: source-map "~0.7.2" source-map-support "~0.5.20" -terser@^5.16.8: - version "5.26.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" - integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.17.4: +terser@^5.17.4, terser@^5.26.0: version "5.29.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.1.tgz#44e58045b70c09792ba14bfb7b4e14ca8755b9fa" integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== @@ -31095,6 +31370,13 @@ tinyspy@^1.0.2: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + tmp@0.0.28: version "0.0.28" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" @@ -31116,6 +31398,11 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" +tmp@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + tmp@^0.2.1, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -31439,6 +31726,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -31672,6 +31964,13 @@ undici@^5.21.0: dependencies: "@fastify/busboy" "^2.0.0" +undici@^5.25.4: + version "5.28.3" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b" + integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA== + dependencies: + "@fastify/busboy" "^2.0.0" + unherit@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/unherit/-/unherit-3.0.1.tgz#65b98bb7cb58cee755d7ec699a49e9e8ff172e23" @@ -32942,19 +33241,19 @@ webpack@^5.52.0, webpack@~5.74.0: watchpack "^2.4.0" webpack-sources "^3.2.3" -webpack@^5.89.0: - version "5.89.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" - integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== +webpack@^5.90.3: + version "5.90.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac" + integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" + "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.11.5" "@webassemblyjs/wasm-edit" "^1.11.5" "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" enhanced-resolve "^5.15.0" es-module-lexer "^1.2.1" @@ -32968,7 +33267,7 @@ webpack@^5.89.0: neo-async "^2.6.2" schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" + terser-webpack-plugin "^5.3.10" watchpack "^2.4.0" webpack-sources "^3.2.3" From 0ee499bbbde15983e5baa5e62b2ca0cb5b537d8e Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 15 Mar 2024 11:12:13 +0100 Subject: [PATCH 04/56] test: Wait for test server to close (#11117) --- .../test/transports/http.test.ts | 18 ++++++++++-------- .../test/transports/https.test.ts | 18 ++++++++++-------- packages/node/test/transports/http.test.ts | 18 ++++++++++-------- packages/node/test/transports/https.test.ts | 18 ++++++++++-------- 4 files changed, 40 insertions(+), 32 deletions(-) diff --git a/packages/node-experimental/test/transports/http.test.ts b/packages/node-experimental/test/transports/http.test.ts index 81eb40656b44..42f6400e5f8e 100644 --- a/packages/node-experimental/test/transports/http.test.ts +++ b/packages/node-experimental/test/transports/http.test.ts @@ -80,15 +80,17 @@ const defaultOptions = { // empty function to keep test output clean const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {}); -describe('makeNewHttpTransport()', () => { - afterEach(() => { - jest.clearAllMocks(); - - if (testServer) { - testServer.close(); - } - }); +afterEach(done => { + jest.clearAllMocks(); + + if (testServer && testServer.listening) { + testServer.close(done); + } else { + done(); + } +}); +describe('makeNewHttpTransport()', () => { describe('.send()', () => { it('should correctly send envelope to server', async () => { await setupTestServer({ statusCode: SUCCESS }, (req, body) => { diff --git a/packages/node-experimental/test/transports/https.test.ts b/packages/node-experimental/test/transports/https.test.ts index f3603e60f771..8b0d3312ba54 100644 --- a/packages/node-experimental/test/transports/https.test.ts +++ b/packages/node-experimental/test/transports/https.test.ts @@ -82,15 +82,17 @@ const defaultOptions = { recordDroppedEvent: () => undefined, // noop }; -describe('makeNewHttpsTransport()', () => { - afterEach(() => { - jest.clearAllMocks(); - - if (testServer) { - testServer.close(); - } - }); +afterEach(done => { + jest.clearAllMocks(); + + if (testServer && testServer.listening) { + testServer.close(done); + } else { + done(); + } +}); +describe('makeNewHttpsTransport()', () => { describe('.send()', () => { it('should correctly send envelope to server', async () => { await setupTestServer({ statusCode: SUCCESS }, (req, body) => { diff --git a/packages/node/test/transports/http.test.ts b/packages/node/test/transports/http.test.ts index d7f4535b6b6d..ddf73039a009 100644 --- a/packages/node/test/transports/http.test.ts +++ b/packages/node/test/transports/http.test.ts @@ -83,15 +83,17 @@ const defaultOptions = { // empty function to keep test output clean const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {}); -describe('makeNewHttpTransport()', () => { - afterEach(() => { - jest.clearAllMocks(); - - if (testServer) { - testServer.close(); - } - }); +afterEach(done => { + jest.clearAllMocks(); + + if (testServer && testServer.listening) { + testServer.close(done); + } else { + done(); + } +}); +describe('makeNewHttpTransport()', () => { describe('.send()', () => { it('should correctly send envelope to server', async () => { await setupTestServer({ statusCode: SUCCESS }, (req, body) => { diff --git a/packages/node/test/transports/https.test.ts b/packages/node/test/transports/https.test.ts index d6782293e666..a45319c40e42 100644 --- a/packages/node/test/transports/https.test.ts +++ b/packages/node/test/transports/https.test.ts @@ -84,15 +84,17 @@ const defaultOptions = { recordDroppedEvent: () => undefined, // noop }; -describe('makeNewHttpsTransport()', () => { - afterEach(() => { - jest.clearAllMocks(); - - if (testServer) { - testServer.close(); - } - }); +afterEach(done => { + jest.clearAllMocks(); + + if (testServer && testServer.listening) { + testServer.close(done); + } else { + done(); + } +}); +describe('makeNewHttpsTransport()', () => { describe('.send()', () => { it('should correctly send envelope to server', async () => { await setupTestServer({ statusCode: SUCCESS }, (req, body) => { From c045dcbaa78b5e064d4095f8b711e44eb47f1369 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 15 Mar 2024 06:26:46 -0400 Subject: [PATCH 05/56] test(replay): Skip flaky replay integration test (#11110) ref https://github.com/getsentry/sentry-javascript/issues/11062 --------- Co-authored-by: Luca Forstner --- .../fetch/captureRequestHeaders/test.ts | 8 ++++++-- .../fetch/captureRequestSize/test.ts | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts index 68296df30cdd..b0fe518be7a1 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts @@ -8,7 +8,9 @@ import { shouldSkipReplayTest, } from '../../../../../utils/replayHelpers'; -sentryTest('handles empty/missing request headers', async ({ getLocalTestPath, page, browserName }) => { +// Skipping because this test is flaky +// https://github.com/getsentry/sentry-javascript/issues/11062 +sentryTest.skip('handles empty/missing request headers', async ({ getLocalTestPath, page, browserName }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } @@ -250,7 +252,9 @@ sentryTest('captures request headers on Request', async ({ getLocalTestPath, pag ]); }); -sentryTest('captures request headers as Headers instance', async ({ getLocalTestPath, page, browserName }) => { +// This test is flaky. +// See https://github.com/getsentry/sentry-javascript/pull/11110 +sentryTest.skip('captures request headers as Headers instance', async ({ getLocalTestPath, page, browserName }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts index bc79df066246..089c76c06120 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts @@ -8,7 +8,9 @@ import { shouldSkipReplayTest, } from '../../../../../utils/replayHelpers'; -sentryTest('captures request body size when body is sent', async ({ getLocalTestPath, page }) => { +// Skipping because this test is flaky +// https://github.com/getsentry/sentry-javascript/issues/10395 +sentryTest.skip('captures request body size when body is sent', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } @@ -93,7 +95,9 @@ sentryTest('captures request body size when body is sent', async ({ getLocalTest ]); }); -sentryTest('captures request size from non-text request body', async ({ getLocalTestPath, page }) => { +// This test is flaky. +// See https://github.com/getsentry/sentry-javascript/pull/11110 +sentryTest.skip('captures request size from non-text request body', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } From 1acf54f819bb56ed91f66928d6d7d8b7905dec79 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 15 Mar 2024 11:50:36 +0100 Subject: [PATCH 06/56] feat(nextjs): Bump minimum required Next.js version to `13.2.0` (#11097) --- MIGRATION.md | 5 + packages/nextjs/package.json | 4 +- .../pagesRouterRoutingInstrumentation.ts | 5 +- .../wrapGetServerSidePropsWithSentry.ts | 5 +- .../nextjs/test/integration/next-env.d.ts | 1 + .../test/integration/next10.config.template | 14 - .../test/integration/next11.config.template | 15 - .../test/integration/next12.config.template | 13 - .../integration/next13.appdir.config.template | 3 - packages/nextjs/test/integration/package.json | 4 +- .../pagesRouterInstrumentation.test.ts | 6 +- packages/nextjs/test/run-integration-tests.sh | 110 +-- packages/nextjs/test/types/package.json | 2 +- .../test/transports/http.test.ts | 4 +- yarn.lock | 665 +++++------------- 15 files changed, 240 insertions(+), 616 deletions(-) delete mode 100644 packages/nextjs/test/integration/next10.config.template delete mode 100644 packages/nextjs/test/integration/next11.config.template delete mode 100644 packages/nextjs/test/integration/next12.config.template diff --git a/MIGRATION.md b/MIGRATION.md index fda328f7ba42..0df7e781fe30 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -630,6 +630,11 @@ The following previously deprecated API has been removed from the `@sentry/nextj - `IS_BUILD` - `isBuild` +#### Updated minimum compatible Next.js version to `13.2.0` + +The minimum version of Next.js compatible with the Sentry Next.js SDK has been raised to `13.2.0`. Older versions may +exhibit bugs or unexpected behaviour. + #### Merging of the Sentry Webpack Plugin options and SDK Build options With version 8 of the Sentry Next.js SDK, `withSentryConfig` will no longer accept 3 arguments. The second argument diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 58e5962f53e0..96fe7c6b4155 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -52,10 +52,10 @@ "@types/resolve": "1.20.3", "@types/webpack": "^4.41.31", "eslint-plugin-react": "^7.31.11", - "next": "10.1.3" + "next": "13.2.0" }, "peerDependencies": { - "next": "^10.0.8 || ^11.0 || ^12.0 || ^13.0 || ^14.0", + "next": "^13.2.0 || ^14.0", "react": "16.x || 17.x || 18.x", "webpack": ">= 4.0.0" }, diff --git a/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts b/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts index 720921ddb1e9..3685f9590fbb 100644 --- a/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts +++ b/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts @@ -7,7 +7,8 @@ import { import { WINDOW, startBrowserTracingNavigationSpan, startBrowserTracingPageLoadSpan } from '@sentry/react'; import type { Client, TransactionSource } from '@sentry/types'; import { browserPerformanceTimeOrigin, logger, stripUrlQueryAndFragment } from '@sentry/utils'; -import type { NEXT_DATA as NextData } from 'next/dist/next-server/lib/utils'; + +import type { NEXT_DATA } from 'next/dist/shared/lib/utils'; import RouterImport from 'next/router'; // next/router v10 is CJS @@ -27,7 +28,7 @@ const globalObject = WINDOW as typeof WINDOW & { /** * Describes data located in the __NEXT_DATA__ script tag. This tag is present on every page of a Next.js app. */ -interface SentryEnhancedNextData extends NextData { +interface SentryEnhancedNextData extends NEXT_DATA { props: { pageProps?: { _sentryTraceData?: string; // trace parent info, if injected by a data-fetcher diff --git a/packages/nextjs/src/common/wrapGetServerSidePropsWithSentry.ts b/packages/nextjs/src/common/wrapGetServerSidePropsWithSentry.ts index 32122869b8f4..782bc523f935 100644 --- a/packages/nextjs/src/common/wrapGetServerSidePropsWithSentry.ts +++ b/packages/nextjs/src/common/wrapGetServerSidePropsWithSentry.ts @@ -48,10 +48,11 @@ export function wrapGetServerSidePropsWithSentry( const activeSpan = getActiveSpan(); const requestTransaction = getSpanFromRequest(req) ?? (activeSpan ? getRootSpan(activeSpan) : undefined); if (requestTransaction) { - serverSideProps.props._sentryTraceData = spanToTraceHeader(requestTransaction); + (serverSideProps.props as Record)._sentryTraceData = spanToTraceHeader(requestTransaction); const dynamicSamplingContext = getDynamicSamplingContextFromSpan(requestTransaction); - serverSideProps.props._sentryBaggage = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext); + (serverSideProps.props as Record)._sentryBaggage = + dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext); } } diff --git a/packages/nextjs/test/integration/next-env.d.ts b/packages/nextjs/test/integration/next-env.d.ts index 4f11a03dc6cc..fd36f9494e2c 100644 --- a/packages/nextjs/test/integration/next-env.d.ts +++ b/packages/nextjs/test/integration/next-env.d.ts @@ -1,5 +1,6 @@ /// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/nextjs/test/integration/next10.config.template b/packages/nextjs/test/integration/next10.config.template deleted file mode 100644 index e01358c9e4d4..000000000000 --- a/packages/nextjs/test/integration/next10.config.template +++ /dev/null @@ -1,14 +0,0 @@ -const { withSentryConfig } = require('@sentry/nextjs'); - -// NOTE: This will be used by integration tests to distinguish between Webpack 4 and Webpack 5 -const moduleExports = { - future: { - webpack5: %RUN_WEBPACK_5%, - }, - pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], -}; - -module.exports = withSentryConfig(moduleExports, { - debug: true, - excludeServerRoutes: ['/api/excludedEndpoints/excludedWithString', /\/api\/excludedEndpoints\/excludedWithRegExp/], -}); diff --git a/packages/nextjs/test/integration/next11.config.template b/packages/nextjs/test/integration/next11.config.template deleted file mode 100644 index 5215e38a9e5b..000000000000 --- a/packages/nextjs/test/integration/next11.config.template +++ /dev/null @@ -1,15 +0,0 @@ -const { withSentryConfig } = require('@sentry/nextjs'); - -// NOTE: This will be used by integration tests to distinguish between Webpack 4 and Webpack 5 -const moduleExports = { - webpack5: %RUN_WEBPACK_5%, - eslint: { - ignoreDuringBuilds: true, - }, - pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], -}; - -module.exports = withSentryConfig(moduleExports, { - debug: true, - excludeServerRoutes: ['/api/excludedEndpoints/excludedWithString', /\/api\/excludedEndpoints\/excludedWithRegExp/], -}); diff --git a/packages/nextjs/test/integration/next12.config.template b/packages/nextjs/test/integration/next12.config.template deleted file mode 100644 index 82fe205e279d..000000000000 --- a/packages/nextjs/test/integration/next12.config.template +++ /dev/null @@ -1,13 +0,0 @@ -const { withSentryConfig } = require('@sentry/nextjs'); - -const moduleExports = async () => ({ - eslint: { - ignoreDuringBuilds: true, - }, - pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], -}); - -module.exports = withSentryConfig(moduleExports, { - debug: true, - excludeServerRoutes: ['/api/excludedEndpoints/excludedWithString', /\/api\/excludedEndpoints\/excludedWithRegExp/], -}); diff --git a/packages/nextjs/test/integration/next13.appdir.config.template b/packages/nextjs/test/integration/next13.appdir.config.template index e9e4e4e04b2e..815eba98e889 100644 --- a/packages/nextjs/test/integration/next13.appdir.config.template +++ b/packages/nextjs/test/integration/next13.appdir.config.template @@ -4,9 +4,6 @@ const moduleExports = { eslint: { ignoreDuringBuilds: true, }, - experimental: { - appDir: Number(process.env.NODE_MAJOR) >= 16, // experimental.appDir requires Node v16.8.0 or later. - }, pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], }; diff --git a/packages/nextjs/test/integration/package.json b/packages/nextjs/test/integration/package.json index fd66eb8ec267..fc93bd5681e4 100644 --- a/packages/nextjs/test/integration/package.json +++ b/packages/nextjs/test/integration/package.json @@ -13,8 +13,8 @@ "dependencies": { "@sentry/nextjs": "file:../../", "next": "latest", - "react": "^17.0.1", - "react-dom": "^17.0.1" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@types/node": "^15.3.1", diff --git a/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts b/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts index 7ca1f01ff8d6..3091fea80cec 100644 --- a/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts +++ b/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts @@ -1,7 +1,7 @@ import { WINDOW } from '@sentry/react'; import type { Client } from '@sentry/types'; import { JSDOM } from 'jsdom'; -import type { NEXT_DATA as NextData } from 'next/dist/next-server/lib/utils'; +import type { NEXT_DATA } from 'next/dist/shared/lib/utils'; import Router from 'next/router'; import { @@ -60,7 +60,7 @@ describe('pagesRouterInstrumentPageLoad', () => { navigatableRoutes?: string[]; hasNextData: boolean; }) { - const nextDataContent: NextData = { + const nextDataContent: NEXT_DATA = { props: pageProperties.props, page: pageProperties.route, query: pageProperties.query, @@ -222,7 +222,7 @@ describe('pagesRouterInstrumentNavigation', () => { navigatableRoutes?: string[]; hasNextData: boolean; }) { - const nextDataContent: NextData = { + const nextDataContent: NEXT_DATA = { props: pageProperties.props, page: pageProperties.route, query: pageProperties.query, diff --git a/packages/nextjs/test/run-integration-tests.sh b/packages/nextjs/test/run-integration-tests.sh index 2522b05f6acb..834bd34d659b 100755 --- a/packages/nextjs/test/run-integration-tests.sh +++ b/packages/nextjs/test/run-integration-tests.sh @@ -31,10 +31,10 @@ echo "Running integration tests on Node $NODE_VERSION" # make a backup of our config file so we can restore it when we're done mv next.config.js next.config.js.bak -for NEXTJS_VERSION in 10 11 12 13; do +for NEXTJS_VERSION in 13; do for USE_APPDIR in true false; do - if ([ "$NEXTJS_VERSION" -lt "13" ] || [ "$NODE_MAJOR" -lt "16" ]) && [ "$USE_APPDIR" == true ]; then - # App dir doesn not work on Next.js < 13 or Node.js < 16 + if ([ "$NODE_MAJOR" -lt "16" ]) && [ "$USE_APPDIR" == true ]; then + # App dir doesn not work on Node.js < 16 continue fi @@ -64,11 +64,6 @@ for NEXTJS_VERSION in 10 11 12 13; do sed -i /"next.*latest"/s/latest/"${NEXTJS_VERSION}.x"/ package.json fi - # Next.js v13 requires React 18.2.0 - if [ "$NEXTJS_VERSION" -eq "13" ]; then - npm i --save react@18.2.0 react-dom@18.2.0 - fi - # Yarn install randomly started failing because it couldn't find some cache so for now we need to run these two commands which seem to fix it. # It was pretty much this issue: https://github.com/yarnpkg/yarn/issues/5275 rm -rf node_modules @@ -82,84 +77,45 @@ for NEXTJS_VERSION in 10 11 12 13; do linkcli && linkplugin mv -f package.json.bak package.json 2>/dev/null || true - SHOULD_RUN_WEBPACK_5=(true) - # Only run Webpack 4 tests for Next 10 and Next 11 - if [ "$NEXTJS_VERSION" -eq "10" ] || [ "$NEXTJS_VERSION" -eq "11" ]; then - SHOULD_RUN_WEBPACK_5+=(false) - fi - - for RUN_WEBPACK_5 in ${SHOULD_RUN_WEBPACK_5[*]}; do - [ "$RUN_WEBPACK_5" == true ] && - WEBPACK_VERSION=5 || - WEBPACK_VERSION=4 - - if [ "$NODE_MAJOR" -gt "17" ]; then - # Node v17+ does not work with NextJS 10 and 11 because of their legacy openssl use - # Ref: https://github.com/vercel/next.js/issues/30078 - if [ "$NEXTJS_VERSION" -lt "12" ]; then - echo "[nextjs@$NEXTJS_VERSION Node $NODE_MAJOR not compatible with NextJS $NEXTJS_VERSION" - # Continues the 2nd enclosing loop, which is the outer loop that iterates over the NextJS version - continue 2 - fi - - # Node v18 only with Webpack 5 and above - # https://github.com/webpack/webpack/issues/14532#issuecomment-947513562 - # Context: https://github.com/vercel/next.js/issues/30078#issuecomment-947338268 - if [ "$WEBPACK_VERSION" -eq "4" ]; then - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Node $NODE_MAJOR not compatible with Webpack $WEBPACK_VERSION" - # Continues the 1st enclosing loop, which is the inner loop that iterates over the Webpack version - continue - fi - + if [ "$NEXTJS_VERSION" -eq "13" ]; then + if [ "$USE_APPDIR" == true ]; then + cat next13.appdir.config.template > next.config.js + else + cat next13.config.template > next.config.js fi + fi - # next 10 defaults to webpack 4 and next 11 defaults to webpack 5, but each can use either based on settings - if [ "$NEXTJS_VERSION" -eq "10" ]; then - sed "s/%RUN_WEBPACK_5%/$RUN_WEBPACK_5/g" next.config.js - elif [ "$NEXTJS_VERSION" -eq "11" ]; then - sed "s/%RUN_WEBPACK_5%/$RUN_WEBPACK_5/g" next.config.js - elif [ "$NEXTJS_VERSION" -eq "12" ]; then - sed "s/%RUN_WEBPACK_5%/$RUN_WEBPACK_5/g" next.config.js - elif [ "$NEXTJS_VERSION" -eq "13" ]; then - if [ "$USE_APPDIR" == true ]; then - sed "s/%RUN_WEBPACK_5%/$RUN_WEBPACK_5/g" next.config.js - else - sed "s/%RUN_WEBPACK_5%/$RUN_WEBPACK_5/g" next.config.js - fi - fi + echo "[nextjs@$NEXTJS_VERSION] Building..." + yarn build - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Building..." - yarn build + # we keep this updated as we run the tests, so that if it's ever non-zero, we can bail + EXIT_CODE=0 - # we keep this updated as we run the tests, so that if it's ever non-zero, we can bail - EXIT_CODE=0 + if [ "$USE_APPDIR" == true ]; then + echo "Skipping server tests for appdir" + else + echo "[nextjs@$NEXTJS_VERSION] Running server tests with options: $args" + (cd .. && yarn test:integration:server) || EXIT_CODE=$? + fi - if [ "$USE_APPDIR" == true ]; then - echo "Skipping server tests for appdir" - else - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Running server tests with options: $args" - (cd .. && yarn test:integration:server) || EXIT_CODE=$? - fi + if [ $EXIT_CODE -eq 0 ]; then + echo "[nextjs@$NEXTJS_VERSION] Server integration tests passed" + else + echo "[nextjs@$NEXTJS_VERSION] Server integration tests failed" + exit 1 + fi + if [ "$NODE_MAJOR" -lt "14" ]; then + echo "[nextjs@$NEXTJS_VERSION] Skipping client tests on Node $NODE_MAJOR" + else + echo "[nextjs@$NEXTJS_VERSION] Running client tests with options: $args" + (cd .. && yarn test:integration:client) || EXIT_CODE=$? if [ $EXIT_CODE -eq 0 ]; then - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Server integration tests passed" + echo "[nextjs@$NEXTJS_VERSION] Client integration tests passed" else - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Server integration tests failed" + echo "[nextjs@$NEXTJS_VERSION] Client integration tests failed" exit 1 fi - - if [ "$NODE_MAJOR" -lt "14" ]; then - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Skipping client tests on Node $NODE_MAJOR" - else - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Running client tests with options: $args" - (cd .. && yarn test:integration:client) || EXIT_CODE=$? - if [ $EXIT_CODE -eq 0 ]; then - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Client integration tests passed" - else - echo "[nextjs@$NEXTJS_VERSION | webpack@$WEBPACK_VERSION] Client integration tests failed" - exit 1 - fi - fi - done + fi done done diff --git a/packages/nextjs/test/types/package.json b/packages/nextjs/test/types/package.json index b73620071d6c..86f74bfe060a 100644 --- a/packages/nextjs/test/types/package.json +++ b/packages/nextjs/test/types/package.json @@ -4,6 +4,6 @@ "test": "ts-node test.ts" }, "dependencies": { - "next": "12.3.1" + "next": "13.2.0" } } diff --git a/packages/node-experimental/test/transports/http.test.ts b/packages/node-experimental/test/transports/http.test.ts index 42f6400e5f8e..e945c086959a 100644 --- a/packages/node-experimental/test/transports/http.test.ts +++ b/packages/node-experimental/test/transports/http.test.ts @@ -53,14 +53,14 @@ function setupTestServer( res.connection?.end(); }); - testServer.listen(18100); + testServer.listen(18101); return new Promise(resolve => { testServer?.on('listening', resolve); }); } -const TEST_SERVER_URL = 'http://localhost:18100'; +const TEST_SERVER_URL = 'http://localhost:18101'; const EVENT_ENVELOPE = createEnvelope({ event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2', sent_at: '123' }, [ [{ type: 'event' }, { event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2' }] as EventItem, diff --git a/yarn.lock b/yarn.lock index ea5bbcb29957..1fc6c482b15b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2545,13 +2545,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" @@ -2677,15 +2670,6 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" @@ -3916,14 +3900,6 @@ resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-2.0.0.tgz#5e8b7298f31ff8f7b260e6b7363c7e9ceed7d9c5" integrity sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA== -"@hapi/accept@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" - integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - "@hapi/accept@^5.0.1": version "5.0.2" resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" @@ -4663,37 +4639,75 @@ multer "1.4.4-lts.1" tslib "2.6.2" -"@next/env@10.1.3": - version "10.1.3" - resolved "https://registry.yarnpkg.com/@next/env/-/env-10.1.3.tgz#29e5d62919b4a7b1859f8d36169848dc3f5ddebe" - integrity sha512-q7z7NvmRs66lCQmVJtKjDxVtMTjSwP6ExVzaH46pbTH60MHgzEJ9H4jXrFLTihPmCIvpAv6Ai04jbS8dcg1ZMQ== - -"@next/polyfill-module@10.1.3": - version "10.1.3" - resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.1.3.tgz#beafe89bc4235d436fa0ed02c9d2a5d311fb0238" - integrity sha512-1DtUVcuoBJAn5IrxIZQjUG1KTPkiXMYloykPSkRxawimgvG9dRj2kscU+4KGNSFxHoxW9c68VRCb+7MDz5aGGw== - -"@next/react-dev-overlay@10.1.3": - version "10.1.3" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.1.3.tgz#ee1c6033b29be9b383e061bd9705021d131ea445" - integrity sha512-vIgUah3bR9+MKzwU1Ni5ONfYM0VdI42i7jZ+Ei1c0wjwkG9anVnDqhSQ3mVg62GP2nt7ExaaFyf9THbsw5KYXg== - dependencies: - "@babel/code-frame" "7.12.11" - anser "1.4.9" - chalk "4.0.0" - classnames "2.2.6" - css.escape "1.5.1" - data-uri-to-buffer "3.0.1" - platform "1.3.6" - shell-quote "1.7.2" - source-map "0.8.0-beta.0" - stacktrace-parser "0.1.10" - strip-ansi "6.0.0" - -"@next/react-refresh-utils@10.1.3": - version "10.1.3" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.1.3.tgz#65b3e1b9846c02452787fde1d54ad9c54b506dbd" - integrity sha512-P4GJZuLKfD/o42JvGZ/xP4Hxg68vd3NeZxOLqIuQKFjjaYgC2IrO+lE5PTwGmRkytjfprJC+9j7Jss/xQAS6QA== +"@next/env@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.0.tgz#1a597a885ce11860446c88e1098fd517dc0e84b1" + integrity sha512-yv9oaRVa+AxFa27uQOVecS931NrE+GcQSqcL2HaRxL8NunStLtPiyNm/VixvdzfiWLabMz4dXvbXfwCNaECzcw== + +"@next/swc-android-arm-eabi@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.0.tgz#241d007fdb2f06f70ab21d5a333e08a29de9cd7f" + integrity sha512-VMetUwBWtDBGzNiOkhiWTP+99ZYW5NVRpIGlUsldEtY8IQIqleaUgW9iamsO0kDSjhWNdCQCB+xu5HcCvmDTww== + +"@next/swc-android-arm64@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.0.tgz#924e79197f094a12ac3409b6a416f84c2f74341d" + integrity sha512-fAiP54Om3fSj5aKntxEvW5fWzyMUzLzjFrHuUt5jBnTRWM4QikhLy547OZDoxycyk4GoQVHmNMSA3hILsrV/dQ== + +"@next/swc-darwin-arm64@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.0.tgz#bfd3dfe90903b3bbf81f617f2b1d4f8b9e20e8aa" + integrity sha512-F4zbvPnq3zCTqyyM6WN8ledazzJx3OrxIdc2ewnqnfk6tjBZ/aq1M27GhEfylGjZG1KvbtJCxUqi7dR/6R94bA== + +"@next/swc-darwin-x64@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.0.tgz#3d159bb2889f093d173546a6e5edd6260df7e156" + integrity sha512-Y9+fB7TLAAnkCZQXWjwJg5bi1pT5NuNkI+HoKYp26U1J0SxW5vZWFGc31WFmmHIz3wA0zlaQfRa4mF7cpZL5yw== + +"@next/swc-freebsd-x64@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.0.tgz#33877ad933e1b3d7776dfb060f4e3b55f675523e" + integrity sha512-b9bCLlfznbV6e6Vg9wKYZJs7Uz8z/Py9105MYq95a3JlHiI3e/fvBpm1c7fe5QlvWJlqyNav6Clyu1W+lDk+IQ== + +"@next/swc-linux-arm-gnueabihf@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.0.tgz#31b81ff368e5337019f858c4a0d7ae7f80310728" + integrity sha512-jY/2JjDVVyktzRtMclAIVLgOxk5Ut9NKu8kKMCPdKMf9/ila37UpRfIh2fOXtRhv8AK7Lq/iSI/v2vjopZxZgQ== + +"@next/swc-linux-arm64-gnu@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.0.tgz#e46bd73d1ccc38be46009b88dc87df88d8c44fa1" + integrity sha512-EKjWU3/lSBhOwPQRQLbySUnATnXygCjGd8ag3rP6d7kTIhfuPO4pY+DYW+wHOt5qB1ULNRmW0sXZ/ZKnQrVszw== + +"@next/swc-linux-arm64-musl@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.0.tgz#54a4f0cc1431f3e4e24a5e017e473a5fc761b33b" + integrity sha512-T5R9r23Docwo6PYZRzndeFB5WUN3+smMbyk25K50MAngCiSydr82/YfAetcp7Ov7Shp4a8xXP9DHDIsBas6wbQ== + +"@next/swc-linux-x64-gnu@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.0.tgz#1c17a6121846decac2d701a040649f8f764ac671" + integrity sha512-FeXTc2KFvUSnTJmkpNMKoBHmNA1Ujr3QdfcKnVm/gXWqK+rfuEhAiRNOo+6mPcQ0noEge1j8Ai+W1LTbdDwPZQ== + +"@next/swc-linux-x64-musl@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.0.tgz#a4f39cfeb19123196a2ebc2061e60897b29ffa3f" + integrity sha512-7Y0XMUzWDWI94pxC0xWGMWrgTFKHu/myc+GTNVEwvLtI9WA0brKqZrL1tCQW/+t6J+5XqS7w+AHbViaF+muu1A== + +"@next/swc-win32-arm64-msvc@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.0.tgz#d21ef0d0c2757cee9b1d723aafb9e02ca25852eb" + integrity sha512-NM5h2gEMe8EtvOeRU3vRM83tq1xo6Qvhuz0xJem/176SAMxbqzAz4LLP3l9VyUI3SIzGyiztvF/1c0jqeq7UEA== + +"@next/swc-win32-ia32-msvc@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.0.tgz#529852721e3f00afb9385640cbac1a899342c6ba" + integrity sha512-G7YEJZX9wkcUaBOvXQSCF9Wb2sqP8hhsmFXF6po7M3llw4b+2ut2DXLf+UMdthOdUK0u+Ijhy5F7SbW9HOn2ig== + +"@next/swc-win32-x64-msvc@13.2.0": + version "13.2.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.0.tgz#49bc50b1865d20b29892a415fcbaab84217112a5" + integrity sha512-QTAjSuPevnZnlHfC4600+4NvxRuPar6tWdYbPum9vnk3OIH1xu9YLK+2ArPGFd0bB2K8AoY2SIMbs1dhK0GjQQ== "@ngtools/webpack@10.2.4": version "10.2.4" @@ -5289,13 +5303,6 @@ dependencies: "@octokit/openapi-types" "^18.0.0" -"@opentelemetry/api@0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.14.0.tgz#4e17d8d2f1da72b19374efa7b6526aa001267cae" - integrity sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ== - dependencies: - "@opentelemetry/context-base" "^0.14.0" - "@opentelemetry/api@1.7.0", "@opentelemetry/api@^1.6.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" @@ -5318,11 +5325,6 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.12.0.tgz#4906ae27359d3311e3dea1b63770a16f60848550" integrity sha512-UXwSsXo3F3yZ1dIBOG9ID8v2r9e+bqLWoizCtTb8rXtwF+N5TM7hzzvQz72o3nBU+zrI/D5e+OqAYK8ZgDd3DA== -"@opentelemetry/context-base@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" - integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw== - "@opentelemetry/core@1.20.0": version "1.20.0" resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.20.0.tgz#ab1a8204ed10cc11e17bb61db658da0f3686d4ac" @@ -6456,6 +6458,13 @@ svelte-hmr "^0.15.1" vitefu "^0.2.2" +"@swc/helpers@0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -8758,11 +8767,6 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= -anser@1.4.9: - version "1.4.9" - resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" - integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA== - ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" @@ -8829,7 +8833,7 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -8898,7 +8902,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.1, anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.1, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -9285,7 +9289,15 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@2.0.0, assert@^2.0.0: +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== @@ -9295,14 +9307,6 @@ assert@2.0.0, assert@^2.0.0: object-is "^1.0.1" util "^0.12.0" -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -9318,11 +9322,6 @@ ast-module-types@^2.3.2, ast-module-types@^2.4.0, ast-module-types@^2.7.0, ast-m resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-2.7.1.tgz#3f7989ef8dfa1fdb82dfe0ab02bdfc7c77a57dd3" integrity sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw== -ast-types@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" - integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== - ast-types@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7" @@ -10029,11 +10028,6 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= -babel-plugin-syntax-jsx@6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== - babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" @@ -11249,24 +11243,13 @@ browserify-sign@^4.0.0: readable-stream "^3.6.2" safe-buffer "^5.2.1" -browserify-zlib@0.2.0, browserify-zlib@^0.2.0: +browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserslist@4.16.1: - version "4.16.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" - integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== - dependencies: - caniuse-lite "^1.0.30001173" - colorette "^1.2.1" - electron-to-chromium "^1.3.634" - escalade "^3.1.1" - node-releases "^1.1.69" - browserslist@^3.2.6: version "3.2.8" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" @@ -11402,14 +11385,6 @@ buffer@4.9.2, buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -11485,11 +11460,6 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -11798,7 +11768,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001173, caniuse-lite@^1.0.30001179, caniuse-lite@^1.0.30001400: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400: version "1.0.30001422" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== @@ -11808,6 +11778,11 @@ caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001449: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001453.tgz#6d3a1501622bf424a3cee5ad9550e640b0de3de8" integrity sha512-R9o/uySW38VViaTrOtwfbFEiBFUh7ST3uIG4OEymIG3/uKdHDO4xk/FaqfUw0d+irSUyFPy3dZszf9VvSTPnsA== +caniuse-lite@^1.0.30001406: + version "1.0.30001597" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz#8be94a8c1d679de23b22fbd944232aa1321639e6" + integrity sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w== + caniuse-lite@^1.0.30001541: version "1.0.30001546" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz#10fdad03436cfe3cc632d3af7a99a0fb497407f0" @@ -11890,14 +11865,6 @@ chalk@3.0.0, chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -11967,21 +11934,6 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - "chokidar@>=2.0.0 <4.0.0", "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.2.1, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -12115,11 +12067,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - clean-base-url@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clean-base-url/-/clean-base-url-1.0.0.tgz#c901cf0a20b972435b0eccd52d056824a4351b7b" @@ -12234,6 +12181,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -12669,7 +12621,7 @@ consolidate@^0.16.0: dependencies: bluebird "^3.7.2" -constants-browserify@1.0.0, constants-browserify@^1.0.0: +constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= @@ -13064,7 +13016,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@3.12.0, crypto-browserify@^3.11.0, crypto-browserify@^3.12.0: +crypto-browserify@^3.11.0, crypto-browserify@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== @@ -13270,11 +13222,6 @@ css-what@^5.0.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== -css.escape@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= - css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" @@ -13376,22 +13323,6 @@ cssnano-preset-default@^5.2.14: postcss-svgo "^5.1.0" postcss-unique-selectors "^5.1.1" -cssnano-preset-simple@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.2.2.tgz#c631bf79ffec7fdfc4069e2f2da3ca67d99d8413" - integrity sha512-gtvrcRSGtP3hA/wS8mFVinFnQdEsEpm3v4I/s/KmNjpdWaThV/4E5EojAzFXxyT5OCSRPLlHR9iQexAqKHlhGQ== - dependencies: - caniuse-lite "^1.0.30001179" - postcss "^7.0.32" - -cssnano-simple@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.2.2.tgz#72c2c3970e67123c3b4130894a30dc1050267007" - integrity sha512-4slyYc1w4JhSbhVX5xi9G0aQ42JnRyPg+7l7cqoNyoIDzfWx40Rq3JQZnoAWDu60A4AvKVp9ln/YSUOdhDX68g== - dependencies: - cssnano-preset-simple "1.2.2" - postcss "^7.0.32" - cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" @@ -13524,7 +13455,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-to-buffer@3.0.1, data-uri-to-buffer@^3.0.1: +data-uri-to-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== @@ -14159,11 +14090,6 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -domain-browser@4.19.0: - version "4.19.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1" - integrity sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ== - domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -14338,7 +14264,7 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634, electron-to-chromium@^1.4.251: +electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.251: version "1.4.284" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== @@ -15082,7 +15008,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@0.1.13, encoding@^0.1.11, encoding@^0.1.12, encoding@^0.1.13: +encoding@^0.1.11, encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -16019,7 +15945,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@1.8.1, etag@~1.8.1: +etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= @@ -17164,7 +17090,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@2.3.2, fsevents@^2.3.2, fsevents@~2.3.1, fsevents@~2.3.2: +fsevents@2.3.2, fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -17294,13 +17220,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" -get-orientation@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-orientation/-/get-orientation-1.1.2.tgz#20507928951814f8a91ded0a0e67b29dfab98947" - integrity sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ== - dependencies: - stream-parser "^0.3.1" - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -17469,7 +17388,7 @@ github-slugger@^2.0.0: resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== -glob-parent@5.1.2, glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@5.1.2, glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -18573,17 +18492,6 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -18674,7 +18582,7 @@ http-terminator@^3.2.0: roarr "^7.0.4" type-fest "^2.3.3" -https-browserify@1.0.0, https-browserify@^1.0.0: +https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= @@ -18955,7 +18863,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -20416,15 +20324,6 @@ jest-worker@26.3.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@27.0.0-next.5: - version "27.0.0-next.5" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.0-next.5.tgz#5985ee29b12a4e191f4aae4bb73b97971d86ec28" - integrity sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^26.3.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -21715,7 +21614,7 @@ lodash.uniqby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= -lodash@^4.17.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0, lodash@~4.17.21: +lodash@^4.17.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0, lodash@~4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -23589,21 +23488,21 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.16, nanoid@^3.1.23: +nanoid@^3.1.23: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.4, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - nanoid@^5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.6.tgz#7f99a033aa843e4dcf9778bdaec5eb02f4dc44d5" @@ -23643,13 +23542,6 @@ native-request@^1.0.5: resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== -native-url@0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" - integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== - dependencies: - querystring "^0.2.0" - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -23701,61 +23593,30 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -next@10.1.3: - version "10.1.3" - resolved "https://registry.yarnpkg.com/next/-/next-10.1.3.tgz#e26e8371343a42bc2ba9be5cb253a7d324d03673" - integrity sha512-8Jf38F+s0YcXXkJGF5iUxOqSmbHrey0fX5Epc43L0uwDKmN2jK9vhc2ihCwXC1pmu8d2m/8wfTiXRJKGti55yw== - dependencies: - "@babel/runtime" "7.12.5" - "@hapi/accept" "5.0.1" - "@next/env" "10.1.3" - "@next/polyfill-module" "10.1.3" - "@next/react-dev-overlay" "10.1.3" - "@next/react-refresh-utils" "10.1.3" - "@opentelemetry/api" "0.14.0" - assert "2.0.0" - ast-types "0.13.2" - browserify-zlib "0.2.0" - browserslist "4.16.1" - buffer "5.6.0" - caniuse-lite "^1.0.30001179" - chalk "2.4.2" - chokidar "3.5.1" - constants-browserify "1.0.0" - crypto-browserify "3.12.0" - cssnano-simple "1.2.2" - domain-browser "4.19.0" - encoding "0.1.13" - etag "1.8.1" - find-cache-dir "3.3.1" - get-orientation "1.1.2" - https-browserify "1.0.0" - jest-worker "27.0.0-next.5" - native-url "0.3.4" - node-fetch "2.6.1" - node-html-parser "1.4.9" - node-libs-browser "^2.2.1" - os-browserify "0.3.0" - p-limit "3.1.0" - path-browserify "1.0.1" - pnp-webpack-plugin "1.6.4" - postcss "8.1.7" - process "0.11.10" - prop-types "15.7.2" - querystring-es3 "0.2.1" - raw-body "2.4.1" - react-is "16.13.1" - react-refresh "0.8.3" - stream-browserify "3.0.0" - stream-http "3.1.1" - string_decoder "1.3.0" - styled-jsx "3.3.2" - timers-browserify "2.0.12" - tty-browserify "0.0.1" - use-subscription "1.5.1" - util "0.12.3" - vm-browserify "1.1.2" - watchpack "2.1.1" +next@13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/next/-/next-13.2.0.tgz#100b2d1dca120a3460c767ccdad80fc8e2463e31" + integrity sha512-vhByvKHedsaMwNTwXKzK4IMmNp7XI7vN4etcGUoIpLrIuDfoYA3bS0ImS4X9F6lKzopG5aVp7a1CjuzF2NGkvA== + dependencies: + "@next/env" "13.2.0" + "@swc/helpers" "0.4.14" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + optionalDependencies: + "@next/swc-android-arm-eabi" "13.2.0" + "@next/swc-android-arm64" "13.2.0" + "@next/swc-darwin-arm64" "13.2.0" + "@next/swc-darwin-x64" "13.2.0" + "@next/swc-freebsd-x64" "13.2.0" + "@next/swc-linux-arm-gnueabihf" "13.2.0" + "@next/swc-linux-arm64-gnu" "13.2.0" + "@next/swc-linux-arm64-musl" "13.2.0" + "@next/swc-linux-x64-gnu" "13.2.0" + "@next/swc-linux-x64-musl" "13.2.0" + "@next/swc-win32-arm64-msvc" "13.2.0" + "@next/swc-win32-ia32-msvc" "13.2.0" + "@next/swc-win32-x64-msvc" "13.2.0" ng-packagr@^10.1.0: version "10.1.2" @@ -23928,11 +23789,6 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -24012,13 +23868,6 @@ node-gyp@^9.4.1: tar "^6.1.2" which "^2.0.2" -node-html-parser@1.4.9: - version "1.4.9" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" - integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== - dependencies: - he "1.2.0" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -24070,11 +23919,6 @@ node-notifier@^10.0.0: uuid "^8.3.2" which "^2.0.2" -node-releases@^1.1.69: - version "1.1.77" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" - integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== - node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" @@ -24936,7 +24780,7 @@ original@^1.0.0: dependencies: url-parse "^1.4.3" -os-browserify@0.3.0, os-browserify@^0.3.0: +os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= @@ -25001,13 +24845,6 @@ p-is-promise@^1.1.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= -p-limit@3.1.0, p-limit@^3.0.1, p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -25022,6 +24859,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.1, p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" @@ -25444,7 +25288,7 @@ path-browserify@0.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== -path-browserify@1.0.1, path-browserify@^1.0.0: +path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== @@ -25835,11 +25679,6 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -platform@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - playwright-core@1.40.1, playwright-core@^1.29.1: version "1.40.1" resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.40.1.tgz#442d15e86866a87d90d07af528e0afabe4c75c05" @@ -26847,16 +26686,6 @@ postcss@7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@8.1.7: - version "8.1.7" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.7.tgz#ff6a82691bd861f3354fd9b17b2332f88171233f" - integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ== - dependencies: - colorette "^1.2.1" - line-column "^1.0.2" - nanoid "^3.1.16" - source-map "^0.6.1" - postcss@8.3.6: version "8.3.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" @@ -26866,6 +26695,15 @@ postcss@8.3.6: nanoid "^3.1.23" source-map-js "^0.6.2" +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6: version "7.0.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" @@ -27125,7 +26963,7 @@ process-relative-require@^1.0.0: dependencies: node-modules-path "^1.0.0" -process@0.11.10, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -27203,15 +27041,6 @@ promzard@^1.0.0: dependencies: read "^2.0.0" -prop-types@15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -27413,7 +27242,7 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring-es3@0.2.1, querystring-es3@^0.2.0, querystring-es3@^0.2.1: +querystring-es3@^0.2.0, querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= @@ -27423,11 +27252,6 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -27496,16 +27320,6 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== - dependencies: - bytes "3.1.0" - http-errors "1.7.3" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -27567,7 +27381,7 @@ react-error-boundary@^3.1.0: dependencies: "@babel/runtime" "^7.12.5" -react-is@16.13.1, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -27582,11 +27396,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-refresh@0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" - integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== - "react-router-3@npm:react-router@3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.2.0.tgz#62b6279d589b70b34e265113e4c0a9261a02ed36" @@ -27814,7 +27623,7 @@ read@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -27861,13 +27670,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -29342,11 +29144,6 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -29405,7 +29202,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.7.2, shell-quote@^1.6.1: +shell-quote@^1.6.1: version "1.7.2" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== @@ -29932,13 +29729,6 @@ source-map@0.7.4, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" - source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -30199,7 +29989,7 @@ stackback@0.0.2: resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -stacktrace-parser@0.1.10, stacktrace-parser@^0.1.10: +stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== @@ -30226,7 +30016,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -30243,14 +30033,6 @@ stdin-discarder@^0.1.0: dependencies: bl "^5.0.0" -stream-browserify@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - stream-browserify@^2.0.1, stream-browserify@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -30281,16 +30063,6 @@ stream-events@^1.0.5: dependencies: stubs "^3.0.0" -stream-http@3.1.1, stream-http@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" - integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -30302,7 +30074,17 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-parser@^0.3.1, stream-parser@~0.3.1: +stream-http@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" + integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +stream-parser@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= @@ -30357,11 +30139,6 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-hash@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -30444,7 +30221,7 @@ string_decoder@0.10, string_decoder@~0.10.x: resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= -string_decoder@1.3.0, string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.2.0: +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -30482,13 +30259,6 @@ stringify-object@^3.2.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -30627,19 +30397,12 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -styled-jsx@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018" - integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g== +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== dependencies: - "@babel/types" "7.8.3" - babel-plugin-syntax-jsx "6.18.0" - convert-source-map "1.7.0" - loader-utils "1.2.3" - source-map "0.7.3" - string-hash "1.1.3" - stylis "3.5.4" - stylis-rule-sheet "0.0.10" + client-only "0.0.1" styled_string@0.0.1: version "0.0.1" @@ -30663,16 +30426,6 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" -stylis-rule-sheet@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" - integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw== - -stylis@3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" - integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== - stylus-loader@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" @@ -31313,7 +31066,7 @@ timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -timers-browserify@2.0.12, timers-browserify@^2.0.10, timers-browserify@^2.0.4: +timers-browserify@^2.0.10, timers-browserify@^2.0.4: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== @@ -31467,11 +31220,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -31506,13 +31254,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - tr46@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" @@ -31705,7 +31446,7 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tty-browserify@0.0.1, tty-browserify@^0.0.1: +tty-browserify@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== @@ -32345,13 +32086,6 @@ urlgrey@0.4.4: resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= -use-subscription@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" - integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== - dependencies: - object-assign "^4.1.1" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -32402,18 +32136,6 @@ util@0.10.3: dependencies: inherits "2.0.1" -util@0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - util@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" @@ -32749,7 +32471,7 @@ vm-browserify@1.1.0: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -vm-browserify@1.1.2, vm-browserify@^1.0.1: +vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== @@ -32871,14 +32593,6 @@ watchpack-chokidar2@^2.0.1: dependencies: chokidar "^2.1.8" -watchpack@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - watchpack@^1.7.4: version "1.7.5" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" @@ -33337,15 +33051,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" From 7e2c5f178f5e27cb40a7dc604587154f7dbd220d Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 15 Mar 2024 11:14:37 +0000 Subject: [PATCH 07/56] ci: Fix size limit action base upload (#11124) Noticed this is failing e.g. https://github.com/getsentry/sentry-javascript/actions/runs/8294578489/job/22700116991, it was an incorrect check: if there is no comparison branch, we don't need a PR. --- dev-packages/size-limit-gh-action/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/size-limit-gh-action/index.mjs b/dev-packages/size-limit-gh-action/index.mjs index 43f4f3a96f65..7ff44e0dd8a6 100644 --- a/dev-packages/size-limit-gh-action/index.mjs +++ b/dev-packages/size-limit-gh-action/index.mjs @@ -187,7 +187,7 @@ async function run() { const githubToken = getInput('github_token'); const threshold = getInput('threshold'); - if (!comparisonBranch && !pr) { + if (comparisonBranch && !pr) { throw new Error('No PR found. Only pull_request workflows are supported.'); } From d2005ba81f2c4a3f19d37a1f3087b5cd7804186d Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 15 Mar 2024 11:34:42 +0000 Subject: [PATCH 08/56] fix(build): Ensure tree shaking works properly for ESM output (#11122) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apparently, webpack looks at `sideEffects` in the generated package.json, and based on this does not tree shake correctly 😬 I also bumped webpack (one of the things I tried while debugging this...). This now puts the original `sideEffects` value from the original `package.json` and puts it into the esm package.json. --- .../browser-integration-tests/package.json | 2 +- .../rollup-utils/plugins/make-esm-plugin.mjs | 19 +++++- packages/ember/package.json | 2 +- yarn.lock | 58 +++---------------- 4 files changed, 28 insertions(+), 53 deletions(-) diff --git a/dev-packages/browser-integration-tests/package.json b/dev-packages/browser-integration-tests/package.json index 1daa3be5e5e7..c81d913bd571 100644 --- a/dev-packages/browser-integration-tests/package.json +++ b/dev-packages/browser-integration-tests/package.json @@ -45,7 +45,7 @@ "babel-loader": "^8.2.2", "html-webpack-plugin": "^5.5.0", "pako": "^2.1.0", - "webpack": "^5.52.0" + "webpack": "^5.90.3" }, "devDependencies": { "@types/glob": "8.0.0", diff --git a/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs b/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs index aa3f272ba2e0..04dd68beaa1c 100644 --- a/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs +++ b/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs @@ -1,3 +1,5 @@ +import fs from 'node:fs'; + /** * Outputs a package.json file with {type: module} in the root of the output directory so that Node * treats .js files as ESM. @@ -5,11 +7,24 @@ export function makePackageNodeEsm() { return { name: 'make-package-node-esm', - generateBundle() { + async generateBundle() { + // We need to keep the `sideEffects` value from the original package.json, + // as e.g. webpack seems to depend on this + // without this, tree shaking does not work as expected + const packageJSONPath = (await this.resolve('package.json')).id; + + const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8')); + const sideEffects = packageJSON.sideEffects; + + const newPackageJSON = { + type: 'module', + sideEffects, + }; + this.emitFile({ type: 'asset', fileName: 'package.json', - source: '{ "type": "module" }', + source: JSON.stringify(newPackageJSON), }); }, }; diff --git a/packages/ember/package.json b/packages/ember/package.json index 303888314735..f79aeb6395c5 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -80,7 +80,7 @@ "qunit": "~2.19.2", "qunit-dom": "~2.0.0", "sinon": "15.2.0", - "webpack": "~5.74.0" + "webpack": "~5.90.3" }, "engines": { "node": ">=14.18" diff --git a/yarn.lock b/yarn.lock index 1fc6c482b15b..82514b069ead 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6973,11 +6973,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/express-serve-static-core@4.17.31": version "4.17.31" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" @@ -15063,14 +15058,6 @@ enhanced-resolve@^4.3.0, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.10.0, enhanced-resolve@^5.3.2: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -15079,6 +15066,14 @@ enhanced-resolve@^5.15.0: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.3.2: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enhanced-resolve@^5.8.0: version "5.12.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" @@ -15216,11 +15211,6 @@ es-module-lexer@^0.7.1: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-module-lexer@^1.2.1: version "1.4.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" @@ -32925,37 +32915,7 @@ webpack@^4.47.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5.52.0, webpack@~5.74.0: - version "5.74.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" - integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -webpack@^5.90.3: +webpack@^5.90.3, webpack@~5.90.3: version "5.90.3" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac" integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== From b0e1db07a171867b9ed1fb9971a9f8f2c517e323 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Fri, 15 Mar 2024 14:47:26 +0100 Subject: [PATCH 09/56] feat(sveltekit): Switch to Otel-based `@sentry/node` package (#11075) This PR switches the underlying Node SDK from `@sentry/node-experimental` (aka the "legacy" v7 Node SDK) to the new OpenTelemetry-based `@sentry/node` package. --- .../scripts/consistentExports.ts | 2 +- packages/sveltekit/package.json | 5 +- packages/sveltekit/src/index.types.ts | 11 +- packages/sveltekit/src/server/handle.ts | 14 ++- packages/sveltekit/src/server/handleError.ts | 2 +- packages/sveltekit/src/server/index.ts | 16 +-- packages/sveltekit/src/server/load.ts | 4 +- packages/sveltekit/src/server/sdk.ts | 6 +- packages/sveltekit/src/server/utils.ts | 2 +- packages/sveltekit/src/vite/sourceMaps.ts | 2 +- packages/sveltekit/test/server/handle.test.ts | 26 +++- .../sveltekit/test/server/handleError.test.ts | 2 +- packages/sveltekit/test/server/load.test.ts | 115 +++++++++--------- packages/sveltekit/test/server/sdk.test.ts | 7 +- 14 files changed, 111 insertions(+), 103 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts b/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts index c238cf326d68..8c3f3ee0242d 100644 --- a/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts +++ b/dev-packages/e2e-tests/test-applications/node-exports-test-app/scripts/consistentExports.ts @@ -98,7 +98,7 @@ const DEPENDENTS: Dependent[] = [ }, { package: '@sentry/sveltekit', - compareWith: nodeExperimentalExports, + compareWith: nodeExports, exports: Object.keys(SentrySvelteKit), }, ]; diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index e3698b691205..fe4d05fd0456 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -39,7 +39,8 @@ "dependencies": { "@sentry-internal/tracing": "8.0.0-alpha.2", "@sentry/core": "8.0.0-alpha.2", - "@sentry/node-experimental": "8.0.0-alpha.2", + "@sentry/node": "8.0.0-alpha.2", + "@sentry/opentelemetry": "8.0.0-alpha.2", "@sentry/svelte": "8.0.0-alpha.2", "@sentry/types": "8.0.0-alpha.2", "@sentry/utils": "8.0.0-alpha.2", @@ -68,7 +69,7 @@ "fix": "eslint . --format stylish --fix", "lint": "eslint . --format stylish", "test": "yarn test:unit", - "test:unit": "vitest run", + "test:unit": "vitest run --outputDiffMaxLines=2000", "test:watch": "vitest --watch", "yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig" }, diff --git a/packages/sveltekit/src/index.types.ts b/packages/sveltekit/src/index.types.ts index 42a34e430fd8..96f123ed0d1d 100644 --- a/packages/sveltekit/src/index.types.ts +++ b/packages/sveltekit/src/index.types.ts @@ -36,17 +36,20 @@ export declare function handleErrorWithSentry any>(origLoad: T): T; -// We export a merged Integrations object so that users can (at least typing-wise) use all integrations everywhere. -// eslint-disable-next-line deprecation/deprecation -export declare const Integrations: typeof clientSdk.Integrations & typeof serverSdk.Integrations; - export declare const linkedErrorsIntegration: typeof clientSdk.linkedErrorsIntegration; export declare const contextLinesIntegration: typeof clientSdk.contextLinesIntegration; export declare const getDefaultIntegrations: (options: Options) => Integration[]; export declare const defaultStackParser: StackParser; +export declare const getClient: typeof clientSdk.getClient; +// eslint-disable-next-line deprecation/deprecation +export declare const getCurrentHub: typeof clientSdk.getCurrentHub; +// eslint-disable-next-line deprecation/deprecation +export declare const makeMain: typeof clientSdk.makeMain; export declare function close(timeout?: number | undefined): PromiseLike; export declare function flush(timeout?: number | undefined): PromiseLike; +export declare const continueTrace: typeof clientSdk.continueTrace; + export declare const metrics: typeof clientSdk.metrics & typeof serverSdk.metrics; diff --git a/packages/sveltekit/src/server/handle.ts b/packages/sveltekit/src/server/handle.ts index 4de371d03ed6..08ab880c5f27 100644 --- a/packages/sveltekit/src/server/handle.ts +++ b/packages/sveltekit/src/server/handle.ts @@ -1,20 +1,20 @@ import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, - continueTrace, getActiveSpan, - getDynamicSamplingContextFromSpan, getRootSpan, setHttpStatus, spanToTraceHeader, withIsolationScope, } from '@sentry/core'; import { startSpan } from '@sentry/core'; -import { captureException } from '@sentry/node-experimental'; +import { captureException, continueTrace } from '@sentry/node'; import type { Span } from '@sentry/types'; import { dynamicSamplingContextToSentryBaggageHeader, objectify } from '@sentry/utils'; import type { Handle, ResolveOptions } from '@sveltejs/kit'; +import { getDynamicSamplingContextFromSpan } from '@sentry/opentelemetry'; + import { isHttpError, isRedirect } from '../common/utils'; import { flushIfServerless, getTracePropagationData } from './utils'; @@ -149,9 +149,10 @@ export function sentryHandle(handlerOptions?: SentryHandleOptions): Handle { }; const sentryRequestHandler: Handle = input => { - // if there is an active transaction, we know that this handle call is nested and hence - // we don't create a new domain for it. If we created one, nested server calls would - // create new transactions instead of adding a child span to the currently active span. + // if there is an active span, we know that this handle call is nested and hence + // we don't create a new execution context for it. + // If we created one, nested server calls would create new root span instead + // of adding a child span to the currently active span. if (getActiveSpan()) { return instrumentHandle(input, options); } @@ -181,6 +182,7 @@ async function instrumentHandle( attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.sveltekit', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: event.route?.id ? 'route' : 'url', + 'http.method': event.request.method, }, name: `${event.request.method} ${event.route?.id || event.url.pathname}`, }, diff --git a/packages/sveltekit/src/server/handleError.ts b/packages/sveltekit/src/server/handleError.ts index b556342635f3..1289e76a5ee2 100644 --- a/packages/sveltekit/src/server/handleError.ts +++ b/packages/sveltekit/src/server/handleError.ts @@ -1,4 +1,4 @@ -import { captureException } from '@sentry/node-experimental'; +import { captureException } from '@sentry/node'; import type { HandleServerError } from '@sveltejs/kit'; import { flushIfServerless } from './utils'; diff --git a/packages/sveltekit/src/server/index.ts b/packages/sveltekit/src/server/index.ts index d843ab8499c7..5bd1be392657 100644 --- a/packages/sveltekit/src/server/index.ts +++ b/packages/sveltekit/src/server/index.ts @@ -1,11 +1,9 @@ // Node SDK exports -// Unfortunately, we cannot `export * from '@sentry/node-experimental'` because in prod builds, +// Unfortunately, we cannot `export * from '@sentry/node'` because in prod builds, // Vite puts these exports into a `default` property (Sentry.default) rather than // on the top - level namespace. // Hence, we export everything from the Node SDK explicitly: export { - // eslint-disable-next-line deprecation/deprecation - addGlobalEventProcessor, addEventProcessor, addBreadcrumb, addIntegration, @@ -15,10 +13,6 @@ export { captureCheckIn, withMonitor, createTransport, - // eslint-disable-next-line deprecation/deprecation - getActiveTransaction, - // eslint-disable-next-line deprecation/deprecation - getCurrentHub, getClient, isInitialized, getCurrentScope, @@ -41,7 +35,6 @@ export { setHttpStatus, withScope, withIsolationScope, - autoDiscoverNodePerformanceMonitoringIntegrations, makeNodeTransport, getDefaultIntegrations, defaultStackParser, @@ -51,7 +44,6 @@ export { addRequestDataToEvent, DEFAULT_USER_INCLUDES, extractRequestData, - Integrations, consoleIntegration, onUncaughtExceptionIntegration, onUnhandledRejectionIntegration, @@ -63,7 +55,6 @@ export { functionToStringIntegration, inboundFiltersIntegration, linkedErrorsIntegration, - Handlers, setMeasurement, getActiveSpan, getRootSpan, @@ -75,16 +66,15 @@ export { cron, parameterize, createGetModuleFromFilename, - hapiErrorPlugin, metrics, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, -} from '@sentry/node-experimental'; +} from '@sentry/node'; // We can still leave this for the carrier init and type exports -export * from '@sentry/node-experimental'; +export * from '@sentry/node'; // ------------------------- // SvelteKit SDK exports: diff --git a/packages/sveltekit/src/server/load.ts b/packages/sveltekit/src/server/load.ts index 38f9353a18d7..d0d757c31ef6 100644 --- a/packages/sveltekit/src/server/load.ts +++ b/packages/sveltekit/src/server/load.ts @@ -1,10 +1,10 @@ import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, + captureException, continueTrace, startSpan, -} from '@sentry/core'; -import { captureException } from '@sentry/node-experimental'; +} from '@sentry/node'; import { addNonEnumerableProperty, objectify } from '@sentry/utils'; import type { LoadEvent, ServerLoadEvent } from '@sveltejs/kit'; diff --git a/packages/sveltekit/src/server/sdk.ts b/packages/sveltekit/src/server/sdk.ts index faf584b7d0e6..f16220775d3a 100644 --- a/packages/sveltekit/src/server/sdk.ts +++ b/packages/sveltekit/src/server/sdk.ts @@ -1,7 +1,7 @@ import { applySdkMetadata, setTag } from '@sentry/core'; -import type { NodeOptions } from '@sentry/node-experimental'; -import { getDefaultIntegrations as getDefaultNodeIntegrations } from '@sentry/node-experimental'; -import { init as initNodeSdk } from '@sentry/node-experimental'; +import type { NodeOptions } from '@sentry/node'; +import { getDefaultIntegrations as getDefaultNodeIntegrations } from '@sentry/node'; +import { init as initNodeSdk } from '@sentry/node'; import { rewriteFramesIntegration } from './rewriteFramesIntegration'; diff --git a/packages/sveltekit/src/server/utils.ts b/packages/sveltekit/src/server/utils.ts index a202742a9eea..0db8ee893783 100644 --- a/packages/sveltekit/src/server/utils.ts +++ b/packages/sveltekit/src/server/utils.ts @@ -1,4 +1,4 @@ -import { flush } from '@sentry/node-experimental'; +import { flush } from '@sentry/node'; import { logger } from '@sentry/utils'; import type { RequestEvent } from '@sveltejs/kit'; diff --git a/packages/sveltekit/src/vite/sourceMaps.ts b/packages/sveltekit/src/vite/sourceMaps.ts index 96e288818aae..eb97a3e4a7c6 100644 --- a/packages/sveltekit/src/vite/sourceMaps.ts +++ b/packages/sveltekit/src/vite/sourceMaps.ts @@ -1,7 +1,7 @@ import * as child_process from 'child_process'; import * as fs from 'fs'; import * as path from 'path'; -import { getSentryRelease } from '@sentry/node-experimental'; +import { getSentryRelease } from '@sentry/node'; import { escapeStringForRegex, uuid4 } from '@sentry/utils'; import type { SentryVitePluginOptions } from '@sentry/vite-plugin'; import { sentryVitePlugin } from '@sentry/vite-plugin'; diff --git a/packages/sveltekit/test/server/handle.test.ts b/packages/sveltekit/test/server/handle.test.ts index 42326baeade3..1d720046fe48 100644 --- a/packages/sveltekit/test/server/handle.test.ts +++ b/packages/sveltekit/test/server/handle.test.ts @@ -6,9 +6,9 @@ import { spanIsSampled, spanToJSON, } from '@sentry/core'; -import { NodeClient, setCurrentClient } from '@sentry/node-experimental'; -import * as SentryNode from '@sentry/node-experimental'; -import type { Span } from '@sentry/types'; +import { NodeClient, setCurrentClient } from '@sentry/node'; +import * as SentryNode from '@sentry/node'; +import type { EventEnvelopeHeaders, Span } from '@sentry/types'; import type { Handle } from '@sveltejs/kit'; import { redirect } from '@sveltejs/kit'; import { vi } from 'vitest'; @@ -43,6 +43,7 @@ function mockEvent(override: Record = {}): Parameters[0 isDataRequest: false, ...override, + isSubRequest: false, }; return event; @@ -103,7 +104,7 @@ beforeEach(() => { mockCaptureException.mockClear(); }); -describe('handleSentry', () => { +describe('sentryHandle', () => { describe.each([ // isSync, isError, expectedResponse [Type.Sync, true, undefined], @@ -117,6 +118,7 @@ describe('handleSentry', () => { response = await sentryHandle()({ event: mockEvent(), resolve: resolve(type, isError) }); } catch (e) { expect(e).toBeInstanceOf(Error); + // @ts-expect-error - this is fine expect(e.message).toEqual(type); } @@ -197,7 +199,7 @@ describe('handleSentry', () => { ); }); - it('creates a transaction from sentry-trace header', async () => { + it("creates a transaction from sentry-trace header but doesn't populate a new DSC", async () => { const event = mockEvent({ request: { headers: { @@ -219,6 +221,11 @@ describe('handleSentry', () => { } }); + let envelopeHeaders: EventEnvelopeHeaders | undefined = undefined; + client.on('beforeEnvelope', env => { + envelopeHeaders = env[0] as EventEnvelopeHeaders; + }); + try { await sentryHandle()({ event, resolve: resolve(type, isError) }); } catch (e) { @@ -229,6 +236,7 @@ describe('handleSentry', () => { expect(_span!.spanContext().traceId).toEqual('1234567890abcdef1234567890abcdef'); expect(spanToJSON(_span!).parent_span_id).toEqual('1234567890abcdef'); expect(spanIsSampled(_span!)).toEqual(true); + expect(envelopeHeaders!.trace).toEqual({}); }); it('creates a transaction with dynamic sampling context from baggage header', async () => { @@ -261,6 +269,11 @@ describe('handleSentry', () => { } }); + let envelopeHeaders: EventEnvelopeHeaders | undefined = undefined; + client.on('beforeEnvelope', env => { + envelopeHeaders = env[0] as EventEnvelopeHeaders; + }); + try { await sentryHandle()({ event, resolve: resolve(type, isError) }); } catch (e) { @@ -268,7 +281,7 @@ describe('handleSentry', () => { } expect(_span!).toBeDefined(); - expect(_span.metadata.dynamicSamplingContext).toEqual({ + expect(envelopeHeaders!.trace).toEqual({ environment: 'production', release: '1.0.0', public_key: 'dogsarebadatkeepingsecrets', @@ -312,6 +325,7 @@ describe('handleSentry', () => { await sentryHandle()({ event, resolve: mockResolve }); } catch (e) { expect(e).toBeInstanceOf(Error); + // @ts-expect-error - this is fine expect(e.message).toEqual(type); } diff --git a/packages/sveltekit/test/server/handleError.test.ts b/packages/sveltekit/test/server/handleError.test.ts index 58d525d9a9db..611fac1f9a4d 100644 --- a/packages/sveltekit/test/server/handleError.test.ts +++ b/packages/sveltekit/test/server/handleError.test.ts @@ -1,4 +1,4 @@ -import * as SentryNode from '@sentry/node-experimental'; +import * as SentryNode from '@sentry/node'; import type { HandleServerError, RequestEvent } from '@sveltejs/kit'; import { vi } from 'vitest'; diff --git a/packages/sveltekit/test/server/load.test.ts b/packages/sveltekit/test/server/load.test.ts index 00c9d3a34f46..d42615521e7a 100644 --- a/packages/sveltekit/test/server/load.test.ts +++ b/packages/sveltekit/test/server/load.test.ts @@ -5,14 +5,15 @@ import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, addTracingExtensions, } from '@sentry/core'; -import { getClient, getCurrentScope, getIsolationScope, init } from '@sentry/node-experimental'; -import * as SentryNode from '@sentry/node-experimental'; -import type { Event } from '@sentry/types'; +import { NodeClient, getCurrentScope, getIsolationScope, setCurrentClient } from '@sentry/node'; +import * as SentryNode from '@sentry/node'; +import type { Event, EventEnvelopeHeaders } from '@sentry/types'; import type { Load, ServerLoad } from '@sveltejs/kit'; import { error, redirect } from '@sveltejs/kit'; import { vi } from 'vitest'; import { wrapLoadWithSentry, wrapServerLoadWithSentry } from '../../src/server/load'; +import { getDefaultNodeClientOptions } from '../utils'; const mockCaptureException = vi.spyOn(SentryNode, 'captureException').mockImplementation(() => 'xx'); @@ -151,7 +152,8 @@ describe.each([ [504, 1], ])('error with status code %s calls captureException %s times', async (code, times) => { async function load({ params }) { - throw error(code, params.id); + // @ts-expect-error - number is not assignable to NumericRange but that's fine here + throw error(code, { message: params.id }); } const wrappedLoad = wrapLoadWithSentry(load); @@ -191,7 +193,7 @@ describe.each([ }); }); }); -describe('wrapLoadWithSentry calls trace', () => { +describe('wrapLoadWithSentry calls `startSpan`', () => { async function load({ params }): Promise> { return { post: params.id, @@ -242,7 +244,7 @@ describe('wrapLoadWithSentry calls trace', () => { }); }); -describe('wrapServerLoadWithSentry calls trace', () => { +describe('wrapServerLoadWithSentry calls `startSpan`', () => { async function serverLoad({ params }): Promise> { return { post: params.id, @@ -254,27 +256,45 @@ describe('wrapServerLoadWithSentry calls trace', () => { getIsolationScope().clear(); }); - it('attaches trace data if available', async () => { - const transactions: Event[] = []; + let client: NodeClient; - init({ - enableTracing: true, - release: '8.0.0', - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSendTransaction: event => { - transactions.push(event); - return null; + let txnEvents: Event[] = []; + + beforeEach(() => { + txnEvents = []; + + const options = getDefaultNodeClientOptions({ + tracesSampleRate: 1.0, + beforeSendTransaction: evt => { + txnEvents.push(evt); + return evt; }, + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '8.0.0', + debug: true, + }); + + client = new NodeClient(options); + setCurrentClient(client); + client.init(); + + mockCaptureException.mockClear(); + }); + + it('attaches trace data if available', async () => { + let envelopeHeaders: EventEnvelopeHeaders | undefined = undefined; + + client.on('beforeEnvelope', env => { + envelopeHeaders = env[0] as EventEnvelopeHeaders; }); - const client = getClient()!; const wrappedLoad = wrapServerLoadWithSentry(serverLoad); await wrappedLoad(getServerOnlyArgs()); await client.flush(); - expect(transactions).toHaveLength(1); - const transaction = transactions[0]; + expect(txnEvents).toHaveLength(1); + const transaction = txnEvents[0]; expect(transaction.contexts?.trace).toEqual({ data: { @@ -289,8 +309,10 @@ describe('wrapServerLoadWithSentry calls trace', () => { trace_id: '1234567890abcdef1234567890abcdef', origin: 'auto.function.sveltekit', }); + expect(transaction.transaction).toEqual('/users/[id]'); - expect(transaction.sdkProcessingMetadata?.dynamicSamplingContext).toEqual({ + + expect(envelopeHeaders!.trace).toEqual({ environment: 'production', public_key: 'dogsarebadatkeepingsecrets', release: '1.0.0', @@ -301,26 +323,19 @@ describe('wrapServerLoadWithSentry calls trace', () => { }); it("doesn't attach trace data if it's not available", async () => { - const transactions: Event[] = []; + let envelopeHeaders: EventEnvelopeHeaders | undefined = undefined; - init({ - enableTracing: true, - release: '8.0.0', - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSendTransaction: event => { - transactions.push(event); - return null; - }, + client.on('beforeEnvelope', env => { + envelopeHeaders = env[0] as EventEnvelopeHeaders; }); - const client = getClient()!; const wrappedLoad = wrapServerLoadWithSentry(serverLoad); await wrappedLoad(getServerArgsWithoutTracingHeaders()); await client.flush(); - expect(transactions).toHaveLength(1); - const transaction = transactions[0]; + expect(txnEvents).toHaveLength(1); + const transaction = txnEvents[0]; expect(transaction.contexts?.trace).toEqual({ data: { @@ -336,7 +351,7 @@ describe('wrapServerLoadWithSentry calls trace', () => { origin: 'auto.function.sveltekit', }); expect(transaction.transaction).toEqual('/users/[id]'); - expect(transaction.sdkProcessingMetadata?.dynamicSamplingContext).toEqual({ + expect(envelopeHeaders!.trace).toEqual({ environment: 'production', public_key: 'public', sample_rate: '1', @@ -347,26 +362,20 @@ describe('wrapServerLoadWithSentry calls trace', () => { }); }); - it("doesn't attach the DSC data if the baggage header not available", async () => { - const transactions: Event[] = []; + it("doesn't attach the DSC data if the baggage header is not available", async () => { + let envelopeHeaders: EventEnvelopeHeaders | undefined = undefined; - init({ - enableTracing: true, - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSendTransaction: event => { - transactions.push(event); - return null; - }, + client.on('beforeEnvelope', env => { + envelopeHeaders = env[0] as EventEnvelopeHeaders; }); - const client = getClient()!; const wrappedLoad = wrapServerLoadWithSentry(serverLoad); await wrappedLoad(getServerArgsWithoutBaggageHeader()); await client.flush(); - expect(transactions).toHaveLength(1); - const transaction = transactions[0]; + expect(txnEvents).toHaveLength(1); + const transaction = txnEvents[0]; expect(transaction.contexts?.trace).toEqual({ data: { @@ -382,22 +391,10 @@ describe('wrapServerLoadWithSentry calls trace', () => { origin: 'auto.function.sveltekit', }); expect(transaction.transaction).toEqual('/users/[id]'); - expect(transaction.sdkProcessingMetadata?.dynamicSamplingContext).toEqual({}); + expect(envelopeHeaders!.trace).toEqual({}); }); it('falls back to the raw url if `event.route.id` is not available', async () => { - const transactions: Event[] = []; - - init({ - enableTracing: true, - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSendTransaction: event => { - transactions.push(event); - return null; - }, - }); - const client = getClient()!; - const event = getServerOnlyArgs(); // @ts-expect-error - this is fine (just tests here) delete event.route; @@ -406,8 +403,8 @@ describe('wrapServerLoadWithSentry calls trace', () => { await client.flush(); - expect(transactions).toHaveLength(1); - const transaction = transactions[0]; + expect(txnEvents).toHaveLength(1); + const transaction = txnEvents[0]; expect(transaction.contexts?.trace).toEqual({ data: { diff --git a/packages/sveltekit/test/server/sdk.test.ts b/packages/sveltekit/test/server/sdk.test.ts index 96aed4103510..90168e3d2b54 100644 --- a/packages/sveltekit/test/server/sdk.test.ts +++ b/packages/sveltekit/test/server/sdk.test.ts @@ -1,7 +1,8 @@ -import * as SentryNode from '@sentry/node-experimental'; -import type { NodeClient } from '@sentry/node-experimental'; -import { SDK_VERSION, getClient } from '@sentry/node-experimental'; +import * as SentryNode from '@sentry/node'; +import type { NodeClient } from '@sentry/node'; +import { SDK_VERSION, getClient } from '@sentry/node'; +import { vi } from 'vitest'; import { init } from '../../src/server/sdk'; const nodeInit = vi.spyOn(SentryNode, 'init'); From b8c75f4ba8a6948252902b0bd8839ba0568dcf84 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 15 Mar 2024 14:54:18 +0000 Subject: [PATCH 10/56] feat(node): Remove deprecated/duplicate/unused definitions (#11120) - Removes `makeMain` impl and exports from node (and downstream SDKs) - Removes custom `getCurrentHub/getClient` impl in favour of core - Removes `callExtensionMethod` as its not called from anywhere - Fixes all the tests that relied on `getClient` never returning undefined - Removes `_callExtensionMethod` from core as it's not used --- packages/core/src/hub.ts | 14 --- packages/node-experimental/src/index.ts | 13 +-- .../src/integrations/anr/index.ts | 4 +- packages/node-experimental/src/nodeVersion.ts | 7 +- packages/node-experimental/src/sdk/api.ts | 28 +---- packages/node-experimental/src/sdk/globals.ts | 19 ---- packages/node-experimental/src/sdk/hub.ts | 103 ------------------ .../node-experimental/src/sdk/initOtel.ts | 3 +- .../test/integration/breadcrumbs.test.ts | 4 +- .../test/integration/scope.test.ts | 18 +-- .../test/integration/transactions.test.ts | 6 +- .../node-experimental/test/sdk/api.test.ts | 4 +- .../node-experimental/test/sdk/init.test.ts | 10 +- packages/remix/src/index.server.ts | 2 - 14 files changed, 31 insertions(+), 204 deletions(-) delete mode 100644 packages/node-experimental/src/sdk/globals.ts delete mode 100644 packages/node-experimental/src/sdk/hub.ts diff --git a/packages/core/src/hub.ts b/packages/core/src/hub.ts index a60b3af506fc..ce3f974f735f 100644 --- a/packages/core/src/hub.ts +++ b/packages/core/src/hub.ts @@ -530,20 +530,6 @@ export class Hub implements HubInterface { client.captureSession(session); } } - - /** - * Calls global extension method and binding current instance to the function call - */ - // @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - private _callExtensionMethod(method: string, ...args: any[]): T { - const carrier = getMainCarrier(); - const sentry = getSentryCarrier(carrier); - if (sentry.extensions && typeof sentry.extensions[method] === 'function') { - return sentry.extensions[method].apply(this, args); - } - DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`); - } } /** diff --git a/packages/node-experimental/src/index.ts b/packages/node-experimental/src/index.ts index a8d511702189..2c5b198a7b66 100644 --- a/packages/node-experimental/src/index.ts +++ b/packages/node-experimental/src/index.ts @@ -25,18 +25,10 @@ export { spotlightIntegration } from './integrations/spotlight'; export { init, getDefaultIntegrations } from './sdk/init'; export { getAutoPerformanceIntegrations } from './integrations/tracing'; -export { - getClient, - getSentryRelease, - defaultStackParser, - // eslint-disable-next-line deprecation/deprecation - makeMain, -} from './sdk/api'; +export { getSentryRelease, defaultStackParser } from './sdk/api'; export { createGetModuleFromFilename } from './utils/module'; export { makeNodeTransport } from './transports'; export { NodeClient } from './sdk/client'; -// eslint-disable-next-line deprecation/deprecation -export { getCurrentHub } from './sdk/hub'; export { cron } from './cron'; export type { NodeOptions } from './types'; @@ -84,6 +76,9 @@ export { setMeasurement, getSpanDescendants, parameterize, + getClient, + // eslint-disable-next-line deprecation/deprecation + getCurrentHub, getCurrentScope, getIsolationScope, withScope, diff --git a/packages/node-experimental/src/integrations/anr/index.ts b/packages/node-experimental/src/integrations/anr/index.ts index 1d4cffc1e8c6..40aeafcf08ed 100644 --- a/packages/node-experimental/src/integrations/anr/index.ts +++ b/packages/node-experimental/src/integrations/anr/index.ts @@ -3,7 +3,7 @@ import type { Contexts, Event, EventHint, IntegrationFn } from '@sentry/types'; import { logger } from '@sentry/utils'; import * as inspector from 'inspector'; import { Worker } from 'worker_threads'; -import { NODE_MAJOR, NODE_VERSION } from '../../nodeVersion'; +import { NODE_VERSION } from '../../nodeVersion'; import type { NodeClient } from '../../sdk/client'; import type { AnrIntegrationOptions, WorkerStartData } from './common'; import { base64WorkerScript } from './worker-script'; @@ -36,7 +36,7 @@ const _anrIntegration = ((options: Partial = {}) => { return { name: INTEGRATION_NAME, setup(client: NodeClient) { - if (NODE_MAJOR < 16 || (NODE_MAJOR === 16 && (NODE_VERSION.minor || 0) < 17)) { + if (NODE_VERSION.major < 16 || (NODE_VERSION.major === 16 && NODE_VERSION.minor < 17)) { throw new Error('ANR detection requires Node 16.17.0 or later'); } diff --git a/packages/node-experimental/src/nodeVersion.ts b/packages/node-experimental/src/nodeVersion.ts index 792037ece168..1f07883b771b 100644 --- a/packages/node-experimental/src/nodeVersion.ts +++ b/packages/node-experimental/src/nodeVersion.ts @@ -1,7 +1,4 @@ import { parseSemver } from '@sentry/utils'; -export const NODE_VERSION = parseSemver(process.versions.node) as { - major: number | undefined; - minor: number | undefined; -}; -export const NODE_MAJOR = NODE_VERSION.major || 0; +export const NODE_VERSION = parseSemver(process.versions.node) as { major: number; minor: number; patch: number }; +export const NODE_MAJOR = NODE_VERSION.major; diff --git a/packages/node-experimental/src/sdk/api.ts b/packages/node-experimental/src/sdk/api.ts index 735766e994f1..ec1a81a3b4f0 100644 --- a/packages/node-experimental/src/sdk/api.ts +++ b/packages/node-experimental/src/sdk/api.ts @@ -1,24 +1,9 @@ // PUBLIC APIS -import { getCurrentScope } from '@sentry/core'; -import type { Client, StackParser } from '@sentry/types'; -import type { Hub } from '@sentry/types'; +import type { StackParser } from '@sentry/types'; import { GLOBAL_OBJ, createStackParser, nodeStackLineParser } from '@sentry/utils'; import { createGetModuleFromFilename } from '../utils/module'; -/** Get the currently active client. */ -export function getClient(): C { - const currentScope = getCurrentScope(); - - const client = currentScope.getClient(); - if (client) { - return client as C; - } - - // TODO otherwise ensure we use a noop client - return {} as C; -} - /** * Returns a release dynamically from environment variables. */ @@ -55,14 +40,3 @@ export function getSentryRelease(fallback?: string): string | undefined { /** Node.js stack parser */ export const defaultStackParser: StackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename())); - -/** - * This method is a noop and only here to ensure vite-plugin v0.6.0 (which is used by Sveltekit) still works, - * as that uses this. - * - * @deprecated This will be removed before v8 is finalized. - */ -export function makeMain(hub: Hub): Hub { - // noop - return hub; -} diff --git a/packages/node-experimental/src/sdk/globals.ts b/packages/node-experimental/src/sdk/globals.ts deleted file mode 100644 index 27428960bcf0..000000000000 --- a/packages/node-experimental/src/sdk/globals.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { getMainCarrier } from '@sentry/core'; -import type { Hub } from '@sentry/types'; -import { logger } from '@sentry/utils'; -import { DEBUG_BUILD } from '../debug-build'; - -/** - * Calls global extension method and binding current instance to the function call - */ -// @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366) -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function callExtensionMethod(hub: Hub, method: string, ...args: any[]): T { - const carrier = getMainCarrier(); - const sentry = carrier.__SENTRY__ || {}; - - if (sentry.extensions && typeof sentry.extensions[method] === 'function') { - return sentry.extensions[method].apply(hub, args); - } - DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`); -} diff --git a/packages/node-experimental/src/sdk/hub.ts b/packages/node-experimental/src/sdk/hub.ts deleted file mode 100644 index 0ab3e0cd320c..000000000000 --- a/packages/node-experimental/src/sdk/hub.ts +++ /dev/null @@ -1,103 +0,0 @@ -import type { Client, EventHint, Hub, Integration, IntegrationClass, Scope, SeverityLevel } from '@sentry/types'; - -import { - addBreadcrumb, - captureEvent, - endSession, - getCurrentScope, - getIsolationScope, - setContext, - setExtra, - setExtras, - setTag, - setTags, - setUser, - startSession, - withScope, -} from '@sentry/core'; -import { getClient } from './api'; - -/** - * This is for legacy reasons, and returns a proxy object instead of a hub to be used. - * @deprecated Use the methods directly. - */ -export function getCurrentHub(): Hub { - return { - isOlderThan(_version: number): boolean { - return false; - }, - - bindClient(client: Client): void { - const scope = getCurrentScope(); - scope.setClient(client); - }, - - pushScope(): Scope { - // TODO: This does not work and is actually deprecated - return getCurrentScope(); - }, - - popScope(): boolean { - // TODO: This does not work and is actually deprecated - return false; - }, - - withScope, - getClient: () => getClient() as C | undefined, - getScope: getCurrentScope, - getIsolationScope, - captureException: (exception: unknown, hint?: EventHint) => { - return getCurrentScope().captureException(exception, hint); - }, - captureMessage: (message: string, level?: SeverityLevel, hint?: EventHint) => { - return getCurrentScope().captureMessage(message, level, hint); - }, - captureEvent, - addBreadcrumb, - setUser, - setTags, - setTag, - setExtra, - setExtras, - setContext, - - getIntegration(integration: IntegrationClass): T | null { - // eslint-disable-next-line deprecation/deprecation - return getClient().getIntegration(integration); - }, - - startSession, - - endSession, - - captureSession(endSession?: boolean): void { - // both send the update and pull the session from the scope - if (endSession) { - // eslint-disable-next-line deprecation/deprecation - return this.endSession(); - } - - // only send the update - _sendSessionUpdate(); - }, - - shouldSendDefaultPii(): boolean { - const client = getClient(); - const options = client.getOptions(); - return Boolean(options.sendDefaultPii); - }, - }; -} - -/** - * Sends the current Session on the scope - */ -function _sendSessionUpdate(): void { - const scope = getCurrentScope(); - const client = getClient(); - - const session = scope.getSession(); - if (session) { - client.captureSession(session); - } -} diff --git a/packages/node-experimental/src/sdk/initOtel.ts b/packages/node-experimental/src/sdk/initOtel.ts index dd8d78382616..f328801e3967 100644 --- a/packages/node-experimental/src/sdk/initOtel.ts +++ b/packages/node-experimental/src/sdk/initOtel.ts @@ -2,13 +2,12 @@ import { DiagLogLevel, diag } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; -import { SDK_VERSION } from '@sentry/core'; +import { SDK_VERSION, getClient } from '@sentry/core'; import { SentryPropagator, SentrySampler, SentrySpanProcessor, setupEventContextTrace } from '@sentry/opentelemetry'; import { logger } from '@sentry/utils'; import { DEBUG_BUILD } from '../debug-build'; import { SentryContextManager } from '../otel/contextManager'; -import { getClient } from './api'; import type { NodeClient } from './client'; /** diff --git a/packages/node-experimental/test/integration/breadcrumbs.test.ts b/packages/node-experimental/test/integration/breadcrumbs.test.ts index d6741b017764..5105a9ff50df 100644 --- a/packages/node-experimental/test/integration/breadcrumbs.test.ts +++ b/packages/node-experimental/test/integration/breadcrumbs.test.ts @@ -1,6 +1,6 @@ import { addBreadcrumb, captureException, withIsolationScope, withScope } from '@sentry/core'; import { startSpan } from '@sentry/opentelemetry'; -import { getClient } from '../../src/sdk/api'; +import { getClient } from '../../src/'; import type { NodeClient } from '../../src/sdk/client'; import { cleanupOtel, mockSdkInit } from '../helpers/mockSdkInit'; @@ -74,7 +74,7 @@ describe('Integration | breadcrumbs', () => { addBreadcrumb({ timestamp: 123456, message: 'test3' }); }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeBreadcrumb).toHaveBeenCalledTimes(4); diff --git a/packages/node-experimental/test/integration/scope.test.ts b/packages/node-experimental/test/integration/scope.test.ts index e740ca0584f7..db3f61d251ba 100644 --- a/packages/node-experimental/test/integration/scope.test.ts +++ b/packages/node-experimental/test/integration/scope.test.ts @@ -289,7 +289,7 @@ describe('Integration | Scope', () => { const error = new Error('test error'); Sentry.captureException(error); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -347,7 +347,7 @@ describe('Integration | Scope', () => { const error = new Error('test error'); Sentry.captureException(error); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -396,7 +396,7 @@ describe('Integration | Scope', () => { expect(initialIsolationScope.getScopeData().tags).toEqual({ tag1: 'val1', tag2: 'val2' }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -439,7 +439,7 @@ describe('Integration | Scope', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -499,7 +499,7 @@ describe('Integration | Scope', () => { const error = new Error('test error'); Sentry.captureException(error); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -547,7 +547,7 @@ describe('Integration | Scope', () => { expect(initialCurrentScope.getScopeData().tags).toEqual({ tag1: 'val1', tag2: 'val2' }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -593,7 +593,7 @@ describe('Integration | Scope', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -636,7 +636,7 @@ describe('Integration | Scope', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( @@ -682,7 +682,7 @@ describe('Integration | Scope', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSend).toHaveBeenCalledTimes(1); expect(beforeSend).toHaveBeenCalledWith( diff --git a/packages/node-experimental/test/integration/transactions.test.ts b/packages/node-experimental/test/integration/transactions.test.ts index ea368a7b2fb8..f86e8049f71e 100644 --- a/packages/node-experimental/test/integration/transactions.test.ts +++ b/packages/node-experimental/test/integration/transactions.test.ts @@ -344,7 +344,7 @@ describe('Integration | Transactions', () => { Sentry.addBreadcrumb({ message: 'test breadcrumb 1', timestamp: 123456 }); Sentry.withIsolationScope(() => { - client.tracer.startActiveSpan('test name', span => { + client?.tracer.startActiveSpan('test name', span => { Sentry.addBreadcrumb({ message: 'test breadcrumb 2', timestamp: 123456 }); span.setAttributes({ @@ -371,7 +371,7 @@ describe('Integration | Transactions', () => { }); Sentry.withIsolationScope(() => { - client.tracer.startActiveSpan('test name b', span => { + client?.tracer.startActiveSpan('test name b', span => { Sentry.addBreadcrumb({ message: 'test breadcrumb 2b', timestamp: 123456 }); span.setAttributes({ @@ -397,7 +397,7 @@ describe('Integration | Transactions', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSendTransaction).toHaveBeenCalledTimes(2); expect(beforeSendTransaction).toHaveBeenCalledWith( diff --git a/packages/node-experimental/test/sdk/api.test.ts b/packages/node-experimental/test/sdk/api.test.ts index 6ad2d0700108..84755566d096 100644 --- a/packages/node-experimental/test/sdk/api.test.ts +++ b/packages/node-experimental/test/sdk/api.test.ts @@ -34,7 +34,7 @@ describe('withActiveSpan()', () => { inactiveSpan.end(); - await client.flush(); + await client?.flush(); // The child span should be a child of the inactive span expect(beforeSendTransaction).toHaveBeenCalledWith( @@ -74,7 +74,7 @@ describe('withActiveSpan()', () => { }); }); - await client.flush(); + await client?.flush(); expect(beforeSendTransaction).toHaveBeenCalledTimes(2); diff --git a/packages/node-experimental/test/sdk/init.test.ts b/packages/node-experimental/test/sdk/init.test.ts index d6e9bc7ee81d..d1c3788caa2f 100644 --- a/packages/node-experimental/test/sdk/init.test.ts +++ b/packages/node-experimental/test/sdk/init.test.ts @@ -1,7 +1,7 @@ import type { Integration } from '@sentry/types'; +import { getClient } from '../../src/'; import * as auto from '../../src/integrations/tracing'; -import { getClient } from '../../src/sdk/api'; import type { NodeClient } from '../../src/sdk/client'; import { init } from '../../src/sdk/init'; import { cleanupOtel } from '../helpers/mockSdkInit'; @@ -39,7 +39,7 @@ describe('init()', () => { const client = getClient(); - expect(client.getOptions()).toEqual( + expect(client?.getOptions()).toEqual( expect.objectContaining({ integrations: [], }), @@ -114,7 +114,7 @@ describe('init()', () => { expect(mockAutoPerformanceIntegrations).toHaveBeenCalledTimes(1); const client = getClient(); - expect(client.getOptions()).toEqual( + expect(client?.getOptions()).toEqual( expect.objectContaining({ integrations: expect.arrayContaining([mockIntegrations[0], mockIntegrations[1], autoPerformanceIntegration]), }), @@ -126,7 +126,7 @@ describe('init()', () => { const client = getClient(); - expect(client.traceProvider).toBeDefined(); + expect(client?.traceProvider).toBeDefined(); }); it('allows to opt-out of OpenTelemetry setup', () => { @@ -134,6 +134,6 @@ describe('init()', () => { const client = getClient(); - expect(client.traceProvider).not.toBeDefined(); + expect(client?.traceProvider).not.toBeDefined(); }); }); diff --git a/packages/remix/src/index.server.ts b/packages/remix/src/index.server.ts index fcdf56eb2a57..e31c0b29fbd8 100644 --- a/packages/remix/src/index.server.ts +++ b/packages/remix/src/index.server.ts @@ -26,8 +26,6 @@ export { getGlobalScope, getIsolationScope, Hub, - // eslint-disable-next-line deprecation/deprecation - makeMain, setCurrentClient, NodeClient, Scope, From d26b25d18c201572441c4f5885623bc509eaa168 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 15 Mar 2024 10:56:48 -0400 Subject: [PATCH 11/56] ref(node): Remove class based export for local variable integration (#11128) I think we missed this from removing the other class-based exports. --- .../local-variables/local-variables-sync.ts | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/packages/node-experimental/src/integrations/local-variables/local-variables-sync.ts b/packages/node-experimental/src/integrations/local-variables/local-variables-sync.ts index d17cb3282b81..111dc6d36c1e 100644 --- a/packages/node-experimental/src/integrations/local-variables/local-variables-sync.ts +++ b/packages/node-experimental/src/integrations/local-variables/local-variables-sync.ts @@ -1,5 +1,5 @@ -import { convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core'; -import type { Event, Exception, Integration, IntegrationClass, IntegrationFn, StackParser } from '@sentry/types'; +import { defineIntegration, getClient } from '@sentry/core'; +import type { Event, Exception, IntegrationFn, StackParser } from '@sentry/types'; import { LRUMap, logger } from '@sentry/utils'; import type { Debugger, InspectorNotification, Runtime } from 'inspector'; import { Session } from 'inspector'; @@ -384,19 +384,7 @@ const _localVariablesSyncIntegration = (( }; }) satisfies IntegrationFn; -export const localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration); - /** * Adds local variables to exception frames. - * @deprecated Use `localVariablesSyncIntegration()` instead. */ -// eslint-disable-next-line deprecation/deprecation -export const LocalVariablesSync = convertIntegrationFnToClass( - INTEGRATION_NAME, - localVariablesSyncIntegration, -) as IntegrationClass Event; setup: (client: NodeClient) => void }> & { - new (options?: LocalVariablesIntegrationOptions, session?: DebugSession): Integration; -}; - -// eslint-disable-next-line deprecation/deprecation -export type LocalVariablesSync = typeof LocalVariablesSync; +export const localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration); From 2c092927c9068ad436f718d268305e1efb484df1 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 15 Mar 2024 13:24:00 -0400 Subject: [PATCH 12/56] feat(v8): Remove deprecated integration methods on client (#11134) Removes `getIntegrationById` and `getIntegration` methods on client. Doesn't touch anything on the hub because we want to shim those methods. --- .github/workflows/build.yml | 2 +- MIGRATION.md | 2 ++ .../replay/canvas/manualSnapshot/test.ts | 2 +- .../fetch/captureResponseBody/test.ts | 4 +++- .../fetch/captureResponseHeaders/test.ts | 4 +++- .../fetch/captureResponseSize/test.ts | 4 +++- .../tracing/metrics/handlers-lcp/test.ts | 4 +++- packages/core/src/baseclient.ts | 24 ------------------- packages/core/src/hub.ts | 3 +-- packages/core/test/lib/base.test.ts | 3 --- .../node/src/integrations/undici/index.ts | 9 +++---- .../opentelemetry/src/custom/getCurrentHub.ts | 3 +-- packages/sveltekit/src/server/index.ts | 2 -- packages/types/src/client.ts | 8 +------ packages/utils/src/time.ts | 8 ------- 15 files changed, 22 insertions(+), 60 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27aae6342cef..fb95a14527e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -611,7 +611,7 @@ jobs: name: Playwright (${{ matrix.bundle }}${{ matrix.shard && format(' {0}/{1}', matrix.shard, matrix.shards) || ''}}) Tests needs: [job_get_metadata, job_build] if: needs.job_get_metadata.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request' - runs-on: ubuntu-20.04 + runs-on: ubuntu-20.04-large-js timeout-minutes: 25 strategy: fail-fast: false diff --git a/MIGRATION.md b/MIGRATION.md index 0df7e781fe30..b1e951a63283 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -355,6 +355,8 @@ Removed top-level exports: `tracingOrigins`, `MetricsAggregator`, `metricsAggreg `Sentry.configureScope`, `Span`, `spanStatusfromHttpCode`, `makeMain`, `lastEventId`, `pushScope`, `popScope`, `addGlobalEventProcessor`, `timestampWithMs`, `addExtensionMethods` +Remove util exports: `timestampWithMs` + - [Deprecation of `Hub` and `getCurrentHub()`](./MIGRATION.md#deprecate-hub) - [Removal of class-based integrations](./MIGRATION.md#removal-of-class-based-integrations) - [`tracingOrigins` option replaced with `tracePropagationTargets`](./MIGRATION.md#tracingorigins-has-been-replaced-by-tracepropagationtargets) diff --git a/dev-packages/browser-integration-tests/suites/replay/canvas/manualSnapshot/test.ts b/dev-packages/browser-integration-tests/suites/replay/canvas/manualSnapshot/test.ts index 583ff672e590..e90020780d73 100644 --- a/dev-packages/browser-integration-tests/suites/replay/canvas/manualSnapshot/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/canvas/manualSnapshot/test.ts @@ -31,7 +31,7 @@ sentryTest('can manually snapshot canvas', async ({ getLocalTestUrl, page, brows expect(incrementalSnapshots).toEqual([]); await page.evaluate(() => { - (window as any).Sentry.getClient().getIntegrationById('ReplayCanvas').snapshot(); + (window as any).Sentry.getClient().getIntegrationByName('ReplayCanvas').snapshot(); }); const { incrementalSnapshots: incrementalSnapshotsManual } = getReplayRecordingContent(await reqPromise3); diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseBody/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseBody/test.ts index c4607fa9cbf7..5e58b63218ef 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseBody/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseBody/test.ts @@ -254,7 +254,9 @@ sentryTest('captures non-text response body', async ({ getLocalTestPath, page, b ]); }); -sentryTest('does not capture response body when URL does not match', async ({ getLocalTestPath, page }) => { +// This test is flaky +// See: https://github.com/getsentry/sentry-javascript/issues/11136 +sentryTest.skip('does not capture response body when URL does not match', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts index 8f098627c120..b7fe6aace1a4 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts @@ -157,7 +157,9 @@ sentryTest('captures response headers', async ({ getLocalTestPath, page }) => { ]); }); -sentryTest('does not capture response headers if URL does not match', async ({ getLocalTestPath, page }) => { +// This test is flaky so it's skipped for now +// See https://github.com/getsentry/sentry-javascript/issues/11139 +sentryTest.skip('does not capture response headers if URL does not match', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts index ad3aafe34562..955c94fa4e18 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts @@ -188,7 +188,9 @@ sentryTest('captures response size without Content-Length header', async ({ getL ]); }); -sentryTest('captures response size from non-text response body', async ({ getLocalTestPath, page }) => { +// This test is flaky so it's skipped for now +// See https://github.com/getsentry/sentry-javascript/issues/11137 +sentryTest.skip('captures response size from non-text response body', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts index a2801f4e4016..1a056cf12114 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts @@ -7,7 +7,9 @@ import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../. const bundle = process.env.PW_BUNDLE || ''; -sentryTest( +// This test is flaky so it's skipped for now +// See https://github.com/getsentry/sentry-javascript/issues/11138 +sentryTest.skip( 'should capture metrics for LCP instrumentation handlers', async ({ browserName, getLocalTestPath, page }) => { // This uses a utility that is not exported in CDN bundles diff --git a/packages/core/src/baseclient.ts b/packages/core/src/baseclient.ts index 178a37aff5c0..f6e040b53a1d 100644 --- a/packages/core/src/baseclient.ts +++ b/packages/core/src/baseclient.ts @@ -15,7 +15,6 @@ import type { EventProcessor, FeedbackEvent, Integration, - IntegrationClass, Outcome, ParameterizedString, SdkMetadata, @@ -317,16 +316,6 @@ export abstract class BaseClient implements Client { } } - /** - * Gets an installed integration by its `id`. - * - * @returns The installed integration or `undefined` if no integration with that `id` was installed. - * @deprecated Use `getIntegrationByName()` instead. - */ - public getIntegrationById(integrationId: string): Integration | undefined { - return this.getIntegrationByName(integrationId); - } - /** * Gets an installed integration by its name. * @@ -336,19 +325,6 @@ export abstract class BaseClient implements Client { return this._integrations[integrationName] as T | undefined; } - /** - * Returns the client's instance of the given integration class, it any. - * @deprecated Use `getIntegrationByName()` instead. - */ - public getIntegration(integration: IntegrationClass): T | null { - try { - return (this._integrations[integration.id] as T) || null; - } catch (_oO) { - DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`); - return null; - } - } - /** * @inheritDoc */ diff --git a/packages/core/src/hub.ts b/packages/core/src/hub.ts index ce3f974f735f..98c4f1f70b6a 100644 --- a/packages/core/src/hub.ts +++ b/packages/core/src/hub.ts @@ -428,8 +428,7 @@ export class Hub implements HubInterface { const client = this.getClient(); if (!client) return null; try { - // eslint-disable-next-line deprecation/deprecation - return client.getIntegration(integration); + return client.getIntegrationByName(integration.id) || null; } catch (_oO) { DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`); return null; diff --git a/packages/core/test/lib/base.test.ts b/packages/core/test/lib/base.test.ts index 6c7c8aa0d63d..6be7b6e097a2 100644 --- a/packages/core/test/lib/base.test.ts +++ b/packages/core/test/lib/base.test.ts @@ -42,9 +42,6 @@ jest.mock('@sentry/utils', () => { truncate(str: string): string { return str; }, - timestampWithMs(): number { - return 2020; - }, dateTimestampInSeconds(): number { return 2020; }, diff --git a/packages/node/src/integrations/undici/index.ts b/packages/node/src/integrations/undici/index.ts index 76d94947ee2d..540776adf8d8 100644 --- a/packages/node/src/integrations/undici/index.ts +++ b/packages/node/src/integrations/undici/index.ts @@ -170,8 +170,7 @@ export class Undici implements Integration { } private _onRequestCreate = (message: unknown): void => { - // eslint-disable-next-line deprecation/deprecation - if (!getClient()?.getIntegration(Undici)) { + if (!getClient()?.getIntegrationByName('Undici')) { return; } @@ -229,8 +228,7 @@ export class Undici implements Integration { }; private _onRequestEnd = (message: unknown): void => { - // eslint-disable-next-line deprecation/deprecation - if (!getClient()?.getIntegration(Undici)) { + if (!getClient()?.getIntegrationByName('Undici')) { return; } @@ -269,8 +267,7 @@ export class Undici implements Integration { }; private _onRequestError = (message: unknown): void => { - // eslint-disable-next-line deprecation/deprecation - if (!getClient()?.getIntegration(Undici)) { + if (!getClient()?.getIntegrationByName('Undici')) { return; } diff --git a/packages/opentelemetry/src/custom/getCurrentHub.ts b/packages/opentelemetry/src/custom/getCurrentHub.ts index 4c257e037e38..81ccc46b6ddb 100644 --- a/packages/opentelemetry/src/custom/getCurrentHub.ts +++ b/packages/opentelemetry/src/custom/getCurrentHub.ts @@ -62,8 +62,7 @@ export function getCurrentHub(): Hub { setContext, getIntegration(integration: IntegrationClass): T | null { - // eslint-disable-next-line deprecation/deprecation - return getClient()?.getIntegration(integration) || null; + return getClient()?.getIntegrationByName(integration.id) || null; }, startSession, diff --git a/packages/sveltekit/src/server/index.ts b/packages/sveltekit/src/server/index.ts index 5bd1be392657..0bb2f86e82f3 100644 --- a/packages/sveltekit/src/server/index.ts +++ b/packages/sveltekit/src/server/index.ts @@ -20,8 +20,6 @@ export { getIsolationScope, Hub, NodeClient, - // eslint-disable-next-line deprecation/deprecation - makeMain, setCurrentClient, Scope, SDK_VERSION, diff --git a/packages/types/src/client.ts b/packages/types/src/client.ts index a764023a9b0e..6be08e8652e1 100644 --- a/packages/types/src/client.ts +++ b/packages/types/src/client.ts @@ -7,7 +7,7 @@ import type { DynamicSamplingContext, Envelope } from './envelope'; import type { Event, EventHint } from './event'; import type { EventProcessor } from './eventprocessor'; import type { FeedbackEvent } from './feedback'; -import type { Integration, IntegrationClass } from './integration'; +import type { Integration } from './integration'; import type { ClientOptions } from './options'; import type { ParameterizedString } from './parameterize'; import type { Scope } from './scope'; @@ -127,12 +127,6 @@ export interface Client { */ getEventProcessors(): EventProcessor[]; - /** - * Returns the client's instance of the given integration class, it any. - * @deprecated Use `getIntegrationByName()` instead. - */ - getIntegration(integration: IntegrationClass): T | null; - /** Get the instance of the integration with the given name on the client, if it was added. */ getIntegrationByName(name: string): T | undefined; diff --git a/packages/utils/src/time.ts b/packages/utils/src/time.ts index 16c7058ae68c..df67493888e3 100644 --- a/packages/utils/src/time.ts +++ b/packages/utils/src/time.ts @@ -68,14 +68,6 @@ function createUnixTimestampInSecondsFunc(): () => number { */ export const timestampInSeconds = createUnixTimestampInSecondsFunc(); -/** - * Re-exported with an old name for backwards-compatibility. - * TODO (v8): Remove this - * - * @deprecated Use `timestampInSeconds` instead. - */ -export const timestampWithMs = timestampInSeconds; - /** * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only. */ From 0a54d1989ccad8c2f597bac3cfe95243172a1e69 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 15 Mar 2024 14:08:19 -0400 Subject: [PATCH 13/56] test: Re-enable flaky replay tests (#11140) closes https://github.com/getsentry/sentry-javascript/issues/11136 closes https://github.com/getsentry/sentry-javascript/issues/11062 closes https://github.com/getsentry/sentry-javascript/issues/11137 closes https://github.com/getsentry/sentry-javascript/issues/11138 closes https://github.com/getsentry/sentry-javascript/issues/11139 In https://github.com/getsentry/sentry-javascript/pull/11134 we changed the playwright tests use a larger GH runner. This should hopefully fix the flaky replay playwright tests. Validating that here. Note that `Detect flaky tests / Check tests for flakiness` runs on the smaller workers, so it'll experience the same issues we had before. --- .../fetch/captureRequestHeaders/test.ts | 4 +--- .../extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts | 4 +--- .../fetch/captureResponseHeaders/test.ts | 4 +--- .../fetch/captureResponseSize/test.ts | 4 +--- .../suites/tracing/metrics/handlers-lcp/test.ts | 4 +--- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts index b0fe518be7a1..0b0b37fb1cf6 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestHeaders/test.ts @@ -252,9 +252,7 @@ sentryTest('captures request headers on Request', async ({ getLocalTestPath, pag ]); }); -// This test is flaky. -// See https://github.com/getsentry/sentry-javascript/pull/11110 -sentryTest.skip('captures request headers as Headers instance', async ({ getLocalTestPath, page, browserName }) => { +sentryTest('captures request headers as Headers instance', async ({ getLocalTestPath, page, browserName }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts index 089c76c06120..52857d17479d 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureRequestSize/test.ts @@ -95,9 +95,7 @@ sentryTest.skip('captures request body size when body is sent', async ({ getLoca ]); }); -// This test is flaky. -// See https://github.com/getsentry/sentry-javascript/pull/11110 -sentryTest.skip('captures request size from non-text request body', async ({ getLocalTestPath, page }) => { +sentryTest('captures request size from non-text request body', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts index b7fe6aace1a4..8f098627c120 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseHeaders/test.ts @@ -157,9 +157,7 @@ sentryTest('captures response headers', async ({ getLocalTestPath, page }) => { ]); }); -// This test is flaky so it's skipped for now -// See https://github.com/getsentry/sentry-javascript/issues/11139 -sentryTest.skip('does not capture response headers if URL does not match', async ({ getLocalTestPath, page }) => { +sentryTest('does not capture response headers if URL does not match', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts index 955c94fa4e18..ad3aafe34562 100644 --- a/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureResponseSize/test.ts @@ -188,9 +188,7 @@ sentryTest('captures response size without Content-Length header', async ({ getL ]); }); -// This test is flaky so it's skipped for now -// See https://github.com/getsentry/sentry-javascript/issues/11137 -sentryTest.skip('captures response size from non-text response body', async ({ getLocalTestPath, page }) => { +sentryTest('captures response size from non-text response body', async ({ getLocalTestPath, page }) => { if (shouldSkipReplayTest()) { sentryTest.skip(); } diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts index 1a056cf12114..a2801f4e4016 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/handlers-lcp/test.ts @@ -7,9 +7,7 @@ import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../. const bundle = process.env.PW_BUNDLE || ''; -// This test is flaky so it's skipped for now -// See https://github.com/getsentry/sentry-javascript/issues/11138 -sentryTest.skip( +sentryTest( 'should capture metrics for LCP instrumentation handlers', async ({ browserName, getLocalTestPath, page }) => { // This uses a utility that is not exported in CDN bundles From 643eff22e2c379343020f10cf285a6ade5c8251b Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 15 Mar 2024 18:27:30 +0000 Subject: [PATCH 14/56] feat(node-profiling): Output ESM and remove Sentry deps from output (#11135) - Moves Sentry deps to `dependencies` rather than `devDependencies` - Updated `package.json` exports - Updated the rollup config to mirror our other modules with the addition of the commonJs plugin - I couldn't use `createRequire` myself because Jest can't handle `import.meta` so instead I used `@rollup/plugin-esm-shim` which shims both `require` and `__dirname` in `cpu_profiler.ts` in the ESM output! --- package.json | 1 + packages/profiling-node/package.json | 16 ++++--- packages/profiling-node/rollup.npm.config.mjs | 20 ++++----- packages/profiling-node/src/cpu_profiler.ts | 44 +++++++++---------- packages/sveltekit/src/index.types.ts | 1 - yarn.lock | 7 +++ 6 files changed, 50 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index dfd75a12e843..449947047aaf 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "devDependencies": { "@biomejs/biome": "^1.4.0", "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-esm-shim": "^0.1.5", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-replace": "^5.0.5", diff --git a/packages/profiling-node/package.json b/packages/profiling-node/package.json index e0025e41552f..a9847c48085b 100644 --- a/packages/profiling-node/package.json +++ b/packages/profiling-node/package.json @@ -6,14 +6,18 @@ "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/profiling-node", "author": "Sentry", "license": "MIT", - "main": "lib/index.js", + "main": "lib/cjs/index.js", "types": "lib/types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { + "import": { + "types": "./lib/types/index.d.ts", + "default": "./lib/esm/index.js" + }, "require": { "types": "./lib/types/index.d.ts", - "default": "./lib/index.js" + "default": "./lib/cjs/index.js" } } }, @@ -73,14 +77,14 @@ "test": "cross-env SENTRY_PROFILER_BINARY_DIR=lib jest --config jest.config.js" }, "dependencies": { - "detect-libc": "^2.0.2", - "node-abi": "^3.52.0" - }, - "devDependencies": { "@sentry/core": "8.0.0-alpha.2", "@sentry/node-experimental": "8.0.0-alpha.2", "@sentry/types": "8.0.0-alpha.2", "@sentry/utils": "8.0.0-alpha.2", + "detect-libc": "^2.0.2", + "node-abi": "^3.52.0" + }, + "devDependencies": { "@types/node": "16.18.70", "@types/node-abi": "^3.0.0", "clang-format": "^1.8.0", diff --git a/packages/profiling-node/rollup.npm.config.mjs b/packages/profiling-node/rollup.npm.config.mjs index 057d5b8c60a6..1cc4f0936954 100644 --- a/packages/profiling-node/rollup.npm.config.mjs +++ b/packages/profiling-node/rollup.npm.config.mjs @@ -1,12 +1,12 @@ import commonjs from '@rollup/plugin-commonjs'; -import resolve from '@rollup/plugin-node-resolve'; -import typescript from '@rollup/plugin-typescript'; -import { makeBaseNPMConfig } from '@sentry-internal/rollup-utils'; +import esmshim from '@rollup/plugin-esm-shim'; +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; -export default makeBaseNPMConfig({ - packageSpecificConfig: { - input: 'src/index.ts', - output: { file: 'lib/index.js', format: 'cjs', dir: undefined, preserveModules: false }, - plugins: [resolve(), commonjs(), typescript({ tsconfig: './tsconfig.json' })], - }, -}); +export default makeNPMConfigVariants( + makeBaseNPMConfig({ + packageSpecificConfig: { + output: { dir: 'lib', preserveModules: false }, + plugins: [commonjs(), esmshim()], + }, + }), +); diff --git a/packages/profiling-node/src/cpu_profiler.ts b/packages/profiling-node/src/cpu_profiler.ts index 7bd23c4eca4b..f2769fe5be45 100644 --- a/packages/profiling-node/src/cpu_profiler.ts +++ b/packages/profiling-node/src/cpu_profiler.ts @@ -15,7 +15,7 @@ const arch = process.env['BUILD_ARCH'] || _arch(); const abi = getAbi(versions.node, 'node'); const identifier = [platform, arch, stdlib, abi].filter(c => c !== undefined && c !== null).join('-'); -const built_from_source_path = resolve(__dirname, `./sentry_cpu_profiler-${identifier}`); +const built_from_source_path = resolve(__dirname, '..', `./sentry_cpu_profiler-${identifier}`); /** * Imports cpp bindings based on the current platform and architecture. @@ -39,25 +39,25 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (platform === 'darwin') { if (arch === 'x64') { if (abi === '93') { - return require('./sentry_cpu_profiler-darwin-x64-93.node'); + return require('../sentry_cpu_profiler-darwin-x64-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-darwin-x64-108.node'); + return require('../sentry_cpu_profiler-darwin-x64-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-darwin-x64-115.node'); + return require('../sentry_cpu_profiler-darwin-x64-115.node'); } } if (arch === 'arm64') { if (abi === '93') { - return require('./sentry_cpu_profiler-darwin-arm64-93.node'); + return require('../sentry_cpu_profiler-darwin-arm64-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-darwin-arm64-108.node'); + return require('../sentry_cpu_profiler-darwin-arm64-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-darwin-arm64-115.node'); + return require('../sentry_cpu_profiler-darwin-arm64-115.node'); } } } @@ -65,13 +65,13 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (platform === 'win32') { if (arch === 'x64') { if (abi === '93') { - return require('./sentry_cpu_profiler-win32-x64-93.node'); + return require('../sentry_cpu_profiler-win32-x64-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-win32-x64-108.node'); + return require('../sentry_cpu_profiler-win32-x64-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-win32-x64-115.node'); + return require('../sentry_cpu_profiler-win32-x64-115.node'); } } } @@ -80,48 +80,48 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (arch === 'x64') { if (stdlib === 'musl') { if (abi === '93') { - return require('./sentry_cpu_profiler-linux-x64-musl-93.node'); + return require('../sentry_cpu_profiler-linux-x64-musl-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-linux-x64-musl-108.node'); + return require('../sentry_cpu_profiler-linux-x64-musl-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-linux-x64-musl-115.node'); + return require('../sentry_cpu_profiler-linux-x64-musl-115.node'); } } if (stdlib === 'glibc') { if (abi === '93') { - return require('./sentry_cpu_profiler-linux-x64-glibc-93.node'); + return require('../sentry_cpu_profiler-linux-x64-glibc-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-linux-x64-glibc-108.node'); + return require('../sentry_cpu_profiler-linux-x64-glibc-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-linux-x64-glibc-115.node'); + return require('../sentry_cpu_profiler-linux-x64-glibc-115.node'); } } } if (arch === 'arm64') { if (stdlib === 'musl') { if (abi === '93') { - return require('./sentry_cpu_profiler-linux-arm64-musl-93.node'); + return require('../sentry_cpu_profiler-linux-arm64-musl-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-linux-arm64-musl-108.node'); + return require('../sentry_cpu_profiler-linux-arm64-musl-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-linux-arm64-musl-115.node'); + return require('../sentry_cpu_profiler-linux-arm64-musl-115.node'); } } if (stdlib === 'glibc') { if (abi === '93') { - return require('./sentry_cpu_profiler-linux-arm64-glibc-93.node'); + return require('../sentry_cpu_profiler-linux-arm64-glibc-93.node'); } if (abi === '108') { - return require('./sentry_cpu_profiler-linux-arm64-glibc-108.node'); + return require('../sentry_cpu_profiler-linux-arm64-glibc-108.node'); } if (abi === '115') { - return require('./sentry_cpu_profiler-linux-arm64-glibc-115.node'); + return require('../sentry_cpu_profiler-linux-arm64-glibc-115.node'); } } } diff --git a/packages/sveltekit/src/index.types.ts b/packages/sveltekit/src/index.types.ts index 96f123ed0d1d..69ec5bb35597 100644 --- a/packages/sveltekit/src/index.types.ts +++ b/packages/sveltekit/src/index.types.ts @@ -46,7 +46,6 @@ export declare const getClient: typeof clientSdk.getClient; // eslint-disable-next-line deprecation/deprecation export declare const getCurrentHub: typeof clientSdk.getCurrentHub; // eslint-disable-next-line deprecation/deprecation -export declare const makeMain: typeof clientSdk.makeMain; export declare function close(timeout?: number | undefined): PromiseLike; export declare function flush(timeout?: number | undefined): PromiseLike; diff --git a/yarn.lock b/yarn.lock index 82514b069ead..f398f4bcb89f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5831,6 +5831,13 @@ is-reference "1.2.1" magic-string "^0.30.3" +"@rollup/plugin-esm-shim@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-esm-shim/-/plugin-esm-shim-0.1.5.tgz#74464e9a8a7e664557aae65592c8a3e317802220" + integrity sha512-xnIjDm/0EbqAw0/rR1UE7eAo9db0ftGPqT8RUCFtkFxtCuspbbmj+wutoyxm32jBytyO3SgkxSG17OR893fV7A== + dependencies: + magic-string "^0.30.3" + "@rollup/plugin-json@^4.0.0", "@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" From fa1621c6f9686805d8492792c14d930bba13e663 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 15 Mar 2024 20:24:41 +0100 Subject: [PATCH 15/56] feat(serverless): Add Node.js 20 to compatible runtimes (#11103) --- .craft.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.craft.yml b/.craft.yml index e28c9513f0b7..bc811a468200 100644 --- a/.craft.yml +++ b/.craft.yml @@ -145,6 +145,7 @@ targets: - nodejs14.x - nodejs16.x - nodejs18.x + - nodejs20.x license: MIT # CDN Bundle Target From ffdc8aad2e8e0dadfa73cc2ffdcc57ed3fe6694b Mon Sep 17 00:00:00 2001 From: "quisi.do" Date: Mon, 18 Mar 2024 04:58:49 -0700 Subject: [PATCH 16/56] fix(types): Fix incorrect `sampled` type on `Transaction` (#11115) `@sentry/types` does not align with `@sentry/core`, and it causes build errors when `exactOptionalPropertyTypes` is `true`. This patch fixes the TypeScript error by explicitly adding `undefined` to the `sampled` flag of `Transaction`. --- packages/types/src/transaction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/types/src/transaction.ts b/packages/types/src/transaction.ts index 2e44730ac808..be482a2c196e 100644 --- a/packages/types/src/transaction.ts +++ b/packages/types/src/transaction.ts @@ -74,7 +74,7 @@ export interface Transaction extends Omit, Sp * Was this transaction chosen to be sent as part of the sample? * @deprecated Use `spanIsSampled(transaction)` instead. */ - sampled?: boolean; + sampled?: boolean | undefined; /** * @inheritDoc From 093531e60fea7200323e603eb72c3ecf633a8c62 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Mon, 18 Mar 2024 13:15:51 +0100 Subject: [PATCH 17/56] feat(nextjs): Remove `client.(server|client).config.ts` functionality in favor of `instrumentation.ts` (#11059) --- MIGRATION.md | 50 +++++ .../create-next-app/instrumentation.ts | 33 ++++ .../create-next-app/sentry.server.config.ts | 33 ---- .../nextjs-14/instrumentation.ts | 13 ++ .../nextjs-14/sentry.edge.config.ts | 9 - .../nextjs-14/sentry.server.config.ts | 9 - .../nextjs-app-dir/instrumentation.ts | 13 ++ .../nextjs-app-dir/sentry.edge.config.ts | 9 - .../nextjs-app-dir/sentry.server.config.ts | 9 - packages/nextjs/README.md | 47 ++++- packages/nextjs/playwright.config.ts | 2 + .../src/config/loaders/wrappingLoader.ts | 30 +-- packages/nextjs/src/config/types.ts | 4 + packages/nextjs/src/config/webpack.ts | 181 ++++++------------ .../nextjs/src/config/withSentryConfig.ts | 29 ++- packages/nextjs/test/config/loaders.test.ts | 2 +- .../test/config/webpack/webpack.test.ts | 51 ----- .../nextjs/test/config/wrappingLoader.test.ts | 1 - .../test/integration/instrumentation.ts | 22 +++ .../nextjs/test/integration/next-env.d.ts | 1 - .../nextjs/test/integration/next.config.js | 3 + .../integration/next13.appdir.config.template | 3 + .../test/integration/sentry.edge.config.js | 8 - .../test/integration/sentry.server.config.js | 24 --- .../integration/test/server/utils/helpers.ts | 10 + packages/nextjs/test/run-integration-tests.sh | 18 +- 26 files changed, 287 insertions(+), 327 deletions(-) create mode 100644 dev-packages/e2e-tests/test-applications/create-next-app/instrumentation.ts delete mode 100644 dev-packages/e2e-tests/test-applications/create-next-app/sentry.server.config.ts create mode 100644 dev-packages/e2e-tests/test-applications/nextjs-14/instrumentation.ts delete mode 100644 dev-packages/e2e-tests/test-applications/nextjs-14/sentry.edge.config.ts delete mode 100644 dev-packages/e2e-tests/test-applications/nextjs-14/sentry.server.config.ts create mode 100644 dev-packages/e2e-tests/test-applications/nextjs-app-dir/instrumentation.ts delete mode 100644 dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts delete mode 100644 dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts delete mode 100644 packages/nextjs/test/config/webpack/webpack.test.ts create mode 100644 packages/nextjs/test/integration/instrumentation.ts delete mode 100644 packages/nextjs/test/integration/sentry.edge.config.js delete mode 100644 packages/nextjs/test/integration/sentry.server.config.js diff --git a/MIGRATION.md b/MIGRATION.md index b1e951a63283..deca88db2a7c 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -715,6 +715,56 @@ setup for source maps in Sentry and will not require you to match stack frame pa To see the new options, check out the docs at https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/, or look at the TypeScript type definitions of `withSentryConfig`. +#### Updated the recommended way of calling `Sentry.init()` + +With version 8 of the SDK we will no longer support the use of `sentry.server.config.ts` and `sentry.edge.config.ts` +files. Instead, please initialize the Sentry Next.js SDK for the serverside in a +[Next.js instrumentation hook](https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation). +**`sentry.client.config.ts|js` is still supported and encouraged for initializing the clientside SDK.** + +The following is an example of how to initialize the serverside SDK in a Next.js instrumentation hook: + +1. First, enable the Next.js instrumentation hook by setting the `experimental.instrumentationHook` to `true` in your + `next.config.js`. +2. Next, create a `instrumentation.ts|js` file in the root directory of your project (or in the `src` folder if you have + have one). +3. Now, export a `register` function from the `instrumentation.ts|js` file and call `Sentry.init()` inside of it: + + ```ts + import * as Sentry from '@sentry/nextjs'; + + export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs') { + Sentry.init({ + dsn: 'YOUR_DSN', + // Your Node.js Sentry configuration... + }); + } + + if (process.env.NEXT_RUNTIME === 'edge') { + Sentry.init({ + dsn: 'YOUR_DSN', + // Your Edge Runtime Sentry configuration... + }); + } + } + ``` + + Note that you can initialize the SDK differently depending on which server runtime is being used. + +If you are using a +[Next.js custom server](https://nextjs.org/docs/pages/building-your-application/configuring/custom-server), the +`instrumentation.ts` hook is not called by Next.js so you need to manually call it yourself from within your server +code. It is recommended to do so as early as possible in your application lifecycle. + +**Why are we making this change?** The very simple reason is that Next.js requires us to set up OpenTelemetry +instrumentation inside the `register` function of the instrumentation hook. Looking a little bit further into the +future, we also would like the Sentry SDK to be compatible with [Turbopack](https://turbo.build/pack), which is gonna be +the bundler that Next.js will be using instead of Webpack. The SDK in its previous version depended heavily on Webpack +in order to inject the `sentry.(server|edge).config.ts` files into the server-side code. Because this will not be +possible in the future, we are doing ourselves a favor and doing things the way Next.js intends us to do them - +hopefully reducing bugs and jank. + ### Astro SDK #### Removal of `trackHeaders` option for Astro middleware diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/instrumentation.ts b/dev-packages/e2e-tests/test-applications/create-next-app/instrumentation.ts new file mode 100644 index 000000000000..5ddf6e7b823a --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/create-next-app/instrumentation.ts @@ -0,0 +1,33 @@ +import * as Sentry from '@sentry/nextjs'; + +declare global { + namespace globalThis { + var transactionIds: string[]; + } +} + +export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs') { + Sentry.init({ + environment: 'qa', // dynamic sampling bias to keep transactions + dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1.0, + integrations: [Sentry.localVariablesIntegration()], + }); + + Sentry.addEventProcessor(event => { + global.transactionIds = global.transactionIds || []; + + if (event.type === 'transaction') { + const eventId = event.event_id; + + if (eventId) { + global.transactionIds.push(eventId); + } + } + + return event; + }); + } +} diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/sentry.server.config.ts b/dev-packages/e2e-tests/test-applications/create-next-app/sentry.server.config.ts deleted file mode 100644 index 3750d0f5c5fd..000000000000 --- a/dev-packages/e2e-tests/test-applications/create-next-app/sentry.server.config.ts +++ /dev/null @@ -1,33 +0,0 @@ -// This file configures the initialization of Sentry on the server. -// The config you add here will be used whenever the server handles a request. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from '@sentry/nextjs'; - -declare global { - namespace globalThis { - var transactionIds: string[]; - } -} - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1.0, - integrations: [Sentry.localVariablesIntegration()], -}); - -Sentry.addEventProcessor(event => { - global.transactionIds = global.transactionIds || []; - - if (event.type === 'transaction') { - const eventId = event.event_id; - - if (eventId) { - global.transactionIds.push(eventId); - } - } - - return event; -}); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/instrumentation.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/instrumentation.ts new file mode 100644 index 000000000000..6ede827b556a --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/instrumentation.ts @@ -0,0 +1,13 @@ +import * as Sentry from '@sentry/nextjs'; + +export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs' || process.env.NEXT_RUNTIME === 'edge') { + Sentry.init({ + environment: 'qa', // dynamic sampling bias to keep transactions + dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, + tunnel: `http://localhost:3031/`, // proxy server + tracesSampleRate: 1.0, + sendDefaultPii: true, + }); + } +} diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.edge.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.edge.config.ts deleted file mode 100644 index 85bd765c9c44..000000000000 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.edge.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, - tunnel: `http://localhost:3031/`, // proxy server - tracesSampleRate: 1.0, - sendDefaultPii: true, -}); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.server.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.server.config.ts deleted file mode 100644 index 85bd765c9c44..000000000000 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/sentry.server.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, - tunnel: `http://localhost:3031/`, // proxy server - tracesSampleRate: 1.0, - sendDefaultPii: true, -}); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/instrumentation.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/instrumentation.ts new file mode 100644 index 000000000000..6ede827b556a --- /dev/null +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/instrumentation.ts @@ -0,0 +1,13 @@ +import * as Sentry from '@sentry/nextjs'; + +export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs' || process.env.NEXT_RUNTIME === 'edge') { + Sentry.init({ + environment: 'qa', // dynamic sampling bias to keep transactions + dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, + tunnel: `http://localhost:3031/`, // proxy server + tracesSampleRate: 1.0, + sendDefaultPii: true, + }); + } +} diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts deleted file mode 100644 index 85bd765c9c44..000000000000 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, - tunnel: `http://localhost:3031/`, // proxy server - tracesSampleRate: 1.0, - sendDefaultPii: true, -}); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts deleted file mode 100644 index 85bd765c9c44..000000000000 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - environment: 'qa', // dynamic sampling bias to keep transactions - dsn: process.env.NEXT_PUBLIC_E2E_TEST_DSN, - tunnel: `http://localhost:3031/`, // proxy server - tracesSampleRate: 1.0, - sendDefaultPii: true, -}); diff --git a/packages/nextjs/README.md b/packages/nextjs/README.md index 119a591621df..c7afd15d46c5 100644 --- a/packages/nextjs/README.md +++ b/packages/nextjs/README.md @@ -17,35 +17,64 @@ ## Compatibility -Currently, the minimum Next.js supported version is `10.0.8`. +Currently, the minimum Next.js supported version is `11.2.0`. ## General This package is a wrapper around `@sentry/node` for the server and `@sentry/react` for the client, with added functionality related to Next.js. -To use this SDK, init it in the Sentry config files. +To use this SDK, initialize it in the Next.js configuration, in the `sentry.client.config.ts|js` file, and in the +[Next.js Instrumentation Hook](https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation) +(`instrumentation.ts|js`). ```javascript -// sentry.client.config.js +// next.config.js + +const { withSentryConfig } = require('@sentry/nextjs'); + +const nextConfig = { + experimental: { + // The instrumentation hook is required for Sentry to work on the serverside + instrumentationHook: true, + }, +}; + +// Wrap the Next.js configuration with Sentry +module.exports = withSentryConfig(nextConfig); +``` + +```javascript +// sentry.client.config.js or .ts import * as Sentry from '@sentry/nextjs'; Sentry.init({ dsn: '__DSN__', - // ... + // Your Sentry configuration for the Browser... }); ``` ```javascript -// sentry.server.config.js +// instrumentation.ts import * as Sentry from '@sentry/nextjs'; -Sentry.init({ - dsn: '__DSN__', - // ... -}); +export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs') { + Sentry.init({ + dsn: '__DSN__', + // Your Node.js Sentry configuration... + }); + } + + if (process.env.NEXT_RUNTIME === 'edge') { + Sentry.init({ + dsn: '__DSN__', + // Your Edge Runtime Sentry configuration... + }); + } +} ``` To set context information or send manual events, use the exported functions of `@sentry/nextjs`. diff --git a/packages/nextjs/playwright.config.ts b/packages/nextjs/playwright.config.ts index 917c05cb9ed3..97dfdd760da1 100644 --- a/packages/nextjs/playwright.config.ts +++ b/packages/nextjs/playwright.config.ts @@ -15,6 +15,8 @@ const config: PlaywrightTestConfig = { cwd: path.join(__dirname, 'test', 'integration'), command: 'yarn start', port: 3000, + stdout: 'pipe', + stderr: 'pipe', }, }; diff --git a/packages/nextjs/src/config/loaders/wrappingLoader.ts b/packages/nextjs/src/config/loaders/wrappingLoader.ts index dab8c767c54f..8689082de95b 100644 --- a/packages/nextjs/src/config/loaders/wrappingLoader.ts +++ b/packages/nextjs/src/config/loaders/wrappingLoader.ts @@ -26,9 +26,6 @@ const middlewareWrapperTemplateCode = fs.readFileSync(middlewareWrapperTemplateP let showedMissingAsyncStorageModuleWarning = false; -const sentryInitWrapperTemplatePath = path.resolve(__dirname, '..', 'templates', 'sentryInitWrapperTemplate.js'); -const sentryInitWrapperTemplateCode = fs.readFileSync(sentryInitWrapperTemplatePath, { encoding: 'utf8' }); - const serverComponentWrapperTemplatePath = path.resolve( __dirname, '..', @@ -45,8 +42,7 @@ export type WrappingLoaderOptions = { appDir: string | undefined; pageExtensionRegex: string; excludeServerRoutes: Array; - wrappingTargetKind: 'page' | 'api-route' | 'middleware' | 'server-component' | 'sentry-init' | 'route-handler'; - sentryConfigFilePath?: string; + wrappingTargetKind: 'page' | 'api-route' | 'middleware' | 'server-component' | 'route-handler'; vercelCronsConfig?: VercelCronsConfig; nextjsRequestAsyncStorageModulePath?: string; }; @@ -70,7 +66,6 @@ export default function wrappingLoader( pageExtensionRegex, excludeServerRoutes = [], wrappingTargetKind, - sentryConfigFilePath, vercelCronsConfig, nextjsRequestAsyncStorageModulePath, } = 'getOptions' in this ? this.getOptions() : this.query; @@ -79,28 +74,7 @@ export default function wrappingLoader( let templateCode: string; - if (wrappingTargetKind === 'sentry-init') { - templateCode = sentryInitWrapperTemplateCode; - - // Absolute paths to the sentry config do not work with Windows: https://github.com/getsentry/sentry-javascript/issues/8133 - // Se we need check whether `this.resourcePath` is absolute because there is no contract by webpack that says it is absolute. - // Examples where `this.resourcePath` could possibly be non-absolute are virtual modules. - if (sentryConfigFilePath && path.isAbsolute(this.resourcePath)) { - const sentryConfigImportPath = path - .relative(path.dirname(this.resourcePath), sentryConfigFilePath) - .replace(/\\/g, '/'); - - // path.relative() may return something like `sentry.server.config.js` which is not allowed. Imports from the - // current directory need to start with './'.This is why we prepend the path with './', which should always again - // be a valid relative path. - // https://github.com/getsentry/sentry-javascript/issues/8798 - templateCode = templateCode.replace(/__SENTRY_CONFIG_IMPORT_PATH__/g, `./${sentryConfigImportPath}`); - } else { - // Bail without doing any wrapping - this.callback(null, userCode, userModuleSourceMap); - return; - } - } else if (wrappingTargetKind === 'page' || wrappingTargetKind === 'api-route') { + if (wrappingTargetKind === 'page' || wrappingTargetKind === 'api-route') { if (pagesDir === undefined) { this.callback(null, userCode, userModuleSourceMap); return; diff --git a/packages/nextjs/src/config/types.ts b/packages/nextjs/src/config/types.ts index 75d4c87ac963..041d815d09d9 100644 --- a/packages/nextjs/src/config/types.ts +++ b/packages/nextjs/src/config/types.ts @@ -43,6 +43,10 @@ export type NextConfigObject = { fallback?: NextRewrite[]; } >; + // Next.js experimental options + experimental?: { + instrumentationHook?: boolean; + }; }; export type SentryBuildOptions = { diff --git a/packages/nextjs/src/config/webpack.ts b/packages/nextjs/src/config/webpack.ts index 0a8484c9afc8..2e7c8bb57a80 100644 --- a/packages/nextjs/src/config/webpack.ts +++ b/packages/nextjs/src/config/webpack.ts @@ -8,7 +8,6 @@ import { arrayify, escapeStringForRegex, loadModule, logger } from '@sentry/util import * as chalk from 'chalk'; import { sync as resolveSync } from 'resolve'; -import { DEBUG_BUILD } from '../common/debug-build'; import type { VercelCronsConfig } from '../common/types'; // Note: If you need to import a type from Webpack, do it in `types.ts` and export it from there. Otherwise, our // circular dependency check thinks this file is importing from itself. See https://github.com/pahen/madge/issues/306. @@ -124,7 +123,6 @@ export function constructWebpackConfigFunction( pagesDir: pagesDirPath, pageExtensionRegex, excludeServerRoutes: userSentryOptions.excludeServerRoutes, - sentryConfigFilePath: getUserConfigFilePath(projectDir, runtime), nextjsRequestAsyncStorageModulePath: getRequestAsyncStorageModuleLocation( projectDir, rawNewConfig.resolve?.modules, @@ -227,7 +225,12 @@ export function constructWebpackConfigFunction( // noop if file does not exist } else { // log but noop - logger.error(`${chalk.red('error')} - Sentry failed to read vercel.json`, e); + logger.error( + `${chalk.red( + 'error', + )} - Sentry failed to read vercel.json for automatic cron job monitoring instrumentation`, + e, + ); } } @@ -293,32 +296,9 @@ export function constructWebpackConfigFunction( }); } - if (isServer) { - // Import the Sentry config in every user file - newConfig.module.rules.unshift({ - test: resourcePath => { - return ( - isPageResource(resourcePath) || - isApiRouteResource(resourcePath) || - isMiddlewareResource(resourcePath) || - isServerComponentResource(resourcePath) || - isRouteHandlerResource(resourcePath) - ); - }, - use: [ - { - loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'), - options: { - ...staticWrappingLoaderOptions, - wrappingTargetKind: 'sentry-init', - }, - }, - ], - }); - } - if (appDirPath) { const hasGlobalErrorFile = ['global-error.js', 'global-error.jsx', 'global-error.ts', 'global-error.tsx'].some( + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion globalErrorFile => fs.existsSync(path.join(appDirPath!, globalErrorFile)), ); @@ -364,19 +344,21 @@ export function constructWebpackConfigFunction( }); } - // Tell webpack to inject user config files (containing the two `Sentry.init()` calls) into the appropriate output - // bundles. Store a separate reference to the original `entry` value to avoid an infinite loop. (If we don't do - // this, we'll have a statement of the form `x.y = () => f(x.y)`, where one of the things `f` does is call `x.y`. - // Since we're setting `x.y` to be a callback (which, by definition, won't run until some time later), by the time - // the function runs (causing `f` to run, causing `x.y` to run), `x.y` will point to the callback itself, rather - // than its original value. So calling it will call the callback which will call `f` which will call `x.y` which - // will call the callback which will call `f` which will call `x.y`... and on and on. Theoretically this could also - // be fixed by using `bind`, but this is way simpler.) - const origEntryProperty = newConfig.entry; - newConfig.entry = async () => addSentryToEntryProperty(origEntryProperty, buildContext, userSentryOptions); - - // Next doesn't let you change `devtool` in dev even if you want to, so don't bother trying - see - // https://github.com/vercel/next.js/blob/master/errors/improper-devtool.md + if (!isServer) { + // Tell webpack to inject the client config files (containing the client-side `Sentry.init()` call) into the appropriate output + // bundles. Store a separate reference to the original `entry` value to avoid an infinite loop. (If we don't do + // this, we'll have a statement of the form `x.y = () => f(x.y)`, where one of the things `f` does is call `x.y`. + // Since we're setting `x.y` to be a callback (which, by definition, won't run until some time later), by the time + // the function runs (causing `f` to run, causing `x.y` to run), `x.y` will point to the callback itself, rather + // than its original value. So calling it will call the callback which will call `f` which will call `x.y` which + // will call the callback which will call `f` which will call `x.y`... and on and on. Theoretically this could also + // be fixed by using `bind`, but this is way simpler.) + const origEntryProperty = newConfig.entry; + newConfig.entry = async () => addSentryToClientEntryProperty(origEntryProperty, buildContext); + } + + // We don't want to do any webpack plugin stuff OR any source maps stuff in dev mode. + // Symbolication for dev-mode errors is done elsewhere. if (!isDev) { // eslint-disable-next-line @typescript-eslint/no-explicit-any const { sentryWebpackPlugin } = loadModule('@sentry/webpack-plugin') as any; @@ -480,7 +462,7 @@ function findTranspilationRules(rules: WebpackModuleRule[] | undefined, projectD } /** - * Modify the webpack `entry` property so that the code in `sentry.server.config.js` and `sentry.client.config.js` is + * Modify the webpack `entry` property so that the code in `sentry.client.config.js` is * included in the the necessary bundles. * * @param currentEntryProperty The value of the property before Sentry code has been injected @@ -488,10 +470,9 @@ function findTranspilationRules(rules: WebpackModuleRule[] | undefined, projectD * @returns The value which the new `entry` property (which will be a function) will return (TODO: this should return * the function, rather than the function's return value) */ -async function addSentryToEntryProperty( +async function addSentryToClientEntryProperty( currentEntryProperty: WebpackEntryProperty, buildContext: BuildContext, - userSentryOptions: SentryBuildOptions, ): Promise { // The `entry` entry in a webpack config can be a string, array of strings, object, or function. By default, nextjs // sets it to an async function which returns the promise of an object of string arrays. Because we don't know whether @@ -499,37 +480,24 @@ async function addSentryToEntryProperty( // we know is that it won't have gotten *simpler* in form, so we only need to worry about the object and function // options. See https://webpack.js.org/configuration/entry-context/#entry. - const { isServer, dir: projectDir, nextRuntime, dev: isDevMode } = buildContext; - const runtime = isServer ? (buildContext.nextRuntime === 'edge' ? 'edge' : 'node') : 'browser'; + const { dir: projectDir, dev: isDevMode } = buildContext; const newEntryProperty = typeof currentEntryProperty === 'function' ? await currentEntryProperty() : { ...currentEntryProperty }; - // `sentry.server.config.js` or `sentry.client.config.js` (or their TS equivalents) - const userConfigFile = - nextRuntime === 'edge' - ? getUserConfigFile(projectDir, 'edge') - : isServer - ? getUserConfigFile(projectDir, 'server') - : getUserConfigFile(projectDir, 'client'); + const clientSentryConfigFileName = getClientSentryConfigFile(projectDir); // we need to turn the filename into a path so webpack can find it - const filesToInject = userConfigFile ? [`./${userConfigFile}`] : []; + const filesToInject = clientSentryConfigFileName ? [`./${clientSentryConfigFileName}`] : []; // inject into all entry points which might contain user's code for (const entryPointName in newEntryProperty) { - if (shouldAddSentryToEntryPoint(entryPointName, runtime)) { - addFilesToExistingEntryPoint(newEntryProperty, entryPointName, filesToInject, isDevMode); - } else { - if ( - isServer && - // If the user has asked to exclude pages, confirm for them that it's worked - userSentryOptions.excludeServerRoutes && - // We always skip these, so it's not worth telling the user that we've done so - !['pages/_app', 'pages/_document'].includes(entryPointName) - ) { - DEBUG_BUILD && logger.log(`Skipping Sentry injection for ${entryPointName.replace(/^pages/, '')}`); - } + if ( + entryPointName === 'pages/_app' || + // entrypoint for `/app` pages + entryPointName === 'main-app' + ) { + addFilesToWebpackEntryPoint(newEntryProperty, entryPointName, filesToInject, isDevMode); } } @@ -537,49 +505,39 @@ async function addSentryToEntryProperty( } /** - * Search the project directory for a valid user config file for the given platform, allowing for it to be either a - * TypeScript or JavaScript file. + * Searches for old `sentry.(server|edge).config.ts` files and warns if it finds any. * - * @param projectDir The root directory of the project, where the file should be located + * @param projectDir The root directory of the project, where config files would be located * @param platform Either "server", "client" or "edge", so that we know which file to look for - * @returns The name of the relevant file. If the server or client file is not found, this method throws an error. The - * edge file is optional, if it is not found this function will return `undefined`. */ -export function getUserConfigFile(projectDir: string, platform: 'server' | 'client' | 'edge'): string | undefined { +export function warnAboutDeprecatedConfigFiles(projectDir: string, platform: 'server' | 'client' | 'edge'): void { const possibilities = [`sentry.${platform}.config.ts`, `sentry.${platform}.config.js`]; for (const filename of possibilities) { if (fs.existsSync(path.resolve(projectDir, filename))) { - return filename; + if (platform === 'server' || platform === 'edge') { + // eslint-disable-next-line no-console + console.warn( + `[@sentry/nextjs] It seems you have configured a \`${filename}\` file. You need to put this file's content into a Next.js instrumentation hook instead! Read more: https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation`, + ); + } } } - - // Edge config file is optional - if (platform === 'edge') { - // eslint-disable-next-line no-console - console.warn( - '[@sentry/nextjs] You are using Next.js features that run on the Edge Runtime. Please add a "sentry.edge.config.js" or a "sentry.edge.config.ts" file to your project root in which you initialize the Sentry SDK with "Sentry.init()".', - ); - return; - } else { - throw new Error(`Cannot find '${possibilities[0]}' or '${possibilities[1]}' in '${projectDir}'.`); - } } /** - * Gets the absolute path to a sentry config file for a particular platform. Returns `undefined` if it doesn't exist. + * Searches for a `sentry.client.config.ts|js` file and returns it's file name if it finds one. (ts being prioritized) + * + * @param projectDir The root directory of the project, where config files would be located */ -export function getUserConfigFilePath(projectDir: string, platform: 'server' | 'client' | 'edge'): string | undefined { - const possibilities = [`sentry.${platform}.config.ts`, `sentry.${platform}.config.js`]; +export function getClientSentryConfigFile(projectDir: string): string | void { + const possibilities = ['sentry.client.config.ts', 'sentry.client.config.js']; for (const filename of possibilities) { - const configPath = path.resolve(projectDir, filename); - if (fs.existsSync(configPath)) { - return configPath; + if (fs.existsSync(path.resolve(projectDir, filename))) { + return filename; } } - - return undefined; } /** @@ -589,7 +547,7 @@ export function getUserConfigFilePath(projectDir: string, platform: 'server' | ' * @param entryPointName The key where the file should be injected * @param filesToInsert An array of paths to the injected files */ -function addFilesToExistingEntryPoint( +function addFilesToWebpackEntryPoint( entryProperty: EntryPropertyObject, entryPointName: string, filesToInsert: string[], @@ -653,23 +611,6 @@ function addFilesToExistingEntryPoint( entryProperty[entryPointName] = newEntryPoint; } -/** - * Determine if this is an entry point into which both `Sentry.init()` code and the release value should be injected - * - * @param entryPointName The name of the entry point in question - * @param isServer Whether or not this function is being called in the context of a server build - * @param excludeServerRoutes A list of excluded serverside entrypoints provided by the user - * @returns `true` if sentry code should be injected, and `false` otherwise - */ -function shouldAddSentryToEntryPoint(entryPointName: string, runtime: 'node' | 'browser' | 'edge'): boolean { - return ( - runtime === 'browser' && - (entryPointName === 'pages/_app' || - // entrypoint for `/app` pages - entryPointName === 'main-app') - ); -} - /** * Ensure that `newConfig.module.rules` exists. Modifies the given config in place but also returns it in order to * change its type. @@ -723,15 +664,16 @@ function addValueInjectionLoader( const clientValues = { ...isomorphicValues, // Get the path part of `assetPrefix`, minus any trailing slash. (We use a placeholder for the origin if - // `assetPreix` doesn't include one. Since we only care about the path, it doesn't matter what it is.) + // `assetPrefix` doesn't include one. Since we only care about the path, it doesn't matter what it is.) __rewriteFramesAssetPrefixPath__: assetPrefix ? new URL(assetPrefix, 'http://dogs.are.great').pathname.replace(/\/$/, '') : '', }; - newConfig.module.rules.push( - { - test: /sentry\.(server|edge)\.config\.(jsx?|tsx?)/, + if (buildContext.isServer) { + newConfig.module.rules.push({ + // TODO: Find a more bulletproof way of matching. For now this is fine and doesn't hurt anyone. It merely sets some globals. + test: /(src[\\/])?instrumentation.(js|ts)/, use: [ { loader: path.resolve(__dirname, 'loaders/valueInjectionLoader.js'), @@ -740,8 +682,9 @@ function addValueInjectionLoader( }, }, ], - }, - { + }); + } else { + newConfig.module.rules.push({ test: /sentry\.client\.config\.(jsx?|tsx?)/, use: [ { @@ -751,8 +694,8 @@ function addValueInjectionLoader( }, }, ], - }, - ); + }); + } } function resolveNextPackageDirFromDirectory(basedir: string): string | undefined { @@ -764,7 +707,7 @@ function resolveNextPackageDirFromDirectory(basedir: string): string | undefined } } -const POTENTIAL_REQUEST_ASNYC_STORAGE_LOCATIONS = [ +const POTENTIAL_REQUEST_ASYNC_STORAGE_LOCATIONS = [ // Original location of RequestAsyncStorage // https://github.com/vercel/next.js/blob/46151dd68b417e7850146d00354f89930d10b43b/packages/next/src/client/components/request-async-storage.ts 'next/dist/client/components/request-async-storage.js', @@ -788,7 +731,7 @@ function getRequestAsyncStorageModuleLocation( for (const webpackResolvableLocation of absoluteWebpackResolvableModuleLocations) { const nextPackageDir = resolveNextPackageDirFromDirectory(webpackResolvableLocation); if (nextPackageDir) { - const asyncLocalStorageLocation = POTENTIAL_REQUEST_ASNYC_STORAGE_LOCATIONS.find(loc => + const asyncLocalStorageLocation = POTENTIAL_REQUEST_ASYNC_STORAGE_LOCATIONS.find(loc => fs.existsSync(path.join(nextPackageDir, '..', loc)), ); if (asyncLocalStorageLocation) { diff --git a/packages/nextjs/src/config/withSentryConfig.ts b/packages/nextjs/src/config/withSentryConfig.ts index f9f03b0af2fd..0d68448f81ba 100644 --- a/packages/nextjs/src/config/withSentryConfig.ts +++ b/packages/nextjs/src/config/withSentryConfig.ts @@ -18,13 +18,14 @@ let showedExportModeTunnelWarning = false; * @param sentryBuildOptions Additional options to configure instrumentation and * @returns The modified config to be exported */ -export function withSentryConfig( - nextConfig: NextConfig = {}, - sentryBuildOptions: SentryBuildOptions = {}, -): NextConfigFunction | NextConfigObject { - if (typeof nextConfig === 'function') { +export function withSentryConfig(nextConfig?: C, sentryBuildOptions: SentryBuildOptions = {}): C { + const castNextConfig = (nextConfig as NextConfig) || {}; + if (typeof castNextConfig === 'function') { return function (this: unknown, ...webpackConfigFunctionArgs: unknown[]): ReturnType { - const maybePromiseNextConfig: ReturnType = nextConfig.apply(this, webpackConfigFunctionArgs); + const maybePromiseNextConfig: ReturnType = castNextConfig.apply( + this, + webpackConfigFunctionArgs, + ); if (isThenable(maybePromiseNextConfig)) { return maybePromiseNextConfig.then(promiseResultNextConfig => { @@ -33,9 +34,9 @@ export function withSentryConfig( } return getFinalConfigObject(maybePromiseNextConfig, sentryBuildOptions); - }; + } as C; } else { - return getFinalConfigObject(nextConfig, sentryBuildOptions); + return getFinalConfigObject(castNextConfig, sentryBuildOptions) as C; } } @@ -69,6 +70,18 @@ function getFinalConfigObject( } } + // We need to enable `instrumentation.ts` for users because we tell them to put their `Sentry.init()` calls inside of it. + if (incomingUserNextConfigObject.experimental?.instrumentationHook === false) { + // eslint-disable-next-line no-console + console.warn( + '[@sentry/nextjs] You turned off the `instrumentationHook` option. Note that Sentry will not be initialized if you did not set it up inside `instrumentation.ts`.', + ); + } + incomingUserNextConfigObject.experimental = { + instrumentationHook: true, + ...incomingUserNextConfigObject.experimental, + }; + return { ...incomingUserNextConfigObject, webpack: constructWebpackConfigFunction(incomingUserNextConfigObject, userSentryOptions), diff --git a/packages/nextjs/test/config/loaders.test.ts b/packages/nextjs/test/config/loaders.test.ts index ed3589363539..c2aaf0c9a707 100644 --- a/packages/nextjs/test/config/loaders.test.ts +++ b/packages/nextjs/test/config/loaders.test.ts @@ -77,7 +77,7 @@ describe('webpack loaders', () => { }); expect(finalWebpackConfig.module.rules).toContainEqual({ - test: /sentry\.(server|edge)\.config\.(jsx?|tsx?)/, + test: expect.any(RegExp), use: [ { loader: expect.stringEndingWith('valueInjectionLoader.js'), diff --git a/packages/nextjs/test/config/webpack/webpack.test.ts b/packages/nextjs/test/config/webpack/webpack.test.ts deleted file mode 100644 index d0f8606e3b4c..000000000000 --- a/packages/nextjs/test/config/webpack/webpack.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as fs from 'fs'; -import * as os from 'os'; -import * as path from 'path'; - -import { getUserConfigFile } from '../../../src/config/webpack'; -import { exitsSync, mkdtempSyncSpy, mockExistsSync, realExistsSync } from '../mocks'; - -describe('getUserConfigFile', () => { - let tempDir: string; - - beforeAll(() => { - exitsSync.mockImplementation(realExistsSync); - }); - - beforeEach(() => { - // these will get cleaned up by the file's overall `afterAll` function, and the `mkdtempSync` mock above ensures - // that the location of the created folder is stored in `tempDir` - const tempDirPathPrefix = path.join(os.tmpdir(), 'sentry-nextjs-test-'); - fs.mkdtempSync(tempDirPathPrefix); - tempDir = mkdtempSyncSpy.mock.results[0].value; - }); - - afterAll(() => { - exitsSync.mockImplementation(mockExistsSync); - }); - - it('successfully finds js files', () => { - fs.writeFileSync(path.resolve(tempDir, 'sentry.server.config.js'), 'Dogs are great!'); - fs.writeFileSync(path.resolve(tempDir, 'sentry.client.config.js'), 'Squirrel!'); - - expect(getUserConfigFile(tempDir, 'server')).toEqual('sentry.server.config.js'); - expect(getUserConfigFile(tempDir, 'client')).toEqual('sentry.client.config.js'); - }); - - it('successfully finds ts files', () => { - fs.writeFileSync(path.resolve(tempDir, 'sentry.server.config.ts'), 'Sit. Stay. Lie Down.'); - fs.writeFileSync(path.resolve(tempDir, 'sentry.client.config.ts'), 'Good dog!'); - - expect(getUserConfigFile(tempDir, 'server')).toEqual('sentry.server.config.ts'); - expect(getUserConfigFile(tempDir, 'client')).toEqual('sentry.client.config.ts'); - }); - - it('errors when files are missing', () => { - expect(() => getUserConfigFile(tempDir, 'server')).toThrowError( - `Cannot find 'sentry.server.config.ts' or 'sentry.server.config.js' in '${tempDir}'`, - ); - expect(() => getUserConfigFile(tempDir, 'client')).toThrowError( - `Cannot find 'sentry.client.config.ts' or 'sentry.client.config.js' in '${tempDir}'`, - ); - }); -}); diff --git a/packages/nextjs/test/config/wrappingLoader.test.ts b/packages/nextjs/test/config/wrappingLoader.test.ts index eec179725e74..4458a9ce16b6 100644 --- a/packages/nextjs/test/config/wrappingLoader.test.ts +++ b/packages/nextjs/test/config/wrappingLoader.test.ts @@ -86,7 +86,6 @@ describe('wrappingLoader', () => { pageExtensionRegex: DEFAULT_PAGE_EXTENSION_REGEX, excludeServerRoutes: [], wrappingTargetKind: 'api-route', - sentryConfigFilePath: '/my/sentry.server.config.ts', vercelCronsConfig: undefined, nextjsRequestAsyncStorageModulePath: '/my/request-async-storage.js', }; diff --git a/packages/nextjs/test/integration/instrumentation.ts b/packages/nextjs/test/integration/instrumentation.ts new file mode 100644 index 000000000000..b2ea76760101 --- /dev/null +++ b/packages/nextjs/test/integration/instrumentation.ts @@ -0,0 +1,22 @@ +import * as Sentry from '@sentry/nextjs'; + +export function register() { + if (process.env.NEXT_RUNTIME === 'nodejs') { + Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + tracesSampleRate: 1.0, + tracePropagationTargets: ['http://example.com'], + debug: !!process.env.SDK_DEBUG, + integrations: defaults => [ + ...defaults.filter( + integration => + // filter out `Console` since the tests are happening in the console and we don't need to record what's printed + // there, because we can see it (this makes debug logging much less noisy, since intercepted events which are + // printed to the console no longer create console breadcrumbs, which then get printed, creating even longer + // console breadcrumbs, which get printed, etc, etc) + integration.name !== 'Console', + ), + ], + }); + } +} diff --git a/packages/nextjs/test/integration/next-env.d.ts b/packages/nextjs/test/integration/next-env.d.ts index fd36f9494e2c..4f11a03dc6cc 100644 --- a/packages/nextjs/test/integration/next-env.d.ts +++ b/packages/nextjs/test/integration/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/nextjs/test/integration/next.config.js b/packages/nextjs/test/integration/next.config.js index 815eba98e889..e9e4e4e04b2e 100644 --- a/packages/nextjs/test/integration/next.config.js +++ b/packages/nextjs/test/integration/next.config.js @@ -4,6 +4,9 @@ const moduleExports = { eslint: { ignoreDuringBuilds: true, }, + experimental: { + appDir: Number(process.env.NODE_MAJOR) >= 16, // experimental.appDir requires Node v16.8.0 or later. + }, pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], }; diff --git a/packages/nextjs/test/integration/next13.appdir.config.template b/packages/nextjs/test/integration/next13.appdir.config.template index 815eba98e889..e9e4e4e04b2e 100644 --- a/packages/nextjs/test/integration/next13.appdir.config.template +++ b/packages/nextjs/test/integration/next13.appdir.config.template @@ -4,6 +4,9 @@ const moduleExports = { eslint: { ignoreDuringBuilds: true, }, + experimental: { + appDir: Number(process.env.NODE_MAJOR) >= 16, // experimental.appDir requires Node v16.8.0 or later. + }, pageExtensions: ['jsx', 'js', 'tsx', 'ts', 'page.tsx'], }; diff --git a/packages/nextjs/test/integration/sentry.edge.config.js b/packages/nextjs/test/integration/sentry.edge.config.js deleted file mode 100644 index 36600e702048..000000000000 --- a/packages/nextjs/test/integration/sentry.edge.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - dsn: 'https://public@dsn.ingest.sentry.io/1337', - tracesSampleRate: 1.0, - tracePropagationTargets: ['http://example.com'], - debug: process.env.SDK_DEBUG, -}); diff --git a/packages/nextjs/test/integration/sentry.server.config.js b/packages/nextjs/test/integration/sentry.server.config.js deleted file mode 100644 index 54c5db73a1a2..000000000000 --- a/packages/nextjs/test/integration/sentry.server.config.js +++ /dev/null @@ -1,24 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -Sentry.init({ - dsn: 'https://public@dsn.ingest.sentry.io/1337', - tracesSampleRate: 1.0, - tracePropagationTargets: ['http://example.com'], - debug: process.env.SDK_DEBUG, - - integrations: defaults => [ - ...defaults.filter( - integration => - // filter out `Console` since the tests are happening in the console and we don't need to record what's printed - // there, because we can see it (this makes debug logging much less noisy, since intercepted events which are - // printed to the console no longer create console breadcrumbs, which then get printed, creating even longer - // console breadcrumbs, which get printed, etc, etc) - - // filter out `Http` so its options can be changed below (otherwise, default one wins because it's initialized first) - integration.name !== 'Console' && integration.name !== 'Http', - ), - - // Used for testing http tracing - new Sentry.Integrations.Http({ tracing: true }), - ], -}); diff --git a/packages/nextjs/test/integration/test/server/utils/helpers.ts b/packages/nextjs/test/integration/test/server/utils/helpers.ts index 590590c8710d..badc22c18424 100644 --- a/packages/nextjs/test/integration/test/server/utils/helpers.ts +++ b/packages/nextjs/test/integration/test/server/utils/helpers.ts @@ -5,6 +5,9 @@ import * as path from 'path'; import { parse } from 'url'; import next from 'next'; import { TestEnv } from '../../../../../../../dev-packages/node-integration-tests/utils'; +import { register } from '../../../instrumentation'; + +let initializedSdk = false; // Type not exported from NextJS // @ts-expect-error @@ -40,6 +43,13 @@ export class NextTestEnv extends TestEnv { } public static async init(): Promise { + if (!initializedSdk) { + // Normally, Next.js calls the `register` hook by itself, but since we are using a custom server for the tests we need to do it manually. + process.env.NEXT_RUNTIME = 'nodejs'; + await register(); + initializedSdk = true; + } + const server = await createNextServer({ dev: false, dir: path.resolve(__dirname, '../../..'), diff --git a/packages/nextjs/test/run-integration-tests.sh b/packages/nextjs/test/run-integration-tests.sh index 834bd34d659b..17e8ace8f446 100755 --- a/packages/nextjs/test/run-integration-tests.sh +++ b/packages/nextjs/test/run-integration-tests.sh @@ -45,23 +45,25 @@ for NEXTJS_VERSION in 13; do export NODE_MAJOR=$NODE_MAJOR export USE_APPDIR=$USE_APPDIR - # Next.js v13 requires at least Node v16 - if [ "$NODE_MAJOR" -lt "16" ] && [ "$NEXTJS_VERSION" -ge "13" ]; then - echo "[nextjs@$NEXTJS_VERSION] Not compatible with Node $NODE_MAJOR" - exit 0 - fi - echo "[nextjs@$NEXTJS_VERSION] Preparing environment..." rm -rf node_modules .next .env.local 2>/dev/null || true echo "[nextjs@$NEXTJS_VERSION] Installing dependencies..." + + # Pin to a specific version + if [ "$NEXTJS_VERSION" -eq "13" ]; then + NEXTJS_PACKAGE_JSON_VERSION="13.2.0" + else + NEXTJS_PACKAGE_JSON_VERSION="$NEXTJS_VERSION.x" + fi + # set the desired version of next long enough to run yarn, and then restore the old version (doing the restoration now # rather than during overall cleanup lets us look for "latest" in every loop) cp package.json package.json.bak if [[ $(uname) == "Darwin" ]]; then - sed -i "" /"next.*latest"/s/latest/"${NEXTJS_VERSION}.x"/ package.json + sed -i "" /"next.*latest"/s/latest/"${NEXTJS_PACKAGE_JSON_VERSION}"/ package.json else - sed -i /"next.*latest"/s/latest/"${NEXTJS_VERSION}.x"/ package.json + sed -i /"next.*latest"/s/latest/"${NEXTJS_PACKAGE_JSON_VERSION}"/ package.json fi # Yarn install randomly started failing because it couldn't find some cache so for now we need to run these two commands which seem to fix it. From 30db1151aaec6d512f0d7d232316e4004039f569 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 18 Mar 2024 13:01:18 +0000 Subject: [PATCH 18/56] chore(tests): Remove `--detectOpenHandles` from Jest config. (#11148) Ref: https://github.com/getsentry/sentry-javascript/pull/11107/ Removes `--detectOpenHandles` from Jest configurations of Remix and Next.JS which apparently causes segfault. Re-enables Remix Node 16 and Node 18 integration tests on CI --- .github/workflows/build.yml | 8 +++----- packages/nextjs/test/integration/jest.config.js | 1 - packages/nextjs/test/integration/package.json | 2 +- packages/remix/test/integration/jest.config.js | 1 - 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb95a14527e8..3d8562473837 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -906,16 +906,14 @@ jobs: strategy: fail-fast: false matrix: - # For whatever reason, these segfault on Node 18, so we are skipping these for now... - node: [20, 21] + node: [18, 20, 21] remix: [1, 2] # Remix v2 only supports Node 18+, so run Node 14, 16 tests separately include: - node: 14 remix: 1 - # For whatever reason, these segfault on Node 16, so we are skipping these for now... - # - node: 16 - # remix: 1 + - node: 16 + remix: 1 steps: - name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }}) uses: actions/checkout@v4 diff --git a/packages/nextjs/test/integration/jest.config.js b/packages/nextjs/test/integration/jest.config.js index e5b9abdfdc31..e9df7b66dc9f 100644 --- a/packages/nextjs/test/integration/jest.config.js +++ b/packages/nextjs/test/integration/jest.config.js @@ -4,7 +4,6 @@ module.exports = { ...baseConfig, testMatch: [`${__dirname}/test/server/**/*.test.ts`], testPathIgnorePatterns: [`${__dirname}/test/client`], - detectOpenHandles: true, forceExit: true, testTimeout: 30000, setupFilesAfterEnv: [`${__dirname}/jest.setup.js`], diff --git a/packages/nextjs/test/integration/package.json b/packages/nextjs/test/integration/package.json index fc93bd5681e4..afb23b2fb6f4 100644 --- a/packages/nextjs/test/integration/package.json +++ b/packages/nextjs/test/integration/package.json @@ -8,7 +8,7 @@ "start": "next start", "pretest": "yarn build", "test:client": "playwright test", - "test:server": "jest --detectOpenHandles --forceExit --runInBand" + "test:server": "jest --forceExit --runInBand" }, "dependencies": { "@sentry/nextjs": "file:../../", diff --git a/packages/remix/test/integration/jest.config.js b/packages/remix/test/integration/jest.config.js index d3173100f47f..82c2059da915 100644 --- a/packages/remix/test/integration/jest.config.js +++ b/packages/remix/test/integration/jest.config.js @@ -4,6 +4,5 @@ module.exports = { ...baseConfig, testMatch: [`${__dirname}/test/server/**/*.test.ts`], testPathIgnorePatterns: [`${__dirname}/test/client`], - detectOpenHandles: true, forceExit: true, }; From 7eed1efc3d578a23350b63a1a6f45f42fea4cbab Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 18 Mar 2024 10:24:30 -0400 Subject: [PATCH 19/56] feat(aws-serverless): Remove deprecated rethrowAfterCapture option (#11126) The `rethrowAfterCapture` option was deprecated in https://github.com/getsentry/sentry-javascript/pull/4448, which was released in `6.17.2`. This finally removes the option. --- MIGRATION.md | 18 ++++++++++++++++++ packages/aws-serverless/src/awslambda.ts | 4 ---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index deca88db2a7c..6da15a877399 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -348,6 +348,7 @@ To make sure these integrations work properly you'll have to change how you - [Next.js SDK](./MIGRATION.md#nextjs-sdk) - [SvelteKit SDK](./MIGRATION.md#sveltekit-sdk) - [Astro SDK](./MIGRATION.md#astro-sdk) +- [AWS Serverless SDK](./MIGRATION.md#aws-serverless-sdk) ### General @@ -615,6 +616,10 @@ Removed top-level exports: `withSentryApi`, `withSentryAPI`, `withSentryGetServe `IS_BUILD`, `isBuild` - [Removal of deprecated API in `@sentry/nextjs`](./MIGRATION.md#removal-of-deprecated-api-in-sentrynextjs) +- [Updated minimum compatible Next.js version to `13.2.0`](./MIGRATION.md#updated-minimum-compatible-nextjs-version-to-1320) +- [Merging of the Sentry Webpack Plugin options and SDK Build options](./MIGRATION.md#merging-of-the-sentry-webpack-plugin-options-and-sdk-build-options) +- [Removal of the `sentry` property in your Next.js options (next.config.js)](./MIGRATION.md#removal-of-the-sentry-property-in-your-nextjs-options-nextconfigjs) +- [Updated the `@sentry/webpack-plugin` dependency to version 2](./MIGRATION.md#updated-the-sentry-webpack-plugin-dependency-to-version-2) #### Removal of deprecated API in `@sentry/nextjs` @@ -767,6 +772,8 @@ hopefully reducing bugs and jank. ### Astro SDK +- [Removal of `trackHeaders` option for Astro middleware](./MIGRATION.md#removal-of-trackheaders-option-for-astro-middleware) + #### Removal of `trackHeaders` option for Astro middleware Instead of opting-in via the middleware config, you can configure if headers should be captured via @@ -786,6 +793,8 @@ Sentry.init({ ### SvelteKit SDK +- [Breaking `sentrySvelteKit()` changes](./MIGRATION.md#breaking-sentrysveltekit-changes) + #### Breaking `sentrySvelteKit()` changes We upgraded the `@sentry/vite-plugin` which is a dependency of the SvelteKit SDK from version 0.x to 2.x. With this @@ -858,6 +867,15 @@ sentrySvelteKit({ Important: we DO NOT guarantee stability of `unstable_sentryVitePluginOptions`. They can be removed or updated at any time, including breaking changes within the same major version of the SDK. +### AWS Serverless SDK + +- [Removal of `rethrowAfterCapture` option](./MIGRATION.md#removal-of-rethrowaftercapture-option) + +#### Removal of `rethrowAfterCapture` option + +In `v6.17.2` the `rethrowAfterCapture` option to `wrapHandler` was deprecated. In `v8` it has been removed. There is no +replacement API. + ## 5. Behaviour Changes - [Updated behaviour of `tracePropagationTargets` in the browser](./MIGRATION.md#updated-behaviour-of-tracepropagationtargets-in-the-browser-http-tracing-headers--cors) diff --git a/packages/aws-serverless/src/awslambda.ts b/packages/aws-serverless/src/awslambda.ts index b918494fdb90..7e39734c7301 100644 --- a/packages/aws-serverless/src/awslambda.ts +++ b/packages/aws-serverless/src/awslambda.ts @@ -42,10 +42,6 @@ export type AsyncHandler = ( export interface WrapperOptions { flushTimeout: number; - /** - * @deprecated This option is unused since v6 and will be removed in v8. - */ - rethrowAfterCapture?: boolean; callbackWaitsForEmptyEventLoop: boolean; captureTimeoutWarning: boolean; timeoutWarningLimit: number; From 799dab06695808c36f6fe1c37c3f56c3f29e938f Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 18 Mar 2024 10:24:41 -0400 Subject: [PATCH 20/56] feat(v8/browser): Remove deprecated wrap export (#11127) In https://github.com/getsentry/sentry-javascript/pull/8927 we deprecated and removed the `wrap` method. This PR removes the deprecated export from v8. --- MIGRATION.md | 7 ++- packages/browser/src/exports.ts | 2 - packages/browser/src/sdk.ts | 19 +------ packages/browser/test/unit/index.test.ts | 64 ------------------------ 4 files changed, 7 insertions(+), 85 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 6da15a877399..c5bf86c56706 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -570,11 +570,12 @@ interface Transport { ### Browser SDK (Browser, React, Vue, Angular, Ember, etc.) -Removed top-level exports: `Offline`, `makeXHRTransport`, `BrowserTracing` +Removed top-level exports: `Offline`, `makeXHRTransport`, `BrowserTracing`, `wrap` - [Removal of the `BrowserTracing` integration](./MIGRATION.md#removal-of-the-browsertracing-integration) - [Removal of Offline integration](./MIGRATION.md#removal-of-the-offline-integration) - [Removal of `makeXHRTransport` transport](./MIGRATION.md#removal-of-makexhrtransport-transport) +- [Removal of `wrap` method](./MIGRATION.md#removal-of-wrap-method) #### Removal of the `BrowserTracing` integration @@ -592,6 +593,10 @@ The `Offline` integration has been removed in favor of the The `makeXHRTransport` transport has been removed. Only `makeFetchTransport` is available now. This means that the Sentry SDK requires the fetch API to be available in the environment. +#### Removal of `wrap` method + +The `wrap` method has been removed. There is no replacement API. + ### Server-side SDKs (Node, Deno, Bun, etc.) Removed top-level exports: `enableAnrDetection`, `Anr`, `deepReadDirSync` diff --git a/packages/browser/src/exports.ts b/packages/browser/src/exports.ts index a1599f4d7f77..a4b10d5b6988 100644 --- a/packages/browser/src/exports.ts +++ b/packages/browser/src/exports.ts @@ -93,8 +93,6 @@ export { onLoad, showReportDialog, captureUserFeedback, - // eslint-disable-next-line deprecation/deprecation - wrap, } from './sdk'; export { breadcrumbsIntegration } from './integrations/breadcrumbs'; diff --git a/packages/browser/src/sdk.ts b/packages/browser/src/sdk.ts index e747bd533699..fc621ba7355a 100644 --- a/packages/browser/src/sdk.ts +++ b/packages/browser/src/sdk.ts @@ -21,7 +21,7 @@ import { dedupeIntegration } from '@sentry/core'; import type { BrowserClientOptions, BrowserOptions } from './client'; import { BrowserClient } from './client'; import { DEBUG_BUILD } from './debug-build'; -import { WINDOW, wrap as internalWrap } from './helpers'; +import { WINDOW } from './helpers'; import { breadcrumbsIntegration } from './integrations/breadcrumbs'; import { browserApiErrorsIntegration } from './integrations/browserapierrors'; import { globalHandlersIntegration } from './integrations/globalhandlers'; @@ -268,23 +268,6 @@ export function onLoad(callback: () => void): void { callback(); } -/** - * Wrap code within a try/catch block so the SDK is able to capture errors. - * - * @deprecated This function will be removed in v8. - * It is not part of Sentry's official API and it's easily replaceable by using a try/catch block - * and calling Sentry.captureException. - * - * @param fn A function to wrap. - * - * @returns The result of wrapped function call. - */ -// TODO(v8): Remove this function -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function wrap(fn: (...args: any) => any): any { - return internalWrap(fn)(); -} - /** * Enable automatic Session Tracking for the initial page load. */ diff --git a/packages/browser/test/unit/index.test.ts b/packages/browser/test/unit/index.test.ts index 19d8f570f9e6..e97046c3eb65 100644 --- a/packages/browser/test/unit/index.test.ts +++ b/packages/browser/test/unit/index.test.ts @@ -5,7 +5,6 @@ import { getReportDialogEndpoint, inboundFiltersIntegration, } from '@sentry/core'; -import type { WrappedFunction } from '@sentry/types'; import * as utils from '@sentry/utils'; import type { Event } from '../../src'; @@ -23,7 +22,6 @@ import { getCurrentScope, init, showReportDialog, - wrap, } from '../../src'; import { getDefaultBrowserClientOptions } from './helper/browser-client-options'; import { makeSimpleTransport } from './mocks/simpletransport'; @@ -402,65 +400,3 @@ describe('SentryBrowser initialization', () => { }); }); }); - -describe('wrap()', () => { - it('should wrap and call function while capturing error', done => { - const options = getDefaultBrowserClientOptions({ - beforeSend: (event: Event): Event | null => { - expect(event.exception!.values![0].type).toBe('TypeError'); - expect(event.exception!.values![0].value).toBe('mkey'); - done(); - return null; - }, - dsn, - }); - setCurrentClient(new BrowserClient(options)); - - try { - // eslint-disable-next-line deprecation/deprecation - wrap(() => { - throw new TypeError('mkey'); - }); - } catch (e) { - // no-empty - } - }); - - it('should return result of a function call', () => { - // eslint-disable-next-line deprecation/deprecation - const result = wrap(() => 2); - expect(result).toBe(2); - }); - - it('should allow for passing this and arguments through binding', () => { - // eslint-disable-next-line deprecation/deprecation - const result = wrap( - function (this: unknown, a: string, b: number): unknown[] { - return [this, a, b]; - }.bind({ context: 'this' }, 'b', 42), - ); - - expect((result as unknown[])[0]).toEqual({ context: 'this' }); - expect((result as unknown[])[1]).toBe('b'); - expect((result as unknown[])[2]).toBe(42); - - // eslint-disable-next-line deprecation/deprecation - const result2 = wrap( - function (this: { x: number }): number { - return this.x; - }.bind({ x: 42 }), - ); - - expect(result2).toBe(42); - }); - - it('should ignore frozen functions', () => { - const func = Object.freeze(() => 42); - - // eslint-disable-next-line deprecation/deprecation - wrap(func); - - expect(func()).toBe(42); - expect((func as WrappedFunction).__sentry_wrapped__).toBeUndefined(); - }); -}); From 425b11429533679d3f3a183fabf6ce50c2ba943e Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 18 Mar 2024 10:24:49 -0400 Subject: [PATCH 21/56] feat(v8/browser): Remove class export for linked errors (#11129) ref https://github.com/getsentry/sentry-javascript/issues/8844 --- packages/browser/src/integrations/linkederrors.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/browser/src/integrations/linkederrors.ts b/packages/browser/src/integrations/linkederrors.ts index 8d15b2055048..e107094950b1 100644 --- a/packages/browser/src/integrations/linkederrors.ts +++ b/packages/browser/src/integrations/linkederrors.ts @@ -1,5 +1,5 @@ -import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core'; -import type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn } from '@sentry/types'; +import { defineIntegration } from '@sentry/core'; +import type { IntegrationFn } from '@sentry/types'; import { applyAggregateErrorsToEvent } from '@sentry/utils'; import { exceptionFromError } from '../eventbuilder'; @@ -36,13 +36,7 @@ const _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => { }; }) satisfies IntegrationFn; -export const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration); - /** * Aggregrate linked errors in an event. - * @deprecated Use `linkedErrorsIntegration()` instead. */ -// eslint-disable-next-line deprecation/deprecation -export const LinkedErrors = convertIntegrationFnToClass(INTEGRATION_NAME, linkedErrorsIntegration) as IntegrationClass< - Integration & { preprocessEvent: (event: Event, hint: EventHint, client: Client) => void } -> & { new (options?: { key?: string; limit?: number }): Integration }; +export const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration); From 4bbb853a17fb8c176784b6ce4f8ebb30aaf490ab Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 18 Mar 2024 10:24:56 -0400 Subject: [PATCH 22/56] feat(v8/core): Remove deprecated integration classes (#11132) Removes exports for `ModuleMetadata` and `RequestData` --- packages/browser/src/index.ts | 2 - packages/core/src/index.ts | 3 -- .../core/src/integrations/functiontostring.ts | 18 +------- packages/core/src/integrations/metadata.ts | 19 ++------ packages/core/src/integrations/requestdata.ts | 44 ++----------------- .../test/lib/integrations/metadata.test.ts | 5 +-- .../test/lib/integrations/requestdata.test.ts | 7 ++- packages/node/src/integrations/index.ts | 1 - 8 files changed, 13 insertions(+), 86 deletions(-) diff --git a/packages/browser/src/index.ts b/packages/browser/src/index.ts index f75b1e90e0b8..4b5248f91683 100644 --- a/packages/browser/src/index.ts +++ b/packages/browser/src/index.ts @@ -75,8 +75,6 @@ export { getSpanStatusFromHttpCode, setHttpStatus, makeMultiplexedTransport, - // eslint-disable-next-line deprecation/deprecation - ModuleMetadata, moduleMetadataIntegration, } from '@sentry/core'; export type { Span } from '@sentry/types'; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index fbf233ad8dd8..217ae7273422 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -94,9 +94,6 @@ export { } from './utils/spanUtils'; export { applySdkMetadata } from './utils/sdkMetadata'; export { DEFAULT_ENVIRONMENT } from './constants'; -/* eslint-disable deprecation/deprecation */ -export { ModuleMetadata } from './integrations/metadata'; -export { RequestData } from './integrations/requestdata'; export { addBreadcrumb } from './breadcrumbs'; export { functionToStringIntegration } from './integrations/functiontostring'; export { inboundFiltersIntegration } from './integrations/inboundfilters'; diff --git a/packages/core/src/integrations/functiontostring.ts b/packages/core/src/integrations/functiontostring.ts index 0f97226b6708..ea04d3ff334d 100644 --- a/packages/core/src/integrations/functiontostring.ts +++ b/packages/core/src/integrations/functiontostring.ts @@ -1,7 +1,7 @@ -import type { Client, Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types'; +import type { Client, IntegrationFn, WrappedFunction } from '@sentry/types'; import { getOriginalFunction } from '@sentry/utils'; import { getClient } from '../currentScopes'; -import { convertIntegrationFnToClass, defineIntegration } from '../integration'; +import { defineIntegration } from '../integration'; let originalFunctionToString: () => void; @@ -48,17 +48,3 @@ const _functionToStringIntegration = (() => { * ``` */ export const functionToStringIntegration = defineIntegration(_functionToStringIntegration); - -/** - * Patch toString calls to return proper name for wrapped functions. - * - * @deprecated Use `functionToStringIntegration()` instead. - */ -// eslint-disable-next-line deprecation/deprecation -export const FunctionToString = convertIntegrationFnToClass( - INTEGRATION_NAME, - functionToStringIntegration, -) as IntegrationClass void }>; - -// eslint-disable-next-line deprecation/deprecation -export type FunctionToString = typeof FunctionToString; diff --git a/packages/core/src/integrations/metadata.ts b/packages/core/src/integrations/metadata.ts index 99fc4834b060..917d8a12beb8 100644 --- a/packages/core/src/integrations/metadata.ts +++ b/packages/core/src/integrations/metadata.ts @@ -1,6 +1,6 @@ -import type { Client, Event, EventHint, EventItem, Integration, IntegrationClass, IntegrationFn } from '@sentry/types'; +import type { EventItem, IntegrationFn } from '@sentry/types'; import { forEachEnvelopeItem } from '@sentry/utils'; -import { convertIntegrationFnToClass, defineIntegration } from '../integration'; +import { defineIntegration } from '../integration'; import { addMetadataToStackFrames, stripMetadataFromStackFrames } from '../metadata'; @@ -33,8 +33,6 @@ const _moduleMetadataIntegration = (() => { }; }) satisfies IntegrationFn; -export const moduleMetadataIntegration = defineIntegration(_moduleMetadataIntegration); - /** * Adds module metadata to stack frames. * @@ -43,16 +41,5 @@ export const moduleMetadataIntegration = defineIntegration(_moduleMetadataIntegr * When this integration is added, the metadata passed to the bundler plugin is added to the stack frames of all events * under the `module_metadata` property. This can be used to help in tagging or routing of events from different teams * our sources - * - * @deprecated Use `moduleMetadataIntegration()` instead. */ -// eslint-disable-next-line deprecation/deprecation -export const ModuleMetadata = convertIntegrationFnToClass( - INTEGRATION_NAME, - moduleMetadataIntegration, -) as IntegrationClass< - Integration & { - setup: (client: Client) => void; - processEvent: (event: Event, hint: EventHint, client: Client) => Event; - } ->; +export const moduleMetadataIntegration = defineIntegration(_moduleMetadataIntegration); diff --git a/packages/core/src/integrations/requestdata.ts b/packages/core/src/integrations/requestdata.ts index bd893f2099a6..e7c1e56dec82 100644 --- a/packages/core/src/integrations/requestdata.ts +++ b/packages/core/src/integrations/requestdata.ts @@ -1,15 +1,7 @@ -import type { - Client, - Event, - EventHint, - Integration, - IntegrationClass, - IntegrationFn, - Transaction, -} from '@sentry/types'; +import type { Client, IntegrationFn, Transaction } from '@sentry/types'; import type { AddRequestDataToEventOptions, TransactionNamingScheme } from '@sentry/utils'; import { addRequestDataToEvent, extractPathForTransaction } from '@sentry/utils'; -import { convertIntegrationFnToClass, defineIntegration } from '../integration'; +import { defineIntegration } from '../integration'; import { spanToJSON } from '../utils/spanUtils'; export type RequestDataIntegrationOptions = { @@ -127,41 +119,11 @@ const _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) = }; }) satisfies IntegrationFn; -export const requestDataIntegration = defineIntegration(_requestDataIntegration); - /** * Add data about a request to an event. Primarily for use in Node-based SDKs, but included in `@sentry/core` * so it can be used in cross-platform SDKs like `@sentry/nextjs`. - * @deprecated Use `requestDataIntegration()` instead. */ -// eslint-disable-next-line deprecation/deprecation -export const RequestData = convertIntegrationFnToClass(INTEGRATION_NAME, requestDataIntegration) as IntegrationClass< - Integration & { processEvent: (event: Event, hint: EventHint, client: Client) => Event } -> & { - new (options?: { - /** - * Controls what data is pulled from the request and added to the event - */ - include?: { - cookies?: boolean; - data?: boolean; - headers?: boolean; - ip?: boolean; - query_string?: boolean; - url?: boolean; - user?: - | boolean - | { - id?: boolean; - username?: boolean; - email?: boolean; - }; - }; - - /** Whether to identify transactions by parameterized path, parameterized path with method, or handler name */ - transactionNamingScheme?: TransactionNamingScheme; - }): Integration; -}; +export const requestDataIntegration = defineIntegration(_requestDataIntegration); /** Convert this integration's options to match what `addRequestDataToEvent` expects */ /** TODO: Can possibly be deleted once https://github.com/getsentry/sentry-javascript/issues/5718 is fixed */ diff --git a/packages/core/test/lib/integrations/metadata.test.ts b/packages/core/test/lib/integrations/metadata.test.ts index be5d5a8b955d..7f53ce090275 100644 --- a/packages/core/test/lib/integrations/metadata.test.ts +++ b/packages/core/test/lib/integrations/metadata.test.ts @@ -1,7 +1,7 @@ import type { Event } from '@sentry/types'; import { GLOBAL_OBJ, createStackParser, nodeStackLineParser, parseEnvelope } from '@sentry/utils'; -import { ModuleMetadata, captureException, createTransport, setCurrentClient } from '../../../src'; +import { captureException, createTransport, moduleMetadataIntegration, setCurrentClient } from '../../../src'; import { TestClient, getDefaultTestClientOptions } from '../../mocks/client'; const stackParser = createStackParser(nodeStackLineParser()); @@ -26,8 +26,7 @@ describe('ModuleMetadata integration', () => { dsn: 'https://username@domain/123', enableSend: true, stackParser, - // eslint-disable-next-line deprecation/deprecation - integrations: [new ModuleMetadata()], + integrations: [moduleMetadataIntegration()], beforeSend: (event, _hint) => { // copy the frames since reverse in in-place const lastFrame = [...(event.exception?.values?.[0].stacktrace?.frames || [])].reverse()[0]; diff --git a/packages/core/test/lib/integrations/requestdata.test.ts b/packages/core/test/lib/integrations/requestdata.test.ts index 723e9fa18260..19659333b5b1 100644 --- a/packages/core/test/lib/integrations/requestdata.test.ts +++ b/packages/core/test/lib/integrations/requestdata.test.ts @@ -2,7 +2,7 @@ import type { IncomingMessage } from 'http'; import type { Event, EventProcessor } from '@sentry/types'; import * as sentryUtils from '@sentry/utils'; import type { RequestDataIntegrationOptions } from '../../../src'; -import { RequestData, setCurrentClient } from '../../../src'; +import { requestDataIntegration, setCurrentClient } from '../../../src'; import { TestClient, getDefaultTestClientOptions } from '../../mocks/client'; @@ -16,15 +16,14 @@ const path = '/by/the/trees/'; const queryString = 'chase=me&please=thankyou'; function initWithRequestDataIntegrationOptions(integrationOptions: RequestDataIntegrationOptions): EventProcessor { - // eslint-disable-next-line deprecation/deprecation - const requestDataIntegration = new RequestData({ + const integration = requestDataIntegration({ ...integrationOptions, }); const client = new TestClient( getDefaultTestClientOptions({ dsn: 'https://dogsarebadatkeepingsecrets@squirrelchasers.ingest.sentry.io/12312012', - integrations: [requestDataIntegration], + integrations: [integration], }), ); diff --git a/packages/node/src/integrations/index.ts b/packages/node/src/integrations/index.ts index 42cf53827542..7efc74627e99 100644 --- a/packages/node/src/integrations/index.ts +++ b/packages/node/src/integrations/index.ts @@ -5,7 +5,6 @@ export { OnUncaughtException } from './onuncaughtexception'; export { OnUnhandledRejection } from './onunhandledrejection'; export { Modules } from './modules'; export { Context } from './context'; -export { RequestData } from '@sentry/core'; export { Undici } from './undici'; export { Spotlight } from './spotlight'; export { Hapi } from './hapi'; From b9e44b983075ad721526ecb6088a815b66187617 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 18 Mar 2024 15:29:48 +0000 Subject: [PATCH 23/56] feat(node): Support `tunnel` option for ANR (#11163) Closes #11159 This PR also modifies `getEnvelopeEndpointWithUrlEncodedAuth` which had a suggested simplification for v8. I ignored the suggestion because `{ tunnel, _metadata }` feels like a very "internal" API. Sure, this is convenient because it lets you pass the client options directly but it doesn't sit right as a user facing API. --- packages/core/src/api.ts | 17 ++---------- packages/core/src/baseclient.ts | 6 ++++- packages/core/test/lib/api.test.ts | 26 +++++++++---------- .../src/integrations/anr/common.ts | 1 + .../src/integrations/anr/index.ts | 1 + .../src/integrations/anr/worker.ts | 12 ++++----- 6 files changed, 27 insertions(+), 36 deletions(-) diff --git a/packages/core/src/api.ts b/packages/core/src/api.ts index c46a09b3484d..f345e14b1514 100644 --- a/packages/core/src/api.ts +++ b/packages/core/src/api.ts @@ -1,4 +1,4 @@ -import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types'; +import type { DsnComponents, DsnLike, SdkInfo } from '@sentry/types'; import { dsnToString, makeDsn, urlEncode } from '@sentry/utils'; const SENTRY_API_VERSION = '7'; @@ -31,20 +31,7 @@ function _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string * * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests. */ -export function getEnvelopeEndpointWithUrlEncodedAuth( - dsn: DsnComponents, - // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below - // options: ClientOptions = {} as ClientOptions, - tunnelOrOptions: string | ClientOptions = {} as ClientOptions, -): string { - // TODO (v8): Use this code instead - // const { tunnel, _metadata = {} } = options; - // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`; - - const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel; - const sdkInfo = - typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk; - +export function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string, sdkInfo?: SdkInfo): string { return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`; } diff --git a/packages/core/src/baseclient.ts b/packages/core/src/baseclient.ts index f6e040b53a1d..d24a168614de 100644 --- a/packages/core/src/baseclient.ts +++ b/packages/core/src/baseclient.ts @@ -135,7 +135,11 @@ export abstract class BaseClient implements Client { } if (this._dsn) { - const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options); + const url = getEnvelopeEndpointWithUrlEncodedAuth( + this._dsn, + options.tunnel, + options._metadata ? options._metadata.sdk : undefined, + ); this._transport = options.transport({ recordDroppedEvent: this.recordDroppedEvent.bind(this), ...options.transportOptions, diff --git a/packages/core/test/lib/api.test.ts b/packages/core/test/lib/api.test.ts index e370d7026516..d2e500776228 100644 --- a/packages/core/test/lib/api.test.ts +++ b/packages/core/test/lib/api.test.ts @@ -1,4 +1,4 @@ -import type { ClientOptions, DsnComponents } from '@sentry/types'; +import type { DsnComponents, SdkInfo } from '@sentry/types'; import { makeDsn } from '@sentry/utils'; import { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint } from '../../src/api'; @@ -6,7 +6,7 @@ import { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint } from ' const ingestDsn = 'https://abc@xxxx.ingest.sentry.io:1234/subpath/123'; const dsnPublic = 'https://abc@sentry.io:1234/subpath/123'; const tunnel = 'https://hello.com/world'; -const _metadata = { sdk: { name: 'sentry.javascript.browser', version: '12.31.12' } } as ClientOptions['_metadata']; +const sdkInfo = { name: 'sentry.javascript.browser', version: '12.31.12' }; const dsnPublicComponents = makeDsn(dsnPublic)!; @@ -17,25 +17,22 @@ describe('API', () => { "doesn't include `sentry_client` when called with only DSN", dsnPublicComponents, undefined, + undefined, 'https://sentry.io:1234/subpath/api/123/envelope/?sentry_key=abc&sentry_version=7', ], - ['uses `tunnel` value when called with `tunnel` as string', dsnPublicComponents, tunnel, tunnel], + ['uses `tunnel` value when called with `tunnel` option', dsnPublicComponents, tunnel, undefined, tunnel], [ - 'uses `tunnel` value when called with `tunnel` in options', + 'uses `tunnel` value when called with `tunnel` and `sdkInfo` options', dsnPublicComponents, - { tunnel } as ClientOptions, tunnel, - ], - [ - 'uses `tunnel` value when called with `tunnel` and `_metadata` in options', - dsnPublicComponents, - { tunnel, _metadata } as ClientOptions, + sdkInfo, tunnel, ], [ - 'includes `sentry_client` when called with `_metadata` in options and no tunnel', + 'includes `sentry_client` when called with `sdkInfo` in options and no tunnel', dsnPublicComponents, - { _metadata } as ClientOptions, + undefined, + sdkInfo, 'https://sentry.io:1234/subpath/api/123/envelope/?sentry_key=abc&sentry_version=7&sentry_client=sentry.javascript.browser%2F12.31.12', ], ])( @@ -43,10 +40,11 @@ describe('API', () => { ( _testName: string, dsnComponents: DsnComponents, - tunnelOrOptions: string | ClientOptions | undefined, + tunnel: string | undefined, + sdkInfo: SdkInfo | undefined, expected: string, ) => { - expect(getEnvelopeEndpointWithUrlEncodedAuth(dsnComponents, tunnelOrOptions)).toBe(expected); + expect(getEnvelopeEndpointWithUrlEncodedAuth(dsnComponents, tunnel, sdkInfo)).toBe(expected); }, ); }); diff --git a/packages/node-experimental/src/integrations/anr/common.ts b/packages/node-experimental/src/integrations/anr/common.ts index 5617871ccb24..e2e50fae4179 100644 --- a/packages/node-experimental/src/integrations/anr/common.ts +++ b/packages/node-experimental/src/integrations/anr/common.ts @@ -37,6 +37,7 @@ export interface WorkerStartData extends AnrIntegrationOptions { debug: boolean; sdkMetadata: SdkMetadata; dsn: DsnComponents; + tunnel: string | undefined; release: string | undefined; environment: string; dist: string | undefined; diff --git a/packages/node-experimental/src/integrations/anr/index.ts b/packages/node-experimental/src/integrations/anr/index.ts index 40aeafcf08ed..6ef1b5d58ac3 100644 --- a/packages/node-experimental/src/integrations/anr/index.ts +++ b/packages/node-experimental/src/integrations/anr/index.ts @@ -73,6 +73,7 @@ async function _startWorker(client: NodeClient, _options: Partial { @@ -47,7 +47,7 @@ async function sendAbnormalSession(): Promise { log('Sending abnormal session'); updateSession(session, { status: 'abnormal', abnormal_mechanism: 'anr_foreground' }); - const envelope = createSessionEnvelope(session, options.dsn, options.sdkMetadata); + const envelope = createSessionEnvelope(session, options.dsn, options.sdkMetadata, options.tunnel); // Log the envelope so to aid in testing log(JSON.stringify(envelope)); @@ -119,15 +119,15 @@ async function sendAnrEvent(frames?: StackFrame[], traceContext?: TraceContext): tags: options.staticTags, }; - const envelope = createEventEnvelope(event, options.dsn, options.sdkMetadata); - // Log the envelope so to aid in testing + const envelope = createEventEnvelope(event, options.dsn, options.sdkMetadata, options.tunnel); + // Log the envelope to aid in testing log(JSON.stringify(envelope)); await transport.send(envelope); await transport.flush(2000); - // Delay for 5 seconds so that stdio can flush in the main event loop ever restarts. - // This is mainly for the benefit of logging/debugging issues. + // Delay for 5 seconds so that stdio can flush if the main event loop ever restarts. + // This is mainly for the benefit of logging or debugging. setTimeout(() => { process.exit(0); }, 5_000); From 9a624452563edec0b426ebb2159bcfc66518c6aa Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Mon, 18 Mar 2024 11:30:06 -0400 Subject: [PATCH 24/56] feat(v8/utils): Remove deprecated util functions (#11143) ref https://github.com/getsentry/sentry-javascript/issues/9832 Deletes deprecated imports from utils package in preparation to move it to core/related. Also important because deleting `addOrUpdateIntegration` and it's associated tests means that we remove more usages of class based integrations. --- MIGRATION.md | 2 +- packages/utils/src/index.ts | 1 - packages/utils/src/normalize.ts | 5 - packages/utils/src/tracing.ts | 43 ---- packages/utils/src/userIntegrations.ts | 115 ---------- packages/utils/test/tracing.test.ts | 11 +- packages/utils/test/userIntegrations.test.ts | 217 ------------------- 7 files changed, 2 insertions(+), 392 deletions(-) delete mode 100644 packages/utils/src/userIntegrations.ts delete mode 100644 packages/utils/test/userIntegrations.test.ts diff --git a/MIGRATION.md b/MIGRATION.md index c5bf86c56706..9a3b1560e696 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -356,7 +356,7 @@ Removed top-level exports: `tracingOrigins`, `MetricsAggregator`, `metricsAggreg `Sentry.configureScope`, `Span`, `spanStatusfromHttpCode`, `makeMain`, `lastEventId`, `pushScope`, `popScope`, `addGlobalEventProcessor`, `timestampWithMs`, `addExtensionMethods` -Remove util exports: `timestampWithMs` +Removed `@sentry/utils` exports: `timestampWithMs`, `addOrUpdateIntegration`, `tracingContextFromHeaders`, `walk` - [Deprecation of `Hub` and `getCurrentHub()`](./MIGRATION.md#deprecate-hub) - [Removal of class-based integrations](./MIGRATION.md#removal-of-class-based-integrations) diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 5c714e8fbd28..a0649cef48ad 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -30,7 +30,6 @@ export * from './clientreport'; export * from './ratelimit'; export * from './baggage'; export * from './url'; -export * from './userIntegrations'; export * from './cache'; export * from './eventbuilder'; export * from './anr'; diff --git a/packages/utils/src/normalize.ts b/packages/utils/src/normalize.ts index 18820ecdc989..064ea0ee934e 100644 --- a/packages/utils/src/normalize.ts +++ b/packages/utils/src/normalize.ts @@ -169,11 +169,6 @@ function visit( return normalized; } -/** - * @deprecated This export will be removed in v8. - */ -export { visit as walk }; - /* eslint-disable complexity */ /** * Stringify the given value. Handles various known special values and types. diff --git a/packages/utils/src/tracing.ts b/packages/utils/src/tracing.ts index a687a68fa36b..def5194bbe6e 100644 --- a/packages/utils/src/tracing.ts +++ b/packages/utils/src/tracing.ts @@ -43,49 +43,6 @@ export function extractTraceparentData(traceparent?: string): TraceparentData | }; } -/** - * Create tracing context from incoming headers. - * - * @deprecated Use `propagationContextFromHeaders` instead. - */ -// TODO(v8): Remove this function -export function tracingContextFromHeaders( - sentryTrace: Parameters[0], - baggage: Parameters[0], -): { - traceparentData: ReturnType; - dynamicSamplingContext: ReturnType; - propagationContext: PropagationContext; -} { - const traceparentData = extractTraceparentData(sentryTrace); - const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage); - - const { traceId, parentSpanId, parentSampled } = traceparentData || {}; - - if (!traceparentData) { - return { - traceparentData, - dynamicSamplingContext: undefined, - propagationContext: { - traceId: traceId || uuid4(), - spanId: uuid4().substring(16), - }, - }; - } else { - return { - traceparentData, - dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it - propagationContext: { - traceId: traceId || uuid4(), - parentSpanId: parentSpanId || uuid4().substring(16), - spanId: uuid4().substring(16), - sampled: parentSampled, - dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it - }, - }; - } -} - /** * Create a propagation context from incoming headers. */ diff --git a/packages/utils/src/userIntegrations.ts b/packages/utils/src/userIntegrations.ts deleted file mode 100644 index 345c43ef04d7..000000000000 --- a/packages/utils/src/userIntegrations.ts +++ /dev/null @@ -1,115 +0,0 @@ -import type { Integration } from '@sentry/types'; - -export type UserIntegrationsFunction = (integrations: Integration[]) => Integration[]; -export type UserIntegrations = Integration[] | UserIntegrationsFunction; -export type IntegrationWithExclusionOption = Integration & { - /** - * Allow the user to exclude this integration by not returning it from a function provided as the `integrations` option - * in `Sentry.init()`. Meant to be used with default integrations, the idea being that if a user has actively filtered - * an integration out, we should be able to respect that choice if we wish. - */ - allowExclusionByUser?: boolean; -}; - -type ForcedIntegrationOptions = { - [keyPath: string]: unknown; -}; - -/** - * Recursively traverses an object to update an existing nested key. - * Note: The provided key path must include existing properties, - * the function will not create objects while traversing. - * - * @param obj An object to update - * @param value The value to update the nested key with - * @param keyPath The path to the key to update ex. fizz.buzz.foo - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function setNestedKey(obj: Record, keyPath: string, value: unknown): void { - // Ex. foo.bar.zoop will extract foo and bar.zoop - const match = keyPath.match(/([a-z_]+)\.(.*)/i); - // The match will be null when there's no more recursing to do, i.e., when we've reached the right level of the object - if (match === null) { - obj[keyPath] = value; - } else { - // `match[1]` is the initial segment of the path, and `match[2]` is the remainder of the path - const innerObj = obj[match[1]]; - setNestedKey(innerObj, match[2], value); - } -} - -/** - * Enforces inclusion of a given integration with specified options in an integration array originally determined by the - * user, by either including the given default instance or by patching an existing user instance with the given options. - * - * Ideally this would happen when integrations are set up, but there isn't currently a mechanism there for merging - * options from a default integration instance with those from a user-provided instance of the same integration, only - * for allowing the user to override a default instance entirely. (TODO: Fix that.) - * - * @param defaultIntegrationInstance An instance of the integration with the correct options already set - * @param userIntegrations Integrations defined by the user. - * @param forcedOptions Options with which to patch an existing user-derived instance on the integration. - * @returns A final integrations array. - * - * @deprecated This will be removed in v8. - */ -export function addOrUpdateIntegration( - defaultIntegrationInstance: Integration, - userIntegrations: T, - forcedOptions: ForcedIntegrationOptions = {}, -): T { - return ( - Array.isArray(userIntegrations) - ? addOrUpdateIntegrationInArray(defaultIntegrationInstance, userIntegrations, forcedOptions) - : addOrUpdateIntegrationInFunction( - defaultIntegrationInstance, - // Somehow TS can't figure out that not being an array makes this necessarily a function - userIntegrations as UserIntegrationsFunction, - forcedOptions, - ) - ) as T; -} - -function addOrUpdateIntegrationInArray( - defaultIntegrationInstance: Integration, - userIntegrations: Integration[], - forcedOptions: ForcedIntegrationOptions, -): Integration[] { - const userInstance = userIntegrations.find(integration => integration.name === defaultIntegrationInstance.name); - - if (userInstance) { - for (const [keyPath, value] of Object.entries(forcedOptions)) { - setNestedKey(userInstance, keyPath, value); - } - - return userIntegrations; - } - - return [...userIntegrations, defaultIntegrationInstance]; -} - -function addOrUpdateIntegrationInFunction( - defaultIntegrationInstance: IntegrationWithExclusionOption, - userIntegrationsFunc: UserIntegrationsFunction, - forcedOptions: ForcedIntegrationOptions, -): UserIntegrationsFunction { - const wrapper: UserIntegrationsFunction = defaultIntegrations => { - const userFinalIntegrations = userIntegrationsFunc(defaultIntegrations); - - // There are instances where we want the user to be able to prevent an integration from appearing at all, which they - // would do by providing a function which filters out the integration in question. If that's happened in one of - // those cases, don't add our default back in. - if (defaultIntegrationInstance.allowExclusionByUser) { - const userFinalInstance = userFinalIntegrations.find( - integration => integration.name === defaultIntegrationInstance.name, - ); - if (!userFinalInstance) { - return userFinalIntegrations; - } - } - - return addOrUpdateIntegrationInArray(defaultIntegrationInstance, userFinalIntegrations, forcedOptions); - }; - - return wrapper; -} diff --git a/packages/utils/test/tracing.test.ts b/packages/utils/test/tracing.test.ts index 070b7e8c058e..399c37104445 100644 --- a/packages/utils/test/tracing.test.ts +++ b/packages/utils/test/tracing.test.ts @@ -1,17 +1,8 @@ -import { extractTraceparentData, propagationContextFromHeaders, tracingContextFromHeaders } from '../src/tracing'; +import { extractTraceparentData, propagationContextFromHeaders } from '../src/tracing'; const EXAMPLE_SENTRY_TRACE = '12312012123120121231201212312012-1121201211212012-1'; const EXAMPLE_BAGGAGE = 'sentry-release=1.2.3,sentry-foo=bar,other=baz'; -describe('tracingContextFromHeaders()', () => { - it('should produce a frozen baggage (empty object) when there is an incoming trace but no baggage header', () => { - // eslint-disable-next-line deprecation/deprecation - const tracingContext = tracingContextFromHeaders('12312012123120121231201212312012-1121201211212012-1', undefined); - expect(tracingContext.dynamicSamplingContext).toEqual({}); - expect(tracingContext.propagationContext.dsc).toEqual({}); - }); -}); - describe('propagationContextFromHeaders()', () => { it('returns a completely new propagation context when no sentry-trace data is given but baggage data is given', () => { const result = propagationContextFromHeaders(undefined, undefined); diff --git a/packages/utils/test/userIntegrations.test.ts b/packages/utils/test/userIntegrations.test.ts deleted file mode 100644 index 96782fc414d6..000000000000 --- a/packages/utils/test/userIntegrations.test.ts +++ /dev/null @@ -1,217 +0,0 @@ -import type { IntegrationWithExclusionOption as Integration, UserIntegrations } from '../src/userIntegrations'; -import { addOrUpdateIntegration } from '../src/userIntegrations'; - -type MockIntegrationOptions = { - name: string; - descriptor: string; - age?: number; -}; - -class DogIntegration implements Integration { - public static id: string = 'Dog'; - public name: string = DogIntegration.id; - - public dogName: string; - public descriptor: string; - public age?: number; - - public allowExclusionByUser?: boolean; - - constructor(options: MockIntegrationOptions) { - this.dogName = options.name; - this.descriptor = options.descriptor; - this.age = options.age; - } - - setupOnce() { - return undefined; - } -} - -class CatIntegration implements Integration { - public static id: string = 'Cat'; - public name: string = CatIntegration.id; - - public catName: string; - public descriptor: string; - public age?: number; - - constructor(options: MockIntegrationOptions) { - this.catName = options.name; - this.descriptor = options.descriptor; - this.age = options.age; - } - - setupOnce() { - return undefined; - } -} - -const defaultDogIntegration = new DogIntegration({ name: 'Maisey', descriptor: 'silly' }); -const defaultCatIntegration = new CatIntegration({ name: 'Piper', descriptor: 'fluffy' }); -const forcedDogIntegration = new DogIntegration({ name: 'Charlie', descriptor: 'goofy' }); -const forcedDogIntegrationProperties = { dogName: 'Charlie', descriptor: 'goofy' }; - -// Note: This is essentially the implementation of a `test.each()` test. Making it a separate function called in -// individual tests instead allows the various `describe` clauses to be nested, which is helpful here given how many -// different combinations of factors come into play. -function runTest(testOptions: { - userIntegrations: UserIntegrations; - forcedDogIntegrationInstance: DogIntegration; - underlyingDefaultIntegrations?: Integration[]; - allowIntegrationExclusion?: boolean; - expectedDogIntegrationProperties: Partial | undefined; -}): void { - const { - userIntegrations, - forcedDogIntegrationInstance, - underlyingDefaultIntegrations = [], - allowIntegrationExclusion = false, - expectedDogIntegrationProperties, - } = testOptions; - - if (allowIntegrationExclusion) { - forcedDogIntegrationInstance.allowExclusionByUser = true; - } - - let integrations; - if (typeof userIntegrations === 'function') { - // eslint-disable-next-line deprecation/deprecation - const wrappedUserIntegrationsFunction = addOrUpdateIntegration(forcedDogIntegrationInstance, userIntegrations, { - dogName: 'Charlie', - descriptor: 'goofy', - }); - integrations = wrappedUserIntegrationsFunction(underlyingDefaultIntegrations); - } else { - // eslint-disable-next-line deprecation/deprecation - integrations = addOrUpdateIntegration( - forcedDogIntegrationInstance, - userIntegrations, - forcedDogIntegrationProperties, - ); - } - - const finalDogIntegrationInstance = integrations.find(integration => integration.name === 'Dog') as DogIntegration; - - if (expectedDogIntegrationProperties) { - expect(finalDogIntegrationInstance).toMatchObject(expectedDogIntegrationProperties); - } else { - expect(finalDogIntegrationInstance).toBeUndefined(); - } - - delete forcedDogIntegrationInstance.allowExclusionByUser; -} - -describe('addOrUpdateIntegration()', () => { - describe('user provides no `integrations` option', () => { - it('adds forced integration instance', () => { - expect.assertions(1); - - runTest({ - userIntegrations: [], // default if no option is provided - forcedDogIntegrationInstance: forcedDogIntegration, - expectedDogIntegrationProperties: forcedDogIntegrationProperties, - }); - }); - }); - - describe('user provides `integrations` array', () => { - describe('array contains forced integration type', () => { - it('updates user instance with forced options', () => { - expect.assertions(1); - - runTest({ - userIntegrations: [{ ...defaultDogIntegration, age: 9 } as unknown as Integration], - forcedDogIntegrationInstance: forcedDogIntegration, - expectedDogIntegrationProperties: { ...forcedDogIntegrationProperties, age: 9 }, - }); - }); - }); - - describe('array does not contain forced integration type', () => { - it('adds forced integration instance', () => { - expect.assertions(1); - - runTest({ - userIntegrations: [defaultCatIntegration], - forcedDogIntegrationInstance: forcedDogIntegration, - expectedDogIntegrationProperties: forcedDogIntegrationProperties, - }); - }); - }); - }); - - describe('user provides `integrations` function', () => { - describe('forced integration in `defaultIntegrations`', () => { - const underlyingDefaultIntegrations = [defaultDogIntegration, defaultCatIntegration]; - - describe('function filters out forced integration type', () => { - it('adds forced integration instance by default', () => { - expect.assertions(1); - - runTest({ - userIntegrations: _defaults => [defaultCatIntegration], - forcedDogIntegrationInstance: forcedDogIntegration, - underlyingDefaultIntegrations, - expectedDogIntegrationProperties: forcedDogIntegrationProperties, - }); - }); - - it('does not add forced integration instance if integration exclusion is allowed', () => { - expect.assertions(1); - - runTest({ - userIntegrations: _defaults => [defaultCatIntegration], - forcedDogIntegrationInstance: forcedDogIntegration, - underlyingDefaultIntegrations, - allowIntegrationExclusion: true, - expectedDogIntegrationProperties: undefined, // this means no instance was found - }); - }); - }); - - describe("function doesn't filter out forced integration type", () => { - it('updates user instance with forced options', () => { - expect.assertions(1); - - runTest({ - userIntegrations: _defaults => [{ ...defaultDogIntegration, age: 9 } as unknown as Integration], - forcedDogIntegrationInstance: forcedDogIntegration, - underlyingDefaultIntegrations, - expectedDogIntegrationProperties: { ...forcedDogIntegrationProperties, age: 9 }, - }); - }); - }); - }); - - describe('forced integration not in `defaultIntegrations`', () => { - const underlyingDefaultIntegrations = [defaultCatIntegration]; - - describe('function returns forced integration type', () => { - it('updates user instance with forced options', () => { - expect.assertions(1); - - runTest({ - userIntegrations: _defaults => [{ ...defaultDogIntegration, age: 9 } as unknown as Integration], - forcedDogIntegrationInstance: forcedDogIntegration, - underlyingDefaultIntegrations, - expectedDogIntegrationProperties: { ...forcedDogIntegrationProperties, age: 9 }, - }); - }); - }); - - describe("function doesn't return forced integration type", () => { - it('adds forced integration instance', () => { - expect.assertions(1); - - runTest({ - userIntegrations: _defaults => [{ ...defaultCatIntegration, age: 1 } as unknown as Integration], - forcedDogIntegrationInstance: forcedDogIntegration, - underlyingDefaultIntegrations, - expectedDogIntegrationProperties: forcedDogIntegrationProperties, - }); - }); - }); - }); - }); -}); From 801d2b81e4088b7fe9ea07489eb79c292c49b4a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:11:13 +0100 Subject: [PATCH 25/56] feat(deps): Bump @sentry/cli from 2.30.0 to 2.30.2 (#11168) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/remix/package.json | 2 +- yarn.lock | 90 ++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/remix/package.json b/packages/remix/package.json index b115b93b9ccd..0b9b2ab71bc2 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@remix-run/router": "1.x", - "@sentry/cli": "^2.30.0", + "@sentry/cli": "^2.30.2", "@sentry/core": "8.0.0-alpha.2", "@sentry/node": "8.0.0-alpha.2", "@sentry/opentelemetry": "8.0.0-alpha.2", diff --git a/yarn.lock b/yarn.lock index f398f4bcb89f..75b636db36b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6189,40 +6189,40 @@ magic-string "0.27.0" unplugin "1.0.1" -"@sentry/cli-darwin@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.30.0.tgz#492ecade496a54523ae5400562e3b43e719a3d0f" - integrity sha512-JVesQ9PznbHBOOOwuej2X8/onfXdmAEjBH6fTyWxBl6K8mB4KmBX/aHunXWMBX+VR9X32XZghIqj7acwaFUMPA== - -"@sentry/cli-linux-arm64@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.30.0.tgz#bcbb0d9f91148a27b3c06d70653437b07e7e8aea" - integrity sha512-JNXPkkMubKoZVlcFIoClSmTb9C/I6Bz08DuAZm2jnjRaaOMiCBxI/l50H3dmfVZ6apjEguG9JkjFdb0kqKB90w== - -"@sentry/cli-linux-arm@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.30.0.tgz#c98e7d1ecd65ea49df2e036f332a4993115ef23a" - integrity sha512-MDB3iS31WKg4krCcLo520yxbUERPeA2DCtk9Qs9vSDbQl6Er64dteHllOdx1SDOyX/7GKcxrQEQ6SMmbnOo6wg== - -"@sentry/cli-linux-i686@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.30.0.tgz#30bb4f6d4e3567b3fb0ab074b845b6b5fde791f7" - integrity sha512-WhVVziFQw/fO0Cc53pY8goPAzJtIs6ORTR89fVbKwa3ZDNkX++mEOECbP7RkmD87kuRxyKzN543RPV971PcAHw== - -"@sentry/cli-linux-x64@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.30.0.tgz#b1a7a550d875b97bf261c58c79d9c081d3e646a9" - integrity sha512-QkiVDeSfspotZ0Au5Yauv2DAm/BC1fL9BwPek/WwddM18I2HqnDp6l4TA4bQeEY++o0KEuNF53cPahpepltPjw== - -"@sentry/cli-win32-i686@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.30.0.tgz#07697fa94d8461f6715150699ffcb48e6eaeb462" - integrity sha512-xLY9B1EEGuNYPKpK6M9PMmcu2PzofdvRtbraTcU6Ck2zALS5oXB9kmWc4dDKucZ/uu9JB0m+Lo4ebaNlca45qQ== - -"@sentry/cli-win32-x64@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.30.0.tgz#1b6670222eedd4ae3c50f40f7180c07df38a304e" - integrity sha512-CiXuxnpJI0zho0XE5PVqIS9CwjDEYoMnHQRIr4Jj9OzlGTJ2iSSU6Zp3Ykd7lgo2iK4P6MfxIBm30gFQPnSvVA== +"@sentry/cli-darwin@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.30.2.tgz#a592227f428119c1239d76426ee76f895d89d521" + integrity sha512-lZkKXMt0HUAwLQuPpi/DM3CsdCCp+6B2cdur+8fAq7uARXTOsTKVDxv9pkuJHCgHUnguh8ittP5GMr0baTxmMg== + +"@sentry/cli-linux-arm64@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.30.2.tgz#b5d2314e27d0bb75f5a375282e77d2cd74d0690b" + integrity sha512-IWassuXggNhHOPCNrORNmd5SrAx5rU4XDlgOWBJr/ez7DvlPrr9EhV1xsdht6K4mPXhCGJq3rtRdCoWGJQW6Uw== + +"@sentry/cli-linux-arm@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.30.2.tgz#7f1ef0e7b50734e176290e99c6237fd99425d6e3" + integrity sha512-H7hqiLpEL7w/EHdhuUGatwg9O080mdujq4/zS96buKIHXxZE6KqMXGtMVIAvTl1+z6BlBEnfvZGI19MPw3t/7w== + +"@sentry/cli-linux-i686@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.30.2.tgz#e15182f8afb203095bb49bd621adcc91b3b785d3" + integrity sha512-gZIq131M4TJTG1lX9uvpoaGWaEXCEfdDXrXu/z/YZmAKBcThpMYChodXmm8FB6X4xb0TPXzIFqdzlLdglFK46g== + +"@sentry/cli-linux-x64@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.30.2.tgz#dce04b823f0fc54999565da32439c01349872568" + integrity sha512-NmTAIl7aW9OHxwB4149sBfvCbTyK9T/CvBX38keaD2yIThet9gZ4koP49hBDxYF99aQX3E+LIAqWwnkV9W72Sw== + +"@sentry/cli-win32-i686@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.30.2.tgz#54a8ee04b59d6004555f6d833ca17dc8c3e27402" + integrity sha512-SBR/Q3T6o+7uHwHNdjcG9GA3R++9w8oi778b95GuOC3dh0WOU6hXaKwQWe95ZcuSd2rKpouH7dhMjqqNM4HxOA== + +"@sentry/cli-win32-x64@2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.30.2.tgz#1e84df37e9f0e5743b42435f92982cf7dae5e6d8" + integrity sha512-gF9wSZxzXFgakkC+uKVLAAYlbYj13e1gTsNm3gm+ODfpV+rbHwvbKoLfNsbVCFVCEZxIV2rXEP5WmTr0kiMvWQ== "@sentry/cli@^1.74.4": version "1.77.1" @@ -6236,10 +6236,10 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/cli@^2.22.3", "@sentry/cli@^2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.30.0.tgz#3cbe9ee269779e57e3124834bb0a89112366cd98" - integrity sha512-GTO5e98vy2QwEYQvhE/ZtGUiVrUu4XungLioJbazm+ZOen8cyac8YOapZfozN5mtxjWOWMOwhOqoTeCU3Q8YKQ== +"@sentry/cli@^2.22.3", "@sentry/cli@^2.30.2": + version "2.30.2" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.30.2.tgz#5f62ec56685808875577792dfdc7de1d047905a8" + integrity sha512-jQ/RBJ3bZ4PFbfOsGq8EykygHHmXXPw+i6jqsnQfAPIeZoX+DsqpAZbYubQEZKekmQ8EVGFxGHzUVkd6hLVMbA== dependencies: https-proxy-agent "^5.0.0" node-fetch "^2.6.7" @@ -6247,13 +6247,13 @@ proxy-from-env "^1.1.0" which "^2.0.2" optionalDependencies: - "@sentry/cli-darwin" "2.30.0" - "@sentry/cli-linux-arm" "2.30.0" - "@sentry/cli-linux-arm64" "2.30.0" - "@sentry/cli-linux-i686" "2.30.0" - "@sentry/cli-linux-x64" "2.30.0" - "@sentry/cli-win32-i686" "2.30.0" - "@sentry/cli-win32-x64" "2.30.0" + "@sentry/cli-darwin" "2.30.2" + "@sentry/cli-linux-arm" "2.30.2" + "@sentry/cli-linux-arm64" "2.30.2" + "@sentry/cli-linux-i686" "2.30.2" + "@sentry/cli-linux-x64" "2.30.2" + "@sentry/cli-win32-i686" "2.30.2" + "@sentry/cli-win32-x64" "2.30.2" "@sentry/vite-plugin@2.14.2", "@sentry/vite-plugin@^2.14.2": version "2.14.2" From 9483fad74d899a8bfb0fa6e7812d3b2d1f2c2849 Mon Sep 17 00:00:00 2001 From: getsentry-bot Date: Thu, 14 Mar 2024 22:11:25 +0000 Subject: [PATCH 26/56] release: 8.0.0-alpha.4 --- .../browser-integration-tests/package.json | 4 ++-- dev-packages/e2e-tests/package.json | 2 +- .../node-integration-tests/package.json | 6 +++--- dev-packages/overhead-metrics/package.json | 2 +- dev-packages/rollup-utils/package.json | 2 +- lerna.json | 2 +- packages/angular-ivy/package.json | 10 +++++----- packages/angular/package.json | 10 +++++----- packages/astro/package.json | 12 ++++++------ packages/aws-serverless/package.json | 10 +++++----- packages/browser/package.json | 18 +++++++++--------- packages/bun/package.json | 10 +++++----- packages/core/package.json | 6 +++--- packages/core/src/version.ts | 2 +- packages/deno/package.json | 8 ++++---- packages/ember/package.json | 10 +++++----- packages/eslint-config-sdk/package.json | 6 +++--- packages/eslint-plugin-sdk/package.json | 2 +- packages/feedback/package.json | 8 ++++---- packages/gatsby/package.json | 10 +++++----- packages/google-cloud-serverless/package.json | 10 +++++----- packages/integration-shims/package.json | 8 ++++---- packages/nextjs/package.json | 14 +++++++------- packages/node-experimental/package.json | 10 +++++----- packages/node/package.json | 10 +++++----- packages/opentelemetry/package.json | 8 ++++---- packages/profiling-node/package.json | 10 +++++----- packages/react/package.json | 10 +++++----- packages/remix/package.json | 14 +++++++------- packages/replay-canvas/package.json | 10 +++++----- packages/replay-worker/package.json | 2 +- packages/replay/package.json | 12 ++++++------ packages/svelte/package.json | 10 +++++----- packages/sveltekit/package.json | 16 ++++++++-------- packages/tracing-internal/package.json | 8 ++++---- packages/types/package.json | 2 +- packages/typescript/package.json | 2 +- packages/utils/package.json | 4 ++-- packages/vercel-edge/package.json | 8 ++++---- packages/vue/package.json | 10 +++++----- packages/wasm/package.json | 10 +++++----- 41 files changed, 164 insertions(+), 164 deletions(-) diff --git a/dev-packages/browser-integration-tests/package.json b/dev-packages/browser-integration-tests/package.json index c81d913bd571..0e2ffe191e99 100644 --- a/dev-packages/browser-integration-tests/package.json +++ b/dev-packages/browser-integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/browser-integration-tests", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "main": "index.js", "license": "MIT", "engines": { @@ -40,7 +40,7 @@ "@babel/preset-typescript": "^7.16.7", "@playwright/test": "^1.40.1", "@sentry-internal/rrweb": "2.11.0", - "@sentry/browser": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", "axios": "1.6.7", "babel-loader": "^8.2.2", "html-webpack-plugin": "^5.5.0", diff --git a/dev-packages/e2e-tests/package.json b/dev-packages/e2e-tests/package.json index 9dd490f8bab7..fd2a22dfaeb9 100644 --- a/dev-packages/e2e-tests/package.json +++ b/dev-packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/e2e-tests", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "license": "MIT", "private": true, "scripts": { diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 1b16797f102d..7143fd7eef8a 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/node-integration-tests", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "license": "MIT", "engines": { "node": ">=14.18" @@ -31,8 +31,8 @@ "@nestjs/core": "^10.3.3", "@nestjs/platform-express": "^10.3.3", "@prisma/client": "5.9.1", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", "@types/mongodb": "^3.6.20", "@types/mysql": "^2.15.21", "@types/pg": "^8.6.5", diff --git a/dev-packages/overhead-metrics/package.json b/dev-packages/overhead-metrics/package.json index c887928f22e6..7125774b07c5 100644 --- a/dev-packages/overhead-metrics/package.json +++ b/dev-packages/overhead-metrics/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "name": "@sentry-internal/overhead-metrics", "main": "index.js", "author": "Sentry", diff --git a/dev-packages/rollup-utils/package.json b/dev-packages/rollup-utils/package.json index 0533c1f8c794..13013405c986 100644 --- a/dev-packages/rollup-utils/package.json +++ b/dev-packages/rollup-utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/rollup-utils", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Rollup utilities used at Sentry for the Sentry JavaScript SDK", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/rollup-utils", diff --git a/lerna.json b/lerna.json index 2024fe60e10e..44d2f64c7cc9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "npmClient": "yarn" } diff --git a/packages/angular-ivy/package.json b/packages/angular-ivy/package.json index 5f2cf0c9813d..50a3bde14c1f 100644 --- a/packages/angular-ivy/package.json +++ b/packages/angular-ivy/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/angular-ivy", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Angular with full Ivy Support", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy", @@ -21,10 +21,10 @@ "rxjs": "^6.5.5 || ^7.x" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "tslib": "^2.4.1" }, "devDependencies": { diff --git a/packages/angular/package.json b/packages/angular/package.json index e4c45d045923..e0b704efd8ea 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/angular", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Angular", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular", @@ -21,10 +21,10 @@ "rxjs": "^6.5.5 || ^7.x" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "tslib": "^2.4.1" }, "devDependencies": { diff --git a/packages/astro/package.json b/packages/astro/package.json index f0a16b8fec1a..86a0565f3afc 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/astro", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Astro", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/astro", @@ -49,11 +49,11 @@ "astro": ">=3.x || >=4.0.0-beta" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "@sentry/vite-plugin": "^2.14.2" }, "devDependencies": { diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index 431609842da1..ad9aaf018fd8 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/aws-serverless", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for AWS Lambda and AWS Serverless Environments", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/serverless", @@ -36,10 +36,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "@types/aws-lambda": "^8.10.62", "@types/express": "^4.17.14" }, diff --git a/packages/browser/package.json b/packages/browser/package.json index 1a6a79c0cc41..fe09ba59d12e 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/browser", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for browsers", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser", @@ -42,16 +42,16 @@ "access": "public" }, "dependencies": { - "@sentry-internal/feedback": "8.0.0-alpha.2", - "@sentry-internal/replay-canvas": "8.0.0-alpha.2", - "@sentry-internal/tracing": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/replay": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry-internal/feedback": "8.0.0-alpha.4", + "@sentry-internal/replay-canvas": "8.0.0-alpha.4", + "@sentry-internal/tracing": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/replay": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { - "@sentry-internal/integration-shims": "8.0.0-alpha.2", + "@sentry-internal/integration-shims": "8.0.0-alpha.4", "@types/md5": "2.1.33", "btoa": "^1.2.1", "chai": "^4.1.2", diff --git a/packages/bun/package.json b/packages/bun/package.json index 034c0cd0b948..67d1db8b5116 100644 --- a/packages/bun/package.json +++ b/packages/bun/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/bun", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for bun", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/bun", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "bun-types": "latest" diff --git a/packages/core/package.json b/packages/core/package.json index 24f7e29a036a..448717a6c297 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/core", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Base implementation for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/core", @@ -42,8 +42,8 @@ "access": "public" }, "dependencies": { - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "scripts": { "build": "run-p build:transpile build:types", diff --git a/packages/core/src/version.ts b/packages/core/src/version.ts index eb8618baf3fe..645c1985922b 100644 --- a/packages/core/src/version.ts +++ b/packages/core/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = '8.0.0-alpha.2'; +export const SDK_VERSION = '8.0.0-alpha.4'; diff --git a/packages/deno/package.json b/packages/deno/package.json index 2fe693cc15cf..92c4adc149c8 100644 --- a/packages/deno/package.json +++ b/packages/deno/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/deno", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Deno", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/deno", @@ -26,9 +26,9 @@ "index.d.ts" ], "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.5", diff --git a/packages/ember/package.json b/packages/ember/package.json index f79aeb6395c5..d854161fbcd3 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/ember", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Ember.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/ember", @@ -32,10 +32,10 @@ }, "dependencies": { "@embroider/macros": "^1.9.0", - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "ember-auto-import": "^1.12.1 || ^2.4.3", "ember-cli-babel": "^7.26.11", "ember-cli-htmlbars": "^6.1.1", diff --git a/packages/eslint-config-sdk/package.json b/packages/eslint-config-sdk/package.json index ca3c2f2235b9..4878c97b3cb3 100644 --- a/packages/eslint-config-sdk/package.json +++ b/packages/eslint-config-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-config-sdk", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK eslint config", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-config-sdk", @@ -22,8 +22,8 @@ "access": "public" }, "dependencies": { - "@sentry-internal/eslint-plugin-sdk": "8.0.0-alpha.2", - "@sentry-internal/typescript": "8.0.0-alpha.2", + "@sentry-internal/eslint-plugin-sdk": "8.0.0-alpha.4", + "@sentry-internal/typescript": "8.0.0-alpha.4", "@typescript-eslint/eslint-plugin": "^5.48.0", "@typescript-eslint/parser": "^5.48.0", "eslint-config-prettier": "^6.11.0", diff --git a/packages/eslint-plugin-sdk/package.json b/packages/eslint-plugin-sdk/package.json index f47cd6d4c44d..df7359f6e851 100644 --- a/packages/eslint-plugin-sdk/package.json +++ b/packages/eslint-plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-plugin-sdk", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK eslint plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-plugin-sdk", diff --git a/packages/feedback/package.json b/packages/feedback/package.json index 48d41f588447..e8211502c06d 100644 --- a/packages/feedback/package.json +++ b/packages/feedback/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/feedback", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Sentry SDK integration for user feedback", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/feedback", @@ -42,9 +42,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "preact": "^10.19.4" }, "scripts": { diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 8cec3aa0bdb2..dcd662c5c0e8 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/gatsby", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Gatsby.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/gatsby", @@ -50,10 +50,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/react": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/react": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "@sentry/webpack-plugin": "1.19.0" }, "peerDependencies": { diff --git a/packages/google-cloud-serverless/package.json b/packages/google-cloud-serverless/package.json index 5fab9e8c8237..bb87a277c750 100644 --- a/packages/google-cloud-serverless/package.json +++ b/packages/google-cloud-serverless/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/google-cloud-serverless", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Google Cloud Functions", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/google-cloud", @@ -37,10 +37,10 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "@types/express": "^4.17.14" }, "devDependencies": { diff --git a/packages/integration-shims/package.json b/packages/integration-shims/package.json index e3d037178ac1..9c32b314ce23 100644 --- a/packages/integration-shims/package.json +++ b/packages/integration-shims/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/integration-shims", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Shims for integrations in Sentry SDK.", "main": "build/cjs/index.js", "module": "build/esm/index.js", @@ -52,9 +52,9 @@ "url": "https://github.com/getsentry/sentry-javascript/issues" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "engines": { "node": ">=14.18" diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 96fe7c6b4155..cf70a2a70c43 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/nextjs", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Next.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nextjs", @@ -36,12 +36,12 @@ }, "dependencies": { "@rollup/plugin-commonjs": "24.0.0", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node-experimental": "8.0.0-alpha.2", - "@sentry/react": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", - "@sentry/vercel-edge": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node-experimental": "8.0.0-alpha.4", + "@sentry/react": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", + "@sentry/vercel-edge": "8.0.0-alpha.4", "@sentry/webpack-plugin": "2.14.3", "chalk": "3.0.0", "resolve": "1.22.8", diff --git a/packages/node-experimental/package.json b/packages/node-experimental/package.json index ed227381c4d6..aae36910cb2c 100644 --- a/packages/node-experimental/package.json +++ b/packages/node-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/node", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Sentry Node SDK using OpenTelemetry for performance instrumentation", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/node-experimental", @@ -62,10 +62,10 @@ "@opentelemetry/sdk-trace-base": "1.21.0", "@opentelemetry/semantic-conventions": "1.21.0", "@prisma/instrumentation": "5.9.0", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/opentelemetry": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/opentelemetry": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "@types/node": "14.18.63" diff --git a/packages/node/package.json b/packages/node/package.json index 48cd6f557668..310ae1841142 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/node-experimental", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "The old version of Sentry SDK for Node.js, without OpenTelemetry support.", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/node", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry-internal/tracing": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry-internal/tracing": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "@types/cookie": "0.5.2", diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index 903d641a103b..edee32ebc657 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/opentelemetry", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry utilities for OpenTelemetry", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/opentelemetry", @@ -42,9 +42,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", diff --git a/packages/profiling-node/package.json b/packages/profiling-node/package.json index a9847c48085b..529d7dff8c2e 100644 --- a/packages/profiling-node/package.json +++ b/packages/profiling-node/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/profiling-node", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Node.js Profiling", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/profiling-node", @@ -77,10 +77,10 @@ "test": "cross-env SENTRY_PROFILER_BINARY_DIR=lib jest --config jest.config.js" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node-experimental": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node-experimental": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "detect-libc": "^2.0.2", "node-abi": "^3.52.0" }, diff --git a/packages/react/package.json b/packages/react/package.json index 752fe8cf7c19..626080b78000 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/react", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for React.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/react", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 0b9b2ab71bc2..aaa1eb325242 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/remix", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Remix", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/remix", @@ -47,12 +47,12 @@ "dependencies": { "@remix-run/router": "1.x", "@sentry/cli": "^2.30.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/opentelemetry": "8.0.0-alpha.2", - "@sentry/react": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/opentelemetry": "8.0.0-alpha.4", + "@sentry/react": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "glob": "^10.3.4", "yargs": "^17.6.0" }, diff --git a/packages/replay-canvas/package.json b/packages/replay-canvas/package.json index a2f0cb81a44d..393b9d227250 100644 --- a/packages/replay-canvas/package.json +++ b/packages/replay-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/replay-canvas", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Replay canvas integration", "main": "build/npm/cjs/index.js", "module": "build/npm/esm/index.js", @@ -72,10 +72,10 @@ "@sentry-internal/rrweb": "2.11.0" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/replay": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/replay": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "engines": { "node": ">=14.18" diff --git a/packages/replay-worker/package.json b/packages/replay-worker/package.json index 69d4e448543e..e314845dcd90 100644 --- a/packages/replay-worker/package.json +++ b/packages/replay-worker/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/replay-worker", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Worker for @sentry/replay", "main": "build/npm/esm/index.js", "module": "build/npm/esm/index.js", diff --git a/packages/replay/package.json b/packages/replay/package.json index e84da910e56f..340180d90183 100644 --- a/packages/replay/package.json +++ b/packages/replay/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/replay", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "User replays for Sentry", "main": "build/npm/cjs/index.js", "module": "build/npm/esm/index.js", @@ -66,17 +66,17 @@ "homepage": "https://docs.sentry.io/platforms/javascript/session-replay/", "devDependencies": { "@babel/core": "^7.17.5", - "@sentry-internal/replay-worker": "8.0.0-alpha.2", + "@sentry-internal/replay-worker": "8.0.0-alpha.4", "@sentry-internal/rrweb": "2.11.0", "@sentry-internal/rrweb-snapshot": "2.11.0", "fflate": "^0.8.1", "jsdom-worker": "^0.2.1" }, "dependencies": { - "@sentry-internal/tracing": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry-internal/tracing": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "engines": { "node": ">=14.18" diff --git a/packages/svelte/package.json b/packages/svelte/package.json index fa8e69a8be84..63bd66a04483 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/svelte", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Svelte", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/svelte", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "magic-string": "^0.30.0" }, "peerDependencies": { diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index fe4d05fd0456..c00a4a1d5b5e 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/sveltekit", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for SvelteKit", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/sveltekit", @@ -37,13 +37,13 @@ "@sveltejs/kit": "1.x || 2.x" }, "dependencies": { - "@sentry-internal/tracing": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/node": "8.0.0-alpha.2", - "@sentry/opentelemetry": "8.0.0-alpha.2", - "@sentry/svelte": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2", + "@sentry-internal/tracing": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/node": "8.0.0-alpha.4", + "@sentry/opentelemetry": "8.0.0-alpha.4", + "@sentry/svelte": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4", "@sentry/vite-plugin": "2.14.2", "magic-string": "0.30.7", "magicast": "0.2.8", diff --git a/packages/tracing-internal/package.json b/packages/tracing-internal/package.json index c2b523736e1b..03723f65f397 100644 --- a/packages/tracing-internal/package.json +++ b/packages/tracing-internal/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/tracing", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Sentry Internal Tracing Package", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/tracing-internal", @@ -42,9 +42,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "@types/express": "^4.17.14" diff --git a/packages/types/package.json b/packages/types/package.json index 791ec312e9f7..4f4a8cec3cb4 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/types", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Types for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/types", diff --git a/packages/typescript/package.json b/packages/typescript/package.json index 34652785cb2c..2e112f471a26 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/typescript", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Typescript configuration used at Sentry", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/typescript", diff --git a/packages/utils/package.json b/packages/utils/package.json index 685cb3784ff2..95ad4abb0b72 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/utils", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Utilities for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/utils", @@ -42,7 +42,7 @@ "access": "public" }, "dependencies": { - "@sentry/types": "8.0.0-alpha.2" + "@sentry/types": "8.0.0-alpha.4" }, "devDependencies": { "@types/array.prototype.flat": "^1.2.1", diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index ba6d7d82257b..cac497c79c3f 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vercel-edge", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Offical Sentry SDK for the Vercel Edge Runtime", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/vercel-edge", @@ -42,9 +42,9 @@ "access": "public" }, "dependencies": { - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "devDependencies": { "@edge-runtime/jest-environment": "2.2.3", diff --git a/packages/vue/package.json b/packages/vue/package.json index 371fc276001d..0767c99b5781 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vue", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Official Sentry SDK for Vue.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/vue", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "peerDependencies": { "vue": "2.x || 3.x" diff --git a/packages/wasm/package.json b/packages/wasm/package.json index b136a6417a13..fe2fa4dc7efc 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/wasm", - "version": "8.0.0-alpha.2", + "version": "8.0.0-alpha.4", "description": "Support for WASM.", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/wasm", @@ -42,10 +42,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "8.0.0-alpha.2", - "@sentry/core": "8.0.0-alpha.2", - "@sentry/types": "8.0.0-alpha.2", - "@sentry/utils": "8.0.0-alpha.2" + "@sentry/browser": "8.0.0-alpha.4", + "@sentry/core": "8.0.0-alpha.4", + "@sentry/types": "8.0.0-alpha.4", + "@sentry/utils": "8.0.0-alpha.4" }, "scripts": { "build": "run-p build:transpile build:bundle build:types", From 08b86e22416e4df34cc1f0e5287f7e4873319079 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 18 Mar 2024 18:06:13 +0000 Subject: [PATCH 27/56] fix(node): Use unique variable for ANR context transfer (#11161) Closes #11147 --- packages/node-experimental/src/integrations/anr/worker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node-experimental/src/integrations/anr/worker.ts b/packages/node-experimental/src/integrations/anr/worker.ts index b787bb59bc07..9f8147a280cf 100644 --- a/packages/node-experimental/src/integrations/anr/worker.ts +++ b/packages/node-experimental/src/integrations/anr/worker.ts @@ -172,7 +172,7 @@ if (options.captureStackTrace) { { // Grab the trace context from the current scope expression: - 'const ctx = __SENTRY__.acs?.getCurrentScope().getPropagationContext() || {}; ctx.traceId + "-" + ctx.spanId + "-" + ctx.parentSpanId', + 'var __sentry_ctx = __SENTRY__.acs?.getCurrentScope().getPropagationContext() || {}; __sentry_ctx.traceId + "-" + __sentry_ctx.spanId + "-" + __sentry_ctx.parentSpanId', // Don't re-trigger the debugger if this causes an error silent: true, }, From b9c060a1c0bc36410fda16d04c4b846c2ab479db Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 18 Mar 2024 18:07:53 +0000 Subject: [PATCH 28/56] fix(node): Export `initOpenTelemetry` (#11158) Closes #11118 This PR exports what used to be called `initOtel` so that the `NodeClient` can be used without calling `init`. If OpenTelemetry is only required for performance feature, we should also only enable it if the sample rate is above zero to save memory. --- packages/aws-serverless/src/index.ts | 1 + packages/bun/src/index.ts | 1 + packages/google-cloud-serverless/src/index.ts | 1 + packages/node-experimental/src/index.ts | 1 + packages/node-experimental/src/sdk/init.ts | 4 ++-- .../node-experimental/src/sdk/initOtel.ts | 15 ++---------- .../node-experimental/test/sdk/client.test.ts | 23 +++++++++---------- 7 files changed, 19 insertions(+), 27 deletions(-) diff --git a/packages/aws-serverless/src/index.ts b/packages/aws-serverless/src/index.ts index d439c016faa7..747b4b80f1ab 100644 --- a/packages/aws-serverless/src/index.ts +++ b/packages/aws-serverless/src/index.ts @@ -88,6 +88,7 @@ export { hapiIntegration, setupHapiErrorHandler, spotlightIntegration, + initOpenTelemetry, } from '@sentry/node'; export { diff --git a/packages/bun/src/index.ts b/packages/bun/src/index.ts index da25f6cb08bd..5d7c8fcfcafb 100644 --- a/packages/bun/src/index.ts +++ b/packages/bun/src/index.ts @@ -109,6 +109,7 @@ export { hapiIntegration, setupHapiErrorHandler, spotlightIntegration, + initOpenTelemetry, } from '@sentry/node'; export { diff --git a/packages/google-cloud-serverless/src/index.ts b/packages/google-cloud-serverless/src/index.ts index 6505088d7c93..4a145229bd1d 100644 --- a/packages/google-cloud-serverless/src/index.ts +++ b/packages/google-cloud-serverless/src/index.ts @@ -88,6 +88,7 @@ export { hapiIntegration, setupHapiErrorHandler, spotlightIntegration, + initOpenTelemetry, } from '@sentry/node'; export { diff --git a/packages/node-experimental/src/index.ts b/packages/node-experimental/src/index.ts index 2c5b198a7b66..69091c06c60b 100644 --- a/packages/node-experimental/src/index.ts +++ b/packages/node-experimental/src/index.ts @@ -24,6 +24,7 @@ export { hapiIntegration, setupHapiErrorHandler } from './integrations/tracing/h export { spotlightIntegration } from './integrations/spotlight'; export { init, getDefaultIntegrations } from './sdk/init'; +export { initOpenTelemetry } from './sdk/initOtel'; export { getAutoPerformanceIntegrations } from './integrations/tracing'; export { getSentryRelease, defaultStackParser } from './sdk/api'; export { createGetModuleFromFilename } from './utils/module'; diff --git a/packages/node-experimental/src/sdk/init.ts b/packages/node-experimental/src/sdk/init.ts index e969b2d52966..563c91c36d76 100644 --- a/packages/node-experimental/src/sdk/init.ts +++ b/packages/node-experimental/src/sdk/init.ts @@ -37,7 +37,7 @@ import { makeNodeTransport } from '../transports'; import type { NodeClientOptions, NodeOptions } from '../types'; import { defaultStackParser, getSentryRelease } from './api'; import { NodeClient } from './client'; -import { initOtel } from './initOtel'; +import { initOpenTelemetry } from './initOtel'; function getCjsOnlyIntegrations(isCjs = typeof require !== 'undefined'): Integration[] { return isCjs ? [modulesIntegration()] : []; @@ -122,7 +122,7 @@ export function init(options: NodeOptions | undefined = {}): void { // If users opt-out of this, they _have_ to set up OpenTelemetry themselves // There is no way to use this SDK without OpenTelemetry! if (!options.skipOpenTelemetrySetup) { - initOtel(); + initOpenTelemetry(client); } validateOpenTelemetrySetup(); diff --git a/packages/node-experimental/src/sdk/initOtel.ts b/packages/node-experimental/src/sdk/initOtel.ts index f328801e3967..62473969f7d4 100644 --- a/packages/node-experimental/src/sdk/initOtel.ts +++ b/packages/node-experimental/src/sdk/initOtel.ts @@ -2,28 +2,17 @@ import { DiagLogLevel, diag } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; -import { SDK_VERSION, getClient } from '@sentry/core'; +import { SDK_VERSION } from '@sentry/core'; import { SentryPropagator, SentrySampler, SentrySpanProcessor, setupEventContextTrace } from '@sentry/opentelemetry'; import { logger } from '@sentry/utils'; -import { DEBUG_BUILD } from '../debug-build'; import { SentryContextManager } from '../otel/contextManager'; import type { NodeClient } from './client'; /** * Initialize OpenTelemetry for Node. */ -export function initOtel(): void { - const client = getClient(); - - if (!client) { - DEBUG_BUILD && - logger.warn( - 'No client available, skipping OpenTelemetry setup. This probably means that `Sentry.init()` was not called before `initOtel()`.', - ); - return; - } - +export function initOpenTelemetry(client: NodeClient): void { if (client.getOptions().debug) { const otelLogger = new Proxy(logger as typeof logger & { verbose: (typeof logger)['debug'] }, { get(target, prop, receiver) { diff --git a/packages/node-experimental/test/sdk/client.test.ts b/packages/node-experimental/test/sdk/client.test.ts index 19f90bc8d9b6..1aa4cf14fdff 100644 --- a/packages/node-experimental/test/sdk/client.test.ts +++ b/packages/node-experimental/test/sdk/client.test.ts @@ -13,8 +13,7 @@ import type { Event, EventHint } from '@sentry/types'; import type { Scope } from '@sentry/types'; import { setOpenTelemetryContextAsyncContextStrategy } from '@sentry/opentelemetry'; -import { NodeClient } from '../../src/sdk/client'; -import { initOtel } from '../../src/sdk/initOtel'; +import { NodeClient, initOpenTelemetry } from '../../src'; import { getDefaultNodeClientOptions } from '../helpers/getDefaultNodeClientOptions'; import { cleanupOtel } from '../helpers/mockSdkInit'; @@ -79,7 +78,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); withIsolationScope(isolationScope => { isolationScope.setRequestSession({ status: 'ok' }); @@ -96,7 +95,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -117,7 +116,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -138,7 +137,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -159,7 +158,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -187,7 +186,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -223,7 +222,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -244,7 +243,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -263,7 +262,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); // It is required to initialise SessionFlusher to capture Session Aggregates (it is usually initialised // by the`requestHandler`) @@ -284,7 +283,7 @@ describe('NodeClient', () => { const client = new NodeClient(options); setCurrentClient(client); client.init(); - initOtel(); + initOpenTelemetry(client); withIsolationScope(isolationScope => { isolationScope.setRequestSession({ status: 'ok' }); From a99f26051550c727a6dd94a479f4457fb15e10f3 Mon Sep 17 00:00:00 2001 From: Catherine Lee <55311782+c298lee@users.noreply.github.com> Date: Mon, 18 Mar 2024 15:57:09 -0400 Subject: [PATCH 29/56] fix(feedback): Smoother cropping experience and better UI (#11165) Fixes some cropping jank: 1. Cropping is smoother: previously the event listeners weren't working when the mouse was on the cropping buttons, which was causing the jankiness 2. Changes the cursor when on the cropping buttons 3. Increased the minimum size required for cropping so it's easier to resize https://github.com/getsentry/sentry-javascript/assets/55311782/71b7401e-c9f2-44c2-9f92-64c1c80d24ef Fixes https://github.com/getsentry/sentry/issues/67056 --- .../components/ScreenshotEditor.tsx | 86 +++++++++++-------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx index d3753631ec1c..a698f388b7c0 100644 --- a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx +++ b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx @@ -1,4 +1,4 @@ -// eslint-disable max-lines +/* eslint-disable max-lines */ import type { ComponentType, VNode, h as hType } from 'preact'; // biome-ignore lint: needed for preact import { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars @@ -8,6 +8,10 @@ import type { Dialog } from '../../types'; import { createScreenshotInputStyles } from './ScreenshotInput.css'; import { useTakeScreenshot } from './useTakeScreenshot'; +const CROP_BUTTON_SIZE = 30; +const CROP_BUTTON_BORDER = 3; +const CROP_BUTTON_OFFSET = CROP_BUTTON_SIZE + CROP_BUTTON_BORDER; + interface FactoryParams { h: typeof hType; imageBuffer: HTMLCanvasElement; @@ -19,10 +23,10 @@ interface Props { } interface Box { - startx: number; - starty: number; - endx: number; - endy: number; + startX: number; + startY: number; + endX: number; + endY: number; } interface Rect { @@ -34,10 +38,10 @@ interface Rect { const constructRect = (box: Box): Rect => { return { - x: Math.min(box.startx, box.endx), - y: Math.min(box.starty, box.endy), - width: Math.abs(box.startx - box.endx), - height: Math.abs(box.starty - box.endy), + x: Math.min(box.startX, box.endX), + y: Math.min(box.startY, box.endY), + width: Math.abs(box.startX - box.endX), + height: Math.abs(box.startY - box.endY), }; }; @@ -51,7 +55,7 @@ const getContainedSize = (img: HTMLCanvasElement): Box => { } const x = (img.clientWidth - width) / 2; const y = (img.clientHeight - height) / 2; - return { startx: x, starty: y, endx: width + x, endy: height + y }; + return { startX: x, startY: y, endX: width + x, endY: height + y }; }; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -62,7 +66,7 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor const canvasContainerRef = useRef(null); const cropContainerRef = useRef(null); const croppingRef = useRef(null); - const [croppingRect, setCroppingRect] = useState({ startx: 0, starty: 0, endx: 0, endy: 0 }); + const [croppingRect, setCroppingRect] = useState({ startX: 0, startY: 0, endX: 0, endY: 0 }); const [confirmCrop, setConfirmCrop] = useState(false); useEffect(() => { @@ -85,7 +89,7 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor cropButton.style.top = `${imageDimensions.y}px`; } - setCroppingRect({ startx: 0, starty: 0, endx: imageDimensions.width, endy: imageDimensions.height }); + setCroppingRect({ startX: 0, startY: 0, endX: imageDimensions.width, endY: imageDimensions.height }); } useEffect(() => { @@ -118,44 +122,51 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor setConfirmCrop(false); const handleMouseMove = makeHandleMouseMove(corner); const handleMouseUp = (): void => { - croppingRef.current && croppingRef.current.removeEventListener('mousemove', handleMouseMove); + DOCUMENT.removeEventListener('mousemove', handleMouseMove); DOCUMENT.removeEventListener('mouseup', handleMouseUp); setConfirmCrop(true); }; DOCUMENT.addEventListener('mouseup', handleMouseUp); - croppingRef.current && croppingRef.current.addEventListener('mousemove', handleMouseMove); + DOCUMENT.addEventListener('mousemove', handleMouseMove); } const makeHandleMouseMove = useCallback((corner: string) => { return function (e: MouseEvent) { + if (!croppingRef.current) { + return; + } + const cropCanvas = croppingRef.current; + const cropBoundingRect = cropCanvas.getBoundingClientRect(); + const mouseX = e.clientX - cropBoundingRect.x; + const mouseY = e.clientY - cropBoundingRect.y; switch (corner) { case 'topleft': setCroppingRect(prev => ({ ...prev, - startx: Math.min(e.offsetX, prev.endx - 30), - starty: Math.min(e.offsetY, prev.endy - 30), + startX: Math.min(Math.max(0, mouseX), prev.endX - CROP_BUTTON_OFFSET), + startY: Math.min(Math.max(0, mouseY), prev.endY - CROP_BUTTON_OFFSET), })); break; case 'topright': setCroppingRect(prev => ({ ...prev, - endx: Math.max(e.offsetX, prev.startx + 30), - starty: Math.min(e.offsetY, prev.endy - 30), + endX: Math.max(Math.min(mouseX, cropCanvas.width), prev.startX + CROP_BUTTON_OFFSET), + startY: Math.min(Math.max(0, mouseY), prev.endY - CROP_BUTTON_OFFSET), })); break; case 'bottomleft': setCroppingRect(prev => ({ ...prev, - startx: Math.min(e.offsetX, prev.endx - 30), - endy: Math.max(e.offsetY, prev.starty + 30), + startX: Math.min(Math.max(0, mouseX), prev.endX - CROP_BUTTON_OFFSET), + endY: Math.max(Math.min(mouseY, cropCanvas.height), prev.startY + CROP_BUTTON_OFFSET), })); break; case 'bottomright': setCroppingRect(prev => ({ ...prev, - endx: Math.max(e.offsetX, prev.startx + 30), - endy: Math.max(e.offsetY, prev.starty + 30), + endX: Math.max(Math.min(mouseX, cropCanvas.width), prev.startX + CROP_BUTTON_OFFSET), + endY: Math.max(Math.min(mouseY, cropCanvas.height), prev.startY + CROP_BUTTON_OFFSET), })); break; } @@ -229,33 +240,33 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
{ e.preventDefault(); From 8787900b9a933bb5904e9ebe25d9e96f23e0d71b Mon Sep 17 00:00:00 2001 From: Catherine Lee <55311782+c298lee@users.noreply.github.com> Date: Mon, 18 Mar 2024 19:49:44 -0400 Subject: [PATCH 30/56] fix(feedback): Reduce force layout in screenshots (#11181) Reduce force layout/reflow by reducing calls mentioned [here](https://gist.github.com/paulirish/5d52fb081b3570c81e3a) --- .../components/ScreenshotEditor.tsx | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx index a698f388b7c0..e8f0feb32a02 100644 --- a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx +++ b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx @@ -46,15 +46,17 @@ const constructRect = (box: Box): Rect => { }; const getContainedSize = (img: HTMLCanvasElement): Box => { + const imgClientHeight = img.clientHeight; + const imgClientWidth = img.clientWidth; const ratio = img.width / img.height; - let width = img.clientHeight * ratio; - let height = img.clientHeight; - if (width > img.clientWidth) { - width = img.clientWidth; - height = img.clientWidth / ratio; + let width = imgClientHeight * ratio; + let height = imgClientHeight; + if (width > imgClientWidth) { + width = imgClientWidth; + height = imgClientWidth / ratio; } - const x = (img.clientWidth - width) / 2; - const y = (img.clientHeight - height) / 2; + const x = (imgClientWidth - width) / 2; + const y = (imgClientHeight - height) / 2; return { startX: x, startY: y, endX: width + x, endY: height + y }; }; @@ -215,9 +217,11 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor if (!context) { throw new Error('Could not get canvas context'); } - imageBuffer.width = imageSource.videoWidth; - imageBuffer.height = imageSource.videoHeight; - context.drawImage(imageSource, 0, 0, imageSource.videoWidth, imageSource.videoHeight); + const sourceWidth = imageSource.videoWidth; + const sourceHeight = imageSource.videoHeight; + imageBuffer.width = sourceWidth; + imageBuffer.height = sourceHeight; + context.drawImage(imageSource, 0, 0, sourceWidth, sourceHeight); }, [imageBuffer], ), From b4d770119dbdc56b18e1c02a75e83b9e8d73cfb1 Mon Sep 17 00:00:00 2001 From: Catherine Lee <55311782+c298lee@users.noreply.github.com> Date: Mon, 18 Mar 2024 19:53:16 -0400 Subject: [PATCH 31/56] fix(feedback): Only allow screenshots in secure contexts (#11188) We use [getDisplayMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia) to take screenshots, which only works in secure contexts, so disable screenshot when not a secure context. --- packages/feedback/src/util/isScreenshotSupported.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/feedback/src/util/isScreenshotSupported.ts b/packages/feedback/src/util/isScreenshotSupported.ts index d4e27468fcb0..a486e8f91d99 100644 --- a/packages/feedback/src/util/isScreenshotSupported.ts +++ b/packages/feedback/src/util/isScreenshotSupported.ts @@ -8,10 +8,17 @@ import { NAVIGATOR } from '../constants'; * * https://stackoverflow.com/a/58879212 * https://stackoverflow.com/a/3540295 + * + * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can. + * + * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia */ export function isScreenshotSupported(): boolean { if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) { return false; } + if (!isSecureContext) { + return false; + } return true; } From fea2480fa8ece85083448cecff0f4a78f86d5cd1 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Tue, 19 Mar 2024 09:54:18 +0100 Subject: [PATCH 32/56] feat(nextjs): Prefix webpack plugin log messages with runtime (#11173) --- packages/nextjs/package.json | 2 +- .../nextjs/src/config/webpackPluginOptions.ts | 7 ++++- yarn.lock | 28 +++++++++---------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index cf70a2a70c43..c4cc051088f3 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -42,7 +42,7 @@ "@sentry/types": "8.0.0-alpha.4", "@sentry/utils": "8.0.0-alpha.4", "@sentry/vercel-edge": "8.0.0-alpha.4", - "@sentry/webpack-plugin": "2.14.3", + "@sentry/webpack-plugin": "2.16.0", "chalk": "3.0.0", "resolve": "1.22.8", "rollup": "3.29.4", diff --git a/packages/nextjs/src/config/webpackPluginOptions.ts b/packages/nextjs/src/config/webpackPluginOptions.ts index 8f3c7aab28de..0d65b608d642 100644 --- a/packages/nextjs/src/config/webpackPluginOptions.ts +++ b/packages/nextjs/src/config/webpackPluginOptions.ts @@ -11,7 +11,9 @@ export function getWebpackPluginOptions( buildContext: BuildContext, sentryBuildOptions: SentryBuildOptions, ): SentryWebpackPluginOptions { - const { buildId, isServer, config: userNextConfig, dir: projectDir } = buildContext; + const { buildId, isServer, config: userNextConfig, dir: projectDir, nextRuntime } = buildContext; + + const prefixInsert = !isServer ? 'Client' : nextRuntime === 'edge' ? 'Edge' : 'Node.js'; const distDirAbsPath = path.join(projectDir, (userNextConfig as NextConfigObject).distDir || '.next'); // `.next` is the default directory @@ -89,6 +91,9 @@ export function getWebpackPluginOptions( deploy: sentryBuildOptions.release?.deploy, ...sentryBuildOptions.unstable_sentryWebpackPluginOptions?.release, }, + _metaOptions: { + loggerPrefixOverride: `[@sentry/nextjs - ${prefixInsert}]`, + }, ...sentryBuildOptions.unstable_sentryWebpackPluginOptions, }; } diff --git a/yarn.lock b/yarn.lock index 75b636db36b0..b73fc1ab113f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6156,10 +6156,10 @@ resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.14.2.tgz#d756bed93495e97a5a2aad56e2a6dc5020305adc" integrity sha512-mFBVnIZmdMrpxo61rG5yf0WFt5VrRpy8cpIpJtT3mYkX9vDmcUZaZaD1ctv73iZF3QwaieVdn05Na5mWzZ8h/A== -"@sentry/babel-plugin-component-annotate@2.14.3": - version "2.14.3" - resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.14.3.tgz#7064d656e620e73c671f23815727475369ecc070" - integrity sha512-h0ONVTe8j3Ma2g5SMsl9ynmLZdCf+CupLF7PQ7n06K0L8dDtrHqo8yjsWaZSJf4InGrJ9HC4MaOSItbFjiTFLw== +"@sentry/babel-plugin-component-annotate@2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.16.0.tgz#c831713b85516fb3f9da2985836ddf444dc634e6" + integrity sha512-+uy1qPkA5MSNgJ0L9ur/vNTydfdHwHnBX2RQ+0thsvkqf90fU788YjkkXwUiBBNuqNyI69JiOW6frixAWy7oUg== "@sentry/bundler-plugin-core@2.14.2": version "2.14.2" @@ -6175,13 +6175,13 @@ magic-string "0.27.0" unplugin "1.0.1" -"@sentry/bundler-plugin-core@2.14.3": - version "2.14.3" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.14.3.tgz#b431361afb86dfb7330e4e1c593c6edc921139ee" - integrity sha512-iEtMdAPFUAYngvYhkfbgY8m3zB439u+5tvovj9rBXHGMr3nEB5fzZLOcVuiL47GEuUvMjDdrubl9MDGZ0c1IuQ== +"@sentry/bundler-plugin-core@2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.16.0.tgz#0c33e7a054fb56e43bd160ac141f71dfebf6dda5" + integrity sha512-dhgIZsIR3L9KnE2OO5JJm6hPtStAjEPYKQsZzxRr69uVhd9xAvfXeXr0afKVNVEcIDksas6yMgHqwQ2wOXFIAg== dependencies: "@babel/core" "^7.18.5" - "@sentry/babel-plugin-component-annotate" "2.14.3" + "@sentry/babel-plugin-component-annotate" "2.16.0" "@sentry/cli" "^2.22.3" dotenv "^16.3.1" find-up "^5.0.0" @@ -6270,12 +6270,12 @@ dependencies: "@sentry/cli" "^1.74.4" -"@sentry/webpack-plugin@2.14.3": - version "2.14.3" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.14.3.tgz#b392d53381115528537355d0eb1a8cf8189662ce" - integrity sha512-3nsaBqdC2MJ+06BsCa5IwJIFaODT4UJis9+MSyuPLF+Ics+K3le4dlOCl8mc2Xm0WjqJUTlUmwvTj+jasnGMUw== +"@sentry/webpack-plugin@2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.16.0.tgz#4764577edb10c9575a8b4ce03135493f995f56b9" + integrity sha512-BeKLmtK4OD9V3j92fm/lm6yp+++s2U5Uf17HwNFGt39PEOq+wUDISsx0dhXA5Qls2Bg3WhguDK71blCaVefMeg== dependencies: - "@sentry/bundler-plugin-core" "2.14.3" + "@sentry/bundler-plugin-core" "2.16.0" unplugin "1.0.1" uuid "^9.0.0" From 82abb99d33d192c36b525f40681072de717ac1ce Mon Sep 17 00:00:00 2001 From: Sigrid Huemer <32902192+s1gr1d@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:12:49 +0100 Subject: [PATCH 33/56] test(browser): Add async span example test (#11080) For showing current behavior with using differently timed async spans in browser ref https://github.com/getsentry/sentry-javascript/pull/10986 ref https://github.com/getsentry/sentry-javascript/issues/10944 --- .../async-spans/init.js | 9 +++++ .../async-spans/subject.js | 30 ++++++++++++++ .../async-spans/test.ts | 39 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/init.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/subject.js create mode 100644 dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/test.ts diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/init.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/init.js new file mode 100644 index 000000000000..83076460599f --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/init.js @@ -0,0 +1,9 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + integrations: [Sentry.browserTracingIntegration()], + tracesSampleRate: 1, +}); diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/subject.js b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/subject.js new file mode 100644 index 000000000000..09fe33f0e5ee --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/subject.js @@ -0,0 +1,30 @@ +import { getActiveSpan, spanToJSON, startSpan } from '@sentry/browser'; + +const waitForSeconds = seconds => new Promise(res => setTimeout(res, seconds * 1000)); + +startSpan({ name: 'span 1' }, async () => { + await waitForSeconds(1); + window.firstWaitingSpan = spanToJSON(getActiveSpan()); +}); + +startSpan({ name: 'span 2' }, async () => { + await waitForSeconds(2); + window.secondWaitingSpan = spanToJSON(getActiveSpan()); +}); + +startSpan({ name: 'span 3' }, async () => { + await waitForSeconds(0.5); + window.thirdWaitingSpan = spanToJSON(getActiveSpan()); +}); + +/** + * This is what happens here: + * 1. span 1 starts + * 2. span 2 starts + * 3. span 3 starts (span 3 is active now) + * 4. waiting time in span 3 is over and 'span 3' is stored in variable + * 5. span 3 ends (2 is active now) + * 6. waiting time in span 1 is over and 'span 2' is stored in variable + * 7. span 2 ends (1 is active now) + * 8. waiting time in span 2 is over and 'span 1' is stored in variable + */ diff --git a/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/test.ts b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/test.ts new file mode 100644 index 000000000000..b79483149fd1 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/async-spans/test.ts @@ -0,0 +1,39 @@ +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; + +type WindowWithSpan = Window & { + firstWaitingSpan: any; + secondWaitingSpan: any; + thirdWaitingSpan: any; +}; + +sentryTest( + 'async spans with different durations lead to unexpected behavior in browser (no "asynchronous context tracking")', + async ({ getLocalTestPath, page }) => { + if (shouldSkipTracingTest()) { + sentryTest.skip(); + } + + const url = await getLocalTestPath({ testDir: __dirname }); + await page.goto(url); + + const envelope = await getFirstSentryEnvelopeRequest(page); + expect(envelope).toBeDefined(); + + const firstWaitingSpanValue = await page.evaluate( + () => (window as unknown as WindowWithSpan).firstWaitingSpan.description, + ); + const secondWaitingSpanName = await page.evaluate( + () => (window as unknown as WindowWithSpan).secondWaitingSpan.description, + ); + const thirdWaitingSpanName = await page.evaluate( + () => (window as unknown as WindowWithSpan).thirdWaitingSpan.description, + ); + + expect(firstWaitingSpanValue).toBe('span 2'); + expect(secondWaitingSpanName).toBe('span 1'); + expect(thirdWaitingSpanName).toBe('span 3'); + }, +); From 125b368b27d84b65d9e6a6c12ee87b374b14b606 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Tue, 19 Mar 2024 10:39:03 +0100 Subject: [PATCH 34/56] fix(opentelemetry): Do not stomp span error status (#11169) --- packages/core/src/tracing/spanstatus.ts | 3 + packages/opentelemetry/src/utils/mapStatus.ts | 65 ++++---- .../test/utils/mapStatus.test.ts | 143 ++++++++++-------- .../integration/test/server/action.test.ts | 16 +- .../integration/test/server/loader.test.ts | 6 +- .../test/integration/test/server/ssr.test.ts | 2 +- 6 files changed, 125 insertions(+), 110 deletions(-) diff --git a/packages/core/src/tracing/spanstatus.ts b/packages/core/src/tracing/spanstatus.ts index b1fd046f10c3..81983e1ad599 100644 --- a/packages/core/src/tracing/spanstatus.ts +++ b/packages/core/src/tracing/spanstatus.ts @@ -10,6 +10,7 @@ export const SPAN_STATUS_ERROR = 2; * @param httpStatus The HTTP response status code. * @returns The span status or unknown_error. */ +// https://develop.sentry.dev/sdk/event-payloads/span/ export function getSpanStatusFromHttpCode(httpStatus: number): SpanStatus { if (httpStatus < 400 && httpStatus >= 100) { return { code: SPAN_STATUS_OK }; @@ -29,6 +30,8 @@ export function getSpanStatusFromHttpCode(httpStatus: number): SpanStatus { return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }; case 429: return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }; + case 499: + return { code: SPAN_STATUS_ERROR, message: 'cancelled' }; default: return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }; } diff --git a/packages/opentelemetry/src/utils/mapStatus.ts b/packages/opentelemetry/src/utils/mapStatus.ts index ccde1c7ce178..ab40589e813c 100644 --- a/packages/opentelemetry/src/utils/mapStatus.ts +++ b/packages/opentelemetry/src/utils/mapStatus.ts @@ -1,28 +1,13 @@ import { SpanStatusCode } from '@opentelemetry/api'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; -import { SPAN_STATUS_ERROR, SPAN_STATUS_OK } from '@sentry/core'; +import { SPAN_STATUS_ERROR, SPAN_STATUS_OK, getSpanStatusFromHttpCode } from '@sentry/core'; import type { SpanStatus } from '@sentry/types'; import type { AbstractSpan } from '../types'; import { spanHasAttributes, spanHasStatus } from './spanTypes'; -// canonicalCodesHTTPMap maps some HTTP codes to Sentry's span statuses. See possible mapping in https://develop.sentry.dev/sdk/event-payloads/span/ -const canonicalCodesHTTPMap: Record = { - '400': 'failed_precondition', - '401': 'unauthenticated', - '403': 'permission_denied', - '404': 'not_found', - '409': 'aborted', - '429': 'resource_exhausted', - '499': 'cancelled', - '500': 'internal_error', - '501': 'unimplemented', - '503': 'unavailable', - '504': 'deadline_exceeded', -} as const; - // canonicalCodesGrpcMap maps some GRPC codes to Sentry's span statuses. See description in grpc documentation. -const canonicalCodesGrpcMap: Record = { +const canonicalGrpcErrorCodesMap: Record = { '1': 'cancelled', '2': 'unknown_error', '3': 'invalid_argument', @@ -48,28 +33,40 @@ export function mapStatus(span: AbstractSpan): SpanStatus { const attributes = spanHasAttributes(span) ? span.attributes : {}; const status = spanHasStatus(span) ? span.status : undefined; - const httpCode = attributes[SemanticAttributes.HTTP_STATUS_CODE]; - const grpcCode = attributes[SemanticAttributes.RPC_GRPC_STATUS_CODE]; - - const code = typeof httpCode === 'string' ? httpCode : typeof httpCode === 'number' ? httpCode.toString() : undefined; - if (code) { - const sentryStatus = canonicalCodesHTTPMap[code]; - if (sentryStatus) { - return { code: SPAN_STATUS_ERROR, message: sentryStatus }; + if (status) { + // Since span status OK is not set by default, we give it priority: https://opentelemetry.io/docs/concepts/signals/traces/#span-status + if (status.code === SpanStatusCode.OK) { + return { code: SPAN_STATUS_OK }; + // If the span is already marked as erroneous we return that exact status + } else if (status.code === SpanStatusCode.ERROR) { + return { code: SPAN_STATUS_ERROR, message: status.message }; } } - if (typeof grpcCode === 'string') { - const sentryStatus = canonicalCodesGrpcMap[grpcCode]; - if (sentryStatus) { - return { code: SPAN_STATUS_ERROR, message: sentryStatus }; - } + // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes. + + const httpCodeAttribute = attributes[SemanticAttributes.HTTP_STATUS_CODE]; + const grpcCodeAttribute = attributes[SemanticAttributes.RPC_GRPC_STATUS_CODE]; + + const numberHttpCode = + typeof httpCodeAttribute === 'number' + ? httpCodeAttribute + : typeof httpCodeAttribute === 'string' + ? parseInt(httpCodeAttribute) + : undefined; + + if (numberHttpCode) { + return getSpanStatusFromHttpCode(numberHttpCode); } - const statusCode = status && status.code; - if (statusCode === SpanStatusCode.OK || statusCode === SpanStatusCode.UNSET) { - return { code: SPAN_STATUS_OK }; + if (typeof grpcCodeAttribute === 'string') { + return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || 'unknown_error' }; } - return { code: SPAN_STATUS_ERROR, message: 'unknown_error' }; + // We default to setting the spans status to ok. + if (status && status.code === SpanStatusCode.UNSET) { + return { code: SPAN_STATUS_OK }; + } else { + return { code: SPAN_STATUS_ERROR, message: 'unknown_error' }; + } } diff --git a/packages/opentelemetry/test/utils/mapStatus.test.ts b/packages/opentelemetry/test/utils/mapStatus.test.ts index eb9182973d23..5b9e65e36d76 100644 --- a/packages/opentelemetry/test/utils/mapStatus.test.ts +++ b/packages/opentelemetry/test/utils/mapStatus.test.ts @@ -6,79 +6,94 @@ import { mapStatus } from '../../src/utils/mapStatus'; import { createSpan } from '../helpers/createSpan'; describe('mapStatus', () => { - const statusTestTable: [number, undefined | number | string, undefined | string, SpanStatus][] = [ - [-1, undefined, undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], - [3, undefined, undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], - [0, undefined, undefined, { code: SPAN_STATUS_OK }], - [1, undefined, undefined, { code: SPAN_STATUS_OK }], - [2, undefined, undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], - + const statusTestTable: [undefined | number | string, undefined | string, SpanStatus][] = [ // http codes - [2, 400, undefined, { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }], - [2, 401, undefined, { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], - [2, 403, undefined, { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], - [2, 404, undefined, { code: SPAN_STATUS_ERROR, message: 'not_found' }], - [2, 409, undefined, { code: SPAN_STATUS_ERROR, message: 'aborted' }], - [2, 429, undefined, { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], - [2, 499, undefined, { code: SPAN_STATUS_ERROR, message: 'cancelled' }], - [2, 500, undefined, { code: SPAN_STATUS_ERROR, message: 'internal_error' }], - [2, 501, undefined, { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], - [2, 503, undefined, { code: SPAN_STATUS_ERROR, message: 'unavailable' }], - [2, 504, undefined, { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], - [2, 999, undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], + [400, undefined, { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }], + [401, undefined, { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], + [403, undefined, { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], + [404, undefined, { code: SPAN_STATUS_ERROR, message: 'not_found' }], + [409, undefined, { code: SPAN_STATUS_ERROR, message: 'already_exists' }], + [429, undefined, { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], + [499, undefined, { code: SPAN_STATUS_ERROR, message: 'cancelled' }], + [500, undefined, { code: SPAN_STATUS_ERROR, message: 'internal_error' }], + [501, undefined, { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], + [503, undefined, { code: SPAN_STATUS_ERROR, message: 'unavailable' }], + [504, undefined, { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], + [999, undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], - [2, '400', undefined, { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }], - [2, '401', undefined, { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], - [2, '403', undefined, { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], - [2, '404', undefined, { code: SPAN_STATUS_ERROR, message: 'not_found' }], - [2, '409', undefined, { code: SPAN_STATUS_ERROR, message: 'aborted' }], - [2, '429', undefined, { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], - [2, '499', undefined, { code: SPAN_STATUS_ERROR, message: 'cancelled' }], - [2, '500', undefined, { code: SPAN_STATUS_ERROR, message: 'internal_error' }], - [2, '501', undefined, { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], - [2, '503', undefined, { code: SPAN_STATUS_ERROR, message: 'unavailable' }], - [2, '504', undefined, { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], - [2, '999', undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], + ['400', undefined, { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }], + ['401', undefined, { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], + ['403', undefined, { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], + ['404', undefined, { code: SPAN_STATUS_ERROR, message: 'not_found' }], + ['409', undefined, { code: SPAN_STATUS_ERROR, message: 'already_exists' }], + ['429', undefined, { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], + ['499', undefined, { code: SPAN_STATUS_ERROR, message: 'cancelled' }], + ['500', undefined, { code: SPAN_STATUS_ERROR, message: 'internal_error' }], + ['501', undefined, { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], + ['503', undefined, { code: SPAN_STATUS_ERROR, message: 'unavailable' }], + ['504', undefined, { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], + ['999', undefined, { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], // grpc codes - [2, undefined, '1', { code: SPAN_STATUS_ERROR, message: 'cancelled' }], - [2, undefined, '2', { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], - [2, undefined, '3', { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }], - [2, undefined, '4', { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], - [2, undefined, '5', { code: SPAN_STATUS_ERROR, message: 'not_found' }], - [2, undefined, '6', { code: SPAN_STATUS_ERROR, message: 'already_exists' }], - [2, undefined, '7', { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], - [2, undefined, '8', { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], - [2, undefined, '9', { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }], - [2, undefined, '10', { code: SPAN_STATUS_ERROR, message: 'aborted' }], - [2, undefined, '11', { code: SPAN_STATUS_ERROR, message: 'out_of_range' }], - [2, undefined, '12', { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], - [2, undefined, '13', { code: SPAN_STATUS_ERROR, message: 'internal_error' }], - [2, undefined, '14', { code: SPAN_STATUS_ERROR, message: 'unavailable' }], - [2, undefined, '15', { code: SPAN_STATUS_ERROR, message: 'data_loss' }], - [2, undefined, '16', { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], - [2, undefined, '999', { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], + [undefined, '1', { code: SPAN_STATUS_ERROR, message: 'cancelled' }], + [undefined, '2', { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], + [undefined, '3', { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }], + [undefined, '4', { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' }], + [undefined, '5', { code: SPAN_STATUS_ERROR, message: 'not_found' }], + [undefined, '6', { code: SPAN_STATUS_ERROR, message: 'already_exists' }], + [undefined, '7', { code: SPAN_STATUS_ERROR, message: 'permission_denied' }], + [undefined, '8', { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' }], + [undefined, '9', { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }], + [undefined, '10', { code: SPAN_STATUS_ERROR, message: 'aborted' }], + [undefined, '11', { code: SPAN_STATUS_ERROR, message: 'out_of_range' }], + [undefined, '12', { code: SPAN_STATUS_ERROR, message: 'unimplemented' }], + [undefined, '13', { code: SPAN_STATUS_ERROR, message: 'internal_error' }], + [undefined, '14', { code: SPAN_STATUS_ERROR, message: 'unavailable' }], + [undefined, '15', { code: SPAN_STATUS_ERROR, message: 'data_loss' }], + [undefined, '16', { code: SPAN_STATUS_ERROR, message: 'unauthenticated' }], + [undefined, '999', { code: SPAN_STATUS_ERROR, message: 'unknown_error' }], // http takes precedence over grpc - [2, '400', '2', { code: SPAN_STATUS_ERROR, message: 'failed_precondition' }], + ['400', '2', { code: SPAN_STATUS_ERROR, message: 'invalid_argument' }], ]; - it.each(statusTestTable)( - 'works with otelStatus=%i, httpCode=%s, grpcCode=%s', - (otelStatus, httpCode, grpcCode, expected) => { - const span = createSpan(); - span.setStatus({ code: otelStatus }); + it.each(statusTestTable)('works with httpCode=%s, grpcCode=%s', (httpCode, grpcCode, expected) => { + const span = createSpan(); + span.setStatus({ code: 0 }); // UNSET + + if (httpCode) { + span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpCode); + } + + if (grpcCode) { + span.setAttribute(SemanticAttributes.RPC_GRPC_STATUS_CODE, grpcCode); + } + + const actual = mapStatus(span); + expect(actual).toEqual(expected); + }); + + it('returns ok span status when is UNSET present on span', () => { + const span = createSpan(); + span.setStatus({ code: 0 }); // UNSET + expect(mapStatus(span)).toEqual({ code: SPAN_STATUS_OK }); + }); - if (httpCode) { - span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpCode); - } + it('returns ok span status when already present on span', () => { + const span = createSpan(); + span.setStatus({ code: 1 }); // OK + expect(mapStatus(span)).toEqual({ code: SPAN_STATUS_OK }); + }); - if (grpcCode) { - span.setAttribute(SemanticAttributes.RPC_GRPC_STATUS_CODE, grpcCode); - } + it('returns error status when span already has error status', () => { + const span = createSpan(); + span.setStatus({ code: 2, message: 'invalid_argument' }); // ERROR + expect(mapStatus(span)).toEqual({ code: SPAN_STATUS_ERROR, message: 'invalid_argument' }); + }); - const actual = mapStatus(span); - expect(actual).toEqual(expected); - }, - ); + it('returns unknown error status when code is unknown', () => { + const span = createSpan(); + span.setStatus({ code: -1 as 0 }); + expect(mapStatus(span)).toEqual({ code: SPAN_STATUS_ERROR, message: 'unknown_error' }); + }); }); diff --git a/packages/remix/test/integration/test/server/action.test.ts b/packages/remix/test/integration/test/server/action.test.ts index 884c11c64657..fe0b4a749c43 100644 --- a/packages/remix/test/integration/test/server/action.test.ts +++ b/packages/remix/test/integration/test/server/action.test.ts @@ -61,7 +61,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada assertSentryTransaction(transaction[2], { contexts: { trace: { - status: 'unknown_error', + status: 'internal_error', data: { 'http.response.status_code': 500, }, @@ -169,7 +169,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'GET', 'http.response.status_code': 500, @@ -217,7 +217,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, @@ -265,7 +265,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, @@ -313,7 +313,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, @@ -361,7 +361,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, @@ -409,7 +409,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, @@ -457,7 +457,7 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'POST', 'http.response.status_code': 500, diff --git a/packages/remix/test/integration/test/server/loader.test.ts b/packages/remix/test/integration/test/server/loader.test.ts index 6e1c41ae54b8..be046cb2f5e0 100644 --- a/packages/remix/test/integration/test/server/loader.test.ts +++ b/packages/remix/test/integration/test/server/loader.test.ts @@ -19,7 +19,7 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada assertSentryTransaction(transaction, { contexts: { trace: { - status: 'unknown_error', + status: 'internal_error', data: { 'http.response.status_code': 500, }, @@ -61,7 +61,7 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada assertSentryTransaction(transaction, { contexts: { trace: { - status: 'unknown_error', + status: 'internal_error', data: { 'http.response.status_code': 500, }, @@ -148,7 +148,7 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada contexts: { trace: { op: 'http.server', - status: 'unknown_error', + status: 'internal_error', data: { method: 'GET', 'http.response.status_code': 500, diff --git a/packages/remix/test/integration/test/server/ssr.test.ts b/packages/remix/test/integration/test/server/ssr.test.ts index 2e96760d2bae..63b0fdf7d4cd 100644 --- a/packages/remix/test/integration/test/server/ssr.test.ts +++ b/packages/remix/test/integration/test/server/ssr.test.ts @@ -13,7 +13,7 @@ describe('Server Side Rendering', () => { assertSentryTransaction(transaction[2], { contexts: { trace: { - status: 'unknown_error', + status: 'internal_error', data: { 'http.response.status_code': 500, }, From 8424e93865f78112652865e87e7d758cd423005c Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Tue, 19 Mar 2024 11:19:29 +0100 Subject: [PATCH 35/56] fix(ci): Fix root directory for size limit result upload (#11198) --- dev-packages/size-limit-gh-action/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/size-limit-gh-action/index.mjs b/dev-packages/size-limit-gh-action/index.mjs index 7ff44e0dd8a6..a270adc727d4 100644 --- a/dev-packages/size-limit-gh-action/index.mjs +++ b/dev-packages/size-limit-gh-action/index.mjs @@ -219,7 +219,7 @@ async function run() { }); const files = await globber.glob(); - await artifactClient.uploadArtifact(ARTIFACT_NAME, files, process.env); + await artifactClient.uploadArtifact(ARTIFACT_NAME, files, __dirname); return; } From f46089991180c9a7e6abc884e483c190e35bac17 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 19 Mar 2024 09:14:57 -0400 Subject: [PATCH 36/56] feat(v8/core): Remove deprecated client.setupIntegrations method (#11179) ref https://github.com/getsentry/sentry-javascript/pull/11177 --- packages/core/src/baseclient.ts | 17 -------- packages/core/src/hub.ts | 6 +-- packages/core/test/lib/base.test.ts | 63 ----------------------------- packages/types/src/client.ts | 6 --- 4 files changed, 2 insertions(+), 90 deletions(-) diff --git a/packages/core/src/baseclient.ts b/packages/core/src/baseclient.ts index d24a168614de..aa292e44cf33 100644 --- a/packages/core/src/baseclient.ts +++ b/packages/core/src/baseclient.ts @@ -100,9 +100,6 @@ export abstract class BaseClient implements Client { /** Array of set up integrations. */ protected _integrations: IntegrationIndex; - /** Indicates whether this client's integrations have been set up. */ - protected _integrationsInitialized: boolean; - /** Number of calls being processed */ protected _numProcessing: number; @@ -122,7 +119,6 @@ export abstract class BaseClient implements Client { protected constructor(options: O) { this._options = options; this._integrations = {}; - this._integrationsInitialized = false; this._numProcessing = 0; this._outcomes = {}; this._hooks = {}; @@ -303,16 +299,6 @@ export abstract class BaseClient implements Client { this._eventProcessors.push(eventProcessor); } - /** - * This is an internal function to setup all integrations that should run on the client. - * @deprecated Use `client.init()` instead. - */ - public setupIntegrations(forceInitialize?: boolean): void { - if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) { - this._setupIntegrations(); - } - } - /** @inheritdoc */ public init(): void { if (this._isEnabled()) { @@ -533,9 +519,6 @@ export abstract class BaseClient implements Client { const { integrations } = this._options; this._integrations = setupIntegrations(this, integrations); afterSetupIntegrations(this, integrations); - - // TODO v8: We don't need this flag anymore - this._integrationsInitialized = true; } /** Updates existing session based on the provided event */ diff --git a/packages/core/src/hub.ts b/packages/core/src/hub.ts index 98c4f1f70b6a..39e9f7de1ec1 100644 --- a/packages/core/src/hub.ts +++ b/packages/core/src/hub.ts @@ -165,10 +165,8 @@ export class Hub implements HubInterface { const top = this.getStackTop(); top.client = client; top.scope.setClient(client); - // eslint-disable-next-line deprecation/deprecation - if (client && client.setupIntegrations) { - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); + if (client) { + client.init(); } } diff --git a/packages/core/test/lib/base.test.ts b/packages/core/test/lib/base.test.ts index 6be7b6e097a2..0f789e2da169 100644 --- a/packages/core/test/lib/base.test.ts +++ b/packages/core/test/lib/base.test.ts @@ -1471,18 +1471,6 @@ describe('BaseClient', () => { global.__SENTRY__ = {}; }); - test('sets up each integration on `setupIntegrations` call', () => { - expect.assertions(2); - - const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN, integrations: [new TestIntegration()] }); - const client = new TestClient(options); - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); - - expect(Object.keys((client as any)._integrations).length).toEqual(1); - expect(client.getIntegrationByName(TestIntegration.id)).toBeTruthy(); - }); - test('sets up each integration on `init` call', () => { expect.assertions(2); @@ -1494,18 +1482,6 @@ describe('BaseClient', () => { expect(client.getIntegrationByName(TestIntegration.id)).toBeTruthy(); }); - test('skips installation for `setupIntegrations()` if DSN is not provided', () => { - expect.assertions(2); - - const options = getDefaultTestClientOptions({ integrations: [new TestIntegration()] }); - const client = new TestClient(options); - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); - - expect(Object.keys((client as any)._integrations).length).toEqual(0); - expect(client.getIntegrationByName(TestIntegration.id)).toBeFalsy(); - }); - test('skips installation for `init()` if DSN is not provided', () => { expect.assertions(2); @@ -1517,22 +1493,6 @@ describe('BaseClient', () => { expect(client.getIntegrationByName(TestIntegration.id)).toBeFalsy(); }); - test('skips installation for `setupIntegrations()` if `enabled` is set to `false`', () => { - expect.assertions(2); - - const options = getDefaultTestClientOptions({ - dsn: PUBLIC_DSN, - enabled: false, - integrations: [new TestIntegration()], - }); - const client = new TestClient(options); - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); - - expect(Object.keys((client as any)._integrations).length).toEqual(0); - expect(client.getIntegrationByName(TestIntegration.id)).toBeFalsy(); - }); - test('skips installation for `init()` if `enabled` is set to `false`', () => { expect.assertions(2); @@ -1548,29 +1508,6 @@ describe('BaseClient', () => { expect(client.getIntegrationByName(TestIntegration.id)).toBeFalsy(); }); - test('skips installation if integrations are already installed', () => { - expect.assertions(4); - - const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN, integrations: [new TestIntegration()] }); - const client = new TestClient(options); - // note: not the `Client` method `setupIntegrations`, but the free-standing function which that method calls - const setupIntegrationsHelper = jest.spyOn(integrationModule, 'setupIntegrations'); - - // it should install the first time, because integrations aren't yet installed... - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); - - expect(Object.keys((client as any)._integrations).length).toEqual(1); - expect(client.getIntegrationByName(TestIntegration.id)).toBeTruthy(); - expect(setupIntegrationsHelper).toHaveBeenCalledTimes(1); - - // ...but it shouldn't try to install a second time - // eslint-disable-next-line deprecation/deprecation - client.setupIntegrations(); - - expect(setupIntegrationsHelper).toHaveBeenCalledTimes(1); - }); - test('does not add integrations twice when calling `init` multiple times', () => { const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN, integrations: [new TestIntegration()] }); const client = new TestClient(options); diff --git a/packages/types/src/client.ts b/packages/types/src/client.ts index 6be08e8652e1..a42845813246 100644 --- a/packages/types/src/client.ts +++ b/packages/types/src/client.ts @@ -139,12 +139,6 @@ export interface Client { * */ addIntegration(integration: Integration): void; - /** - * This is an internal function to setup all integrations that should run on the client. - * @deprecated Use `client.init()` instead. - */ - setupIntegrations(forceInitialize?: boolean): void; - /** * Initialize this client. * Call this after the client was set on a scope. From 6162ea692e849845deaa52b7ec86d691b7f24b28 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 19 Mar 2024 09:15:27 -0400 Subject: [PATCH 37/56] feat(v8/replay): Delete deprecated types (#11177) ref https://github.com/getsentry/sentry-javascript/issues/10100 --- packages/replay/src/index.ts | 3 --- packages/replay/src/types/deprecated.ts | 30 ------------------------- 2 files changed, 33 deletions(-) delete mode 100644 packages/replay/src/types/deprecated.ts diff --git a/packages/replay/src/index.ts b/packages/replay/src/index.ts index e57ca98915a3..c10beb30228c 100644 --- a/packages/replay/src/index.ts +++ b/packages/replay/src/index.ts @@ -16,6 +16,3 @@ export type { } from './types'; export { getReplay } from './util/getReplay'; - -// TODO (v8): Remove deprecated types -export * from './types/deprecated'; diff --git a/packages/replay/src/types/deprecated.ts b/packages/replay/src/types/deprecated.ts deleted file mode 100644 index ff57070bf2ee..000000000000 --- a/packages/replay/src/types/deprecated.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { - ReplayBreadcrumbFrame, - ReplayBreadcrumbFrameEvent, - ReplayEventType, - ReplayEventWithTime, - ReplayOptionFrameEvent, - ReplaySpanFrame, - ReplaySpanFrameEvent, -} from '.'; - -/** @deprecated use ReplayEventType instead */ -export type EventType = ReplayEventType; - -/** @deprecated use ReplayEventWithTime instead */ -export type eventWithTime = ReplayEventWithTime; - -/** @deprecated use ReplayBreadcrumbFrame instead */ -export type BreadcrumbFrame = ReplayBreadcrumbFrame; - -/** @deprecated use ReplayBreadcrumbFrameEvent instead */ -export type BreadcrumbFrameEvent = ReplayBreadcrumbFrameEvent; - -/** @deprecated use ReplayOptionFrameEvent instead */ -export type OptionFrameEvent = ReplayOptionFrameEvent; - -/** @deprecated use ReplaySpanFrame instead */ -export type SpanFrame = ReplaySpanFrame; - -/** @deprecated use ReplaySpanFrameEvent instead */ -export type SpanFrameEvent = ReplaySpanFrameEvent; From 34643e3df575125290936c115f7102bd075dee44 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 19 Mar 2024 09:27:20 -0400 Subject: [PATCH 38/56] fix(metrics): use correct statsd data category (#11184) As per https://github.com/getsentry/relay/blob/2f49cfeb4ed44068e4556ac6ad234f35ee3fde88/relay-server/src/envelope.rs#L166C30-L166C36 Will backport to v7. --- packages/types/src/datacategory.ts | 2 ++ packages/utils/src/envelope.ts | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/types/src/datacategory.ts b/packages/types/src/datacategory.ts index ca2acd29e235..96e6d7ae65ae 100644 --- a/packages/types/src/datacategory.ts +++ b/packages/types/src/datacategory.ts @@ -26,5 +26,7 @@ export type DataCategory = | 'monitor' // Feedback type event (v2) | 'feedback' + // Statsd type event for metrics + | 'statsd' // Unknown data category | 'unknown'; diff --git a/packages/utils/src/envelope.ts b/packages/utils/src/envelope.ts index 6d08ab3e32fa..e165b33f78eb 100644 --- a/packages/utils/src/envelope.ts +++ b/packages/utils/src/envelope.ts @@ -203,8 +203,7 @@ const ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record = { replay_recording: 'replay', check_in: 'monitor', feedback: 'feedback', - // TODO: This is a temporary workaround until we have a proper data category for metrics - statsd: 'unknown', + statsd: 'statsd', }; /** From 9a3aa0fdd5009a9c77facf57a2754ea02da3861f Mon Sep 17 00:00:00 2001 From: Sigrid Huemer <32902192+s1gr1d@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:23:05 +0100 Subject: [PATCH 39/56] feat(v8/angular): Merge angular and angular-ivy packages and start Angular support at v14 (#11091) Start using vitest for better ESM support (since Angular 13) closes https://github.com/getsentry/sentry-javascript/issues/9830 --------- Co-authored-by: Lukas Stracke --- .craft.yml | 5 - .github/ISSUE_TEMPLATE/bug.yml | 1 - .github/workflows/issue-package-label.yml | 3 - MIGRATION.md | 7 + README.md | 2 - .../test-applications/angular-17/README.md | 2 +- .../test-applications/angular-17/package.json | 2 +- .../angular-17/src/app/app.config.ts | 2 +- .../component-tracking.components.ts | 2 +- .../angular-17/src/app/home/home.component.ts | 2 +- .../test-applications/angular-17/src/main.ts | 2 +- .../e2e-tests/verdaccio-config/config.yaml | 6 - package.json | 1 - packages/angular-ivy/LICENSE | 14 - packages/angular-ivy/README.md | 234 - packages/angular-ivy/angular.json | 30 - packages/angular-ivy/ng-package.json | 14 - packages/angular-ivy/package.json | 78 - packages/angular-ivy/scripts/prepack.ts | 40 - .../angular-ivy/scripts/syncSourceFiles.ts | 52 - packages/angular-ivy/src/constants.ts | 1 - packages/angular-ivy/src/errorhandler.ts | 1 - packages/angular-ivy/src/flags.ts | 1 - packages/angular-ivy/src/index.ts | 1 - packages/angular-ivy/src/sdk.ts | 49 - packages/angular-ivy/src/tracing.ts | 1 - packages/angular-ivy/src/zone.ts | 1 - packages/angular-ivy/tsconfig.json | 10 - packages/angular-ivy/tsconfig.ngc.json | 24 - .../.eslintrc.js => angular/.eslintrc.cjs} | 2 +- packages/angular/.eslintrc.js | 7 - packages/angular/LICENSE | 2 +- packages/angular/README.md | 15 +- packages/angular/angular.json | 13 +- packages/angular/jest.config.js | 7 - packages/angular/ng-package.json | 11 +- packages/angular/package.json | 45 +- packages/angular/patch-vitest.ts | 298 + packages/angular/setup-jest.ts | 7 - packages/angular/setup-test.ts | 7 + packages/angular/src/sdk.ts | 9 +- packages/angular/test/errorhandler.test.ts | 15 +- packages/angular/test/ivy-synced.test.ts | 31 - packages/angular/test/sdk.test.ts | 8 +- packages/angular/test/tracing.test.ts | 21 +- packages/angular/tsconfig.json | 10 +- packages/angular/tsconfig.ngc.json | 12 +- packages/angular/tsconfig.test.json | 2 +- packages/angular/vitest.config.ts | 14 + packages/nextjs/src/config/loaders/types.ts | 11 +- packages/sveltekit/package.json | 1 + yarn.lock | 7528 ++++++----------- 52 files changed, 2803 insertions(+), 5861 deletions(-) delete mode 100644 packages/angular-ivy/LICENSE delete mode 100644 packages/angular-ivy/README.md delete mode 100644 packages/angular-ivy/angular.json delete mode 100644 packages/angular-ivy/ng-package.json delete mode 100644 packages/angular-ivy/package.json delete mode 100644 packages/angular-ivy/scripts/prepack.ts delete mode 100644 packages/angular-ivy/scripts/syncSourceFiles.ts delete mode 120000 packages/angular-ivy/src/constants.ts delete mode 120000 packages/angular-ivy/src/errorhandler.ts delete mode 120000 packages/angular-ivy/src/flags.ts delete mode 120000 packages/angular-ivy/src/index.ts delete mode 100644 packages/angular-ivy/src/sdk.ts delete mode 120000 packages/angular-ivy/src/tracing.ts delete mode 120000 packages/angular-ivy/src/zone.ts delete mode 100644 packages/angular-ivy/tsconfig.json delete mode 100644 packages/angular-ivy/tsconfig.ngc.json rename packages/{angular-ivy/.eslintrc.js => angular/.eslintrc.cjs} (61%) delete mode 100644 packages/angular/.eslintrc.js delete mode 100644 packages/angular/jest.config.js create mode 100644 packages/angular/patch-vitest.ts delete mode 100644 packages/angular/setup-jest.ts create mode 100644 packages/angular/setup-test.ts delete mode 100644 packages/angular/test/ivy-synced.test.ts create mode 100644 packages/angular/vitest.config.ts diff --git a/.craft.yml b/.craft.yml index bc811a468200..f0db51dc1582 100644 --- a/.craft.yml +++ b/.craft.yml @@ -49,9 +49,6 @@ targets: includeNames: /^sentry-profiling-node-\d.*\.tgz$/ ## 3 Browser-based Packages - - name: npm - id: '@sentry/angular-ivy' - includeNames: /^sentry-angular-ivy-\d.*\.tgz$/ - name: npm id: '@sentry/angular' includeNames: /^sentry-angular-\d.*\.tgz$/ @@ -179,8 +176,6 @@ targets: onlyIfPresent: /^sentry-vue-\d.*\.tgz$/ 'npm:@sentry/gatsby': onlyIfPresent: /^sentry-gatsby-\d.*\.tgz$/ - 'npm:@sentry/angular-ivy': - onlyIfPresent: /^sentry-angular-ivy-\d.*\.tgz$/ 'npm:@sentry/angular': onlyIfPresent: /^sentry-angular-\d.*\.tgz$/ 'npm:@sentry/astro': diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 13769041be38..773e13ac54fe 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -33,7 +33,6 @@ body: - '@sentry/browser' - '@sentry/astro' - '@sentry/angular' - - '@sentry/angular-ivy' - '@sentry/aws-serverless' - '@sentry/bun' - '@sentry/deno' diff --git a/.github/workflows/issue-package-label.yml b/.github/workflows/issue-package-label.yml index c45f0e8359bc..701b27b1d4d6 100644 --- a/.github/workflows/issue-package-label.yml +++ b/.github/workflows/issue-package-label.yml @@ -38,9 +38,6 @@ jobs: "@sentry.angular": { "label": "Package: Angular" }, - "@sentry.angular-ivy": { - "label": "Package: Angular" - }, "@sentry.bun": { "label": "Package: Bun" }, diff --git a/MIGRATION.md b/MIGRATION.md index 9a3b1560e696..05c89429f5f2 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -597,6 +597,13 @@ Sentry SDK requires the fetch API to be available in the environment. The `wrap` method has been removed. There is no replacement API. +#### Removal of `@sentry/angular-ivy` package + +The `@sentry/angular-ivy` package has been removed. The `@sentry/angular` package now supports Ivy by default and +requires at least Angular 14. If you are using Angular 13 or lower, we suggest upgrading your Angular version before +migrating to v8. If you can't upgrade your Angular version to at least Angular 14, you can also continue using the +`@sentry/angular-ivy@7` SDK. However, v7 of the SDKs will no longer be fully supported going forward. + ### Server-side SDKs (Node, Deno, Bun, etc.) Removed top-level exports: `enableAnrDetection`, `Anr`, `deepReadDirSync` diff --git a/README.md b/README.md index f19c4b01c593..ff367a2018d5 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,6 @@ package. Please refer to the README and instructions of those SDKs for more deta integrations for Express - [`@sentry/angular`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular): Browser SDK for Angular -- [`@sentry/angular-ivy`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy): Browser SDK - for Angular with native support for Angular's Ivy rendering engine. - [`@sentry/astro`](https://github.com/getsentry/sentry-javascript/tree/master/packages/astro): SDK for Astro - [`@sentry/ember`](https://github.com/getsentry/sentry-javascript/tree/master/packages/ember): Browser SDK for Ember - [`@sentry/react`](https://github.com/getsentry/sentry-javascript/tree/master/packages/react): Browser SDK for React diff --git a/dev-packages/e2e-tests/test-applications/angular-17/README.md b/dev-packages/e2e-tests/test-applications/angular-17/README.md index 0b2e08b54d34..e2bcc9c6b822 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/README.md +++ b/dev-packages/e2e-tests/test-applications/angular-17/README.md @@ -1,3 +1,3 @@ # Angular17 -E2E test app for Angular 17 and `@sentry/angular-ivy`. +E2E test app for Angular 17 and `@sentry/angular`. diff --git a/dev-packages/e2e-tests/test-applications/angular-17/package.json b/dev-packages/e2e-tests/test-applications/angular-17/package.json index 6ab5f410e6cc..e5609c250659 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/package.json +++ b/dev-packages/e2e-tests/test-applications/angular-17/package.json @@ -23,7 +23,7 @@ "@angular/platform-browser": "^17.1.0", "@angular/platform-browser-dynamic": "^17.1.0", "@angular/router": "^17.1.0", - "@sentry/angular-ivy": "* || latest", + "@sentry/angular": "* || latest", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.14.3" diff --git a/dev-packages/e2e-tests/test-applications/angular-17/src/app/app.config.ts b/dev-packages/e2e-tests/test-applications/angular-17/src/app/app.config.ts index 44cf67e5875d..8267759c8ba1 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/src/app/app.config.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/src/app/app.config.ts @@ -1,7 +1,7 @@ import { APP_INITIALIZER, ApplicationConfig, ErrorHandler } from '@angular/core'; import { Router, provideRouter } from '@angular/router'; -import { TraceService, createErrorHandler } from '@sentry/angular-ivy'; +import { TraceService, createErrorHandler } from '@sentry/angular'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { diff --git a/dev-packages/e2e-tests/test-applications/angular-17/src/app/component-tracking/component-tracking.components.ts b/dev-packages/e2e-tests/test-applications/angular-17/src/app/component-tracking/component-tracking.components.ts index e9aea4ccd68a..d437a1d43fdd 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/src/app/component-tracking/component-tracking.components.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/src/app/component-tracking/component-tracking.components.ts @@ -1,5 +1,5 @@ import { AfterViewInit, Component, OnInit } from '@angular/core'; -import { TraceClass, TraceMethod, TraceModule } from '@sentry/angular-ivy'; +import { TraceClass, TraceMethod, TraceModule } from '@sentry/angular'; import { SampleComponent } from '../sample-component/sample-component.components'; @Component({ diff --git a/dev-packages/e2e-tests/test-applications/angular-17/src/app/home/home.component.ts b/dev-packages/e2e-tests/test-applications/angular-17/src/app/home/home.component.ts index 298d7f7d54cd..82c3ccb0140f 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/src/app/home/home.component.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/src/app/home/home.component.ts @@ -13,7 +13,7 @@ import { RouterLink } from '@angular/router';
  • Redirect
  • Cancel
  • Error
  • -
  • Error
  • +
  • Component Tracking
  • diff --git a/dev-packages/e2e-tests/test-applications/angular-17/src/main.ts b/dev-packages/e2e-tests/test-applications/angular-17/src/main.ts index 761a7329a91f..947f40691b05 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/src/main.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/src/main.ts @@ -2,7 +2,7 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { AppComponent } from './app/app.component'; import { appConfig } from './app/app.config'; -import * as Sentry from '@sentry/angular-ivy'; +import * as Sentry from '@sentry/angular'; Sentry.init({ dsn: 'https://3b6c388182fb435097f41d181be2b2ba@o4504321058471936.ingest.sentry.io/4504321066008576', diff --git a/dev-packages/e2e-tests/verdaccio-config/config.yaml b/dev-packages/e2e-tests/verdaccio-config/config.yaml index 851c99387b8c..0fb3e645d81f 100644 --- a/dev-packages/e2e-tests/verdaccio-config/config.yaml +++ b/dev-packages/e2e-tests/verdaccio-config/config.yaml @@ -38,12 +38,6 @@ packages: unpublish: $all # proxy: npmjs # Don't proxy for E2E tests! - '@sentry/angular-ivy': - access: $all - publish: $all - unpublish: $all - # proxy: npmjs # Don't proxy for E2E tests! - '@sentry/astro': access: $all publish: $all diff --git a/package.json b/package.json index 449947047aaf..3bb2bd8b6c12 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ }, "workspaces": [ "packages/angular", - "packages/angular-ivy", "packages/astro", "packages/aws-serverless", "packages/browser", diff --git a/packages/angular-ivy/LICENSE b/packages/angular-ivy/LICENSE deleted file mode 100644 index d11896ba1181..000000000000 --- a/packages/angular-ivy/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2023 Sentry (https://sentry.io) and individual contributors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/angular-ivy/README.md b/packages/angular-ivy/README.md deleted file mode 100644 index 6252cec45454..000000000000 --- a/packages/angular-ivy/README.md +++ /dev/null @@ -1,234 +0,0 @@ -

    - - Sentry - -

    - -# Official Sentry SDK for Angular with Ivy Compatibility - -[![npm version](https://img.shields.io/npm/v/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy) -[![npm dm](https://img.shields.io/npm/dm/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy) -[![npm dt](https://img.shields.io/npm/dt/@sentry/angular-ivy.svg)](https://www.npmjs.com/package/@sentry/angular-ivy) - -## Links - -- [Official SDK Docs](https://docs.sentry.io/platforms/javascript/angular/) - -## Angular Version Compatibility - -This SDK officially supports Angular 12 to 17 with Angular's new rendering engine, Ivy. - -If you're using Angular 10, 11 or a newer Angular version with View Engine instead of Ivy, please use -[`@sentry/angular`](https://github.com/getsentry/sentry-javascript/blob/develop/packages/angular/README.md). - -If you're using an older version of Angular and experience problems with the Angular SDK, we recommend downgrading the -SDK to version 6.x. Please note that we don't provide any support for Angular versions below 10. - -## General - -This package is a wrapper around `@sentry/browser`, with added functionality related to Angular. All methods available -in `@sentry/browser` can be imported from `@sentry/angular-ivy`. - -To use this SDK, call `Sentry.init(options)` before you bootstrap your Angular application. - -```javascript -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { init } from '@sentry/angular-ivy'; - -import { AppModule } from './app/app.module'; - -init({ - dsn: '__DSN__', - // ... -}); - -// ... - -enableProdMode(); -platformBrowserDynamic() - .bootstrapModule(AppModule) - .then(success => console.log(`Bootstrap success`)) - .catch(err => console.error(err)); -``` - -### ErrorHandler - -`@sentry/angular-ivy` exports a function to instantiate an ErrorHandler provider that will automatically send Javascript -errors captured by the Angular's error handler. - -```javascript -import { NgModule, ErrorHandler } from '@angular/core'; -import { createErrorHandler } from '@sentry/angular-ivy'; - -@NgModule({ - // ... - providers: [ - { - provide: ErrorHandler, - useValue: createErrorHandler({ - showDialog: true, - }), - }, - ], - // ... -}) -export class AppModule {} -``` - -Additionally, `createErrorHandler` accepts a set of options that allows you to configure its behavior. For more details -see `ErrorHandlerOptions` interface in `src/errorhandler.ts`. - -### Tracing - -`@sentry/angular-ivy` exports a Trace Service, Directive and Decorators that leverage the tracing features to add -Angular-related spans to transactions. If tracing is not enabled, this functionality will not work. The SDK's -`TraceService` itself tracks route changes and durations, while directive and decorators are tracking components -initializations. - -#### Install - -Registering a Trace Service is a 3-step process. - -1. Register and configure the `BrowserTracing` integration, including custom Angular routing instrumentation: - -```javascript -import { init, browserTracingIntegration } from '@sentry/angular-ivy'; - -init({ - dsn: '__DSN__', - integrations: [browserTracingIntegration()], - tracePropagationTargets: ['localhost', 'https://yourserver.io/api'], - tracesSampleRate: 1, -}); -``` - -2. Register `SentryTrace` as a provider in Angular's DI system, with a `Router` as its dependency: - -```javascript -import { NgModule } from '@angular/core'; -import { Router } from '@angular/router'; -import { TraceService } from '@sentry/angular-ivy'; - -@NgModule({ - // ... - providers: [ - { - provide: TraceService, - deps: [Router], - }, - ], - // ... -}) -export class AppModule {} -``` - -3. Either require the `TraceService` from inside `AppModule` or use `APP_INITIALIZER` to force-instantiate Tracing. - -```javascript -@NgModule({ - // ... -}) -export class AppModule { - constructor(trace: TraceService) {} -} -``` - -or - -```javascript -import { APP_INITIALIZER } from '@angular/core'; - -@NgModule({ - // ... - providers: [ - { - provide: APP_INITIALIZER, - useFactory: () => () => {}, - deps: [TraceService], - multi: true, - }, - ], - // ... -}) -export class AppModule {} -``` - -#### Use - -To track Angular components as part of your transactions, you have 3 options. - -_TraceDirective:_ used to track a duration between `OnInit` and `AfterViewInit` lifecycle hooks in template: - -```javascript -import { TraceModule } from '@sentry/angular-ivy'; - -@NgModule({ - // ... - imports: [TraceModule], - // ... -}) -export class AppModule {} -``` - -Then, inside your component's template (keep in mind that the directive's name attribute is required): - -```html - - - -``` - -_TraceClass:_ used to track a duration between `OnInit` and `AfterViewInit` lifecycle hooks in components: - -```javascript -import { Component } from '@angular/core'; -import { TraceClass } from '@sentry/angular-ivy'; - -@Component({ - selector: 'layout-header', - templateUrl: './header.component.html', -}) -@TraceClass() -export class HeaderComponent { - // ... -} -``` - -_TraceMethod:_ used to track a specific lifecycle hooks as point-in-time spans in components: - -```javascript -import { Component, OnInit } from '@angular/core'; -import { TraceMethod } from '@sentry/angular-ivy'; - -@Component({ - selector: 'app-footer', - templateUrl: './footer.component.html', -}) -export class FooterComponent implements OnInit { - @TraceMethod() - ngOnInit() {} -} -``` - -You can also add your own custom spans via `startSpan()`. For example, if you'd like to track the duration of Angular -boostraping process, you can do it as follows: - -```javascript -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { init, startSpan } from '@sentry/angular'; - -import { AppModule } from './app/app.module'; - -// ... -startSpan( - { - name: 'platform-browser-dynamic', - op: 'ui.angular.bootstrap', - }, - async () => { - await platformBrowserDynamic().bootstrapModule(AppModule); - }, -); -``` diff --git a/packages/angular-ivy/angular.json b/packages/angular-ivy/angular.json deleted file mode 100644 index 676118bf279d..000000000000 --- a/packages/angular-ivy/angular.json +++ /dev/null @@ -1,30 +0,0 @@ -/* To learn more about this file see: https://angular.io/guide/workspace-config */ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, // version of angular.json - "projects": { - "sentry-angular-ivy": { - "projectType": "library", - "root": ".", - "sourceRoot": "src", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "project": "ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "tsconfig.ngc.json" - }, - "development": { - "tsConfig": "tsconfig.ngc.json" - } - }, - "defaultConfiguration": "production" - } - } - } - }, - "defaultProject": "sentry-angular-ivy" -} diff --git a/packages/angular-ivy/ng-package.json b/packages/angular-ivy/ng-package.json deleted file mode 100644 index 38d9d7f5ac68..000000000000 --- a/packages/angular-ivy/ng-package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "node_modules/ng-packagr/ng-package.schema.json", - "dest": "build", - "lib": { - "entryFile": "src/index.ts", - "umdModuleIds": { - "@sentry/browser": "Sentry", - "@sentry/utils": "Sentry.util", - "@sentry/core": "Sentry.core" - } - }, - "allowedNonPeerDependencies": ["@sentry/browser", "@sentry/core", "@sentry/utils", "@sentry/types", "tslib"], - "assets": ["README.md", "LICENSE"] -} diff --git a/packages/angular-ivy/package.json b/packages/angular-ivy/package.json deleted file mode 100644 index 50a3bde14c1f..000000000000 --- a/packages/angular-ivy/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "@sentry/angular-ivy", - "version": "8.0.0-alpha.4", - "description": "Official Sentry SDK for Angular with full Ivy Support", - "repository": "git://github.com/getsentry/sentry-javascript.git", - "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy", - "author": "Sentry", - "license": "MIT", - "engines": { - "node": ">=14.18" - }, - "main": "build/bundles/sentry-angular.umd.js", - "module": "build/fesm2015/sentry-angular.js", - "publishConfig": { - "access": "public" - }, - "peerDependencies": { - "@angular/common": ">= 12.x <= 17.x", - "@angular/core": ">= 12.x <= 17.x", - "@angular/router": ">= 12.x <= 17.x", - "rxjs": "^6.5.5 || ^7.x" - }, - "dependencies": { - "@sentry/browser": "8.0.0-alpha.4", - "@sentry/core": "8.0.0-alpha.4", - "@sentry/types": "8.0.0-alpha.4", - "@sentry/utils": "8.0.0-alpha.4", - "tslib": "^2.4.1" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~12.2.18", - "@angular/cli": "~12.2.18", - "@angular/common": "~12.2.0", - "@angular/compiler": "~12.2.0", - "@angular/compiler-cli": "~12.2.0", - "@angular/core": "~12.2.0", - "@angular/platform-browser": "~12.2.0", - "@angular/platform-browser-dynamic": "~12.2.0", - "@angular/router": "~12.2.0", - "ng-packagr": "^12.1.1", - "zone.js": "~0.11.4" - }, - "scripts": { - "build": "yarn build:syncSymlinks && yarn build:transpile", - "build:transpile": "ng build", - "build:dev": "yarn build", - "build:watch": "yarn build:syncSymlinks && yarn build:transpile:watch", - "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "ng build --watch", - "build:tarball": "ts-node ./scripts/prepack.ts && npm pack ./build", - "build:syncSymlinks": "ts-node ./scripts/syncSourceFiles.ts", - "circularDepCheck": "madge --circular src/index.ts", - "clean": "rimraf build coverage sentry-angular-ivy-*.tgz", - "fix": "eslint . --format stylish --fix", - "lint": "eslint . --format stylish", - "yalc:publish": "ts-node ./scripts/prepack.ts && yalc publish build --push --sig" - }, - "volta": { - "extends": "../../package.json" - }, - "sideEffects": false, - "nx": { - "targets": { - "build:transpile": { - "dependsOn": [ - "^build:transpile", - "^build:types" - ], - "outputs": [ - "{projectRoot}/build/esm2015", - "{projectRoot}/build/fesm2015", - "{projectRoot}/build/*.{md,json}", - "{projectRoot}/build/LICENCE" - ] - } - } - } -} diff --git a/packages/angular-ivy/scripts/prepack.ts b/packages/angular-ivy/scripts/prepack.ts deleted file mode 100644 index bc9159954b39..000000000000 --- a/packages/angular-ivy/scripts/prepack.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; - -type PackageJson = { - main?: string; - type?: string; - nx?: string; - volta?: any; - exports?: Record>; -}; - -const buildDir = path.join(process.cwd(), 'build'); -const pkjJsonPath = path.join(buildDir, 'package.json'); -const pkgJson: PackageJson = JSON.parse(fs.readFileSync(pkjJsonPath).toString()); - -// This is necessary for Angular 17+ compatibility when SSR is configured which switches dev mode to using Vite. -// Deleting "main" and adding "type": "module" will direct Vite to -// use the fesm2015 bundle instead of the UMD bundle. -delete pkgJson.main; -pkgJson.type = 'module'; - -pkgJson.exports = { - '.': { - es2015: './fesm2015/sentry-angular-ivy.js', - esm2015: './esm2015/sentry-angular-ivy.js', - fesm2015: './fesm2015/sentry-angular-ivy.js', - import: './fesm2015/sentry-angular-ivy.js', - require: './bundles/sentry-angular-ivy.umd.js', - types: './sentry-angular-ivy.d.ts', - }, - './*': './*', -}; - -// no need to keep around other properties that are only relevant for our reop: -delete pkgJson.nx; -delete pkgJson.volta; - -fs.writeFileSync(pkjJsonPath, JSON.stringify(pkgJson, null, 2)); - -console.log('Adjusted package.json for Angular 17+ compatibility.'); diff --git a/packages/angular-ivy/scripts/syncSourceFiles.ts b/packages/angular-ivy/scripts/syncSourceFiles.ts deleted file mode 100644 index 48199d51e19e..000000000000 --- a/packages/angular-ivy/scripts/syncSourceFiles.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* eslint-disable no-console */ -import * as fs from 'fs'; -import * as path from 'path'; -import * as rimraf from 'rimraf'; - -/* - * This script is used to sync the source files from @sentry/angular to @sentry/angular-ivy. - * Because @sentry/angular-ivy only differs from @sentry/angular in the way it is built, we - * want to keep source files in sync to avoid having to maintain the same source files twice. - * This file is run before we actually build @sentry/angular-ivy, so that the symlinks are - * always up to date. - */ - -console.log('------------------------------------------------------------'); -console.log('Syncing @sentry/angular and @sentry/angular-ivy source files'); - -const ANGULAR_PATH = path.resolve(__dirname, '..', '..', 'angular'); -const ANGULAR_IVY_PATH = path.resolve(__dirname, '..'); - -const angularSrcPath = path.resolve(ANGULAR_PATH, 'src'); -const angularIvySrcPath = path.resolve(ANGULAR_IVY_PATH, 'src'); - -const angularIvySrcDirContent = fs.readdirSync(angularIvySrcPath); -angularIvySrcDirContent.forEach(entry => { - if (entry !== 'sdk.ts') { - rimraf.sync(path.resolve(angularIvySrcPath.toString(), entry)); - } -}); - -syncDir(angularSrcPath, angularIvySrcPath); - -console.log('------------------------------------------------------------'); - -function syncDir(srcDir: fs.PathLike, targetDir: fs.PathLike): void { - const srcDirContent = fs.readdirSync(srcDir, { withFileTypes: true }).filter(file => file.name !== 'sdk.ts'); - srcDirContent.forEach(entry => { - if (entry.isDirectory()) { - const newTargetDir = path.resolve(targetDir.toString(), entry.name); - if (!fs.existsSync(newTargetDir)) { - fs.mkdirSync(newTargetDir); - } - return syncDir(path.resolve(srcDir.toString(), entry.name), newTargetDir); - } - - const relativeSourceFilePath = path.relative(process.cwd(), path.resolve(srcDir.toString(), entry.name)); - const relativeTargetFilePath = path.relative(process.cwd(), path.resolve(targetDir.toString(), entry.name)); - - console.log(`Syncing ${relativeSourceFilePath} to ${relativeTargetFilePath}`); - - fs.symlinkSync(path.join('..', relativeSourceFilePath), relativeTargetFilePath, 'file'); - }); -} diff --git a/packages/angular-ivy/src/constants.ts b/packages/angular-ivy/src/constants.ts deleted file mode 120000 index 31a92cb0e9d6..000000000000 --- a/packages/angular-ivy/src/constants.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/constants.ts \ No newline at end of file diff --git a/packages/angular-ivy/src/errorhandler.ts b/packages/angular-ivy/src/errorhandler.ts deleted file mode 120000 index 740e2fe217fb..000000000000 --- a/packages/angular-ivy/src/errorhandler.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/errorhandler.ts \ No newline at end of file diff --git a/packages/angular-ivy/src/flags.ts b/packages/angular-ivy/src/flags.ts deleted file mode 120000 index 5a3da42c6b97..000000000000 --- a/packages/angular-ivy/src/flags.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/flags.ts \ No newline at end of file diff --git a/packages/angular-ivy/src/index.ts b/packages/angular-ivy/src/index.ts deleted file mode 120000 index d1581a063d3f..000000000000 --- a/packages/angular-ivy/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/index.ts \ No newline at end of file diff --git a/packages/angular-ivy/src/sdk.ts b/packages/angular-ivy/src/sdk.ts deleted file mode 100644 index 1333ac6f6112..000000000000 --- a/packages/angular-ivy/src/sdk.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { VERSION } from '@angular/core'; -import type { BrowserOptions } from '@sentry/browser'; -import { getDefaultIntegrations, init as browserInit, setContext } from '@sentry/browser'; -import { applySdkMetadata } from '@sentry/core'; -import { logger } from '@sentry/utils'; - -import { IS_DEBUG_BUILD } from './flags'; - -/** - * Inits the Angular SDK - */ -export function init(options: BrowserOptions): void { - const opts = { - // Filter out BrowserApiErrors integration as it interferes with our Angular `ErrorHandler`: - // BrowserApiErrors would catch certain errors before they reach the `ErrorHandler` and thus provide a - // lower fidelity error than what `SentryErrorHandler` (see errorhandler.ts) would provide. - // see: - // - https://github.com/getsentry/sentry-javascript/issues/5417#issuecomment-1453407097 - // - https://github.com/getsentry/sentry-javascript/issues/2744 - defaultIntegrations: getDefaultIntegrations(options).filter(integration => { - return integration.name !== 'BrowserApiErrors'; - }), - ...options, - }; - - applySdkMetadata(opts, 'angular-ivy'); - - checkAndSetAngularVersion(); - browserInit(opts); -} - -function checkAndSetAngularVersion(): void { - const ANGULAR_MINIMUM_VERSION = 12; - - const angularVersion = VERSION && VERSION.major ? parseInt(VERSION.major, 10) : undefined; - - if (angularVersion) { - if (angularVersion < ANGULAR_MINIMUM_VERSION) { - IS_DEBUG_BUILD && - logger.warn( - `This Sentry SDK does not officially support Angular ${angularVersion}.`, - `This SDK only supports Angular ${ANGULAR_MINIMUM_VERSION} and above.`, - "If you're using Angular 10 or 11, please use `@sentry/angular` instead.", - 'Otherwise, please consider upgrading your Angular version.', - ); - } - setContext('angular', { version: angularVersion }); - } -} diff --git a/packages/angular-ivy/src/tracing.ts b/packages/angular-ivy/src/tracing.ts deleted file mode 120000 index 151dc41b93c4..000000000000 --- a/packages/angular-ivy/src/tracing.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/tracing.ts \ No newline at end of file diff --git a/packages/angular-ivy/src/zone.ts b/packages/angular-ivy/src/zone.ts deleted file mode 120000 index f1f8e0ec5c26..000000000000 --- a/packages/angular-ivy/src/zone.ts +++ /dev/null @@ -1 +0,0 @@ -../../angular/src/zone.ts \ No newline at end of file diff --git a/packages/angular-ivy/tsconfig.json b/packages/angular-ivy/tsconfig.json deleted file mode 100644 index ed785543d690..000000000000 --- a/packages/angular-ivy/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.json", - - "include": ["src/**/*"], - - "compilerOptions": { - // package-specific options - "experimentalDecorators": true - } -} diff --git a/packages/angular-ivy/tsconfig.ngc.json b/packages/angular-ivy/tsconfig.ngc.json deleted file mode 100644 index 8a1d95d7a256..000000000000 --- a/packages/angular-ivy/tsconfig.ngc.json +++ /dev/null @@ -1,24 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -// This tsconfig is used when building @sentry/angular-ivy with the Angular -// compiler and `ng-packagr`. It configures a production build conforming -// to the Angular Package Format (APF). -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2017", - "lib": ["dom", "es2018"], - "baseUrl": "./" - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true, - - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true, - - "compilationMode": "partial" - } -} diff --git a/packages/angular-ivy/.eslintrc.js b/packages/angular/.eslintrc.cjs similarity index 61% rename from packages/angular-ivy/.eslintrc.js rename to packages/angular/.eslintrc.cjs index 863f9138eec3..5a263ad7adbb 100644 --- a/packages/angular-ivy/.eslintrc.js +++ b/packages/angular/.eslintrc.cjs @@ -3,5 +3,5 @@ module.exports = { browser: true, }, extends: ['../../.eslintrc.js'], - ignorePatterns: ['scripts/**/*'], + ignorePatterns: ['setup-test.ts', 'patch-vitest.ts'], }; diff --git a/packages/angular/.eslintrc.js b/packages/angular/.eslintrc.js deleted file mode 100644 index f60c8d708cf8..000000000000 --- a/packages/angular/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - env: { - browser: true, - }, - extends: ['../../.eslintrc.js'], - ignorePatterns: ['setup-jest.ts'], -}; diff --git a/packages/angular/LICENSE b/packages/angular/LICENSE index 5113ccb2ac3d..ea5e82344f87 100644 --- a/packages/angular/LICENSE +++ b/packages/angular/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020 Sentry (https://sentry.io) and individual contributors. All rights reserved. +Copyright (c) 2024 Sentry (https://sentry.io) and individual contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the diff --git a/packages/angular/README.md b/packages/angular/README.md index c451b39ea9ef..42ee54a8d81c 100644 --- a/packages/angular/README.md +++ b/packages/angular/README.md @@ -17,14 +17,13 @@ ## Angular Version Compatibility -**Important**: This package is not compatible with Angular 16 or newer. Please use -[`@sentry/angular-ivy`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy) instead. +This SDK officially supports Angular 15 to 17. -If you're using Angular 12 or newer, we recommend using `@sentry/angular-ivy` for native support with Angular's -rendering engine Ivy. +If you're using an older Angular version please check the +[compatibility table in the docs](https://docs.sentry.io/platforms/javascript/guides/angular/#angular-version-compatibility). -This SDK still officially supports Angular 10-15. If you are using an older version of Angular and experience problems -with the Angular SDK, we recommend downgrading the SDK to version 6.x. +If you're using an older version of Angular and experience problems with the Angular SDK, we recommend downgrading the +SDK to version 7.x. Please note that we don't provide any support for Angular versions below 10. ## General @@ -56,8 +55,8 @@ platformBrowserDynamic() ### ErrorHandler -`@sentry/angular` exports a function to instantiate ErrorHandler provider that will automatically send Javascript errors -captured by the Angular's error handler. +`@sentry/angular` exports a function to instantiate an ErrorHandler provider that will automatically send Javascript +errors captured by the Angular's error handler. ```javascript import { NgModule, ErrorHandler } from '@angular/core'; diff --git a/packages/angular/angular.json b/packages/angular/angular.json index f771c0e78df0..1b9a1bc85c5e 100644 --- a/packages/angular/angular.json +++ b/packages/angular/angular.json @@ -1,6 +1,6 @@ /* To learn more about this file see: https://angular.io/guide/workspace-config */ { - "$schema": "../../node_modules/@angular/cli/lib/config/schema.json", + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, // version of angular.json "projects": { "sentry-angular": { @@ -11,17 +11,22 @@ "build": { "builder": "@angular-devkit/build-angular:ng-packagr", "options": { - "tsConfig": "tsconfig.ngc.json", "project": "ng-package.json" }, "configurations": { "production": { "tsConfig": "tsconfig.ngc.json" + }, + "development": { + "tsConfig": "tsconfig.ngc.json" } - } + }, + "defaultConfiguration": "production" } } } }, - "defaultProject": "sentry-angular" + "cli": { + "analytics": false + } } diff --git a/packages/angular/jest.config.js b/packages/angular/jest.config.js deleted file mode 100644 index a61b7326ca54..000000000000 --- a/packages/angular/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const baseConfig = require('../../jest/jest.config.js'); - -module.exports = { - ...baseConfig, - testEnvironment: 'jsdom', - setupFilesAfterEnv: ['/setup-jest.ts'], -}; diff --git a/packages/angular/ng-package.json b/packages/angular/ng-package.json index 28794322dd0a..64304f12de15 100644 --- a/packages/angular/ng-package.json +++ b/packages/angular/ng-package.json @@ -1,14 +1,9 @@ { - "$schema": "node_modules/ng-packagr/ng-package.schema.json", + "$schema": "./node_modules/ng-packagr/ng-package.schema.json", "dest": "build", "lib": { - "entryFile": "src/index.ts", - "umdModuleIds": { - "@sentry/browser": "Sentry", - "@sentry/utils": "Sentry.util", - "@sentry/core": "Sentry.core" - } + "entryFile": "src/index.ts" }, - "whitelistedNonPeerDependencies": ["@sentry/browser", "@sentry/core", "@sentry/utils", "@sentry/types", "tslib"], + "allowedNonPeerDependencies": ["@sentry/browser", "@sentry/core", "@sentry/utils", "@sentry/types", "tslib"], "assets": ["README.md", "LICENSE"] } diff --git a/packages/angular/package.json b/packages/angular/package.json index e0b704efd8ea..2090602e7f0a 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -9,15 +9,15 @@ "engines": { "node": ">=14.18" }, - "main": "build/bundles/sentry-angular.umd.js", - "module": "build/fesm2015/sentry-angular.js", + "type": "module", + "module": "build/fesm2015/sentry-angular.mjs", "publishConfig": { "access": "public" }, "peerDependencies": { - "@angular/common": ">= 10.x <= 15.x", - "@angular/core": ">= 10.x <= 15.x", - "@angular/router": ">= 10.x <= 15.x", + "@angular/common": ">= 14.x <= 17.x", + "@angular/core": ">= 14.x <= 17.x", + "@angular/router": ">= 14.x <= 17.x", "rxjs": "^6.5.5 || ^7.x" }, "dependencies": { @@ -28,35 +28,36 @@ "tslib": "^2.4.1" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.1002.4", - "@angular/cli": "^10.2.4", - "@angular/common": "~10.2.5", - "@angular/compiler": "^10.2.5", - "@angular/compiler-cli": "~10.2.5", - "@angular/core": "~10.2.5", - "@angular/platform-browser": "~10.2.5", - "@angular/platform-browser-dynamic": "~10.2.5", - "@angular/router": "~10.2.5", - "ng-packagr": "^10.1.0", - "rxjs": "6.5.5", - "typescript": "4.0.2", - "zone.js": "^0.11.8" + "@angular-devkit/build-angular": "^14.2.13", + "@angular/cli": "^14.2.13", + "@angular/common": "^14.3.0", + "@angular/compiler": "^14.3.0", + "@angular/compiler-cli": "^14.3.0", + "@angular/core": "^14.3.0", + "@angular/platform-browser": "^14.3.0", + "@angular/platform-browser-dynamic": "^14.3.0", + "@angular/router": "^14.3.0", + "ng-packagr": "^14.2.2", + "rxjs": "7.8.1", + "typescript": "4.6.4", + "vitest": "^1.4.0", + "zone.js": "^0.12.0" }, "scripts": { "build": "yarn build:transpile", - "build:transpile": "ng build --prod", + "build:transpile": "ng build --configuration production", "build:dev": "yarn build", "build:watch": "yarn build:transpile:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "ng build --prod --watch", + "build:transpile:watch": "ng build --configuration production --watch", "build:tarball": "npm pack ./build", "circularDepCheck": "madge --circular src/index.ts", "clean": "rimraf build coverage sentry-angular-*.tgz", "fix": "eslint . --format stylish --fix", "lint": "eslint . --format stylish", "test": "yarn test:unit", - "test:unit": "jest", - "test:unit:watch": "jest --watch", + "test:unit": "vitest run", + "test:unit:watch": "vitest --watch", "yalc:publish": "yalc publish build --push --sig" }, "volta": { diff --git a/packages/angular/patch-vitest.ts b/packages/angular/patch-vitest.ts new file mode 100644 index 000000000000..9789b0da0a92 --- /dev/null +++ b/packages/angular/patch-vitest.ts @@ -0,0 +1,298 @@ +/** + * We are using this snippet from '@analogjs/vite-plugin-angular' to make vitest work with Angular. + * + * The MIT License (MIT) + * + * Copyright (c) 2022 Brandon Roberts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +import 'zone.js'; +import 'zone.js/plugins/proxy'; +import 'zone.js/plugins/sync-test'; +import 'zone.js/testing'; + +/** + * Patch Vitest's describe/test/beforeEach/afterEach functions so test code + * always runs in a testZone (ProxyZone). + */ +/* global Zone */ +const Zone = (globalThis as any)['Zone']; + +if (Zone === undefined) { + throw new Error('Missing: Zone (zone.js)'); +} + +if ((globalThis as any)['__vitest_zone_patch__'] === true) { + throw new Error("'vitest' has already been patched with 'Zone'."); +} + +(globalThis as any)['__vitest_zone_patch__'] = true; +const SyncTestZoneSpec = Zone['SyncTestZoneSpec']; +const ProxyZoneSpec = Zone['ProxyZoneSpec']; + +if (SyncTestZoneSpec === undefined) { + throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)'); +} +if (ProxyZoneSpec === undefined) { + throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)'); +} + +const env = globalThis as any; +const ambientZone = Zone.current; + +// Create a synchronous-only zone in which to run `describe` blocks in order to +// raise an error if any asynchronous operations are attempted +// inside of a `describe` but outside of a `beforeEach` or `it`. +const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe')); +function wrapDescribeInZone(describeBody: any) { + return function (...args: any) { + return syncZone.run(describeBody, null, args); + }; +} + +// Create a proxy zone in which to run `test` blocks so that the tests function +// can retroactively install different zones. +const testProxyZone = ambientZone.fork(new ProxyZoneSpec()); +function wrapTestInZone(testBody: string | any[] | undefined) { + if (testBody === undefined) { + return; + } + + const wrappedFunc = function () { + return testProxyZone.run(testBody, null, arguments); + }; + try { + Object.defineProperty(wrappedFunc, 'length', { + configurable: true, + writable: true, + enumerable: false, + }); + wrappedFunc.length = testBody.length; + } catch (e) { + return testBody.length === 0 + ? () => testProxyZone.run(testBody, null) + : (done: any) => testProxyZone.run(testBody, null, [done]); + } + + return wrappedFunc; +} + +/** + * Allows Vitest to handle Angular test fixtures + * + * Vitest Snapshot guide ==> https://vitest.dev/guide/snapshot.html + * + * @returns customSnapshotSerializer for Angular Fixture Component + */ +const customSnapshotSerializer = () => { + function serialize(val: any, config: any, indentation: any, depth: any, refs: any, printer: any): string { + // `printer` is a function that serializes a value using existing plugins. + return `${printer(fixtureVitestSerializer(val), config, indentation, depth, refs)}`; + } + function test(val: any): boolean { + // * If it's a ComponentFixture we apply the transformation rules + return val && isAngularFixture(val); + } + return { + serialize, + test, + }; +}; + +/** + * Check if is an Angular fixture + * + * @param val Angular fixture + * @returns boolean who check if is an angular fixture + */ +function isAngularFixture(val: any): boolean { + if (typeof val !== 'object') { + return false; + } + + if (val['componentRef'] || val['componentInstance']) { + return true; + } + + if (val['componentType']) { + return true; + } + + // * Angular fixture keys in Fixture component Object + const fixtureKeys = [ + 'componentRef', + 'ngZone', + 'effectRunner', + '_autoDetect', + '_isStable', + '_isDestroyed', + '_resolve', + '_promise', + '_onUnstableSubscription', + '_onStableSubscription', + '_onMicrotaskEmptySubscription', + '_onErrorSubscription', + 'changeDetectorRef', + 'elementRef', + 'debugElement', + 'componentInstance', + 'nativeElement', + ]; + + // * Angular fixture keys in Fixture componentRef Object + const fixtureComponentRefKeys = [ + 'location', + '_rootLView', + '_tNode', + 'previousInputValues', + 'instance', + 'changeDetectorRef', + 'hostView', + 'componentType', + ]; + + return ( + JSON.stringify(Object.keys(val)) === JSON.stringify(fixtureKeys) || + JSON.stringify(Object.keys(val)) === JSON.stringify(fixtureComponentRefKeys) + ); +} + +/** + * Serialize Angular fixture for Vitest + * + * @param fixture Angular Fixture Component + * @returns HTML Child Node + */ +function fixtureVitestSerializer(fixture: any) { + // * Get Component meta data + const componentType = ( + fixture && fixture.componentType ? fixture.componentType : fixture.componentRef.componentType + ) as any; + + let inputsData: string = ''; + + const selector = Reflect.getOwnPropertyDescriptor(componentType, '__annotations__')?.value[0].selector; + + if (componentType && componentType.propDecorators) { + inputsData = Object.entries(componentType.propDecorators) + .map(([key, value]) => `${key}="${value}"`) + .join(''); + } + + // * Get DOM Elements + const divElement = fixture && fixture.nativeElement ? fixture.nativeElement : fixture.location.nativeElement; + + // * Convert string data to HTML data + const doc = new DOMParser().parseFromString( + `<${selector} ${inputsData}>${divElement.innerHTML}`, + 'text/html', + ); + + return doc.body.childNodes[0]; +} + +/** + * bind describe method to wrap describe.each function + */ +const bindDescribe = (originalVitestFn: { + apply: ( + arg0: any, + arg1: any[], + ) => { + (): any; + new (): any; + apply: { (arg0: any, arg1: any[]): any; new (): any }; + }; +}) => + function (...eachArgs: any) { + return function (...args: any[]) { + args[1] = wrapDescribeInZone(args[1]); + + // @ts-ignore + return originalVitestFn.apply(this, eachArgs).apply(this, args); + }; + }; + +/** + * bind test method to wrap test.each function + */ +const bindTest = (originalVitestFn: { + apply: ( + arg0: any, + arg1: any[], + ) => { + (): any; + new (): any; + apply: { (arg0: any, arg1: any[]): any; new (): any }; + }; +}) => + function (...eachArgs: any) { + return function (...args: any[]) { + args[1] = wrapTestInZone(args[1]); + + // @ts-ignore + return originalVitestFn.apply(this, eachArgs).apply(this, args); + }; + }; + +['describe'].forEach(methodName => { + const originalvitestFn = env[methodName]; + env[methodName] = function (...args: any[]) { + args[1] = wrapDescribeInZone(args[1]); + + return originalvitestFn.apply(this, args); + }; + env[methodName].each = bindDescribe(originalvitestFn.each); + if (methodName === 'describe') { + env[methodName].only = env['fdescribe']; + env[methodName].skip = env['xdescribe']; + } +}); + +['test', 'it'].forEach(methodName => { + const originalvitestFn = env[methodName]; + env[methodName] = function (...args: any[]) { + args[1] = wrapTestInZone(args[1]); + + return originalvitestFn.apply(this, args); + }; + env[methodName].each = bindTest(originalvitestFn.each); + + if (methodName === 'test' || methodName === 'it') { + env[methodName].todo = function (...args: any) { + return originalvitestFn.todo.apply(this, args); + }; + } +}); + +['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach(methodName => { + const originalvitestFn = env[methodName]; + + env[methodName] = function (...args: any[]) { + args[0] = wrapTestInZone(args[0]); + + return originalvitestFn.apply(this, args); + }; +}); + +['expect'].forEach(methodName => { + const originalvitestFn = env[methodName]; + return originalvitestFn.addSnapshotSerializer(customSnapshotSerializer()); +}); diff --git a/packages/angular/setup-jest.ts b/packages/angular/setup-jest.ts deleted file mode 100644 index 33cc915c7ff1..000000000000 --- a/packages/angular/setup-jest.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'zone.js'; - -import { TestBed } from '@angular/core/testing'; -import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; - -TestBed.resetTestEnvironment(); -TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); diff --git a/packages/angular/setup-test.ts b/packages/angular/setup-test.ts new file mode 100644 index 000000000000..205ccbec113c --- /dev/null +++ b/packages/angular/setup-test.ts @@ -0,0 +1,7 @@ +import './patch-vitest'; + +import { getTestBed } from '@angular/core/testing'; +import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; + +getTestBed().resetTestEnvironment(); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); diff --git a/packages/angular/src/sdk.ts b/packages/angular/src/sdk.ts index f2bca755782f..e47e06f6233b 100755 --- a/packages/angular/src/sdk.ts +++ b/packages/angular/src/sdk.ts @@ -30,7 +30,7 @@ export function init(options: BrowserOptions): void { } function checkAndSetAngularVersion(): void { - const ANGULAR_MINIMUM_VERSION = 10; + const ANGULAR_MINIMUM_VERSION = 14; const angularVersion = VERSION && VERSION.major ? parseInt(VERSION.major, 10) : undefined; @@ -38,9 +38,10 @@ function checkAndSetAngularVersion(): void { if (angularVersion < ANGULAR_MINIMUM_VERSION) { IS_DEBUG_BUILD && logger.warn( - `The Sentry SDK does not officially support Angular ${angularVersion}.`, - `This version of the Sentry SDK supports Angular ${ANGULAR_MINIMUM_VERSION} and above.`, - 'Please consider upgrading your Angular version or downgrading the Sentry SDK.', + `This Sentry SDK does not officially support Angular ${angularVersion}.`, + `This SDK only supports Angular ${ANGULAR_MINIMUM_VERSION} and above.`, + "If you're using lower Angular versions, check the Angular Version Compatibility table in our docs: https://docs.sentry.io/platforms/javascript/guides/angular/#angular-version-compatibility.", + 'Otherwise, please consider upgrading your Angular version.', ); } setContext('angular', { version: angularVersion }); diff --git a/packages/angular/test/errorhandler.test.ts b/packages/angular/test/errorhandler.test.ts index 18521e536581..3c2b2f994446 100644 --- a/packages/angular/test/errorhandler.test.ts +++ b/packages/angular/test/errorhandler.test.ts @@ -1,12 +1,13 @@ import { HttpErrorResponse } from '@angular/common/http'; import * as SentryBrowser from '@sentry/browser'; import type { Client, Event } from '@sentry/types'; +import { vi } from 'vitest'; import { SentryErrorHandler, createErrorHandler } from '../src/errorhandler'; -const captureExceptionSpy = jest.spyOn(SentryBrowser, 'captureException'); +const captureExceptionSpy = vi.spyOn(SentryBrowser, 'captureException'); -jest.spyOn(console, 'error').mockImplementation(); +vi.spyOn(console, 'error').mockImplementation(() => {}); const captureExceptionEventHint = { mechanism: { handled: false, type: 'angular' }, @@ -34,7 +35,7 @@ class NonErrorShapedClass {} describe('SentryErrorHandler', () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('`createErrorHandler `creates a SentryErrorHandler with an empty config', () => { @@ -500,14 +501,14 @@ describe('SentryErrorHandler', () => { it('by using SDK lifecycle hooks if available', () => { const client = { cb: (_: Event) => {}, - on: jest.fn((_, cb) => { + on: vi.fn((_, cb) => { client.cb = cb; }), }; - jest.spyOn(SentryBrowser, 'getClient').mockImplementationOnce(() => client as unknown as Client); + vi.spyOn(SentryBrowser, 'getClient').mockImplementationOnce(() => client as unknown as Client); - const showReportDialogSpy = jest.spyOn(SentryBrowser, 'showReportDialog'); + const showReportDialogSpy = vi.spyOn(SentryBrowser, 'showReportDialog'); const errorHandler = createErrorHandler({ showDialog: true }); errorHandler.handleError(new Error('test')); @@ -520,7 +521,7 @@ describe('SentryErrorHandler', () => { }); it('by just calling `showReportDialog` if hooks are not available', () => { - const showReportDialogSpy = jest.spyOn(SentryBrowser, 'showReportDialog'); + const showReportDialogSpy = vi.spyOn(SentryBrowser, 'showReportDialog'); const errorHandler = createErrorHandler({ showDialog: true }); errorHandler.handleError(new Error('test')); diff --git a/packages/angular/test/ivy-synced.test.ts b/packages/angular/test/ivy-synced.test.ts deleted file mode 100644 index 4f074d4792e0..000000000000 --- a/packages/angular/test/ivy-synced.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import * as glob from 'glob'; - -describe('@sentry/angular-ivy', () => { - /* - * This test ensures that the source files in @sentry/angular-ivy are in sync with @sentry/angular. - * If this test fails, run `yarn build` in `packages/angular-ivy` to update the sym-linked files. - */ - test('ivy source files should be sym-linked and in sync with @sentry/angular', () => { - const angularBaseDir = path.resolve(__dirname, '..'); - const angularIvyBaseDir = path.resolve(__dirname, '..', '..', 'angular-ivy'); - - const angularSourceFilePaths = glob.sync(path.join(angularBaseDir, 'src', '**', '*')); - const angularIvySourceFilePaths = glob.sync(path.join(angularIvyBaseDir, 'src', '**', '*')); - - const angularSourceFiles = angularSourceFilePaths.map(filePath => path.relative(angularBaseDir, filePath)); - const angularIvySourceFiles = angularIvySourceFilePaths.map(filePath => path.relative(angularIvyBaseDir, filePath)); - - // shallow equality check - expect(angularSourceFiles).toStrictEqual(angularIvySourceFiles); - - // all files in angular-ivy should be sym-linked except for sdk.ts - angularIvySourceFilePaths - .filter(filePath => path.relative(angularIvyBaseDir, filePath) !== path.join('src', 'sdk.ts')) - .forEach(ivyFilePath => { - expect(fs.lstatSync(ivyFilePath).isSymbolicLink()).toBe(true); - expect(angularSourceFilePaths).toContain(fs.realpathSync(ivyFilePath)); - }); - }); -}); diff --git a/packages/angular/test/sdk.test.ts b/packages/angular/test/sdk.test.ts index 115064cd6970..0f97b4e84026 100644 --- a/packages/angular/test/sdk.test.ts +++ b/packages/angular/test/sdk.test.ts @@ -1,21 +1,21 @@ import * as SentryBrowser from '@sentry/browser'; - +import { vi } from 'vitest'; import { getDefaultIntegrations, init } from '../src/index'; describe('init', () => { it('sets the Angular version (if available) in the global scope', () => { - const setContextSpy = jest.spyOn(SentryBrowser, 'setContext'); + const setContextSpy = vi.spyOn(SentryBrowser, 'setContext'); init({}); // In our case, the Angular version is 10 because that's the version we use for compilation // (and hence the dependency version of Angular core we installed (see package.json)) expect(setContextSpy).toHaveBeenCalledTimes(1); - expect(setContextSpy).toHaveBeenCalledWith('angular', { version: 10 }); + expect(setContextSpy).toHaveBeenCalledWith('angular', { version: 14 }); }); describe('filtering out the `BrowserApiErrors` integration', () => { - const browserInitSpy = jest.spyOn(SentryBrowser, 'init'); + const browserInitSpy = vi.spyOn(SentryBrowser, 'init'); beforeEach(() => { browserInitSpy.mockClear(); diff --git a/packages/angular/test/tracing.test.ts b/packages/angular/test/tracing.test.ts index f41b40750b81..454d194c78c5 100644 --- a/packages/angular/test/tracing.test.ts +++ b/packages/angular/test/tracing.test.ts @@ -5,25 +5,10 @@ import { SentrySpan, spanToJSON, } from '@sentry/core'; +import { describe, it } from 'vitest'; import { TraceDirective, browserTracingIntegration, init } from '../src/index'; import { _updateSpanAttributesForParametrizedUrl, getParameterizedRouteFromSnapshot } from '../src/tracing'; -let transaction: any; - -jest.mock('@sentry/browser', () => { - const original = jest.requireActual('@sentry/browser'); - return { - ...original, - getCurrentScope() { - return { - getTransaction: () => { - return transaction; - }, - }; - }, - }; -}); - describe('browserTracingIntegration', () => { it('implements required hooks', () => { const integration = browserTracingIntegration(); @@ -32,10 +17,6 @@ describe('browserTracingIntegration', () => { }); describe('Angular Tracing', () => { - beforeEach(() => { - transaction = undefined; - }); - describe('getParameterizedRouteFromSnapshot', () => { it.each([ ['returns `/` if the route has no children', {}, '/'], diff --git a/packages/angular/tsconfig.json b/packages/angular/tsconfig.json index 2f88305e15e5..0d4d9607991a 100644 --- a/packages/angular/tsconfig.json +++ b/packages/angular/tsconfig.json @@ -1,14 +1,12 @@ { "extends": "../../tsconfig.json", - "include": ["src/**/*"], + "include": ["**/*.ts", "src/**/*"], + + "exclude": ["patch-vitest.ts", "setup-test.ts"], "compilerOptions": { // package-specific options - "experimentalDecorators": true, - // Avoid loading all @types/... packages as they may not be TS 4.0 compatible - // We have no types packages here we directly depend on, - // if we ever add some we need to allowlist them here - "types": [] + "experimentalDecorators": true } } diff --git a/packages/angular/tsconfig.ngc.json b/packages/angular/tsconfig.ngc.json index a7449189e22b..096ced563bba 100644 --- a/packages/angular/tsconfig.ngc.json +++ b/packages/angular/tsconfig.ngc.json @@ -6,6 +6,7 @@ "extends": "./tsconfig.json", "compilerOptions": { "target": "es2017", + "declarationMap": false, "lib": ["dom", "es2017"], "baseUrl": "./" }, @@ -16,13 +17,8 @@ "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true, - // As per Angular 10, the recommendation from the library creation guide - // is to disable compilation for the Ivy rendering engine in production builds - // to ensure compatibility with Angular 10. - // For Angular 11-13 applications, ngcc and the Angular linker convert the compiled JS - // at application compile time into an Ivy-compatible version which is then further used in - // the build process. This ensures compatibility with newer Angular versions than the one - // that was used to initially compile the library (Angular 10 in our case). - "enableIvy": false + "enableI18nLegacyMessageIdFormat": false, + + "compilationMode": "partial" } } diff --git a/packages/angular/tsconfig.test.json b/packages/angular/tsconfig.test.json index af7e36ec0eda..f36b9c11de11 100644 --- a/packages/angular/tsconfig.test.json +++ b/packages/angular/tsconfig.test.json @@ -5,7 +5,7 @@ "compilerOptions": { // should include all types from `./tsconfig.json` plus types for all test frameworks used - "types": ["jest"] + "types": ["vitest/globals"], // other package-specific, test-specific options } diff --git a/packages/angular/vitest.config.ts b/packages/angular/vitest.config.ts new file mode 100644 index 000000000000..9f09af3b153e --- /dev/null +++ b/packages/angular/vitest.config.ts @@ -0,0 +1,14 @@ +import type { UserConfig } from 'vitest'; +import { defineConfig } from 'vitest/config'; +import baseConfig from '../../vite/vite.config'; + +export default defineConfig({ + test: { + ...(baseConfig as UserConfig & { test: any }).test, + coverage: {}, + globals: true, + setupFiles: ['./setup-test.ts'], + reporters: ['default'], + environment: 'jsdom', + }, +}); diff --git a/packages/nextjs/src/config/loaders/types.ts b/packages/nextjs/src/config/loaders/types.ts index c4facd590844..abb8b85bdecb 100644 --- a/packages/nextjs/src/config/loaders/types.ts +++ b/packages/nextjs/src/config/loaders/types.ts @@ -1,4 +1,9 @@ -import type * as webpack from 'webpack'; +type LoaderCallback = ( + err: Error | undefined | null, + content?: string | Buffer, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sourceMap?: string | any, +) => void; export type LoaderThis = { /** @@ -27,14 +32,14 @@ export type LoaderThis = { * * https://webpack.js.org/api/loaders/#thisasync */ - async: webpack.loader.LoaderContext['async']; + async: () => undefined | LoaderCallback; /** * Return errors, code, and sourcemaps from an asynchronous loader * * https://webpack.js.org/api/loaders/#thiscallback */ - callback: webpack.loader.LoaderContext['callback']; + callback: LoaderCallback; } & ( | { /** diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index c00a4a1d5b5e..0875ba15fc8d 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -50,6 +50,7 @@ "sorcery": "0.11.0" }, "devDependencies": { + "@babel/types": "7.20.7", "@sveltejs/kit": "^2.0.2", "svelte": "^4.2.8", "vite": "^5.0.10" diff --git a/yarn.lock b/yarn.lock index b73fc1ab113f..5064a198aea8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -68,13 +68,18 @@ resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71" integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== -"@ampproject/remapping@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-1.0.1.tgz#1398e73e567c2a7992df6554c15bb94a89b68ba2" - integrity sha512-Ta9bMA3EtUHDaZJXqUoT5cn/EecwOp+SXpKJqxDbDuMbLvEMu6YTyDDuvTWeStODfdmXyfMo7LymQyPkN3BicA== +"@adobe/css-tools@^4.0.1": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== + +"@ampproject/remapping@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/resolve-uri" "1.0.0" - sourcemap-codec "1.4.8" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@ampproject/remapping@^2.1.0": version "2.1.2" @@ -91,421 +96,197 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@angular-devkit/architect@0.1002.4": - version "0.1002.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1002.4.tgz#2e1fa9c7a4718a4d0d101516ab0cc9cb653c5c57" - integrity sha512-Vrb2XSnvqj4RByqSWPeG/o9BSNX2DL3pxwQgLMrxofG8/+1VHQ2MsN/KTxBnEZtqeW4/l2QWTsQyzY5frJI69A== +"@angular-devkit/architect@0.1402.13": + version "0.1402.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1402.13.tgz#5f60669f32dd94da24b54f38a2fe740146a00428" + integrity sha512-n0ISBuvkZHoOpAzuAZql1TU9VLHUE9e/a9g4VNOPHewjMzpN02VqeGKvJfOCKtzkCs6gVssIlILm2/SXxkIFxQ== dependencies: - "@angular-devkit/core" "10.2.4" - rxjs "6.6.2" - -"@angular-devkit/architect@0.1202.18": - version "0.1202.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1202.18.tgz#64feaf5015efb688ee9d3876bd630eca340cdf14" - integrity sha512-C4ASKe+xBjl91MJyHDLt3z7ICPF9FU6B0CeJ1phwrlSHK9lmFG99WGxEj/Tc82+vHyPhajqS5XJ38KyVAPBGzA== - dependencies: - "@angular-devkit/core" "12.2.18" + "@angular-devkit/core" "14.2.13" rxjs "6.6.7" -"@angular-devkit/build-angular@~0.1002.4": - version "0.1002.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1002.4.tgz#6525c8ac8ec88d79aa34fdb4f224a914f9ea520f" - integrity sha512-0jo8fCbOyo1HGRDKBVzIzmGd3/Z+x5YP/9t1QHQrPTq9gRoVI+1vFgrKh7XApmGPa/S4bN6hows1wnGzTq5xJg== - dependencies: - "@angular-devkit/architect" "0.1002.4" - "@angular-devkit/build-optimizer" "0.1002.4" - "@angular-devkit/build-webpack" "0.1002.4" - "@angular-devkit/core" "10.2.4" - "@babel/core" "7.11.1" - "@babel/generator" "7.11.0" - "@babel/plugin-transform-runtime" "7.11.0" - "@babel/preset-env" "7.11.0" - "@babel/runtime" "7.11.2" - "@babel/template" "7.10.4" - "@jsdevtools/coverage-istanbul-loader" "3.0.5" - "@ngtools/webpack" "10.2.4" - autoprefixer "9.8.6" - babel-loader "8.1.0" - browserslist "^4.9.1" - cacache "15.0.5" - caniuse-lite "^1.0.30001032" - circular-dependency-plugin "5.2.0" - copy-webpack-plugin "6.0.3" - core-js "3.6.4" - css-loader "4.2.2" - cssnano "4.1.10" - file-loader "6.0.0" - find-cache-dir "3.3.1" - glob "7.1.6" - jest-worker "26.3.0" - karma-source-map-support "1.4.0" - less-loader "6.2.0" - license-webpack-plugin "2.3.0" - loader-utils "2.0.0" - mini-css-extract-plugin "0.10.0" - minimatch "3.0.4" - open "7.2.0" - parse5 "6.0.1" - parse5-htmlparser2-tree-adapter "6.0.1" - pnp-webpack-plugin "1.6.4" - postcss "7.0.32" - postcss-import "12.0.1" - postcss-loader "3.0.0" - raw-loader "4.0.1" - regenerator-runtime "0.13.7" - resolve-url-loader "3.1.2" - rimraf "3.0.2" - rollup "2.26.5" - rxjs "6.6.2" - sass "1.26.10" - sass-loader "10.0.1" - semver "7.3.2" - source-map "0.7.3" - source-map-loader "1.0.2" - source-map-support "0.5.19" - speed-measure-webpack-plugin "1.3.3" - style-loader "1.2.1" - stylus "0.54.8" - stylus-loader "3.0.2" - terser "5.3.0" - terser-webpack-plugin "4.1.0" - tree-kill "1.2.2" - webpack "4.44.1" - webpack-dev-middleware "3.7.2" - webpack-dev-server "3.11.0" - webpack-merge "4.2.2" - webpack-sources "1.4.3" - webpack-subresource-integrity "1.4.1" - worker-plugin "5.0.0" - -"@angular-devkit/build-angular@~12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-12.2.18.tgz#b0a4f6d74e1838c1d0d7ceb1b1cbfc924229b0c3" - integrity sha512-Hf3s7etN7zkHc7lhZZx3Bsm6hfLozuvN3z2aI39RDSlHOA83SoYpltnD9UV4B4d3cxU4PLUzpirb96QeS+E53Q== - dependencies: - "@ampproject/remapping" "1.0.1" - "@angular-devkit/architect" "0.1202.18" - "@angular-devkit/build-optimizer" "0.1202.18" - "@angular-devkit/build-webpack" "0.1202.18" - "@angular-devkit/core" "12.2.18" - "@babel/core" "7.14.8" - "@babel/generator" "7.14.8" - "@babel/helper-annotate-as-pure" "7.14.5" - "@babel/plugin-proposal-async-generator-functions" "7.14.7" - "@babel/plugin-transform-async-to-generator" "7.14.5" - "@babel/plugin-transform-runtime" "7.14.5" - "@babel/preset-env" "7.14.8" - "@babel/runtime" "7.14.8" - "@babel/template" "7.14.5" - "@discoveryjs/json-ext" "0.5.3" - "@jsdevtools/coverage-istanbul-loader" "3.0.5" - "@ngtools/webpack" "12.2.18" - ansi-colors "4.1.1" - babel-loader "8.2.2" +"@angular-devkit/build-angular@^14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-14.2.13.tgz#cbe89e8e9b11ba4a7984cb224db212c386aa4e77" + integrity sha512-FJZKQ3xYFvEJ807sxVy4bCVyGU2NMl3UUPNfLIdIdzwwDEP9tx/cc+c4VtVPEZZfU8jVenu8XOvL6L0vpjt3yg== + dependencies: + "@ampproject/remapping" "2.2.0" + "@angular-devkit/architect" "0.1402.13" + "@angular-devkit/build-webpack" "0.1402.13" + "@angular-devkit/core" "14.2.13" + "@babel/core" "7.18.10" + "@babel/generator" "7.18.12" + "@babel/helper-annotate-as-pure" "7.18.6" + "@babel/plugin-proposal-async-generator-functions" "7.18.10" + "@babel/plugin-transform-async-to-generator" "7.18.6" + "@babel/plugin-transform-runtime" "7.18.10" + "@babel/preset-env" "7.18.10" + "@babel/runtime" "7.18.9" + "@babel/template" "7.18.10" + "@discoveryjs/json-ext" "0.5.7" + "@ngtools/webpack" "14.2.13" + ansi-colors "4.1.3" + babel-loader "8.2.5" + babel-plugin-istanbul "6.1.1" browserslist "^4.9.1" - cacache "15.2.0" - caniuse-lite "^1.0.30001032" - circular-dependency-plugin "5.2.2" - copy-webpack-plugin "9.0.1" - core-js "3.16.0" - critters "0.0.12" - css-loader "6.2.0" - css-minimizer-webpack-plugin "3.0.2" - esbuild-wasm "0.13.8" - find-cache-dir "3.3.1" - glob "7.1.7" - https-proxy-agent "5.0.0" - inquirer "8.1.2" + cacache "16.1.2" + copy-webpack-plugin "11.0.0" + critters "0.0.16" + css-loader "6.7.1" + esbuild-wasm "0.15.5" + glob "8.0.3" + https-proxy-agent "5.0.1" + inquirer "8.2.4" + jsonc-parser "3.1.0" karma-source-map-support "1.4.0" - less "4.1.1" - less-loader "10.0.1" - license-webpack-plugin "2.3.20" - loader-utils "2.0.0" - mini-css-extract-plugin "2.4.2" - minimatch "3.0.4" - open "8.2.1" + less "4.1.3" + less-loader "11.0.0" + license-webpack-plugin "4.0.2" + loader-utils "3.2.1" + mini-css-extract-plugin "2.6.1" + minimatch "5.1.0" + open "8.4.0" ora "5.4.1" parse5-html-rewriting-stream "6.0.1" - piscina "3.1.0" - postcss "8.3.6" - postcss-import "14.0.2" - postcss-loader "6.1.1" - postcss-preset-env "6.7.0" + piscina "3.2.0" + postcss "8.4.31" + postcss-import "15.0.0" + postcss-loader "7.0.1" + postcss-preset-env "7.8.0" regenerator-runtime "0.13.9" - resolve-url-loader "4.0.0" + resolve-url-loader "5.0.0" rxjs "6.6.7" - sass "1.36.0" - sass-loader "12.1.0" - semver "7.3.5" - source-map-loader "3.0.0" - source-map-support "0.5.19" - style-loader "3.2.1" - stylus "0.54.8" - stylus-loader "6.1.0" + sass "1.54.4" + sass-loader "13.0.2" + semver "7.5.3" + source-map-loader "4.0.0" + source-map-support "0.5.21" + stylus "0.59.0" + stylus-loader "7.0.0" terser "5.14.2" - terser-webpack-plugin "5.1.4" text-table "0.2.0" tree-kill "1.2.2" - tslib "2.3.0" - webpack "5.50.0" - webpack-dev-middleware "5.0.0" - webpack-dev-server "3.11.3" + tslib "2.4.0" + webpack "5.76.1" + webpack-dev-middleware "5.3.3" + webpack-dev-server "4.11.0" webpack-merge "5.8.0" - webpack-subresource-integrity "1.5.2" + webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.13.8" - -"@angular-devkit/build-optimizer@0.1002.4": - version "0.1002.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.4.tgz#ddaa74e7e79cdc915631ec212780d6b7e2650c4a" - integrity sha512-O705v4N+VCaeTnePYVHf+XZaPxU8eTWCx2mYvCmG0urHh1GCehb+vX1v332tTaC2uzMoH+RSg2Nh2apFX+pE0Q== - dependencies: - loader-utils "2.0.0" - source-map "0.7.3" - tslib "2.0.1" - typescript "4.0.2" - webpack-sources "1.4.3" - -"@angular-devkit/build-optimizer@0.1202.18": - version "0.1202.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.18.tgz#43259ff4c5e0722f224d1e56cda227bafe470f74" - integrity sha512-8ANaqa66IuaSRqJT3zTNUoeRDyLanE56tkNWqgYDPyZUsafEsomh9/fGVIkazymP1hReDLw+RoxSVxUsaRSsTA== - dependencies: - source-map "0.7.3" - tslib "2.3.0" - typescript "4.3.5" - -"@angular-devkit/build-webpack@0.1002.4": - version "0.1002.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1002.4.tgz#ed3a88a5c0af8a96ac0a14fa59ce66d4b7b850ac" - integrity sha512-5K+hPWmWV1q0HKcvJrTjJ5ABKEQintJlMMaewfmDUDOfslpabtXtY3LF+18a2RBdktAtLpIxoVTX1j/dvotu+w== - dependencies: - "@angular-devkit/architect" "0.1002.4" - "@angular-devkit/core" "10.2.4" - rxjs "6.6.2" - -"@angular-devkit/build-webpack@0.1202.18": - version "0.1202.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1202.18.tgz#466b9ad9b221a0f29f45607a769ca760ae61e1a1" - integrity sha512-656TIHb820Sb3ILHqcqoGJOPTsx2aUdeRrK8f7e6mxR4/kvQZQAevxP9C0TY+LUqQQqekzjKFq3+aYWOfzdR4Q== - dependencies: - "@angular-devkit/architect" "0.1202.18" - rxjs "6.6.7" + esbuild "0.15.5" -"@angular-devkit/core@10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-10.2.4.tgz#b1f6b580406e4a497eeba54cf34013b88e36cb47" - integrity sha512-gnm/+Iyaa6Jt3E803bpTjkwDAIb0AhP9badaGwbx44+bhbNSE2WzOBmdsQrsxJXHAMEG9CGeBzeRd8XZtLACWg== - dependencies: - ajv "6.12.4" - fast-json-stable-stringify "2.1.0" - magic-string "0.25.7" - rxjs "6.6.2" - source-map "0.7.3" - -"@angular-devkit/core@12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-12.2.18.tgz#6c530658b59f625388986fc73e4c4f966269725a" - integrity sha512-GDLHGe9HEY5SRS+NrKr14C8aHsRCiBFkBFSSbeohgLgcgSXzZHFoU84nDWrl3KZNP8oqcUSv5lHu6dLcf2fnww== - dependencies: - ajv "8.6.2" - ajv-formats "2.1.0" - fast-json-stable-stringify "2.1.0" - magic-string "0.25.7" +"@angular-devkit/build-webpack@0.1402.13": + version "0.1402.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1402.13.tgz#20d0059848ef79c8799572fa9856edc96cda262e" + integrity sha512-K27aJmuw86ZOdiu5PoGeGDJ2v7g2ZCK0bGwc8jzkjTLRfvd4FRKIIZumGv3hbQ3vQRLikiU6WMDRTFyCZky/EA== + dependencies: + "@angular-devkit/architect" "0.1402.13" rxjs "6.6.7" - source-map "0.7.3" -"@angular-devkit/schematics@10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-10.2.4.tgz#6f8bc7c0a5c4ac101460a0f709df33782782e6ad" - integrity sha512-poBGWRwMgnnnmoZfwyOBcQMJm7U5y5XxnxvMsBJEyAQRxfQa+KLvcCfGWXqskNTyBdQFpy4kxmtCzRClkoEiKQ== +"@angular-devkit/core@14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-14.2.13.tgz#6c9e3420df7fa7fd2bafbf07405b0abfdcf0dac4" + integrity sha512-aIefeZcbjghQg/V6U9CTLtyB5fXDJ63KwYqVYkWP+i0XriS5A9puFgq2u/OVsWxAfYvqpDqp5AdQ0g0bi3CAsA== dependencies: - "@angular-devkit/core" "10.2.4" - ora "5.0.0" - rxjs "6.6.2" + ajv "8.11.0" + ajv-formats "2.1.1" + jsonc-parser "3.1.0" + rxjs "6.6.7" + source-map "0.7.4" -"@angular-devkit/schematics@12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-12.2.18.tgz#22de79ff820ed484e6edccfac30a9f6b0562842e" - integrity sha512-bZ9NS5PgoVfetRC6WeQBHCY5FqPZ9y2TKHUo12sOB2YSL3tgWgh1oXyP8PtX34gasqsLjNULxEQsAQYEsiX/qQ== +"@angular-devkit/schematics@14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-14.2.13.tgz#c60a1e320e920ff7efc199b7bce2d644ce280d06" + integrity sha512-2zczyeNzeBcrT2HOysv52X9SH3tZoHfWJvVf6H0SIa74rfDKEl7hFpKNXnh3x8sIMLj5mZn05n5RCqGxCczcIg== dependencies: - "@angular-devkit/core" "12.2.18" + "@angular-devkit/core" "14.2.13" + jsonc-parser "3.1.0" + magic-string "0.26.2" ora "5.4.1" rxjs "6.6.7" -"@angular/cli@^10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-10.2.4.tgz#f8899eee8f774cd805b1831a8f2f865024e9f4e1" - integrity sha512-S8xAJemX3zE/I/xi81DT6NuzfDwEAEtEeITHxrAH0AHE4kaUBy2O9bAopvYqMNzxs/XGqyxMv8vwYYpGax7EEQ== +"@angular/cli@^14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-14.2.13.tgz#0c61dce5cc27d330d157bece52d0a1f40e70b607" + integrity sha512-I5EepRem2CCyS3GDzQxZ2ZrqQwVqoGoLY+ZQhsK1QGWUnUyFOjbv3OlUGxRUYwcedu19V1EBAKjmQ96HzMIcVQ== dependencies: - "@angular-devkit/architect" "0.1002.4" - "@angular-devkit/core" "10.2.4" - "@angular-devkit/schematics" "10.2.4" - "@schematics/angular" "10.2.4" - "@schematics/update" "0.1002.4" + "@angular-devkit/architect" "0.1402.13" + "@angular-devkit/core" "14.2.13" + "@angular-devkit/schematics" "14.2.13" + "@schematics/angular" "14.2.13" "@yarnpkg/lockfile" "1.1.0" - ansi-colors "4.1.1" - debug "4.1.1" - ini "1.3.6" - inquirer "7.3.3" - npm-package-arg "8.0.1" - npm-pick-manifest "6.1.0" - open "7.2.0" - pacote "9.5.12" - read-package-tree "5.3.1" - rimraf "3.0.2" - semver "7.3.2" - symbol-observable "1.2.0" - universal-analytics "0.4.23" - uuid "8.3.0" - -"@angular/cli@~12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-12.2.18.tgz#884ed52ede2de3600a0aa5105035957df05df906" - integrity sha512-AvHi6DsxavxXJgEoFrrlYDtGGgCpofPDmOwHmxpIFNAeG1xdGYtK1zJhGbfu5acn8/5cGoJoBgDY+SEI+WOjxA== - dependencies: - "@angular-devkit/architect" "0.1202.18" - "@angular-devkit/core" "12.2.18" - "@angular-devkit/schematics" "12.2.18" - "@schematics/angular" "12.2.18" - "@yarnpkg/lockfile" "1.1.0" - ansi-colors "4.1.1" - debug "4.3.2" - ini "2.0.0" - inquirer "8.1.2" - jsonc-parser "3.0.0" - npm-package-arg "8.1.5" - npm-pick-manifest "6.1.1" - open "8.2.1" + ansi-colors "4.1.3" + debug "4.3.4" + ini "3.0.0" + inquirer "8.2.4" + jsonc-parser "3.1.0" + npm-package-arg "9.1.0" + npm-pick-manifest "7.0.1" + open "8.4.0" ora "5.4.1" - pacote "12.0.2" - resolve "1.20.0" - semver "7.3.5" + pacote "13.6.2" + resolve "1.22.1" + semver "7.5.3" symbol-observable "4.0.0" uuid "8.3.2" + yargs "17.5.1" -"@angular/common@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.2.5.tgz#5313f530446998e2f7af2dc43611addcfa6fd1c1" - integrity sha512-553yf6ZUHNqT4XpOqbW7EKKMfX56u/8DkwYXuSv8MAKdl4/AW6gliFOEJGYo04JcKF7Knq3VPvGSCO9kupf0hg== - dependencies: - tslib "^2.0.0" - -"@angular/common@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-12.2.17.tgz#d07bde7f7f05b2e9fcac95c7087e2581960eedcb" - integrity sha512-/Rc83mzlL6YZScYTzg+Ng2hiCSf3jUVHAfQ8cyLOIMj/y8863Q+DMLVWW+ttvHwCjEFY44pC8IPyBl5FmSJYHg== - dependencies: - tslib "^2.2.0" - -"@angular/compiler-cli@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-10.2.5.tgz#adb65bb9ecea14762a501226fde7760b73c3ab1e" - integrity sha512-xddSpKudoPidEebIW3x1CvQdx69WEmnFg4DneeQi/tit7mtAKYTJemzYZmP6abdSYhtxovL0bPX5LxYlrtuxIw== +"@angular/common@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-14.3.0.tgz#dcf675e1db3016cdb605a05be6182a8cea71e139" + integrity sha512-pV9oyG3JhGWeQ+TFB0Qub6a1VZWMNZ6/7zEopvYivdqa5yDLLDSBRWb6P80RuONXyGnM1pa7l5nYopX+r/23GQ== dependencies: - canonical-path "1.0.0" - chokidar "^3.0.0" - convert-source-map "^1.5.1" - dependency-graph "^0.7.2" - fs-extra "4.0.2" - magic-string "^0.25.0" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - semver "^6.3.0" - source-map "^0.6.1" - sourcemap-codec "^1.4.8" - tslib "^2.0.0" - yargs "^16.1.1" + tslib "^2.3.0" -"@angular/compiler-cli@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-12.2.17.tgz#91dc481727df9240ff88ee542f0fbaab26ee48c9" - integrity sha512-gJJlnDr8Fhs6z0hH0Y/5GC1YAgHY+sRh2BUrbDu+nIUubyyOVYSyQdL1jwEfCSIZl1GSg+4b4thU7pp7HtmX8g== +"@angular/compiler-cli@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-14.3.0.tgz#e9c4760cf4473c53217f6cf3a27365954438e7a6" + integrity sha512-eoKpKdQ2X6axMgzcPUMZVYl3bIlTMzMeTo5V29No4BzgiUB+QoOTYGNJZkGRyqTNpwD9uSBJvmT2vG9+eC4ghQ== dependencies: - "@babel/core" "^7.8.6" - "@babel/types" "^7.8.6" - canonical-path "1.0.0" + "@babel/core" "^7.17.2" chokidar "^3.0.0" convert-source-map "^1.5.1" dependency-graph "^0.11.0" - magic-string "^0.25.0" - minimist "^1.2.0" + magic-string "^0.26.0" reflect-metadata "^0.1.2" semver "^7.0.0" - source-map "^0.6.1" sourcemap-codec "^1.4.8" - tslib "^2.2.0" - yargs "^17.0.0" - -"@angular/compiler@^10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.2.5.tgz#1ff8514fdd2c07ff3c265b960dc49af6376071c9" - integrity sha512-ddJiTPCoVBIGjFDYoYWDpmq3Zs8UKoWpzaeW4u+p17gWW54HwyT5XTxrgtbeUmaxIuRdL4/KT1lGHs9/9bwbCA== - dependencies: - tslib "^2.0.0" - -"@angular/compiler@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-12.2.17.tgz#7b40330ed93420be751bfbfe1d4599ecda74996d" - integrity sha512-dxM1CxzvEJPk6ShJngkW5j5BejBloxQNi+fJi+F8P/GN/Rj7vJUf0JxL+TUt1+Iv575V4NidJDKKikk6K485CA== - dependencies: - tslib "^2.2.0" - -"@angular/core@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.2.5.tgz#2050b0dbb180aa98c2ec46bba6d4827565ba2a2d" - integrity sha512-krhOKNTj5XE92Rk9ASX5KmgTF72j7qT2PLVxrGEVjuUKjBY2XaK3TV0Kotq9zI3qa9WgeCrP/Njn6jlKQCCAEQ== - dependencies: - tslib "^2.0.0" - -"@angular/core@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-12.2.17.tgz#15c70a46de66f3d9500b2dc8e233f30328e83ad0" - integrity sha512-XUvTgU0D8XqNH5Y7UlTMk/XjUQaEGC0kZxhw/QSSQr65WrXtXmcD4d8Cg84TJ52uGXmf7IAruKvtbvu1Mbmvug== - dependencies: - tslib "^2.2.0" - -"@angular/platform-browser-dynamic@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.5.tgz#c9eea9e076a9fc8f80d7c041ba9766465613bb96" - integrity sha512-7z443I80K2CeqzczlSJ8BlABj0uRgnHUrABE8yLlU2BgifJrriBawzSXEV7UMEN7k7ezbc6NhpOn6Q6BrCKEOA== - dependencies: - tslib "^2.0.0" + tslib "^2.3.0" + yargs "^17.2.1" -"@angular/platform-browser-dynamic@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.17.tgz#6b3e3fc7707f9a10c06fb18f509f3f451eef3c82" - integrity sha512-2v7R5l+4ULSNLviKVTHCqn6iNFgY1M/+HtM1ZcM72V4cVVsXqXUAh7WV4sk4l4ECsExKxQoc6JlVtPUub8cCKA== +"@angular/compiler@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-14.3.0.tgz#106d3ef296700ab7021a52b2e09d8da1384d086a" + integrity sha512-E15Rh0t3vA+bctbKnBCaDmLvc3ix+ZBt6yFZmhZalReQ+KpOlvOJv+L9oiFEgg+rYVl2QdvN7US1fvT0PqswLw== dependencies: - tslib "^2.2.0" + tslib "^2.3.0" -"@angular/platform-browser@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.2.5.tgz#40dd88c937af7af56e3fb246608c7001e4ac09c7" - integrity sha512-3JDFRGNxr0IUkjSdGK2Q1BvqnSDpy9YWo0DJP+TEpgW578R84m4X7/wI3jJmFSC2yyouMWrHsot2vcBPAQj89g== +"@angular/core@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-14.3.0.tgz#7f44c59b6e866fa4cee7221495040c1ead433895" + integrity sha512-wYiwItc0Uyn4FWZ/OAx/Ubp2/WrD3EgUJ476y1XI7yATGPF8n9Ld5iCXT08HOvc4eBcYlDfh90kTXR6/MfhzdQ== dependencies: - tslib "^2.0.0" + tslib "^2.3.0" -"@angular/platform-browser@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-12.2.17.tgz#f44b080055b6eec883ce8a74a0258925ad570893" - integrity sha512-fxs0FDEnS9mzd36u0bHd6TbCvRC9pqK0YCWNnoLCf5ALQtyIL8CpgGNjOMnO8mCEl5l9QTFCDvKOn4V3p7E/dg== +"@angular/platform-browser-dynamic@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.3.0.tgz#56b24d0408a0f0d29b84f95ab39ed31774607cbd" + integrity sha512-rneZiMrIiYRhrkQvdL40E2ErKRn4Zdo6EtjBM9pAmWeyoM8oMnOZb9gz5vhrkNWg06kVMVg0yKqluP5How7j3A== dependencies: - tslib "^2.2.0" + tslib "^2.3.0" -"@angular/router@~10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.2.5.tgz#acc75a29ab0b54c8ebad7d2a896986a59d7d99ec" - integrity sha512-AtSMB/d4V+pw/FL4G/mWWoiJJtZ/075TqsGW7uEFKgxS6Gh2kalv6BTMlXVG5GO+2oU0lsuDvguq5E7Atbak3Q== +"@angular/platform-browser@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-14.3.0.tgz#d0cd6f7a439b862d16ed3fbf78f68295048a6434" + integrity sha512-w9Y3740UmTz44T0Egvc+4QV9sEbO61L+aRHbpkLTJdlEGzHByZvxJmJyBYmdqeyTPwc/Zpy7c02frlpfAlyB7A== dependencies: - tslib "^2.0.0" + tslib "^2.3.0" -"@angular/router@~12.2.0": - version "12.2.17" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-12.2.17.tgz#8b54bca6d11ee0950e848d57b0d2dd12892ad131" - integrity sha512-GKvEMUpLe157izpHLiS4bCZllqOj+MWhfWbhvR0DHFpE9FtkcDjBseTsWqQmyA1gqtRblO1Zn/1E33l9uaGMqw== +"@angular/router@^14.3.0": + version "14.3.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-14.3.0.tgz#c92f5c4317a65c6fbe27de539af53715811b9006" + integrity sha512-uip0V7w7k7xyxxpTPbr7EuMnYLj3FzJrwkLVJSEw3TMMGHt5VU5t4BBa9veGZOta2C205XFrTAHnp8mD+XYY1w== dependencies: - tslib "^2.2.0" + tslib "^2.3.0" "@apollo/protobufjs@1.2.4": version "1.2.4" @@ -671,7 +452,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -694,12 +475,25 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.13.0", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": +"@babel/code-frame@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.1.tgz#8f4027f85a6e84a695276080e864215318f95c19" + integrity sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg== + dependencies: + "@babel/highlight" "^7.24.1" + picocolors "^1.0.0" + +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.20.5": +"@babel/compat-data@^7.18.8": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742" + integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA== + +"@babel/compat-data@^7.20.5": version "7.20.14" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== @@ -714,48 +508,26 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@7.11.1": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" - integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== +"@babel/core@7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" + integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.1" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" - integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.8" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.14.8" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.10" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.10" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.10" + "@babel/types" "^7.18.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" + json5 "^2.2.1" semver "^6.3.0" - source-map "^0.5.0" "@babel/core@7.18.5": version "7.18.5" @@ -778,7 +550,7 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.16.10", "@babel/core@^7.16.7", "@babel/core@^7.17.5", "@babel/core@^7.18.13", "@babel/core@^7.3.4", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": +"@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.16.10", "@babel/core@^7.16.7", "@babel/core@^7.17.5", "@babel/core@^7.18.13", "@babel/core@^7.3.4", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== @@ -799,6 +571,27 @@ json5 "^2.2.1" semver "^6.3.0" +"@babel/core@^7.17.2": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.1.tgz#b802f931b6498dcb8fed5a4710881a45abbc2784" + integrity sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.1" + "@babel/parser" "^7.24.1" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.18.5": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" @@ -841,61 +634,23 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.8.6": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" - integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== - dependencies: - "@babel/types" "^7.11.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz#bf86fd6af96cf3b74395a8ca409515f89423e070" - integrity sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg== - dependencies: - "@babel/types" "^7.14.8" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.11.0", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== +"@babel/generator@7.18.12": + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" + integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.18.10" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.14.8", "@babel/generator@^7.20.7": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" - integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== +"@babel/generator@^7.18.10", "@babel/generator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0" + integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A== dependencies: - "@babel/types" "^7.20.7" - "@jridgewell/gen-mapping" "^0.3.2" + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" "@babel/generator@^7.18.2", "@babel/generator@^7.23.6": @@ -908,6 +663,15 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.20.2", "@babel/generator@^7.7.2": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" + integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== + dependencies: + "@babel/types" "^7.20.2" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/generator@^7.22.10", "@babel/generator@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" @@ -918,14 +682,7 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" - integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-annotate-as-pure@^7.18.6": +"@babel/helper-annotate-as-pure@7.18.6", "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== @@ -947,7 +704,7 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3", "@babel/helper-compilation-targets@^7.20.0": +"@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3", "@babel/helper-compilation-targets@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== @@ -957,17 +714,6 @@ browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - "@babel/helper-compilation-targets@^7.18.2", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" @@ -979,6 +725,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-compilation-targets@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" @@ -1003,20 +760,6 @@ "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" - integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" @@ -1025,13 +768,14 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" - integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== +"@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.2.1" + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" "@babel/helper-define-polyfill-provider@^0.1.5": version "0.1.5" @@ -1047,21 +791,7 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.2.2", "@babel/helper-define-polyfill-provider@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz#8867aed79d3ea6cade40f801efb7ac5c66916b10" - integrity sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-define-polyfill-provider@^0.3.3": +"@babel/helper-define-polyfill-provider@^0.3.2", "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== @@ -1127,14 +857,14 @@ dependencies: "@babel/types" "^7.18.9" -"@babel/helper-member-expression-to-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" - integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== +"@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== @@ -1148,7 +878,18 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": +"@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.18.9", "@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== @@ -1162,31 +903,6 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.2" -"@babel/helper-module-transforms@^7.14.8", "@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" - -"@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - "@babel/helper-module-transforms@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" @@ -1205,6 +921,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" @@ -1220,7 +943,12 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-plugin-utils@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -1241,17 +969,14 @@ "@babel/traverse" "^7.19.1" "@babel/types" "^7.19.0" -"@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": version "7.20.2" @@ -1274,12 +999,12 @@ dependencies: "@babel/types" "^7.18.9" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -1325,7 +1050,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.14.5", "@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6": +"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== @@ -1350,24 +1075,6 @@ "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/helpers@^7.10.4", "@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" - -"@babel/helpers@^7.14.8", "@babel/helpers@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" - integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.13" - "@babel/types" "^7.20.7" - "@babel/helpers@^7.18.2": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" @@ -1377,6 +1084,24 @@ "@babel/traverse" "^7.23.9" "@babel/types" "^7.23.9" +"@babel/helpers@^7.18.9", "@babel/helpers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94" + integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + +"@babel/helpers@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" + integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.0" + "@babel/helpers@^7.23.0": version "7.23.1" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" @@ -1422,22 +1147,32 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.1", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.20.2", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0": +"@babel/highlight@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.1.tgz#21f3f5391c793b3f0d6dbb40f898c48cc6ad4215" + integrity sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.20.2", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0": version "7.20.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== -"@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.20.7": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" - integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== - "@babel/parser@^7.18.5", "@babel/parser@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@babel/parser@^7.21.9": +"@babel/parser@^7.20.7": + version "7.20.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" + integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== + +"@babel/parser@^7.21.9": version "7.22.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== @@ -1452,6 +1187,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== +"@babel/parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a" + integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -1459,15 +1199,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" @@ -1477,26 +1208,17 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-proposal-optional-chaining" "^7.18.9" -"@babel/plugin-proposal-async-generator-functions@7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace" - integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-async-generator-functions@^7.10.4", "@babel/plugin-proposal-async-generator-functions@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== +"@babel/plugin-proposal-async-generator-functions@7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.14.7": +"@babel/plugin-proposal-async-generator-functions@^7.18.10": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== @@ -1506,7 +1228,17 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.5", "@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-async-generator-functions@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" + integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.16.5", "@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -1514,15 +1246,6 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" - integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-class-static-block@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" @@ -1543,7 +1266,7 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/plugin-syntax-decorators" "^7.19.0" -"@babel/plugin-proposal-dynamic-import@^7.10.4", "@babel/plugin-proposal-dynamic-import@^7.14.5", "@babel/plugin-proposal-dynamic-import@^7.18.6": +"@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== @@ -1551,7 +1274,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.10.4", "@babel/plugin-proposal-export-namespace-from@^7.14.5", "@babel/plugin-proposal-export-namespace-from@^7.18.9": +"@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== @@ -1559,7 +1282,7 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4", "@babel/plugin-proposal-json-strings@^7.14.5", "@babel/plugin-proposal-json-strings@^7.18.6": +"@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== @@ -1567,7 +1290,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0", "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== @@ -1575,15 +1298,7 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -1591,7 +1306,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.10.4", "@babel/plugin-proposal-numeric-separator@^7.14.5", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -1599,18 +1314,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d" - integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q== - dependencies: - "@babel/compat-data" "^7.19.4" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" - -"@babel/plugin-proposal-object-rest-spread@^7.14.7": +"@babel/plugin-proposal-object-rest-spread@^7.18.9": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -1621,7 +1325,18 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4", "@babel/plugin-proposal-optional-catch-binding@^7.14.5", "@babel/plugin-proposal-optional-catch-binding@^7.18.6": +"@babel/plugin-proposal-object-rest-spread@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d" + integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q== + dependencies: + "@babel/compat-data" "^7.19.4" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.18.8" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== @@ -1629,7 +1344,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.11.0", "@babel/plugin-proposal-optional-chaining@^7.18.9": +"@babel/plugin-proposal-optional-chaining@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== @@ -1638,16 +1353,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.14.5", "@babel/plugin-proposal-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" - integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.10.4", "@babel/plugin-proposal-private-methods@^7.14.5", "@babel/plugin-proposal-private-methods@^7.16.5", "@babel/plugin-proposal-private-methods@^7.18.6": +"@babel/plugin-proposal-private-methods@^7.16.5", "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -1655,16 +1361,6 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" - integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object@^7.16.5", "@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" @@ -1675,7 +1371,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -1683,7 +1379,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -1697,7 +1393,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -1718,7 +1414,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -1746,7 +1442,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -1767,7 +1463,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -1781,21 +1477,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -1809,7 +1505,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.10.4", "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -1823,30 +1519,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.10.4", "@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-async-to-generator@7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== - dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" - -"@babel/plugin-transform-async-to-generator@^7.10.4", "@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-async-to-generator@7.18.6", "@babel/plugin-transform-async-to-generator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== @@ -1855,37 +1535,42 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-remap-async-to-generator" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - -"@babel/plugin-transform-block-scoped-functions@^7.10.4", "@babel/plugin-transform-block-scoped-functions@^7.14.5", "@babel/plugin-transform-block-scoped-functions@^7.18.6": +"@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.10.4", "@babel/plugin-transform-block-scoping@^7.16.0", "@babel/plugin-transform-block-scoping@^7.19.4": +"@babel/plugin-transform-block-scoping@^7.16.0", "@babel/plugin-transform-block-scoping@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-block-scoping@^7.14.5": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz#3e1b2aa9cbbe1eb8d644c823141a9c5c2a22392d" - integrity sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA== +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz#27af183d7f6dad890531256c7a45019df768ac1f" + integrity sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-classes@^7.18.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz#5bc8fc160ed96378184bc10042af47f50884dcb1" + integrity sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" -"@babel/plugin-transform-classes@^7.10.4", "@babel/plugin-transform-classes@^7.19.0": +"@babel/plugin-transform-classes@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== @@ -1900,51 +1585,28 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" - integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.10.4", "@babel/plugin-transform-computed-properties@^7.18.9": +"@babel/plugin-transform-computed-properties@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-computed-properties@^7.14.5": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-destructuring@^7.18.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz#b1e8243af4a0206841973786292b8c8dd8447345" + integrity sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.19.4": +"@babel/plugin-transform-destructuring@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-destructuring@^7.14.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" - integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== @@ -1952,14 +1614,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.10.4", "@babel/plugin-transform-duplicate-keys@^7.14.5", "@babel/plugin-transform-duplicate-keys@^7.18.9": +"@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-exponentiation-operator@^7.10.4", "@babel/plugin-transform-exponentiation-operator@^7.14.5", "@babel/plugin-transform-exponentiation-operator@^7.18.6": +"@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== @@ -1967,14 +1629,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.10.4", "@babel/plugin-transform-for-of@^7.14.5", "@babel/plugin-transform-for-of@^7.18.8": +"@babel/plugin-transform-for-of@^7.18.8": version "7.18.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.10.4", "@babel/plugin-transform-function-name@^7.14.5", "@babel/plugin-transform-function-name@^7.18.9": +"@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== @@ -1983,21 +1645,21 @@ "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.10.4", "@babel/plugin-transform-literals@^7.14.5", "@babel/plugin-transform-literals@^7.18.9": +"@babel/plugin-transform-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-member-expression-literals@^7.10.4", "@babel/plugin-transform-member-expression-literals@^7.14.5", "@babel/plugin-transform-member-expression-literals@^7.18.6": +"@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.10.4", "@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.18.6": +"@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.18.6": version "7.19.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== @@ -2005,15 +1667,7 @@ "@babel/helper-module-transforms" "^7.19.6" "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-modules-amd@^7.14.5": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.10.4", "@babel/plugin-transform-modules-commonjs@^7.18.6": +"@babel/plugin-transform-modules-commonjs@^7.18.6": version "7.19.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== @@ -2022,16 +1676,17 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-simple-access" "^7.19.4" -"@babel/plugin-transform-modules-commonjs@^7.14.5": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" - integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== +"@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz#2b9625a3d4e445babac9788daec39094e6b11e3e" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-systemjs@^7.10.4", "@babel/plugin-transform-modules-systemjs@^7.19.0": +"@babel/plugin-transform-modules-systemjs@^7.19.0": version "7.19.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== @@ -2041,17 +1696,7 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-identifier" "^7.19.1" -"@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" - -"@babel/plugin-transform-modules-umd@^7.10.4", "@babel/plugin-transform-modules-umd@^7.14.5", "@babel/plugin-transform-modules-umd@^7.18.6": +"@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== @@ -2059,7 +1704,15 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4", "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== @@ -2067,22 +1720,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.19.0" "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-new-target@^7.10.4", "@babel/plugin-transform-new-target@^7.14.5", "@babel/plugin-transform-new-target@^7.18.6": +"@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-object-super@^7.10.4", "@babel/plugin-transform-object-super@^7.14.5", "@babel/plugin-transform-object-super@^7.18.6": +"@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== @@ -2090,21 +1735,21 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.18.8": +"@babel/plugin-transform-parameters@^7.18.8": version "7.18.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.20.7": +"@babel/plugin-transform-parameters@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-property-literals@^7.10.4", "@babel/plugin-transform-property-literals@^7.14.5", "@babel/plugin-transform-property-literals@^7.18.6": +"@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== @@ -2122,7 +1767,7 @@ "@babel/plugin-syntax-jsx" "^7.22.5" "@babel/types" "^7.22.15" -"@babel/plugin-transform-regenerator@^7.10.4", "@babel/plugin-transform-regenerator@^7.18.6": +"@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== @@ -2130,41 +1775,23 @@ "@babel/helper-plugin-utils" "^7.18.6" regenerator-transform "^0.15.0" -"@babel/plugin-transform-regenerator@^7.14.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.10.4", "@babel/plugin-transform-reserved-words@^7.14.5", "@babel/plugin-transform-reserved-words@^7.18.6": +"@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-runtime@7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523" - integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg== +"@babel/plugin-transform-runtime@7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz#37d14d1fa810a368fd635d4d1476c0154144a96f" + integrity sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" semver "^6.3.0" "@babel/plugin-transform-runtime@^7.13.9": @@ -2179,14 +1806,22 @@ babel-plugin-polyfill-regenerator "^0.1.2" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.10.4", "@babel/plugin-transform-shorthand-properties@^7.14.5", "@babel/plugin-transform-shorthand-properties@^7.18.6": +"@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.11.0", "@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.18.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-spread@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== @@ -2194,29 +1829,21 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" -"@babel/plugin-transform-spread@^7.14.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4", "@babel/plugin-transform-sticky-regex@^7.14.5", "@babel/plugin-transform-sticky-regex@^7.18.6": +"@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.10.4", "@babel/plugin-transform-template-literals@^7.14.5", "@babel/plugin-transform-template-literals@^7.18.9": +"@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.10.4", "@babel/plugin-transform-typeof-symbol@^7.14.5", "@babel/plugin-transform-typeof-symbol@^7.18.9": +"@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== @@ -2249,14 +1876,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" -"@babel/plugin-transform-unicode-escapes@^7.10.4", "@babel/plugin-transform-unicode-escapes@^7.14.5", "@babel/plugin-transform-unicode-escapes@^7.18.10": +"@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-regex@^7.10.4", "@babel/plugin-transform-unicode-regex@^7.14.5", "@babel/plugin-transform-unicode-regex@^7.18.6": +"@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== @@ -2272,110 +1899,38 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-env@7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.8.tgz#254942f5ca80ccabcfbb2a9f524c74bca574005b" - integrity sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg== +"@babel/preset-env@7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: - "@babel/compat-data" "^7.14.7" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions" "^7.14.7" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-json-strings" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.18.10" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -2385,44 +1940,44 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.14.5" - "@babel/plugin-transform-async-to-generator" "^7.14.5" - "@babel/plugin-transform-block-scoped-functions" "^7.14.5" - "@babel/plugin-transform-block-scoping" "^7.14.5" - "@babel/plugin-transform-classes" "^7.14.5" - "@babel/plugin-transform-computed-properties" "^7.14.5" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-dotall-regex" "^7.14.5" - "@babel/plugin-transform-duplicate-keys" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator" "^7.14.5" - "@babel/plugin-transform-for-of" "^7.14.5" - "@babel/plugin-transform-function-name" "^7.14.5" - "@babel/plugin-transform-literals" "^7.14.5" - "@babel/plugin-transform-member-expression-literals" "^7.14.5" - "@babel/plugin-transform-modules-amd" "^7.14.5" - "@babel/plugin-transform-modules-commonjs" "^7.14.5" - "@babel/plugin-transform-modules-systemjs" "^7.14.5" - "@babel/plugin-transform-modules-umd" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7" - "@babel/plugin-transform-new-target" "^7.14.5" - "@babel/plugin-transform-object-super" "^7.14.5" - "@babel/plugin-transform-parameters" "^7.14.5" - "@babel/plugin-transform-property-literals" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-reserved-words" "^7.14.5" - "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" - "@babel/plugin-transform-sticky-regex" "^7.14.5" - "@babel/plugin-transform-template-literals" "^7.14.5" - "@babel/plugin-transform-typeof-symbol" "^7.14.5" - "@babel/plugin-transform-unicode-escapes" "^7.14.5" - "@babel/plugin-transform-unicode-regex" "^7.14.5" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.8" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.15.0" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.18.10" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" + core-js-compat "^3.22.1" semver "^6.3.0" "@babel/preset-env@^7.16.5", "@babel/preset-env@^7.16.7": @@ -2506,7 +2061,7 @@ core-js-compat "^3.25.1" semver "^6.3.0" -"@babel/preset-modules@^0.1.3", "@babel/preset-modules@^0.1.4", "@babel/preset-modules@^0.1.5": +"@babel/preset-modules@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== @@ -2531,13 +2086,6 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.11.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@7.12.18": version "7.12.18" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" @@ -2545,10 +2093,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" - integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== +"@babel/runtime@7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" @@ -2559,25 +2107,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/template@7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/template@^7.10.4", "@babel/template@^7.18.10", "@babel/template@^7.3.3": +"@babel/template@7.18.10", "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -2586,15 +2116,6 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/template@^7.14.5", "@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@babel/template@^7.16.7", "@babel/template@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" @@ -2622,7 +2143,7 @@ "@babel/parser" "^7.24.0" "@babel/types" "^7.24.0" -"@babel/traverse@^7.11.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.8", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.7", "@babel/traverse@^7.22.10", "@babel/traverse@^7.23.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.22.10", "@babel/traverse@^7.23.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== @@ -2638,6 +2159,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.18.10", "@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== + dependencies: + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + "@babel/traverse@^7.18.5", "@babel/traverse@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" @@ -2670,19 +2207,19 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@7.20.7", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.20.7", "@babel/types@^7.8.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" + integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -2791,24 +2328,125 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@csstools/postcss-cascade-layers@^1.0.5", "@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" -"@discoveryjs/json-ext@0.5.3": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" - integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== "@edge-runtime/jest-environment@2.2.3": version "2.2.3" @@ -3011,6 +2649,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== + "@esbuild/android-arm@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" @@ -3236,6 +2879,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== + +"@esbuild/linux-loong64@0.15.5": + version "0.15.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" + integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== + "@esbuild/linux-loong64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" @@ -3568,7 +3221,7 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== -"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": +"@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== @@ -4443,6 +4096,14 @@ resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -4452,10 +4113,14 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz#3fdf5798f0b49e90155896f6291df186eac06c83" - integrity sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" @@ -4467,6 +4132,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -4530,7 +4200,7 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jridgewell/trace-mapping@^0.3.20": +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -4538,17 +4208,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jsdevtools/coverage-istanbul-loader@3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" - integrity sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA== - dependencies: - convert-source-map "^1.7.0" - istanbul-lib-instrument "^4.0.3" - loader-utils "^2.0.0" - merge-source-map "^1.1.0" - schema-utils "^2.7.0" - "@kwsites/file-exists@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" @@ -4561,6 +4220,11 @@ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + "@lerna/child-process@7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.1.1.tgz#60eddd6dc4b6ba0fd51851c78b6dbdc4e1614220" @@ -4709,19 +4373,10 @@ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.0.tgz#49bc50b1865d20b29892a415fcbaab84217112a5" integrity sha512-QTAjSuPevnZnlHfC4600+4NvxRuPar6tWdYbPum9vnk3OIH1xu9YLK+2ArPGFd0bB2K8AoY2SIMbs1dhK0GjQQ== -"@ngtools/webpack@10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-10.2.4.tgz#6060970d1de053b5c33f5dd649ffb9f34e6b74a7" - integrity sha512-7rnGrd0TlnAHwOSwvKjKuD+/vwPEP2aVwD9ZnvWYafQFpLYQj+9TYOBj+nbg2l4PCRx5ByYy7xPKnu88GX5/lw== - dependencies: - "@angular-devkit/core" "10.2.4" - enhanced-resolve "4.3.0" - webpack-sources "1.4.3" - -"@ngtools/webpack@12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-12.2.18.tgz#a7ec5fb2c1ac809425e4f5bb224cf603525c81aa" - integrity sha512-6h/QSG6oZDs2BGfrozdOKqtM5daoCu05q+0gyb3owHz1u9FtMeXXKQ3sQfyFC/GNT3dTMlH6YFxsJPvMPwuy9A== +"@ngtools/webpack@14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-14.2.13.tgz#859b38aaa57ffe1351d08f9166724936c9e6b365" + integrity sha512-RQx/rGX7K/+R55x1R6Ax1JzyeHi8cW11dEXpzHWipyuSpusQLUN53F02eMB4VTakXsL3mFNWWy4bX3/LSq8/9w== "@nodelib/fs.scandir@2.1.4": version "2.1.4" @@ -4744,14 +4399,6 @@ "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - "@npmcli/fs@^2.1.0": version "2.1.2" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" @@ -4767,15 +4414,16 @@ dependencies: semver "^7.3.5" -"@npmcli/git@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" - integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== +"@npmcli/git@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== dependencies: - "@npmcli/promise-spawn" "^1.3.2" - lru-cache "^6.0.0" + "@npmcli/promise-spawn" "^3.0.0" + lru-cache "^7.4.4" mkdirp "^1.0.4" - npm-pick-manifest "^6.1.1" + npm-pick-manifest "^7.0.0" + proc-log "^2.0.0" promise-inflight "^1.0.1" promise-retry "^2.0.1" semver "^7.3.5" @@ -4795,7 +4443,7 @@ semver "^7.3.5" which "^3.0.0" -"@npmcli/installed-package-contents@^1.0.6": +"@npmcli/installed-package-contents@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== @@ -4811,14 +4459,6 @@ npm-bundled "^3.0.0" npm-normalize-package-bin "^3.0.0" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@npmcli/move-file@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" @@ -4827,20 +4467,20 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@npmcli/node-gyp@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" - integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== +"@npmcli/node-gyp@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" + integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== "@npmcli/node-gyp@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== -"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" - integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== +"@npmcli/promise-spawn@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" + integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== dependencies: infer-owner "^1.0.4" @@ -4862,15 +4502,16 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@npmcli/run-script@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" - integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig== +"@npmcli/run-script@^4.1.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== dependencies: - "@npmcli/node-gyp" "^1.0.2" - "@npmcli/promise-spawn" "^1.3.2" - node-gyp "^8.2.0" - read-package-json-fast "^2.0.1" + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^2.0.3" + which "^2.0.2" "@nrwl/devkit@16.4.1": version "16.4.1" @@ -5793,32 +5434,6 @@ is-reference "1.2.1" magic-string "^0.27.0" -"@rollup/plugin-commonjs@^15.0.0": - version "15.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238" - integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-commonjs@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" - integrity sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - "@rollup/plugin-commonjs@^25.0.7": version "25.0.7" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" @@ -5838,7 +5453,7 @@ dependencies: magic-string "^0.30.3" -"@rollup/plugin-json@^4.0.0", "@rollup/plugin-json@^4.1.0": +"@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== @@ -5852,7 +5467,7 @@ dependencies: "@rollup/pluginutils" "^5.1.0" -"@rollup/plugin-node-resolve@^13.0.0": +"@rollup/plugin-node-resolve@^13.1.3": version "13.3.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== @@ -5876,18 +5491,6 @@ is-module "^1.0.0" resolve "^1.22.1" -"@rollup/plugin-node-resolve@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6" - integrity sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - "@rollup/plugin-replace@^5.0.5": version "5.0.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz#33d5653dce6d03cb24ef98bef7f6d25b57faefdf" @@ -6086,37 +5689,14 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz#d146db7a5949e10837b323ce933ed882ac878262" integrity sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA== -"@schematics/angular@10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-10.2.4.tgz#3b99b9da572b57381d221e2008804e6bb9c98b82" - integrity sha512-irU3cnamfd5Hgy1B6oY7oweApJHhVaD2oYPq0NfI+F14JalERO+DGO0Tq3MWmEGn32tLQPv9fwM5O8EElEp9pA== - dependencies: - "@angular-devkit/core" "10.2.4" - "@angular-devkit/schematics" "10.2.4" - jsonc-parser "2.3.0" - -"@schematics/angular@12.2.18": - version "12.2.18" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-12.2.18.tgz#dc6f8f572eaf6e562ec564bb7a52c5c9e38f43cb" - integrity sha512-niRS9Ly9y8uI0YmTSbo8KpdqCCiZ/ATMZWeS2id5M8JZvfXbngwiqJvojdSol0SWU+n1W4iA+lJBdt4gSKlD5w== - dependencies: - "@angular-devkit/core" "12.2.18" - "@angular-devkit/schematics" "12.2.18" - jsonc-parser "3.0.0" - -"@schematics/update@0.1002.4": - version "0.1002.4" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1002.4.tgz#e8f5ff82d308f72fd521abd88316f7b0ccd296c1" - integrity sha512-qnDn3SSMmolfzWpj8CTAoC/TSPe43azKPYLR5r76GkRvuUbwr/dQEj92wu59twjGcsmjF54qcG4fGaxMndUn3Q== +"@schematics/angular@14.2.13": + version "14.2.13" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-14.2.13.tgz#35ee9120a3ac07077bad169fa74fdf4ce4e193d7" + integrity sha512-MLxTpTU3E8QACQ/5c0sENMR2gRiMXpGaKeD5IHY+3wyU2fUSJVB0QPU/l1WhoyZbX8N9ospBgf5UEG7taVF9rg== dependencies: - "@angular-devkit/core" "10.2.4" - "@angular-devkit/schematics" "10.2.4" - "@yarnpkg/lockfile" "1.1.0" - ini "1.3.6" - npm-package-arg "^8.0.0" - pacote "9.5.12" - semver "7.3.2" - semver-intersect "1.4.0" + "@angular-devkit/core" "14.2.13" + "@angular-devkit/schematics" "14.2.13" + jsonc-parser "3.1.0" "@sentry-internal/rrdom@2.11.0": version "2.11.0" @@ -6530,11 +6110,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - "@tsconfig/node10@^1.0.7": version "1.0.8" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" @@ -6656,6 +6231,13 @@ "@types/connect" "*" "@types/node" "*" +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + "@types/bson@*": version "4.2.0" resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.2.0.tgz#a2f71e933ff54b2c3bf267b67fa221e295a33337" @@ -6694,6 +6276,14 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + "@types/connect@*": version "3.4.34" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" @@ -6936,7 +6526,7 @@ resolved "https://registry.yarnpkg.com/@types/ember__utils/-/ember__utils-3.16.2.tgz#3fa9a0666a3e8204262e2a2960289aaf01f29467" integrity sha512-tBbqewgegiKSpGZvGh3pbcoXwLCMvKVdLRE97vys75nAEz/vBzkGJm+PDz1HVaTkRukWbRhlDiTm2qFH8qRnSw== -"@types/eslint-scope@^3.7.0", "@types/eslint-scope@^3.7.3": +"@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== @@ -6975,10 +6565,20 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/estree@^0.0.50": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*": + version "4.17.43" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" + integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" "@types/express-serve-static-core@4.17.31": version "4.17.31" @@ -7008,7 +6608,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*": +"@types/express@*", "@types/express@^4.17.13": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -7151,6 +6751,13 @@ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -7283,6 +6890,11 @@ resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.3.tgz#f7bec64a9a62ddded3371e82862c0516539710e8" integrity sha512-vg0UsF1p1Qi/8iCARoie7F/Ng92zo7tQlL+sqE15GonkKVl55n/0vB6jSbrYTgDO0PSx9pKfGG1iZg9gJum3wA== +"@types/mime@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== + "@types/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -7345,6 +6957,13 @@ "@types/node" "*" form-data "^3.0.0" +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + "@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "17.0.38" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.38.tgz#f8bb07c371ccb1903f3752872c89f44006132947" @@ -7449,11 +7068,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - "@types/qs@*": version "6.9.6" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" @@ -7535,6 +7149,11 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "@types/rimraf@^2.0.2", "@types/rimraf@^2.0.3": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.4.tgz#403887b0b53c6100a6c35d2ab24f6ccc042fec46" @@ -7579,6 +7198,13 @@ "@types/mime" "^1" "@types/node" "*" +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + "@types/serve-static@*": version "1.13.9" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" @@ -7587,6 +7213,15 @@ "@types/mime" "^1" "@types/node" "*" +"@types/serve-static@^1.13.10": + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + "@types/shimmer@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.2.tgz#93eb2c243c351f3f17d5c580c7467ae5d686b65f" @@ -7614,6 +7249,13 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -7675,15 +7317,6 @@ "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack-sources@^0.1.5": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.9.tgz#da69b06eb34f6432e6658acb5a6893c55d983920" - integrity sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.6.1" - "@types/webpack@^4.41.31": version "4.41.31" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.31.tgz#c35f252a3559ddf9c85c0d8b0b42019025e581aa" @@ -7696,6 +7329,13 @@ anymatch "^3.0.0" source-map "^0.6.0" +"@types/ws@^8.5.1": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "20.2.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" @@ -7949,6 +7589,15 @@ "@vitest/utils" "0.29.2" chai "^4.3.7" +"@vitest/expect@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.4.0.tgz#d64e17838a20007fecd252397f9b96a1ca81bfb0" + integrity sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA== + dependencies: + "@vitest/spy" "1.4.0" + "@vitest/utils" "1.4.0" + chai "^4.3.10" + "@vitest/runner@0.29.2": version "0.29.2" resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.29.2.tgz#bbc7b239758de4158392bb343e48ee5a4aa507e1" @@ -7958,6 +7607,24 @@ p-limit "^4.0.0" pathe "^1.1.0" +"@vitest/runner@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.4.0.tgz#907c2d17ad5975b70882c25ab7a13b73e5a28da9" + integrity sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg== + dependencies: + "@vitest/utils" "1.4.0" + p-limit "^5.0.0" + pathe "^1.1.1" + +"@vitest/snapshot@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.4.0.tgz#2945b3fb53767a3f4f421919e93edfef2935b8bd" + integrity sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A== + dependencies: + magic-string "^0.30.5" + pathe "^1.1.1" + pretty-format "^29.7.0" + "@vitest/spy@0.29.2": version "0.29.2" resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.29.2.tgz#4210d844fabd9a68a1d2932d6a26c051bd089021" @@ -7965,6 +7632,13 @@ dependencies: tinyspy "^1.0.2" +"@vitest/spy@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.4.0.tgz#cf953c93ae54885e801cbe6b408a547ae613f26c" + integrity sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q== + dependencies: + tinyspy "^2.2.0" + "@vitest/utils@0.29.2": version "0.29.2" resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.29.2.tgz#8990794a6855de19b59da80413dc5a1e1991da4d" @@ -7976,6 +7650,16 @@ picocolors "^1.0.0" pretty-format "^27.5.1" +"@vitest/utils@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.4.0.tgz#ea6297e0d329f9ff0a106f4e1f6daf3ff6aad3f0" + integrity sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + "@vue/compiler-core@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b" @@ -8503,7 +8187,7 @@ resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== -JSONStream@^1.3.4, JSONStream@^1.3.5: +JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -8516,6 +8200,11 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -8579,6 +8268,11 @@ acorn-walk@^8.1.1, acorn-walk@^8.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn-walk@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + acorn@8.8.2, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" @@ -8599,6 +8293,11 @@ acorn@^8.10.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.11.3: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" @@ -8614,14 +8313,6 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== -adjust-sourcemap-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" - integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - adjust-sourcemap-loader@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" @@ -8630,13 +8321,6 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -agent-base@4, agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - agent-base@5: version "5.1.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" @@ -8649,21 +8333,14 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" -agentkeepalive@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" - integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== - dependencies: - humanize-ms "^1.2.1" - -agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: +agentkeepalive@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== @@ -8685,14 +8362,7 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-formats@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.0.tgz#96eaf83e38d32108b66d82a9cb0cfa24886cdfeb" - integrity sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q== - dependencies: - ajv "^8.0.0" - -ajv-formats@^2.1.1: +ajv-formats@2.1.1, ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== @@ -8711,27 +8381,17 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@6.12.4: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@8.6.2: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" - integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== +ajv@8.11.0, ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -8741,21 +8401,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.3, ajv@^6.12.4, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== +ajv@^8.10.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - amd-name-resolver@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-1.3.1.tgz#ffe71c683c6e7191fc4ae1bb3aaed15abea135d9" @@ -8781,10 +8436,10 @@ ansi-colors@3.2.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-colors@4.1.1, ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-colors@^1.0.1: version "1.1.0" @@ -8793,10 +8448,10 @@ ansi-colors@^1.0.1: dependencies: ansi-wrap "^0.1.0" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^3.2.0: version "3.2.0" @@ -8810,12 +8465,12 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-html-community@0.0.8: +ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== -ansi-html@0.0.7, ansi-html@^0.0.7: +ansi-html@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= @@ -9108,11 +8763,6 @@ aria-query@^5.3.0: dependencies: dequal "^2.0.3" -arity-n@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" - integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -9153,11 +8803,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" @@ -9196,23 +8841,11 @@ array-to-sentence@^1.1.0: resolved "https://registry.yarnpkg.com/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" integrity sha1-yASVba+lMjJJWyBalFJ1OiWNOfw= -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -9259,7 +8892,7 @@ arrify@^2.0.0, arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asap@^2.0.0, asap@~2.0.3: +asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -9274,23 +8907,11 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - assert-never@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -9445,11 +9066,6 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async-mutex@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" @@ -9509,31 +9125,17 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@9.8.6: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -autoprefixer@^9.6.1, autoprefixer@^9.6.5: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== +autoprefixer@^10.4.13, autoprefixer@^10.4.8: + version "10.4.18" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.18.tgz#fcb171a3b017be7cb5d8b7a825f5aacbf2045163" + integrity sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g== dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" + browserslist "^4.23.0" + caniuse-lite "^1.0.30001591" + fraction.js "^4.3.7" normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" available-typed-arrays@^1.0.2: version "1.0.2" @@ -9557,16 +9159,6 @@ aws-sdk@^2.765.0: uuid "3.3.2" xml2js "0.4.19" -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - axios@1.6.7, axios@^1.0.0, axios@^1.6.7: version "1.6.7" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" @@ -9790,24 +9382,13 @@ babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-loader@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== +babel-loader@8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" - loader-utils "^1.4.0" + loader-utils "^2.0.0" make-dir "^3.1.0" schema-utils "^2.6.5" @@ -9900,7 +9481,7 @@ babel-plugin-htmlbars-inline-precompile@^5.2.1, babel-plugin-htmlbars-inline-pre parse-static-imports "^1.1.0" string.prototype.matchall "^4.0.5" -babel-plugin-istanbul@^6.1.1: +babel-plugin-istanbul@6.1.1, babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -9952,16 +9533,7 @@ babel-plugin-polyfill-corejs2@^0.1.4: "@babel/helper-define-polyfill-provider" "^0.1.5" semver "^6.1.1" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz#6ed8e30981b062f8fe6aca8873a37ebcc8cc1c0f" - integrity sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.4" - semver "^6.1.1" - -babel-plugin-polyfill-corejs2@^0.3.3: +babel-plugin-polyfill-corejs2@^0.3.2, babel-plugin-polyfill-corejs2@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== @@ -9978,13 +9550,13 @@ babel-plugin-polyfill-corejs3@^0.1.3: "@babel/helper-define-polyfill-provider" "^0.1.5" core-js-compat "^3.8.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92" - integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw== +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.16.2" + "@babel/helper-define-polyfill-provider" "^0.3.2" + core-js-compat "^3.21.0" babel-plugin-polyfill-corejs3@^0.6.0: version "0.6.0" @@ -10001,14 +9573,7 @@ babel-plugin-polyfill-regenerator@^0.1.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.1.5" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz#2e9808f5027c4336c994992b48a4262580cb8d6d" - integrity sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.4" - -babel-plugin-polyfill-regenerator@^0.4.1: +babel-plugin-polyfill-regenerator@^0.4.0, babel-plugin-polyfill-regenerator@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== @@ -10449,13 +10014,6 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - before-after-hook@^2.2.0: version "2.2.3" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" @@ -10539,7 +10097,7 @@ bluebird@3.5.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== -bluebird@^3.4.6, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.4.6, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -10605,19 +10163,15 @@ body@^5.1.0: raw-body "~1.1.0" safe-json-parse "~1.0.1" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -11260,7 +10814,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.7.0, browserslist@^4.9.1: +browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.9.1: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -11270,17 +10824,7 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4 node-releases "^2.0.6" update-browserslist-db "^1.0.9" -browserslist@^4.16.1, browserslist@^4.21.5, browserslist@^4.6.4: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -browserslist@^4.21.10, browserslist@^4.22.2: +browserslist@^4.20.0, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -11363,11 +10907,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - buffer-writer@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" @@ -11403,11 +10942,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" @@ -11490,53 +11024,31 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -cacache@15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - -cacache@15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" - integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== +cacache@16.1.2: + version "16.1.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.2.tgz#a519519e9fc9e5e904575dcd3b77660cbf03f749" + integrity sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA== dependencies: - "@npmcli/move-file" "^1.0.1" + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" + fs-minipass "^2.1.0" + glob "^8.0.1" infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" + lru-cache "^7.7.1" + minipass "^3.1.6" minipass-collect "^1.0.2" minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" p-map "^4.0.0" promise-inflight "^1.0.1" rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" + ssri "^9.0.0" + tar "^6.1.11" unique-filename "^1.1.1" -cacache@^12.0.0, cacache@^12.0.2: +cacache@^12.0.2: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== @@ -11557,31 +11069,7 @@ cacache@^12.0.0, cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.4, cacache@^15.0.5, cacache@^15.0.6, cacache@^15.2.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cacache@^16.1.0: +cacache@^16.0.0, cacache@^16.1.0: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== @@ -11679,25 +11167,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -11733,17 +11202,17 @@ camelcase@5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.1.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -11760,26 +11229,11 @@ can-symlink@^1.0.0: dependencies: tmp "0.0.28" -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400: +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001400: version "1.0.30001422" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== -caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001449: - version "1.0.30001453" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001453.tgz#6d3a1501622bf424a3cee5ad9550e640b0de3de8" - integrity sha512-R9o/uySW38VViaTrOtwfbFEiBFUh7ST3uIG4OEymIG3/uKdHDO4xk/FaqfUw0d+irSUyFPy3dZszf9VvSTPnsA== - caniuse-lite@^1.0.30001406: version "1.0.30001597" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz#8be94a8c1d679de23b22fbd944232aa1321639e6" @@ -11795,10 +11249,10 @@ caniuse-lite@^1.0.30001587: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz#7ad6dba4c9bf6561aec8291976402339dc157dfb" integrity sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg== -canonical-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" - integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== +caniuse-lite@^1.0.30001591: + version "1.0.30001599" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" + integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== capture-exit@^2.0.0: version "2.0.0" @@ -11815,11 +11269,6 @@ cardinal@^1.0.0: ansicolors "~0.2.1" redeyed "~1.0.0" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -11837,6 +11286,19 @@ chai@^4.1.2: pathval "^1.1.1" type-detect "^4.0.5" +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" @@ -11936,7 +11398,14 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -"chokidar@>=2.0.0 <4.0.0", "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.2.1, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -11985,7 +11454,7 @@ chokidar@^3.6.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -12030,16 +11499,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-dependency-plugin@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== - -circular-dependency-plugin@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz#39e836079db1d3cf2f988dc48c5188a44058b600" - integrity sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ== - cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" @@ -12139,7 +11598,7 @@ cli-cursor@^4.0.0: dependencies: restore-cursor "^4.0.0" -cli-spinners@2.6.1, cli-spinners@^2.0.0, cli-spinners@^2.4.0, cli-spinners@^2.5.0: +cli-spinners@2.6.1, cli-spinners@^2.0.0, cli-spinners@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== @@ -12265,15 +11724,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - code-red@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" @@ -12309,7 +11759,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -12333,14 +11783,6 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" @@ -12354,14 +11796,6 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - color@^3.1.3: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -12378,15 +11812,10 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" -colord@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^1.2.1, colorette@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== colors@1.0.3: version "1.0.3" @@ -12424,7 +11853,7 @@ combine-source-map@^0.8.0: lodash.memoize "~3.0.3" source-map "~0.5.3" -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -12448,7 +11877,7 @@ commander@2.8.x: dependencies: graceful-readlink ">= 1.0.0" -commander@7.2.0, commander@^7.2.0: +commander@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -12463,16 +11892,21 @@ commander@^4.0.0, commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.0.0, commander@^6.2.1: +commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^8.0.0, commander@^8.3.0: +commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^9.0.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + comment-parser@^0.7.6: version "0.7.6" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.6.tgz#0e743a53c8e646c899a1323db31f6cd337b10f12" @@ -12511,13 +11945,6 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compose-function@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" - integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= - dependencies: - arity-n "^1.0.4" - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -12575,10 +12002,10 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== connect@^3.6.6, connect@^3.7.0: version "3.7.0" @@ -12728,18 +12155,13 @@ conventional-recommended-bump@7.0.1: git-semver-tags "^5.0.0" meow "^8.1.2" -convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -12804,60 +12226,32 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz#2b3d2bfc6861b96432a65f0149720adbd902040b" - integrity sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA== - dependencies: - cacache "^15.0.4" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.1" - schema-utils "^2.7.0" - serialize-javascript "^4.0.0" - webpack-sources "^1.4.3" - -copy-webpack-plugin@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz#b71d21991599f61a4ee00ba79087b8ba279bbb59" - integrity sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw== +copy-webpack-plugin@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== dependencies: - fast-glob "^3.2.5" - glob-parent "^6.0.0" - globby "^11.0.3" + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" normalize-path "^3.0.0" - p-limit "^3.1.0" - schema-utils "^3.0.0" + schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.15.0, core-js-compat@^3.16.2: - version "3.28.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.28.0.tgz#c08456d854608a7264530a2afa281fadf20ecee6" - integrity sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg== +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.36.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.1.tgz#1818695d72c99c25d621dca94e6883e190cea3c8" + integrity sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA== dependencies: - browserslist "^4.21.5" + browserslist "^4.23.0" -core-js-compat@^3.25.1, core-js-compat@^3.6.2, core-js-compat@^3.8.1: +core-js-compat@^3.25.1, core-js-compat@^3.8.1: version "3.25.5" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.5.tgz#0016e8158c904f7b059486639e6e82116eafa7d9" integrity sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA== dependencies: browserslist "^4.21.4" -core-js@3.16.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.0.tgz#1d46fb33720bc1fa7f90d20431f36a5540858986" - integrity sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g== - -core-js@3.6.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== - core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" @@ -12875,7 +12269,7 @@ core-object@^3.1.5: dependencies: chalk "^2.0.0" -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -12888,16 +12282,6 @@ cors@2.8.5, cors@^2.8.5, cors@~2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" @@ -12971,13 +12355,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -critters@0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.12.tgz#32baa87526e053a41b67e19921673ed92264e2ab" - integrity sha512-ujxKtKc/mWpjrOKeaACTaQ1aP0O31M0ZPWhfl85jZF1smPU4Ivb9va5Ox2poif4zVJQQo0LCFlzGtEZAsCAPcw== +critters@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.16.tgz#ffa2c5561a65b43c53b940036237ce72dcebfe93" + integrity sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A== dependencies: chalk "^4.1.0" - css-select "^4.1.3" + css-select "^4.2.0" parse5 "^6.0.1" parse5-htmlparser2-tree-adapter "^6.0.1" postcss "^8.3.7" @@ -13040,69 +12424,32 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-declaration-sorter@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" - integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" + postcss-selector-parser "^6.0.9" -css-loader@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.2.2.tgz#b668b3488d566dc22ebcf9425c5f254a05808c89" - integrity sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg== +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== dependencies: - camelcase "^6.0.0" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^7.3.2" + postcss-selector-parser "^6.0.9" -css-loader@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.2.0.tgz#9663d9443841de957a3cb9bcea2eda65b3377071" - integrity sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g== +css-loader@6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" + integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== dependencies: icss-utils "^5.1.0" - postcss "^8.2.15" + postcss "^8.4.7" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" semver "^7.3.5" css-loader@^5.2.0: @@ -13121,47 +12468,10 @@ css-loader@^5.2.0: schema-utils "^3.0.0" semver "^7.3.5" -css-minimizer-webpack-plugin@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz#8fadbdf10128cb40227bff275a4bb47412534245" - integrity sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ== - dependencies: - cssnano "^5.0.6" - jest-worker "^27.0.2" - p-limit "^3.0.2" - postcss "^8.3.5" - schema-utils "^3.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= - dependencies: - css "^2.0.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== css-select@^4.1.3: version "4.1.3" @@ -13174,29 +12484,16 @@ css-select@^4.1.3: domutils "^2.6.0" nth-check "^2.0.0" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== +css-select@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" css-tree@^2.0.4: version "2.2.1" @@ -13214,35 +12511,20 @@ css-tree@^2.3.1: mdn-data "2.0.30" source-map-js "^1.0.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - css-what@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== -css@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssdb@^7.0.0, cssdb@^7.1.0: + version "7.11.2" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.11.2.tgz#127a2f5b946ee653361a5af5333ea85a39df5ae5" + integrity sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A== cssesc@^3.0.0: version "3.0.0" @@ -13254,139 +12536,15 @@ cssfilter@0.0.10: resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-preset-default@^5.2.14: - version "5.2.14" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" - integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== - dependencies: - css-declaration-sorter "^6.3.1" - cssnano-utils "^3.1.0" - postcss-calc "^8.2.3" - postcss-colormin "^5.3.1" - postcss-convert-values "^5.1.3" - postcss-discard-comments "^5.1.2" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.1" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.7" - postcss-merge-rules "^5.1.4" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.1" - postcss-minify-params "^5.1.4" - postcss-minify-selectors "^5.2.1" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.1" - postcss-normalize-repeat-style "^5.1.1" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.1" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.3" - postcss-reduce-initial "^5.1.2" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" - integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== - -cssnano@4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -cssnano@^5.0.6: - version "5.1.15" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" - integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== - dependencies: - cssnano-preset-default "^5.2.14" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.0.2, csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== cssom@~0.3.6: version "0.3.8" @@ -13432,14 +12590,6 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - dag-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" @@ -13450,13 +12600,6 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - data-uri-to-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" @@ -13520,7 +12663,7 @@ debug@2, debug@2.6.9, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, de dependencies: ms "2.0.0" -debug@3.1.0, debug@~3.1.0: +debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== @@ -13534,39 +12677,20 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^3.0.1, debug@^3.1.0, debug@^3.2.5, debug@^3.2.6, debug@^3.2.7: +debug@^3.0.1, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= - decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -13630,25 +12754,13 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-eql@^4.1.2: +deep-eql@^4.1.2, deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -13664,13 +12776,12 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + execa "^5.0.0" defaults@^1.0.3: version "1.0.3" @@ -13719,19 +12830,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delay@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -13772,11 +12870,6 @@ dependency-graph@^0.11.0: resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== -dependency-graph@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.7.2.tgz#91db9de6eb72699209d88aea4c1fd5221cac1c49" - integrity sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ== - dependency-tree@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.0.tgz#1b896a0418bd7ba3e6d55c39bb664452a001579f" @@ -13952,14 +13045,6 @@ devlop@^1.0.0: dependencies: dequal "^2.0.0" -dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= - dependencies: - asap "^2.0.0" - wrappy "1" - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -13975,6 +13060,11 @@ diff-sequences@^29.4.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + diff@3.5.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -14011,25 +13101,12 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: - buffer-indexof "^1.0.0" + "@leichtgewicht/ip-codec" "^2.0.1" doctrine@1.5.0: version "1.5.0" @@ -14075,14 +13152,6 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - dom-serializer@^1.0.1: version "1.3.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" @@ -14097,11 +13166,6 @@ domain-browser@^1.1.1, domain-browser@^1.2.0: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" @@ -14135,15 +13199,14 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -domutils@^2.5.2, domutils@^2.6.0: +domutils@^2.5.2, domutils@^2.6.0, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -14226,14 +13289,6 @@ duplexify@^4.0.0, duplexify@^4.1.1: readable-stream "^3.1.1" stream-shift "^1.0.0" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -14271,11 +13326,6 @@ electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== -electron-to-chromium@^1.4.284: - version "1.4.299" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.299.tgz#faa2069cd4879a73e540e533178db5c618768d41" - integrity sha512-lQ7ijJghH6pCGbfWXr6EY+KYCMaRSjgsY925r1p/TlpSfVM1VjHTcn1gAc15VM4uwti283X6QtjPTXdpoSGiZQ== - electron-to-chromium@^1.4.535: version "1.4.543" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz#51116ffc9fba1ee93514d6a40d34676aa6d7d1c4" @@ -14990,11 +14040,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -15010,7 +14055,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11, encoding@^0.1.12, encoding@^0.1.13: +encoding@^0.1.11, encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -15047,16 +14092,7 @@ engine.io@~6.2.0: engine.io-parser "~5.0.3" ws "~8.2.3" -enhanced-resolve@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enhanced-resolve@^4.3.0, enhanced-resolve@^4.5.0: +enhanced-resolve@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== @@ -15065,6 +14101,14 @@ enhanced-resolve@^4.3.0, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^5.10.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -15081,14 +14125,6 @@ enhanced-resolve@^5.3.2: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.8.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.5, enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -15136,11 +14172,6 @@ envinfo@7.8.1: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= - err-code@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" @@ -15172,7 +14203,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.4: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.4: version "1.20.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== @@ -15213,10 +14244,10 @@ es-check@7.1.0: supports-color "^8.1.1" winston "^3.8.2" -es-module-lexer@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-module-lexer@^1.2.1: version "1.4.1" @@ -15244,24 +14275,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.60" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.60.tgz#e8060a86472842b93019c31c34865012449883f4" - integrity sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@2.0.3, es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" @@ -15284,126 +14297,242 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -esbuild-android-arm64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.8.tgz#c20e875c3c98164b1ffba9b28637bdf96f5e9e7c" - integrity sha512-AilbChndywpk7CdKkNSZ9klxl+9MboLctXd9LwLo3b0dawmOF/i/t2U5d8LM6SbT1Xw36F8yngSUPrd8yPs2RA== - -esbuild-darwin-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.8.tgz#f46e6b471ddbf62265234808a6a1aa91df18a417" - integrity sha512-b6sdiT84zV5LVaoF+UoMVGJzR/iE2vNUfUDfFQGrm4LBwM/PWXweKpuu6RD9mcyCq18cLxkP6w/LD/w9DtX3ng== - -esbuild-darwin-arm64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.8.tgz#a991157a6013facd4f2e14159b7da52626c90154" - integrity sha512-R8YuPiiJayuJJRUBG4H0VwkEKo6AvhJs2m7Tl0JaIer3u1FHHXwGhMxjJDmK+kXwTFPriSysPvcobXC/UrrZCQ== - -esbuild-freebsd-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.8.tgz#301601d2e443ad458960e359b402a17d9500be9d" - integrity sha512-zBn6urrn8FnKC+YSgDxdof9jhPCeU8kR/qaamlV4gI8R3KUaUK162WYM7UyFVAlj9N0MyD3AtB+hltzu4cysTw== - -esbuild-freebsd-arm64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.8.tgz#039a63acc12ec0892006c147ea221e55f9125a9f" - integrity sha512-pWW2slN7lGlkx0MOEBoUGwRX5UgSCLq3dy2c8RIOpiHtA87xAUpDBvZK10MykbT+aMfXc0NI2lu1X+6kI34xng== - -esbuild-linux-32@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.8.tgz#c537b67d7e694b60bfa2786581412838c6ba0284" - integrity sha512-T0I0ueeKVO/Is0CAeSEOG9s2jeNNb8jrrMwG9QBIm3UU18MRB60ERgkS2uV3fZ1vP2F8i3Z2e3Zju4lg9dhVmw== - -esbuild-linux-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.8.tgz#0092fc8a064001a777bfa0e3b425bb8be8f96e6a" - integrity sha512-Bm8SYmFtvfDCIu9sjKppFXzRXn2BVpuCinU1ChTuMtdKI/7aPpXIrkqBNOgPTOQO9AylJJc1Zw6EvtKORhn64w== - -esbuild-linux-arm64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.8.tgz#5cd3f2bb924212971482e8dbc25c4afd09b28110" - integrity sha512-X4pWZ+SL+FJ09chWFgRNO3F+YtvAQRcWh0uxKqZSWKiWodAB20flsW/OWFYLXBKiVCTeoGMvENZS/GeVac7+tQ== - -esbuild-linux-arm@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.8.tgz#ad634f96bf2975536907aeb9fdb75a3194f4ddce" - integrity sha512-4/HfcC40LJ4GPyboHA+db0jpFarTB628D1ifU+/5bunIgY+t6mHkJWyxWxAAE8wl/ZIuRYB9RJFdYpu1AXGPdg== - -esbuild-linux-mips64le@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.8.tgz#57857edfebf9bf65766dc8be1637f2179c990572" - integrity sha512-o7e0D+sqHKT31v+mwFircJFjwSKVd2nbkHEn4l9xQ1hLR+Bv8rnt3HqlblY3+sBdlrOTGSwz0ReROlKUMJyldA== - -esbuild-linux-ppc64le@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.8.tgz#fdb82a059a5b86bb10fb42091b4ebcf488b9cd46" - integrity sha512-eZSQ0ERsWkukJp2px/UWJHVNuy0lMoz/HZcRWAbB6reoaBw7S9vMzYNUnflfL3XA6WDs+dZn3ekHE4Y2uWLGig== - -esbuild-netbsd-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.8.tgz#d7879e7123d3b2c04754ece8bd061aa6866deeff" - integrity sha512-gZX4kP7gVvOrvX0ZwgHmbuHczQUwqYppxqtoyC7VNd80t5nBHOFXVhWo2Ad/Lms0E8b+wwgI/WjZFTCpUHOg9Q== - -esbuild-openbsd-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.8.tgz#88b280b6cb0a3f6adb60abf27fc506c506a35cf0" - integrity sha512-afzza308X4WmcebexbTzAgfEWt9MUkdTvwIa8xOu4CM2qGbl2LanqEl8/LUs8jh6Gqw6WsicEK52GPrS9wvkcw== - -esbuild-sunos-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.8.tgz#229ae7c7703196a58acd0f0291ad9bebda815d63" - integrity sha512-mWPZibmBbuMKD+LDN23LGcOZ2EawMYBONMXXHmbuxeT0XxCNwadbCVwUQ/2p5Dp5Kvf6mhrlIffcnWOiCBpiVw== - -esbuild-wasm@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.13.8.tgz#f34134c187ffcfc22d476e925917f70bab40f8b0" - integrity sha512-UbD+3nloiSpJWXTCInZQrqPe8Y+RLfDkY/5kEHiXsw/lmaEvibe69qTzQu16m5R9je/0bF7VYQ5jaEOq0z9lLA== - -esbuild-windows-32@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.8.tgz#892d093e32a21c0c9135e5a0ffdc380aeb70e763" - integrity sha512-QsZ1HnWIcnIEApETZWw8HlOhDSWqdZX2SylU7IzGxOYyVcX7QI06ety/aDcn437mwyO7Ph4RrbhB+2ntM8kX8A== - -esbuild-windows-64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.8.tgz#7defd8d79ae3bb7e6f53b65a7190be7daf901686" - integrity sha512-76Fb57B9eE/JmJi1QmUW0tRLQZfGo0it+JeYoCDTSlbTn7LV44ecOHIMJSSgZADUtRMWT9z0Kz186bnaB3amSg== - -esbuild-windows-arm64@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.8.tgz#e59ae004496fd8a5ab67bfc7945a2e47480d6fb9" - integrity sha512-HW6Mtq5eTudllxY2YgT62MrVcn7oq2o8TAoAvDUhyiEmRmDY8tPwAhb1vxw5/cdkbukM3KdMYtksnUhF/ekWeg== - -esbuild@0.13.8: - version "0.13.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.8.tgz#bd7cc51b881ab067789f88e17baca74724c1ec4f" - integrity sha512-A4af7G7YZLfG5OnARJRMtlpEsCkq/zHZQXewgPA864l9D6VjjbH1SuFYK/OSV6BtHwDGkdwyRrX0qQFLnMfUcw== +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" + integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-android-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" + integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" + integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-darwin-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" + integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" + integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-freebsd-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" + integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" + integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" + integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" + integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-arm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" + integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-mips64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" + integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-ppc64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" + integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-riscv64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" + integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-linux-s390x@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" + integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-netbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" + integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-openbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" + integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-sunos-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" + integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== + +esbuild-wasm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz#d59878b097d2da024a532da94acce6384de9e314" + integrity sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A== + +esbuild-wasm@^0.15.0: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.18.tgz#447f0f9555597002a289e4109937ec1f6fde45ef" + integrity sha512-Bw80Siy8XJi6UIR9f0T5SkMIkiVgvFZgHaOZAQCDcZct6Lj5kBZtpACpDhqfdTUzoDyk7pBn4xEft/T5+0tlXw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" + integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" + integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild-windows-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" + integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== + +esbuild@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" + integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== optionalDependencies: - esbuild-android-arm64 "0.13.8" - esbuild-darwin-64 "0.13.8" - esbuild-darwin-arm64 "0.13.8" - esbuild-freebsd-64 "0.13.8" - esbuild-freebsd-arm64 "0.13.8" - esbuild-linux-32 "0.13.8" - esbuild-linux-64 "0.13.8" - esbuild-linux-arm "0.13.8" - esbuild-linux-arm64 "0.13.8" - esbuild-linux-mips64le "0.13.8" - esbuild-linux-ppc64le "0.13.8" - esbuild-netbsd-64 "0.13.8" - esbuild-openbsd-64 "0.13.8" - esbuild-sunos-64 "0.13.8" - esbuild-windows-32 "0.13.8" - esbuild-windows-64 "0.13.8" - esbuild-windows-arm64 "0.13.8" + "@esbuild/linux-loong64" "0.15.5" + esbuild-android-64 "0.15.5" + esbuild-android-arm64 "0.15.5" + esbuild-darwin-64 "0.15.5" + esbuild-darwin-arm64 "0.15.5" + esbuild-freebsd-64 "0.15.5" + esbuild-freebsd-arm64 "0.15.5" + esbuild-linux-32 "0.15.5" + esbuild-linux-64 "0.15.5" + esbuild-linux-arm "0.15.5" + esbuild-linux-arm64 "0.15.5" + esbuild-linux-mips64le "0.15.5" + esbuild-linux-ppc64le "0.15.5" + esbuild-linux-riscv64 "0.15.5" + esbuild-linux-s390x "0.15.5" + esbuild-netbsd-64 "0.15.5" + esbuild-openbsd-64 "0.15.5" + esbuild-sunos-64 "0.15.5" + esbuild-windows-32 "0.15.5" + esbuild-windows-64 "0.15.5" + esbuild-windows-arm64 "0.15.5" esbuild@0.20.0: version "0.20.0" @@ -15434,6 +14563,34 @@ esbuild@0.20.0: "@esbuild/win32-ia32" "0.20.0" "@esbuild/win32-x64" "0.20.0" +esbuild@^0.15.0: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== + optionalDependencies: + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" + esbuild@^0.16.14, esbuild@^0.16.3: version "0.16.17" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" @@ -15925,7 +15082,7 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.1, estree-walker@^2.0.2: +estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -15995,18 +15152,6 @@ events@^3.0.0, events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.1.tgz#4544a35a57d7120fba4fa4c86cb4023b2c09df2f" - integrity sha512-qV5ZC0h7jYIAOhArFJgSfdyz6rALJyb270714o7ZtNnw2WSJ+eexhKtE0O8LYPRsHZHf2osHKZBxGPvm3kPkCA== - dependencies: - original "^1.0.0" - -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -16195,13 +15340,6 @@ express@4.18.2, express@^4.10.7, express@^4.16.4, express@^4.17.1, express@^4.17 utils-merge "1.0.1" vary "~1.1.2" -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -16217,7 +15355,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: +extend@^3.0.0, extend@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -16261,16 +15399,6 @@ extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fake-indexeddb@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/fake-indexeddb/-/fake-indexeddb-4.0.1.tgz#09bb2468e21d0832b2177e894765fb109edac8fb" @@ -16299,7 +15427,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.5, fast-glob@^3.2.9: +fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -16310,10 +15438,10 @@ fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-g merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.3.0, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -16321,10 +15449,10 @@ fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -16332,7 +15460,7 @@ fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -16397,14 +15525,7 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@^0.11.3, faye-websocket@^0.11.4, faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== @@ -16453,7 +15574,7 @@ fflate@^0.4.4: resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae" integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA== -figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: +figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== @@ -16479,14 +15600,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-loader@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" - integrity sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -16579,15 +15692,6 @@ find-babel-config@^1.1.0, find-babel-config@^1.2.0: json5 "^0.5.1" path-exists "^3.0.0" -find-cache-dir@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -16611,11 +15715,6 @@ find-index@^1.1.0: resolved "https://registry.yarnpkg.com/find-index/-/find-index-1.1.1.tgz#4b221f8d46b7f8bea33d8faed953f3ca7a081cbc" integrity sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw== -find-parent-dir@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" - integrity sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== - find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -16837,11 +15936,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -16860,20 +15954,16 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -16911,15 +16001,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" - integrity sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" @@ -16993,7 +16074,7 @@ fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -17014,13 +16095,6 @@ fs-merger@^3.2.1: fs-tree-diff "^2.0.1" walk-sync "^2.2.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -17035,10 +16109,10 @@ fs-minipass@^3.0.0: dependencies: minipass "^5.0.0" -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788" + integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.6: version "0.5.9" @@ -17100,11 +16174,6 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -17180,12 +16249,7 @@ generate-function@^2.3.1: dependencies: is-property "^1.0.2" -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== - -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -17203,7 +16267,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: +get-func-name@^2.0.0, get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== @@ -17299,13 +16363,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - git-hooks-list@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" @@ -17385,7 +16442,7 @@ github-slugger@^2.0.0: resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== -glob-parent@5.1.2, glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -17400,7 +16457,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^6.0.0: +glob-parent@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -17436,30 +16493,6 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@8.0.3, glob@^8.0.1, glob@^8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" @@ -17525,7 +16558,7 @@ glob@^5.0.10, glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0, glob@~7.2.0: +glob@^7.0.0, glob@^7.0.4, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0, glob@~7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -17537,6 +16570,17 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + glob@^9.2.0, glob@^9.3.2: version "9.3.5" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" @@ -17629,6 +16673,17 @@ globby@11, globby@11.1.0, globby@^11.0.1, globby@^11.0.3, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.1: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + globby@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" @@ -17652,17 +16707,6 @@ globby@^14.0.1: slash "^5.1.0" unicorn-magic "^0.1.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globrex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" @@ -17854,19 +16898,6 @@ handlebars@^4.0.1, handlebars@^4.0.4, handlebars@^4.3.1, handlebars@^4.7.3, hand optionalDependencies: uglify-js "^3.1.4" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - hard-rejection@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" @@ -17978,7 +17009,7 @@ has-yarn@^2.1.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -18235,11 +17266,6 @@ heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3, heimdalljs@^0.2.5, heim dependencies: rsvp "~3.2.1" -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - highlight.js@^10.0.0: version "10.7.1" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.1.tgz#a8ec4152db24ea630c90927d6cae2a45f8ecb955" @@ -18338,12 +17364,12 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: +hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -hosted-git-info@^3.0.2, hosted-git-info@^3.0.6: +hosted-git-info@^3.0.6: version "3.0.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== @@ -18381,21 +17407,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -18410,10 +17421,10 @@ html-encoding-sniffer@^3.0.0: dependencies: whatwg-encoding "^2.0.0" -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== html-escaper@^2.0.0: version "2.0.2" @@ -18469,7 +17480,7 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: +http-cache-semantics@3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== @@ -18515,14 +17526,6 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== - dependencies: - agent-base "4" - debug "3.1.0" - http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -18541,17 +17544,18 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.13.1, http-proxy@^1.17.0, http-proxy@^1.18.1: +http-proxy@^1.13.1, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -18560,15 +17564,6 @@ http-proxy@^1.13.1, http-proxy@^1.17.0, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - http-terminator@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/http-terminator/-/http-terminator-3.2.0.tgz#bc158d2694b733ca4fbf22a35065a81a609fb3e9" @@ -18584,15 +17579,15 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== +https-proxy-agent@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" -https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: +https-proxy-agent@^2.2.1: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -18608,6 +17603,14 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" @@ -18649,13 +17652,6 @@ iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -18681,20 +17677,13 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore-walk@3.0.3, ignore-walk@^3.0.1, ignore-walk@^3.0.3: +ignore-walk@3.0.3, ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" -ignore-walk@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" - integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== - dependencies: - minimatch "^3.0.4" - ignore-walk@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" @@ -18734,21 +17723,6 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -18757,13 +17731,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-in-the-middle@1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz#2a266676e3495e72c04bbaa5ec14756ba168391b" @@ -18807,14 +17774,6 @@ import-local@3.1.0, import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - import-meta-resolve@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz#94a6aabc623874fbc2f3525ec1300db71c6cbc11" @@ -18875,16 +17834,16 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.6.tgz#f1c46a2a93a253e7b3905115e74d527cd23061a1" - integrity sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg== - ini@2.0.0, ini@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.0.tgz#2f6de95006923aa75feed8894f5686165adc08f1" + integrity sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw== + ini@^1.3.2, ini@^1.3.4, ini@^1.3.8, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -18903,7 +17862,7 @@ init-package-json@5.0.0: validate-npm-package-license "^3.0.4" validate-npm-package-name "^5.0.0" -injection-js@^2.2.1, injection-js@^2.4.0: +injection-js@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== @@ -18928,29 +17887,10 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" -inquirer@7.3.3, inquirer@^7.0.1: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -inquirer@8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.2.tgz#65b204d2cd7fb63400edd925dfe428bafd422e3d" - integrity sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q== +inquirer@8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" + integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -18960,12 +17900,13 @@ inquirer@8.1.2: figures "^3.0.0" lodash "^4.17.21" mute-stream "0.0.8" - ora "^5.3.0" + ora "^5.4.1" run-async "^2.4.0" - rxjs "^7.2.0" + rxjs "^7.5.5" string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" + wrap-ansi "^7.0.0" inquirer@^6: version "6.5.2" @@ -18986,6 +17927,25 @@ inquirer@^6: strip-ansi "^5.1.0" through "^2.3.6" +inquirer@^7.0.1: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + inquirer@^8.2.4: version "8.2.5" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" @@ -19007,14 +17967,6 @@ inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^7.0.0" -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -19044,35 +17996,20 @@ invariant@^2.2.1, invariant@^2.2.2: dependencies: loose-envify "^1.0.0" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@1.1.5, ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: +ipaddr.js@^2.0.1: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -19167,18 +18104,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.5.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" @@ -19237,11 +18162,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -19405,25 +18325,6 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -19439,6 +18340,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + is-plain-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" @@ -19466,7 +18372,7 @@ is-property@^1.0.2: resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== -is-reference@1.2.1, is-reference@^1.2.1: +is-reference@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== @@ -19480,7 +18386,7 @@ is-reference@^3.0.0, is-reference@^3.0.1: dependencies: "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.1.4: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -19498,11 +18404,6 @@ is-relative-path@^1.0.2: resolved "https://registry.yarnpkg.com/is-relative-path/-/is-relative-path-1.0.2.tgz#091b46a0d67c1ed0fe85f1f8cfdde006bb251d46" integrity sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY= -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-retry-allowed@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" @@ -19554,13 +18455,6 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -19593,7 +18487,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -19640,7 +18534,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.0, is-wsl@^2.1.1, is-wsl@^2.2.0: +is-wsl@^2.1.0, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -19709,26 +18603,11 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" @@ -20312,25 +19191,7 @@ jest-watcher@^27.5.1: jest-util "^27.5.1" string-length "^4.0.1" -jest-worker@26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" - integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^26.3.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.4.5, jest-worker@^27.5.1: +jest-worker@^27.0.6, jest-worker@^27.4.5, jest-worker@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== @@ -20393,6 +19254,11 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= +js-tokens@^8.0.2: + version "8.0.3" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-8.0.3.tgz#1c407ec905643603b38b6be6977300406ec48775" + integrity sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw== + js-yaml@3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -20424,11 +19290,6 @@ js-yaml@4.1.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - jsdoctypeparser@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz#8c97e2fb69315eb274b0f01377eaa5c940bd7b26" @@ -20545,7 +19406,7 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -20570,11 +19431,6 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -20587,16 +19443,11 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - json5@2.x, json5@^2.1.2, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" @@ -20619,15 +19470,10 @@ json5@^2.2.2, json5@^2.2.3: resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.0.tgz#7c7fc988ee1486d35734faaaa866fadb00fa91ee" - integrity sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA== - -jsonc-parser@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== +jsonc-parser@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d" + integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg== jsonc-parser@3.2.0, jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: version "3.2.0" @@ -20667,16 +19513,6 @@ jsonparse@^1.2.0, jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.2.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" @@ -20906,11 +19742,6 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -20945,12 +19776,7 @@ kleur@^4.0.3, kleur@^4.1.4, kleur@^4.1.5: resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -klona@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - -klona@^2.0.4: +klona@^2.0.4, klona@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== @@ -21068,60 +19894,34 @@ lerna@7.1.1: yargs "16.2.0" yargs-parser "20.2.4" -less-loader@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.0.1.tgz#c05aaba68d00400820275f21c2ad87cb9fa9923f" - integrity sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA== +less-loader@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-11.0.0.tgz#a31b2bc5cdfb62f1c7de9b2d01cd944c22b1a024" + integrity sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw== dependencies: klona "^2.0.4" -less-loader@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-6.2.0.tgz#8b26f621c155b342eefc24f5bd6e9dc40c42a719" - integrity sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg== - dependencies: - clone "^2.1.2" - less "^3.11.3" - loader-utils "^2.0.0" - schema-utils "^2.7.0" - -less@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz#15bf253a9939791dc690888c3ff424f3e6c7edba" - integrity sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw== +less@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" + integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^2.5.2" - source-map "~0.6.0" - -less@^3.10.3, less@^3.11.3: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" + tslib "^2.3.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - native-request "^1.0.5" + needle "^3.1.0" source-map "~0.6.0" -less@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" - integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA== +less@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" @@ -21145,13 +19945,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -21190,26 +19983,12 @@ libnpmpublish@7.3.0: sigstore "^1.4.0" ssri "^10.0.1" -license-webpack-plugin@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz#c00f70d5725ba0408de208acb9e66612cc2eceda" - integrity sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w== - dependencies: - "@types/webpack-sources" "^0.1.5" - webpack-sources "^1.2.0" - -license-webpack-plugin@2.3.20: - version "2.3.20" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz#f51fb674ca31519dbedbe1c7aabc036e5a7f2858" - integrity sha512-AHVueg9clOKACSHkhmEI+PCC9x8+qsQVuKECZD3ETxETK5h/PCv5/MUzyG1gm8OMcip/s1tcNxqo9Qb7WhjGsg== +license-webpack-plugin@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz#1e18442ed20b754b82f1adeff42249b81d11aec6" + integrity sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw== dependencies: - "@types/webpack-sources" "^0.1.5" - webpack-sources "^1.2.0" - -lilconfig@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + webpack-sources "^3.0.0" lilconfig@^3.1.1: version "3.1.1" @@ -21314,16 +20093,21 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== +loader-utils@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" - emojis-list "^2.0.0" + emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@2.0.0, loader-utils@^2.0.0: +loader-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== @@ -21332,15 +20116,6 @@ loader-utils@2.0.0, loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - loader.js@~4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.7.0.tgz#a1a52902001c83631efde9688b8ab3799325ef1f" @@ -21351,6 +20126,14 @@ local-pkg@^0.4.2: resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" + locate-character@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" @@ -21541,7 +20324,7 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -21601,7 +20384,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash.uniq@^4.2.0, lodash.uniq@^4.5.0: +lodash.uniq@^4.2.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -21623,7 +20406,7 @@ log-symbols@2.2.0, log-symbols@^2.1.0, log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0, log-symbols@^4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -21727,6 +20510,13 @@ loupe@^2.3.1, loupe@^2.3.6: dependencies: get-func-name "^2.0.0" +loupe@^2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -21831,12 +20621,12 @@ madge@4.0.2: typescript "^3.9.5" walkdir "^0.4.1" -magic-string@0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== +magic-string@0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" + integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" magic-string@0.27.0, magic-string@^0.27.0: version "0.27.0" @@ -21852,14 +20642,14 @@ magic-string@0.30.7: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" -magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.7: +magic-string@^0.25.1, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.26.7: +magic-string@^0.26.0, magic-string@^0.26.7: version "0.26.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== @@ -21923,7 +20713,7 @@ make-error@1.x, make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3: +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: version "10.2.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== @@ -21966,45 +20756,6 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: socks-proxy-agent "^7.0.0" ssri "^10.0.0" -make-fetch-happen@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" - integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== - dependencies: - agentkeepalive "^3.4.1" - cacache "^12.0.0" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - -make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -22012,13 +20763,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -22279,11 +21023,6 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: dependencies: "@types/mdast" "^3.0.0" -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - mdn-data@2.0.28: version "2.0.28" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" @@ -22294,11 +21033,6 @@ mdn-data@2.0.30: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -22309,20 +21043,12 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" - integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.1.0" - -memfs@^3.2.2: - version "3.4.13" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" - integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - fs-monkey "^1.0.3" + fs-monkey "^1.0.4" memory-fs@^0.4.1: version "0.4.1" @@ -22395,13 +21121,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -22770,7 +21489,7 @@ mime-db@1.52.0, mime-db@1.x.x, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -22782,7 +21501,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.4.4, mime@^2.5.2: +mime@^2.5.2: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -22807,11 +21526,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - mimic-fn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" @@ -22832,24 +21546,7 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz#a0e6bfcad22a9c73f6c882a3c7557a98e2d3d27d" - integrity sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -mini-css-extract-plugin@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.2.tgz#b3508191ea479388a4715018c99dd3e6dd40d2d2" - integrity sha512-ZmqShkn79D36uerdED+9qdo1ZYG8C1YsWvXu0UMJxurZnSdgz7gQKO2EGv8T55MhDqG3DYmGtizZNpM/UbTlcA== - dependencies: - schema-utils "^3.1.0" - -mini-css-extract-plugin@^2.5.2: +mini-css-extract-plugin@2.6.1, mini-css-extract-plugin@^2.5.2: version "2.6.1" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz#9a1251d15f2035c342d99a468ab9da7a0451b71e" integrity sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg== @@ -22887,7 +21584,7 @@ minimatch@3.0.5: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@5.1.0, minimatch@^5.0.1, minimatch@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== @@ -22958,17 +21655,6 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - minipass-fetch@^2.0.3: version "2.1.2" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" @@ -23006,7 +21692,7 @@ minipass-json-stream@^1.0.1: jsonparse "^1.3.1" minipass "^3.0.0" -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: +minipass-pipeline@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== @@ -23020,7 +21706,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.2.0, minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0: +minipass@^2.2.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -23028,18 +21714,13 @@ minipass@^2.2.0, minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.3.tgz#00bfbaf1e16e35e804f4aa31a7c1f6b8d9f0ee72" - integrity sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw== - minipass@^4.2.4: version "4.2.7" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.7.tgz#14c6fc0dcab54d9c4dd64b2b7032fef04efec218" @@ -23060,14 +21741,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -23121,14 +21795,14 @@ mkdirp@0.5.4: dependencies: minimist "^1.2.5" -mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.1: +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" -mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -23153,6 +21827,16 @@ mlly@^1.1.0, mlly@^1.1.1: pkg-types "^1.0.2" ufo "^1.1.1" +mlly@^1.2.0, mlly@^1.4.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f" + integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.0.3" + ufo "^1.3.2" + mocha@^6.1.4, mocha@^6.2.0: version "6.2.3" resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" @@ -23396,17 +22080,12 @@ multer@1.4.4-lts.1: type-is "^1.6.4" xtend "^4.0.0" -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: - dns-packet "^1.3.1" + dns-packet "^5.2.2" thunky "^1.0.2" multimatch@5.0.0: @@ -23485,11 +22164,6 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.23: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - nanoid@^3.3.4, nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -23534,11 +22208,6 @@ napi-build-utils@^1.0.1: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -native-request@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" - integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -23567,7 +22236,7 @@ needle@^3.1.0: iconv-lite "^0.6.3" sax "^1.2.4" -negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -23585,11 +22254,6 @@ new-find-package-json@^1.1.0: debug "^4.3.2" tslib "^2.3.0" -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - next@13.2.0: version "13.2.0" resolved "https://registry.yarnpkg.com/next/-/next-13.2.0.tgz#100b2d1dca120a3460c767ccdad80fc8e2463e31" @@ -23615,70 +22279,37 @@ next@13.2.0: "@next/swc-win32-ia32-msvc" "13.2.0" "@next/swc-win32-x64-msvc" "13.2.0" -ng-packagr@^10.1.0: - version "10.1.2" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-10.1.2.tgz#7c869ec5bea92ff3ab65392913ad4e8af749799a" - integrity sha512-pm61gu6jPkohL8tFWk+2DwUtb3rs5GpND1ZjKUYv5WUJPUQmBfG5WvEO/CDVQpSDWhNWWLTt17NIQ+RS3hNUHg== +ng-packagr@^14.2.2: + version "14.3.0" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-14.3.0.tgz#517a7c343aa125a7d631097fede16941949fb503" + integrity sha512-GNIiB5BsYPYF31lV/u5bDCLYc4eiOmZ5ndvWRQ8JjdkBXaHaiZ2x0JLJrF1/hkjxUhakYmx2IHjVyC746cpN5w== dependencies: - "@rollup/plugin-commonjs" "^15.0.0" - "@rollup/plugin-json" "^4.0.0" - "@rollup/plugin-node-resolve" "^9.0.0" - ajv "^6.12.3" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^13.1.3" + ajv "^8.10.0" ansi-colors "^4.1.1" - autoprefixer "^9.6.5" - browserslist "^4.7.0" - chokidar "^3.2.1" - commander "^6.0.0" - cssnano-preset-default "^4.0.7" - fs-extra "^9.0.0" - glob "^7.1.2" - injection-js "^2.2.1" - less "^3.10.3" - node-sass-tilde-importer "^1.0.0" - postcss "^7.0.29" - postcss-url "^8.0.0" - read-pkg-up "^5.0.0" - rimraf "^3.0.0" - rollup "^2.8.0" - rollup-plugin-sourcemaps "^0.6.0" - rxjs "^6.5.0" - sass "^1.23.0" - stylus "^0.54.7" - terser "^5.0.0" - -ng-packagr@^12.1.1: - version "12.2.7" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-12.2.7.tgz#620684f79c16e46800d60918a6dca4745112c716" - integrity sha512-ccNeboOdLGOmqk3hvN/4tUO+e7VXZM5f/uj4SYVRtaLT9DuOR63Ln4kn4NOhlxkcmVgqJM8Iwd3M1hSn215nSg== - dependencies: - "@rollup/plugin-commonjs" "^20.0.0" - "@rollup/plugin-json" "^4.1.0" - "@rollup/plugin-node-resolve" "^13.0.0" - ajv "^8.0.0" - ansi-colors "^4.1.1" - browserslist "^4.16.1" - cacache "^15.0.6" - chokidar "^3.5.1" - commander "^8.0.0" + browserslist "^4.20.0" + cacache "^16.0.0" + chokidar "^3.5.3" + commander "^9.0.0" dependency-graph "^0.11.0" - esbuild-wasm "0.13.8" - find-cache-dir "^3.3.1" - glob "^7.1.6" + esbuild-wasm "^0.15.0" + find-cache-dir "^3.3.2" + glob "^8.0.0" injection-js "^2.4.0" jsonc-parser "^3.0.0" - less "^4.1.0" - node-sass-tilde-importer "^1.0.2" + less "^4.1.2" ora "^5.1.0" - postcss "^8.2.4" - postcss-preset-env "^6.7.0" - postcss-url "^10.1.1" - rollup "^2.45.1" + postcss "^8.4.8" + postcss-preset-env "^7.4.2" + postcss-url "^10.1.3" + rollup "^2.70.0" rollup-plugin-sourcemaps "^0.6.3" - rxjs "^6.5.0" - sass "^1.32.8" - stylus "^0.54.8" + rxjs "^7.5.5" + sass "^1.49.9" + stylus "^0.59.0" optionalDependencies: - esbuild "0.13.8" + esbuild "^0.15.0" nice-napi@^1.0.2: version "1.0.2" @@ -23777,15 +22408,6 @@ node-environment-flags@1.0.5: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch-npm@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" - integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" - node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -23806,6 +22428,11 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + node-gyp-build@^4.2.2: version "4.6.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" @@ -23816,22 +22443,6 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== -node-gyp@^8.2.0: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-gyp@^9.0.0: version "9.3.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319" @@ -23931,18 +22542,6 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - -node-sass-tilde-importer@^1.0.0, node-sass-tilde-importer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" - integrity sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg== - dependencies: - find-parent-dir "^0.3.0" - node-source-walk@^4.0.0, node-source-walk@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.2.0.tgz#c2efe731ea8ba9c03c562aa0a9d984e54f27bc2c" @@ -23978,13 +22577,6 @@ nopt@3.x, nopt@^3.0.6: dependencies: abbrev "1" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - nopt@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" @@ -23999,7 +22591,7 @@ nopt@~1.0.10: dependencies: abbrev "1" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -24029,6 +22621,16 @@ normalize-package-data@^3.0.3: semver "^7.3.4" validate-npm-package-license "^3.0.1" +normalize-package-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== + dependencies: + hosted-git-info "^5.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-package-data@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" @@ -24056,16 +22658,6 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - normalize-url@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" @@ -24075,22 +22667,12 @@ normalize-url@2.0.1: query-string "^5.0.1" sort-keys "^2.0.0" -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - normalize-url@^4.1.0: version "4.5.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-bundled@^1.0.1, npm-bundled@^1.1.1: +npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== @@ -24104,6 +22686,13 @@ npm-bundled@^1.1.2: dependencies: npm-normalize-package-bin "^1.0.1" +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + npm-bundled@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" @@ -24111,10 +22700,10 @@ npm-bundled@^3.0.0: dependencies: npm-normalize-package-bin "^3.0.0" -npm-install-checks@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" - integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== +npm-install-checks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" + integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== dependencies: semver "^7.1.1" @@ -24125,25 +22714,21 @@ npm-install-checks@^6.0.0: dependencies: semver "^7.1.1" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + npm-normalize-package-bin@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== -npm-package-arg@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" - integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== - dependencies: - hosted-git-info "^3.0.2" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - npm-package-arg@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" @@ -24153,14 +22738,15 @@ npm-package-arg@8.1.1: semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-package-arg@8.1.5, npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.2: - version "8.1.5" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" - integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== +npm-package-arg@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.0.tgz#a60e9f1e7c03e4e3e4e994ea87fff8b90b522987" + integrity sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw== dependencies: - hosted-git-info "^4.0.1" - semver "^7.3.4" - validate-npm-package-name "^3.0.0" + hosted-git-info "^5.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" npm-package-arg@^10.0.0, npm-package-arg@^10.1.0: version "10.1.0" @@ -24172,17 +22758,7 @@ npm-package-arg@^10.0.0, npm-package-arg@^10.1.0: semver "^7.3.5" validate-npm-package-name "^5.0.0" -npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== - dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^9.1.0: +npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: version "9.1.2" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== @@ -24202,15 +22778,6 @@ npm-packlist@5.1.1: npm-bundled "^1.1.2" npm-normalize-package-bin "^1.0.1" -npm-packlist@^1.1.12: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - npm-packlist@^2.1.4: version "2.1.5" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.5.tgz#43ef5bbb9f59b7c0ef91e0905f1dd707b4cfb33c" @@ -24231,15 +22798,15 @@ npm-packlist@^2.1.5: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-packlist@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" - integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== +npm-packlist@^5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== dependencies: - glob "^7.1.6" - ignore-walk "^4.0.1" - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" npm-packlist@^7.0.0: version "7.0.4" @@ -24248,33 +22815,25 @@ npm-packlist@^7.0.0: dependencies: ignore-walk "^6.0.0" -npm-pick-manifest@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" - integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== - dependencies: - npm-install-checks "^4.0.0" - npm-package-arg "^8.0.0" - semver "^7.0.0" - -npm-pick-manifest@6.1.1, npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" - integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== +npm-pick-manifest@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz#76dda30a7cd6b99be822217a935c2f5eacdaca4c" + integrity sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg== dependencies: - npm-install-checks "^4.0.0" + npm-install-checks "^5.0.0" npm-normalize-package-bin "^1.0.1" - npm-package-arg "^8.1.2" - semver "^7.3.4" + npm-package-arg "^9.0.0" + semver "^7.3.5" -npm-pick-manifest@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" - integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== +npm-pick-manifest@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^2.0.0" + npm-package-arg "^9.0.0" + semver "^7.3.5" npm-pick-manifest@^8.0.0: version "8.0.1" @@ -24286,17 +22845,18 @@ npm-pick-manifest@^8.0.0: npm-package-arg "^10.0.0" semver "^7.3.5" -npm-registry-fetch@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" - integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== +npm-registry-fetch@^13.0.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== dependencies: - make-fetch-happen "^9.0.1" - minipass "^3.1.3" - minipass-fetch "^1.3.0" + make-fetch-happen "^10.0.6" + minipass "^3.1.6" + minipass-fetch "^2.0.3" minipass-json-stream "^1.0.1" - minizlib "^2.0.0" - npm-package-arg "^8.0.0" + minizlib "^2.1.2" + npm-package-arg "^9.0.1" + proc-log "^2.0.0" npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3, npm-registry-fetch@^14.0.5: version "14.0.5" @@ -24311,19 +22871,6 @@ npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3, npm-registry-fetch@^14.0 npm-package-arg "^10.0.0" proc-log "^3.0.0" -npm-registry-fetch@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" - integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== - dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.2.0" - npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -24377,13 +22924,6 @@ npmlog@^6.0.0, npmlog@^6.0.2: gauge "^4.0.3" set-blocking "^2.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - nth-check@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -24391,16 +22931,18 @@ nth-check@^2.0.0: dependencies: boolbase "^1.0.0" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + null-check@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -24457,11 +22999,6 @@ nx@16.4.1, "nx@>=16.1.3 < 17": "@nx/nx-win32-arm64-msvc" "16.4.1" "@nx/nx-win32-x64-msvc" "16.4.1" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - object-assign@4.1.1, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -24544,7 +23081,7 @@ object.fromentries@^2.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== @@ -24568,7 +23105,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.6: +object.values@^1.1.1, object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -24636,27 +23173,19 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.2.0.tgz#212959bd7b0ce2e8e3676adc76e3cf2f0a2498b4" - integrity sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@8.2.1: - version "8.2.1" - resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" - integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== +open@8.4.0, open@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" is-wsl "^2.2.0" -open@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -24671,13 +23200,6 @@ opentelemetry-instrumentation-fetch-node@1.1.0: "@opentelemetry/instrumentation" "^0.43.0" "@opentelemetry/semantic-conventions" "^1.17.0" -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - optional-require@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.0.3.tgz#275b8e9df1dc6a17ad155369c2422a440f89cb07" @@ -24714,21 +23236,7 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" - integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw== - dependencies: - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.4.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ora@5.4.1, ora@^5.1.0, ora@^5.3.0, ora@^5.4.0, ora@^5.4.1: +ora@5.4.1, ora@^5.1.0, ora@^5.4.0, ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -24770,13 +23278,6 @@ ora@^7.0.1: string-width "^6.1.0" strip-ansi "^7.1.0" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -24792,7 +23293,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.3, osenv@^0.1.5: +osenv@^0.1.3: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -24810,11 +23311,6 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== - p-defer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" @@ -24856,7 +23352,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.1, p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -24870,6 +23366,13 @@ p-limit@^4.0.0: dependencies: yocto-queue "^1.0.0" +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -24917,11 +23420,6 @@ p-map@4.0.0, p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - p-pipe@3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" @@ -24948,12 +23446,13 @@ p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - retry "^0.12.0" + "@types/retry" "0.12.0" + retry "^0.13.1" p-timeout@^2.0.1: version "2.0.1" @@ -25023,66 +23522,32 @@ packet-reader@1.0.0: resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== -pacote@12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.2.tgz#14ae30a81fe62ec4fc18c071150e6763e932527c" - integrity sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg== +pacote@13.6.2: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== dependencies: - "@npmcli/git" "^2.1.0" - "@npmcli/installed-package-contents" "^1.0.6" - "@npmcli/promise-spawn" "^1.2.0" - "@npmcli/run-script" "^2.0.0" - cacache "^15.0.5" + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" infer-owner "^1.0.4" - minipass "^3.1.3" - mkdirp "^1.0.3" - npm-package-arg "^8.0.1" - npm-packlist "^3.0.0" - npm-pick-manifest "^6.0.0" - npm-registry-fetch "^11.0.0" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^5.1.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" promise-retry "^2.0.1" - read-package-json-fast "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.1.0" - -pacote@9.5.12: - version "9.5.12" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" - integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== - dependencies: - bluebird "^3.5.3" - cacache "^12.0.2" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-normalize-package-bin "^1.0.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^3.0.0" - npm-registry-fetch "^4.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" + ssri "^9.0.0" + tar "^6.1.11" pacote@^15.2.0: version "15.2.0" @@ -25236,7 +23701,7 @@ parse5-html-rewriting-stream@6.0.1: parse5 "^6.0.1" parse5-sax-parser "^6.0.1" -parse5-htmlparser2-tree-adapter@6.0.1, parse5-htmlparser2-tree-adapter@^6.0.1: +parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== @@ -25322,11 +23787,6 @@ path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -25448,6 +23908,11 @@ pathe@^1.1.0: resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== +pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + pathval@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" @@ -25481,11 +23946,6 @@ perf-regexes@^1.0.1: resolved "https://registry.yarnpkg.com/perf-regexes/-/perf-regexes-1.0.1.tgz#6da1d62f5a94bf9353a0451bccacf69068b75d0b" integrity sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - periscopic@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" @@ -25564,11 +24024,6 @@ pgpass@1.x: dependencies: split2 "^4.1.0" -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -25621,10 +24076,10 @@ pirates@^4.0.1, pirates@^4.0.4: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== -piscina@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.1.0.tgz#2333636865b6cb69c5a370bbc499a98cabcf3e04" - integrity sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg== +piscina@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.2.0.tgz#f5a1dde0c05567775690cccefe59d9223924d154" + integrity sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA== dependencies: eventemitter-asyncresource "^1.0.0" hdr-histogram-js "^2.0.1" @@ -25662,6 +24117,15 @@ pkg-types@^1.0.2: mlly "^1.1.1" pathe "^1.1.0" +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" @@ -25705,14 +24169,7 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pnp-webpack-plugin@1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.26, portfinder@^1.0.29: +portfinder@^1.0.29: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== @@ -25726,451 +24183,161 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^6.0.10" -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + postcss-value-parser "^4.2.0" -postcss-calc@^8.2.3: - version "8.2.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== dependencies: - postcss-selector-parser "^6.0.9" postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" + postcss-value-parser "^4.2.0" -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== +postcss-custom-properties@^12.1.10, postcss-custom-properties@^12.1.8: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss-selector-parser "^6.0.4" -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-selector-parser "^6.0.10" -postcss-colormin@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" - integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - colord "^2.9.1" + "@csstools/postcss-progressive-custom-properties" "^1.1.0" postcss-value-parser "^4.2.0" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" - integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== dependencies: - browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" + postcss-selector-parser "^6.0.9" -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" + postcss-selector-parser "^6.0.9" -postcss-dir-pseudo-class@^5.0.0: +postcss-font-variant@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-comments@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" - integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" - integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" - integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" - integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== -postcss-import@12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" + postcss-value-parser "^4.2.0" -postcss-import@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" - integrity sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g== +postcss-import@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.0.0.tgz#0b66c25fdd9c0d19576e63c803cf39e4bad08822" + integrity sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== - dependencies: - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-loader@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.1.1.tgz#58dd0a3accd9bc87cc52eff75244db578d11301a" - integrity sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - semver "^7.3.5" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-longhand@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" - integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.1.1" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-merge-rules@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" - integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-font-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" - integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" - integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== -postcss-minify-params@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" - integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== dependencies: - browserslist "^4.21.4" - cssnano-utils "^3.1.0" + "@csstools/postcss-progressive-custom-properties" "^1.1.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== +postcss-loader@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.0.1.tgz#4c883cc0a1b2bfe2074377b7a74c1cd805684395" + integrity sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ== dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.7" -postcss-minify-selectors@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" - integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== - dependencies: - postcss-selector-parser "^6.0.5" +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - postcss-modules-local-by-default@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" @@ -26180,14 +24347,6 @@ postcss-modules-local-by-default@^4.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-modules-scope@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" @@ -26195,14 +24354,6 @@ postcss-modules-scope@^3.0.0: dependencies: postcss-selector-parser "^6.0.4" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - postcss-modules-values@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" @@ -26210,367 +24361,176 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== +postcss-nesting@^10.1.10, postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== dependencies: - postcss "^7.0.2" + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-charset@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" - integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-display-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" - integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" - integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" - integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" - integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" - integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" - integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== - dependencies: - browserslist "^4.21.4" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== -postcss-normalize-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" - integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== dependencies: - normalize-url "^6.0.1" postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== -postcss-normalize-whitespace@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" - integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" - integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== - dependencies: - cssnano-utils "^3.1.0" +postcss-preset-env@7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz#5bd3ad53b2ef02edd41645d1ffee1ff8a49f24e5" + integrity sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA== + dependencies: + "@csstools/postcss-cascade-layers" "^1.0.5" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.8" + browserslist "^4.21.3" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.0.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.8" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.1.10" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" postcss-value-parser "^4.2.0" -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.1" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz#26563d2e9395d626a45a836450844540694bfcef" - integrity sha512-rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-initial@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" - integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== - dependencies: +postcss-preset-env@^7.4.2: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" browserslist "^4.21.4" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-transforms@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" - integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== - dependencies: + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" postcss-value-parser "^4.2.0" -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== dependencies: - postcss "^7.0.2" + postcss-selector-parser "^6.0.10" -postcss-selector-matches@^4.0.0: +postcss-replace-overflow-wrap@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + postcss-selector-parser "^6.0.10" -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== +postcss-selector-parser@^6.0.10: + version "6.0.16" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + cssesc "^3.0.0" + util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -26578,7 +24538,7 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.9: version "6.0.11" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== @@ -26586,41 +24546,7 @@ postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-svgo@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" - integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^2.7.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-unique-selectors@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" - integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-url@^10.1.1: +postcss-url@^10.1.3: version "10.1.3" resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e" integrity sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw== @@ -26628,35 +24554,19 @@ postcss-url@^10.1.1: make-dir "~3.1.0" mime "~2.5.2" minimatch "~3.0.4" - xxhashjs "~0.2.2" - -postcss-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" - integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== - dependencies: - mime "^2.3.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^7.0.2" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + xxhashjs "~0.2.2" postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: +postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== @@ -26665,33 +24575,6 @@ postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: indexes-of "^1.0.1" uniq "^1.0.1" -postcss@7.0.21: - version "7.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" - integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@7.0.32: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@8.3.6: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map-js "^0.6.2" - postcss@8.4.14: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" @@ -26701,15 +24584,16 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== +postcss@8.4.31, postcss@^8.4.27: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" -postcss@^8.1.10, postcss@^8.1.7, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.20, postcss@^8.4.21: +postcss@^8.1.10, postcss@^8.1.7, postcss@^8.2.15, postcss@^8.3.7, postcss@^8.4.20, postcss@^8.4.21: version "8.4.24" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== @@ -26718,14 +24602,14 @@ postcss@^8.1.10, postcss@^8.1.7, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5 picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.27: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== +postcss@^8.2.14, postcss@^8.4.35, postcss@^8.4.7, postcss@^8.4.8: + version "8.4.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.36.tgz#dba513c3c3733c44e0288a712894f8910bbaabc6" + integrity sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.1.0" postcss@^8.4.32: version "8.4.32" @@ -26847,11 +24731,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -26938,7 +24817,7 @@ probe-image-size@^7.2.3: needle "^2.5.2" stream-parser "~0.3.1" -proc-log@^2.0.1: +proc-log@^2.0.0, proc-log@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== @@ -26987,14 +24866,6 @@ promise-map-series@^0.3.0: resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.3.0.tgz#41873ca3652bb7a042b387d538552da9b576f8a1" integrity sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA== -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - promise-retry@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" @@ -27090,13 +24961,6 @@ protocols@^2.0.0, protocols@^2.0.1: resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== - dependencies: - genfun "^5.0.0" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -27131,7 +24995,7 @@ ps-tree@=1.2.0: dependencies: event-stream "=3.3.4" -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -27200,7 +25064,7 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -q@^1.1.2, q@~1.5.0: +q@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -27217,12 +25081,7 @@ qs@6.11.0, qs@^6.4.0: dependencies: side-channel "^1.0.4" -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^4.1.0, query-string@^4.2.2: +query-string@^4.2.2: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= @@ -27249,11 +25108,6 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -27345,14 +25199,6 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -raw-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933" - integrity sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -27477,7 +25323,7 @@ read-cmd-shim@4.0.0: resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== -read-package-json-fast@^2.0.1: +read-package-json-fast@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -27503,24 +25349,15 @@ read-package-json@6.0.4, read-package-json@^6.0.0: normalize-package-data "^5.0.0" npm-normalize-package-bin "^3.0.0" -read-package-json@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" - integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - -read-package-tree@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" - integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== +read-package-json@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== dependencies: - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - util-promisify "^2.1.0" + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^2.0.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -27546,14 +25383,6 @@ read-pkg-up@^3.0.0: find-up "^2.0.0" read-pkg "^3.0.0" -read-pkg-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" - integrity sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg== - dependencies: - find-up "^3.0.0" - read-pkg "^5.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -27590,7 +25419,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0, read-pkg@^5.2.0: +read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -27648,16 +25477,6 @@ readable-stream@~1.0.2: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -27774,11 +25593,6 @@ regenerate@^1.2.1, regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - regenerator-runtime@0.13.9: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" @@ -27810,13 +25624,6 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -27835,7 +25642,7 @@ regexp-clone@1.0.0, regexp-clone@^1.0.0: resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -27870,10 +25677,10 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regexpu-core@^5.2.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb" - integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" @@ -28074,32 +25881,6 @@ replace-in-file@^4.0.0: glob "^7.1.6" yargs "^15.0.2" -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-at@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/require-at/-/require-at-1.0.6.tgz#9eb7e3c5e00727f5a4744070a7f560d4de4f6e6a" @@ -28167,13 +25948,6 @@ reselect@^4.0.0: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -28199,11 +25973,6 @@ resolve-from@5.0.0, resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -28258,31 +26027,15 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve-url-loader@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" - integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== - dependencies: - adjust-sourcemap-loader "3.0.0" - camelcase "5.3.1" - compose-function "3.0.3" - convert-source-map "1.7.0" - es6-iterator "2.0.3" - loader-utils "1.2.3" - postcss "7.0.21" - rework "1.0.1" - rework-visit "1.0.0" - source-map "0.6.1" - -resolve-url-loader@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" - integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== +resolve-url-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795" + integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== dependencies: adjust-sourcemap-loader "^4.0.0" convert-source-map "^1.7.0" loader-utils "^2.0.0" - postcss "^7.0.35" + postcss "^8.2.14" source-map "0.6.1" resolve-url@^0.2.1: @@ -28300,13 +26053,14 @@ resolve@1.1.7, resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== +resolve@1.22.1, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.4.0, resolve@^1.5.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" resolve@1.22.8: version "1.22.8" @@ -28317,15 +26071,6 @@ resolve@1.22.8: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@^1.22.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" @@ -28434,16 +26179,11 @@ retry-request@^4.0.0, retry-request@^4.1.1: dependencies: debug "^4.1.1" -retry@0.13.1: +retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -28454,41 +26194,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rework-visit@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" - integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= - -rework@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" - integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= - dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" - rfdc@^1.1.4, rfdc@^1.2.0, rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.1, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -28496,6 +26206,13 @@ rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.5.2, rimraf@^2.5.3, rimra dependencies: glob "^7.1.3" +rimraf@^3.0.0, rimraf@^3.0.1, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" @@ -28569,7 +26286,7 @@ rollup-plugin-license@^3.3.1: spdx-expression-validate "~2.0.0" spdx-satisfies "~5.0.1" -rollup-plugin-sourcemaps@^0.6.0, rollup-plugin-sourcemaps@^0.6.3: +rollup-plugin-sourcemaps@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" integrity sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw== @@ -28584,13 +26301,6 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@2.26.5: - version "2.26.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.5.tgz#5562ec36fcba3eed65cfd630bd78e037ad0e0307" - integrity sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA== - optionalDependencies: - fsevents "~2.1.2" - rollup@3.29.4, rollup@^3.27.1: version "3.29.4" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" @@ -28598,7 +26308,7 @@ rollup@3.29.4, rollup@^3.27.1: optionalDependencies: fsevents "~2.3.2" -rollup@^2.45.1, rollup@^2.8.0: +rollup@^2.70.0: version "2.79.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== @@ -28688,31 +26398,17 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@6.5.5: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - -rxjs@6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== - dependencies: - tslib "^1.9.0" - -rxjs@6.6.7, rxjs@^6.4.0, rxjs@^6.5.0, rxjs@^6.6.0: +rxjs@6.6.7, rxjs@^6.4.0, rxjs@^6.6.0: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.2.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== +rxjs@7.8.1, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" @@ -28723,13 +26419,6 @@ rxjs@^7.5.5: dependencies: tslib "^2.1.0" -rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - sade@^1.7.3, sade@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" @@ -28778,7 +26467,7 @@ safe-stable-stringify@^2.4.1: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -28830,21 +26519,10 @@ saslprep@^1.0.0: dependencies: sparse-bitfield "^3.0.3" -sass-loader@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.1.tgz#10c0364d8034f22fee25ddcc9eded20f99bbe3b4" - integrity sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ== - dependencies: - klona "^2.0.3" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^2.7.0" - semver "^7.3.2" - -sass-loader@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201" - integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg== +sass-loader@13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" + integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== dependencies: klona "^2.0.4" neo-async "^2.6.2" @@ -28856,33 +26534,19 @@ sass-lookup@^3.0.0: dependencies: commander "^2.16.0" -sass@1.26.10: - version "1.26.10" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.10.tgz#851d126021cdc93decbf201d1eca2a20ee434760" - integrity sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw== - dependencies: - chokidar ">=2.0.0 <4.0.0" - -sass@1.36.0: - version "1.36.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.36.0.tgz#5912ef9d5d16714171ba11cb17edb274c4bbc07e" - integrity sha512-fQzEjipfOv5kh930nu3Imzq3ie/sGDc/4KtQMJlt7RRdrkQSfe37Bwi/Rf/gfuYHsIuE1fIlDMvpyMcEwjnPvg== - dependencies: - chokidar ">=3.0.0 <4.0.0" - -sass@^1.23.0: - version "1.50.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.1.tgz#e9b078a1748863013c4712d2466ce8ca4e4ed292" - integrity sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw== +sass@1.54.4: + version "1.54.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.4.tgz#803ff2fef5525f1dd01670c3915b4b68b6cba72d" + integrity sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sass@^1.32.8: - version "1.58.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.1.tgz#17ab0390076a50578ed0733f1cc45429e03405f6" - integrity sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg== +sass@^1.49.9: + version "1.72.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.72.0.tgz#5b9978943fcfb32b25a6a5acb102fc9dabbbf41c" + integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -28921,7 +26585,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -28971,12 +26635,13 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.7, selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== +selfsigned@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: - node-forge "^0.10.0" + "@types/node-forge" "^1.3.0" + node-forge "^1" semver-compare@^1.0.0: version "1.0.0" @@ -28990,30 +26655,11 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-intersect@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" - integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ== - dependencies: - semver "^5.0.0" - -"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - semver@7.5.3: version "7.5.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" @@ -29420,7 +27066,7 @@ sliced@1.0.1: resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" integrity sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA== -smart-buffer@^4.1.0, smart-buffer@^4.2.0: +smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== @@ -29493,39 +27139,7 @@ socket.io@^4.1.2, socket.io@^4.2.0: socket.io-adapter "~2.4.0" socket.io-parser "~4.2.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== - dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - -sockjs@^0.3.21: +sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== @@ -29534,23 +27148,6 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== - dependencies: - agent-base "~4.2.1" - socks "~2.3.2" - -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - socks-proxy-agent@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" @@ -29568,14 +27165,6 @@ socks@^2.6.2: ip "^2.0.0" smart-buffer "^4.2.0" -socks@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== - dependencies: - ip "1.1.5" - smart-buffer "^4.1.0" - sorcery@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.11.0.tgz#310c80ee993433854bb55bb9aa4003acd147fca8" @@ -29586,13 +27175,6 @@ sorcery@0.11.0: minimist "^1.2.0" sander "^0.5.0" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -29627,32 +27209,21 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - -source-map-loader@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.0.2.tgz#b0a6582b2eaa387ede1ecf8061ae0b93c23f9eb0" - integrity sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw== - dependencies: - data-urls "^2.0.0" - iconv-lite "^0.6.2" - loader-utils "^2.0.0" - schema-utils "^2.7.0" - source-map "^0.6.1" +source-map-js@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.1.0.tgz#9e7d5cb46f0689fb6691b30f226937558d0fa94b" + integrity sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw== -source-map-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.0.tgz#f2a04ee2808ad01c774dea6b7d2639839f3b3049" - integrity sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw== +source-map-loader@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.0.tgz#bdc6b118bc6c87ee4d8d851f2d4efcc5abdb2ef5" + integrity sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw== dependencies: - abab "^2.0.5" - iconv-lite "^0.6.2" - source-map-js "^0.6.2" + abab "^2.0.6" + iconv-lite "^0.6.3" + source-map-js "^1.0.2" -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -29671,10 +27242,10 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@0.5.21, source-map-support@^0.5.21, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -29686,14 +27257,6 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.21, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" @@ -29716,21 +27279,21 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@0.7.3, source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - source-map@0.7.4, source-map@~0.7.2: version "0.7.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: +source-map@^0.5.1, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + source-map@~0.1.x: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" @@ -29745,7 +27308,7 @@ source-map@~0.2.0: dependencies: amdefine ">=0.0.4" -sourcemap-codec@1.4.8, sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -29856,13 +27419,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -speed-measure-webpack-plugin@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz#6ff894fc83e8a6310dde3af863a0329cd79da4f5" - integrity sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ== - dependencies: - chalk "^2.0.1" - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -29921,21 +27477,6 @@ sri-toolbox@^0.2.0: resolved "https://registry.yarnpkg.com/sri-toolbox/-/sri-toolbox-0.2.0.tgz#a7fea5c3fde55e675cf1c8c06f3ebb5c2935835e" integrity sha1-p/6lw/3lXmdc8cjAbz67XCk1g14= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^10.0.0, ssri@^10.0.1: version "10.0.4" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" @@ -29943,20 +27484,13 @@ ssri@^10.0.0, ssri@^10.0.1: dependencies: minipass "^5.0.0" -ssri@^6.0.0, ssri@^6.0.1: +ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0, ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" @@ -29964,11 +27498,6 @@ ssri@^9.0.0, ssri@^9.0.1: dependencies: minipass "^3.1.1" -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -30023,6 +27552,11 @@ std-env@^3.3.1: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.2.tgz#af27343b001616015534292178327b202b9ee955" integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== +std-env@^3.5.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + stdin-discarder@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" @@ -30256,7 +27790,7 @@ stringify-object@^3.2.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= @@ -30359,6 +27893,13 @@ strip-literal@^1.0.0: dependencies: acorn "^8.8.2" +strip-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.0.0.tgz#5d063580933e4e03ebb669b12db64d2200687527" + integrity sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA== + dependencies: + js-tokens "^8.0.2" + strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -30373,19 +27914,6 @@ stubs@^3.0.0: resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= -style-loader@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" - integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.6" - -style-loader@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.2.1.tgz#63cb920ec145c8669e9a50e92961452a1ef5dcde" - integrity sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg== - style-loader@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" @@ -30406,39 +27934,13 @@ styled_string@0.0.1: resolved "https://registry.yarnpkg.com/styled_string/-/styled_string-0.0.1.tgz#d22782bd81295459bc4f1df18c4bad8e94dd124a" integrity sha1-0ieCvYEpVFm8Tx3xjEutjpTdEko= -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylehacks@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" - integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== - dependencies: - browserslist "^4.21.4" - postcss-selector-parser "^6.0.4" - -stylus-loader@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus-loader@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-6.1.0.tgz#7a3a719a27cb2b9617896d6da28fda94c3ed9762" - integrity sha512-qKO34QCsOtSJrXxQQmXsPeaVHh6hMumBAFIoJTcsSr2VzrA6o/CW9HCGR8spCjzJhN8oKQHdj/Ytx0wwXyElkw== +stylus-loader@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-7.0.0.tgz#31fb929cd3a7c447a07a0b0148b48480eb2c3f4a" + integrity sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A== dependencies: - fast-glob "^3.2.5" - klona "^2.0.4" + fast-glob "^3.2.11" + klona "^2.0.5" normalize-path "^3.0.0" stylus-lookup@^3.0.1: @@ -30449,18 +27951,15 @@ stylus-lookup@^3.0.1: commander "^2.8.1" debug "^4.1.0" -stylus@0.54.8, stylus@^0.54.7, stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== +stylus@0.59.0, stylus@^0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.59.0.tgz#a344d5932787142a141946536d6e24e6a6be7aa6" + integrity sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg== dependencies: - css-parse "~2.0.0" - debug "~3.1.0" + "@adobe/css-tools" "^4.0.1" + debug "^4.3.2" glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" sax "~1.2.4" - semver "^6.3.0" source-map "^0.7.3" sucrase@^3.27.0: @@ -30509,13 +28008,6 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -30572,48 +28064,16 @@ svelte@^4.2.8: magic-string "^0.30.4" periscopic "^3.1.0" -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -symbol-observable@1.2.0, symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - symbol-observable@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== +symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -30728,20 +28188,7 @@ tar@6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^4.4.10: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: +tar@^6.1.11, tar@^6.1.2: version "6.1.12" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== @@ -30753,18 +28200,6 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^6.1.0: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^4.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - teeny-request@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-6.0.1.tgz#9b1f512cef152945827ba7e34f62523a4ce2c5b0" @@ -30820,33 +28255,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz#6e9d6ae4e1a900d88ddce8da6a47507ea61f44bc" - integrity sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.3.0" - p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^5.0.0" - webpack-sources "^1.4.3" - -terser-webpack-plugin@5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" - integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== - dependencies: - jest-worker "^27.0.2" - p-limit "^3.1.0" - schema-utils "^3.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.0" - terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -30894,15 +28302,6 @@ terser@5.14.2: commander "^2.20.0" source-map-support "~0.5.20" -terser@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.0.tgz#c481f4afecdcc182d5e2bdd2ff2dc61555161e81" - integrity sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - terser@^4.1.2: version "4.8.1" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" @@ -30912,7 +28311,7 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.0.0, terser@^5.10.0, terser@^5.7.2: +terser@^5.10.0, terser@^5.7.2: version "5.10.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== @@ -31070,11 +28469,6 @@ timers-browserify@^2.0.10, timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tiny-glob@0.2.9, tiny-glob@^0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" @@ -31110,16 +28504,31 @@ tinybench@^2.3.1: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.4.0.tgz#83f60d9e5545353610fe7993bd783120bc20c7a7" integrity sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg== +tinybench@^2.5.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.6.0.tgz#1423284ee22de07c91b3752c048d2764714b341b" + integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA== + tinypool@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== +tinypool@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.2.tgz#84013b03dc69dacb322563a475d4c0a9be00f82a" + integrity sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ== + tinyspy@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== +tinyspy@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== + tmp-promise@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" @@ -31243,14 +28652,6 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" @@ -31377,11 +28778,6 @@ ts-node@10.9.1, ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - tsconfck@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.0.0.tgz#b469f1ced12973bbec3209a55ed8de3bb04223c9" @@ -31406,27 +28802,22 @@ tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" - integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== - -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tslib@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: version "2.5.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== @@ -31469,11 +28860,6 @@ tunnel@^0.0.6: resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -31546,15 +28932,10 @@ type-is@^1.6.4, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" - integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== +typed-assert@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" + integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -31596,15 +28977,10 @@ typescript-memoize@^1.0.0-alpha.3, typescript-memoize@^1.0.1: resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.0.1.tgz#0a8199aa28f6fe18517f6e9308ef7bfbe9a98d59" integrity sha512-oJNge1qUrOK37d5Y6Ly2txKeuelYVsFtNF6U9kXIN7juudcQaHJQg2MxLOy0CqtkW65rVDYuTCOjnSIVPd8z3w== -typescript@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2" - integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== - -typescript@4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== typescript@4.9.5, typescript@^4.9.5: version "4.9.5" @@ -31655,6 +29031,11 @@ ufo@^1.1.1: resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.1.tgz#e70265e7152f3aba425bd013d150b2cdf4056d7c" integrity sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg== +ufo@^1.3.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.2.tgz#e547561ac56896fc8b9a3f2fb2552169f3629035" + integrity sha512-eiutMaL0J2MKdhcOM1tUy13pIrYnyR87fEd8STJQFrrAwImwvlXkxlZEjaKah8r2viPohld08lt73QfLG1NxMg== + uglify-js@^3.1.4: version "3.13.3" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.3.tgz#ce72a1ad154348ea2af61f50933c76cc8802276e" @@ -31775,11 +29156,6 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -31925,15 +29301,6 @@ unist-util-visit@^5.0.0: unist-util-is "^6.0.0" unist-util-visit-parents "^6.0.0" -universal-analytics@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.23.tgz#d915e676850c25c4156762471bdd7cf2eaaca8ac" - integrity sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A== - dependencies: - debug "^4.1.1" - request "^2.88.2" - uuid "^3.0.0" - universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -31964,11 +29331,6 @@ unplugin@1.0.1: webpack-sources "^3.2.3" webpack-virtual-modules "^0.5.0" -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -31994,14 +29356,6 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -32010,6 +29364,14 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-notifier@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -32049,14 +29411,6 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" @@ -32098,13 +29452,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util-promisify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" - integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= - dependencies: - object.getownpropertydescriptors "^2.0.3" - util.promisify@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" @@ -32116,16 +29463,6 @@ util.promisify@^1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -32172,17 +29509,12 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.1, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.0.0, uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -32300,20 +29632,6 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vfile-location@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" @@ -32377,6 +29695,17 @@ vite-node@0.29.2: picocolors "^1.0.0" vite "^3.0.0 || ^4.0.0" +vite-node@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.4.0.tgz#265529d60570ca695ceb69391f87f92847934ad8" + integrity sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^5.0.0" + vite@4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.5.tgz#634f0bd1edf8bb8468ed42a1c3fd938c67d2f94b" @@ -32412,6 +29741,17 @@ vite@^4.4.9: optionalDependencies: fsevents "~2.3.2" +vite@^5.0.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.6.tgz#706dae5fab9e97f57578469eef1405fc483943e4" + integrity sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + vite@^5.0.10: version "5.0.10" resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.10.tgz#1e13ef5c3cf5aa4eed81f5df6d107b3c3f1f6356" @@ -32463,6 +29803,32 @@ vitest@^0.29.2: vite-node "0.29.2" why-is-node-running "^2.2.2" +vitest@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.4.0.tgz#f5c812aaf5023818b89b7fc667fa45327396fece" + integrity sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw== + dependencies: + "@vitest/expect" "1.4.0" + "@vitest/runner" "1.4.0" + "@vitest/snapshot" "1.4.0" + "@vitest/spy" "1.4.0" + "@vitest/utils" "1.4.0" + acorn-walk "^8.3.2" + chai "^4.3.10" + debug "^4.3.4" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.5.0" + strip-literal "^2.0.0" + tinybench "^2.5.1" + tinypool "^0.8.2" + vite "^5.0.0" + vite-node "1.4.0" + why-is-node-running "^2.2.2" + vm-browserify@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" @@ -32601,7 +29967,7 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" -watchpack@^2.2.0, watchpack@^2.4.0: +watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -32667,132 +30033,51 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-dev-middleware@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-middleware@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" - integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== +webpack-dev-middleware@5.3.3, webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" + colorette "^2.0.10" + memfs "^3.4.3" mime-types "^2.1.31" range-parser "^1.2.1" - schema-utils "^3.0.0" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" + schema-utils "^4.0.0" -webpack-dev-server@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-dev-server@3.11.3: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" +webpack-dev-server@4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz#290ee594765cd8260adfe83b2d18115ea04484e7" + integrity sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.0.1" serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" + sockjs "^0.3.24" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" webpack-merge@5.8.0: version "5.8.0" @@ -32802,7 +30087,7 @@ webpack-merge@5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -32810,88 +30095,52 @@ webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.0, webpack-sources@^3.2.3: +webpack-sources@^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-subresource-integrity@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz#e8bf918b444277df46a66cd84542cbcdc5a6272d" - integrity sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw== - dependencies: - webpack-sources "^1.3.0" - -webpack-subresource-integrity@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz#e40b6578d3072e2d24104975249c52c66e9a743e" - integrity sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw== +webpack-subresource-integrity@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz#8b7606b033c6ccac14e684267cb7fb1f5c2a132a" + integrity sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q== dependencies: - webpack-sources "^1.3.0" + typed-assert "^1.0.8" 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.44.1: - version "4.44.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" - integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpack@5.50.0: - version "5.50.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.50.0.tgz#5562d75902a749eb4d75131f5627eac3a3192527" - integrity sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag== +webpack@5.76.1: + version "5.76.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" + integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/wasm-edit" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" + acorn "^8.7.1" acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" schema-utils "^3.1.0" tapable "^2.1.1" terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^3.2.0" + watchpack "^2.4.0" + webpack-sources "^3.2.3" webpack@^4.47.0: version "4.47.0" @@ -32952,13 +30201,6 @@ webpack@^5.90.3, webpack@~5.90.3: watchpack "^2.4.0" webpack-sources "^3.2.3" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -33036,11 +30278,6 @@ whatwg-url@^8.4.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -33091,7 +30328,7 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" -which@1.3.1, which@^1.1.1, which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@1.3.1, which@^1.1.1, which@^1.2.1, which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -33201,13 +30438,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-plugin@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-5.0.0.tgz#113b5fe1f4a5d6a957cecd29915bedafd70bb537" - integrity sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ== - dependencies: - loader-utils "^1.1.0" - workerpool@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-3.1.2.tgz#b34e79243647decb174b7481ab5b351dc565c426" @@ -33289,13 +30519,6 @@ write-pkg@4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - ws@^7.4.6: version "7.5.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" @@ -33306,6 +30529,11 @@ ws@^8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +ws@^8.4.2: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" @@ -33357,7 +30585,7 @@ xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xxhashjs@^0.2.1, xxhashjs@~0.2.2: +xxhashjs@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== @@ -33388,7 +30616,7 @@ yalc@^1.0.0-pre.53: npm-packlist "^2.1.5" yargs "^16.1.1" -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.0, yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -33411,7 +30639,7 @@ yaml@2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== -yaml@^1.10.0, yaml@^1.10.2: +yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -33434,7 +30662,7 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20. resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@21.1.1, yargs-parser@^21.1.1: +yargs-parser@21.1.1, yargs-parser@^21.0.0, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== @@ -33456,7 +30684,7 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" -yargs@13.3.2, yargs@^13.3.0, yargs@^13.3.2: +yargs@13.3.2, yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -33485,6 +30713,19 @@ yargs@16.2.0, yargs@^16.1.1, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@17.5.1: + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + yargs@^15.0.2: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -33502,7 +30743,20 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.0, yargs@^17.5.1, yargs@^17.6.0, yargs@^17.6.2: +yargs@^17.2.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^17.5.1, yargs@^17.6.0, yargs@^17.6.2: version "17.6.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== @@ -33543,10 +30797,10 @@ zod@^3.22.4: resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== -zone.js@^0.11.8, zone.js@~0.11.4: - version "0.11.8" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.11.8.tgz#40dea9adc1ad007b5effb2bfed17f350f1f46a21" - integrity sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA== +zone.js@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.12.0.tgz#a4a6e5fab6d34bd37d89c77e89ac2e6f4a3d2c30" + integrity sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q== dependencies: tslib "^2.3.0" From 0b8540fd0f9dbd436aba4ec705570d21c09c4cdd Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 19 Mar 2024 11:27:08 -0400 Subject: [PATCH 40/56] chore: Re-organize CHANGELOG for older versions (#11176) Move v4, v5, and v6 changelog entries into their own file. This should help speed up rendering of main changelog. Also add relevant v7 changelog items to changelog. --- CHANGELOG.md | 1813 +----------------------------------------- docs/changelog/v4.md | 367 +++++++++ docs/changelog/v5.md | 791 ++++++++++++++++++ docs/changelog/v6.md | 640 +++++++++++++++ 4 files changed, 1832 insertions(+), 1779 deletions(-) create mode 100644 docs/changelog/v4.md create mode 100644 docs/changelog/v5.md create mode 100644 docs/changelog/v6.md diff --git a/CHANGELOG.md b/CHANGELOG.md index f33c3d9eef99..17a777ecdab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -394,6 +394,34 @@ We have also removed or updated a variety of deprecated APIs. - ref: Remove usage of span tags (#10808) - ref: Remove user segment (#10575) +## 7.107.0 + +This release fixes issues with INP instrumentation with the Next.js SDK and adds support for the `enableInp` option in +the deprecated `BrowserTracing` integration for backwards compatibility. + +- feat(performance): Port INP span instrumentation to old browser tracing (#11085) +- fix(ember): Ensure browser tracing is correctly lazy loaded (#11027) +- fix(node): Do not assert in vendored proxy code (v7 backport) (#11009) +- fix(react): Set `handled` value in ErrorBoundary depending on fallback [v7] (#11037) + +## 7.106.1 + +- fix(nextjs/v7): Use passthrough `createReduxEnhancer` on server (#11010) + +## 7.106.0 + +- feat(nextjs): Support Hybrid Cloud DSNs with `tunnelRoute` option (#10958) +- feat(remix): Add Vite dev-mode support to Express instrumentation (#10811) +- fix(core): Undeprecate `setTransactionName` +- fix(browser): Don't use chrome variable name (#10874) +- fix(nextjs): Client code should not use Node `global` (#10925) +- fix(node): support undici headers as strings or arrays (#10938) +- fix(types): Add `AttachmentType` and use for envelope `attachment_type` property (#10946) +- ref(ember): Avoid namespace import to hopefully resolve minification issue (#10885) +- chore(sveltekit): Fix punctuation in a console.log (#10895) + +Work in this release contributed by @jessezhang91 and @bfontaine. Thank you for your contributions! + ## 7.105.0 ### Important Changes @@ -3976,1787 +4004,14 @@ breaking changes are aimed at libraries that build on top of and extend the Java - ref(utils): Clean up dangerous type casts in object helper file (#5047) - ref(utils): Add logic to enable skipping of normalization (#5052) -## 6.19.7 - -- fix(react): Add children prop type to ErrorBoundary component (#4966) -- fix(serverless): Re-add missing modules in Node AWS Lambda Layer (#4982) -- fix(tracing): Target tracing bundles for side effects (#4955) - -Work in this release contributed by @cameronaziz and @kpdecker. Thank you for your contributions! - -## 6.19.6 - -- fix(typing): Fix typing API in CaptureConsle (#4879) - -## 6.19.5 - -- ref(build): Add debug constants in each package individually (#4842) -- ref(build): Introduce central build directory to packages with bundles (#4838) (#4854) (#4868) -- feat(utils): Introduce getGlobalSingleton helper (#4860) - -## 6.19.4 - -- feat(react): Add React 18 as peer dep (#4819) -- ref(build): Add `build/types` to tarballs and adjust `types` entry points (#4824) - -Work in this release contributed by @MikevPeeren. Thank you for your contribution! - -## 6.19.3 - -- feat(browser): Add new v7 Fetch Transport (#4765) -- feat(browser): Add new v7 XHR Transport (#4803) -- fix(core): Use correct version of event when tagging normalization (#4780) -- fix(core): Stop mangling \_experiments (#4807) -- feat(node): Add new v7 http/s Transports (#4781) - -## 6.19.2 - -- feat(core): Add new transports to base backend (#4752) -- feat(utils): Add `isNaN` function (#4759) -- fix(integrations): Emit ES5 code in ES5 bundles (#4769) -- fix(vue): Drop vue-router peerDep (#4764) -- ref(core): Reduce inboundfilters bundle size (#4625) -- ref(integrations): Make ReportTypes a union type -- ref(node): Add source code context when using LinkedErrors (#4753) -- ref(utils): Introduce getEnvelopeType helper (#4751) -- ref(utils): Split normalization code into separate module (#4760) - -## 6.19.1 - -This release fixes a bug from 6.19.0 causing type import errors in most JS SDKs. - -- fix(types): Point to type definitions in dist folder (#4745) - -## 6.19.0 - -This release makes a change to the data normalization process, limiting the number of entries or properties which will -be included in any given array or object to 1000. Previously there was no limit, so in rare cases you may notice a -change in your context data. If this is a problem, you can increase the limit with the new `maxNormalizationBreadth` -setting. See [#4689](https://github.com/getsentry/sentry-javascript/pull/4689) for details. - -- feat(build): Create debug versions of minified bundles (#4699) -- feat(integrations): Make ES6 integration bundles (#4718) -- feat(utils): Limit `normalize` maximum properties/elements (#4689) -- feat(various): Apply debug guard to logger everywhere (#4698) -- fix(browser): Use `apply` rather than `call` in `try-catch` integration (#4695) -- fix(ember): Fix merging env config (#4714) -- fix(nextjs): Add env var to suppress API non-response meta-warning (#4706) -- fix(nextjs): Widen scope for client file upload (#4705) -- fix(node): Fix async stack parsing (#4721) -- ref(browser): Use ratelimit utils in base transport (#4686) -- ref(build): Introduce root build directory in `@sentry/browser` (#4688) -- ref(minimal): Simplify `syntheticException` creation (#4691) -- ref(tracing): Remove `BrowserTracing` logging flag default value (#4708) -- ref(utils): Simplify `isDebugBuild` logging guard (#4696) - -Work in this release contributed by @Turbo87. Thank you for your contribution! - -## 6.18.2 - -If you are using `@sentry-internal/eslint-config-sdk`, please note that this release turns on the -[quotes rule](https://eslint.org/docs/rules/quotes) to enforce usage of single quotes. - -This release also removes `@sentry/tracing` as a dependency of `@sentry/node`. Please explicitly install and import -`@sentry/tracing` if you want to use performance monitoring capabilities. For more details, -[see our docs on setting up Node Performance Monitoring](https://docs.sentry.io/platforms/node/performance/). - -We also now produce an ES6 version of our -[CDN tracing bundle](https://docs.sentry.io/platforms/javascript/install/cdn/#performance-bundle), which can be accessed -with `bundle.tracing.es6.min.js`. - -- chore(eslint): Turn on quotes rules (#4671) -- fix(node): prevent errors thrown on flush from breaking response (#4667) -- ref(node): Remove dependency on @sentry/tracing (#4647) -- fix(tracing): Make method required in transactionSampling type (#4657) -- feat(tracing): Add ES6 tracing bundle (#4674) - -Work in this release contributed by @Ignigena. Thank you for your contribution! - -## 6.18.1 - -- fix(ember): use \_backburner if it exists (#4603) -- feat(gatsby): Upgrade Sentry Webpack Plugin to 1.18.8 (#4636) -- feat(nextjs): Upgrade Sentry Webpack Plugin to 1.18.8 (#4643) -- fix(nextjs): webpack as optional peer-dependency (#4634) - -Work in this release contributed by @belgattitude, @pbernery, and @kylemh. Thank you for your contributions! - -## 6.18.0 - -This patch deprecates the `frameContextLines` option for the Node SDK. The -[migration documentation](./MIGRATION.md#upgrading-from-6.17.x-to-6.18.0) details how to migrate off the deprecated -`frameContextLines` option. - -- fix(browser): Only set event.stacktrace if we have 1 or more frames (#4614) -- fix(hub): keep hint event id if it's provided (#4577) -- fix(nextjs): Use env variable for build detection (#4608) -- ref(node): Refactor node source fetching into integration (#3729) -- feat(serverless): Added `ignoreSentryErrors` option for AWS lambda (#4620) - -Work in this release contributed by @GoshaEgorian and @ichina. Thank you for your contributions! - -## 6.17.9 - -- fix(gatsby): Add missing React peer dependency (#4576) -- fix(types): Use Sentry event type instead of dom one (#4584) - -Work in this release contributed by @aaronadamsCA. Thank you for your contribution! - -## 6.17.8 - -- feat(types): Add Envelope types (#4527) -- fix(build): Remove node code from CDN bundles (#4548) -- fix(build): Prevent unused utils code in integration bundles (#4547) -- fix(tracing): Export BrowserTracing directly in CDN bundle (#4570) -- fix(utils): Use apply in console instrumentation (#4568) -- ref(core): Log `normalizeDepth` when normalization is skipped(#4574) - -Work in this release contributed by @mydea. Thank you for your contribution! - -## 6.17.7 - -- fix(utils): Make new non-enumerable properties mutable (#4528) -- fix(vue): Check if route name is defined before casting (#4530) - -Work in this release contributed by @connorjclark. Thank you for your contribution! - -## 6.17.6 - -- fix(angular): Add check for global.location in angular universal (#4513) -- fix(nextjs): Stop injecting sentry into API middleware (#4517) -- fix(nextjs): Revert #4139 - remove manipulation of res.finished value (#4516) - -Work in this release contributed by @mobilestar1. Thank you for your contribution! - -## 6.17.5 - -This release deprecates the `Severity` enum, the `SeverityLevel` type, and the internal `SeverityLevels` array, all from -`@sentry/types`. In v7, `Severity` will disappear (in favor of `SeverityLevel`) and `SeverityLevel` and `SeverityLevels` -will live in `@sentry/utils`. If you are using any of the three, we encourage you to migrate your usage now, using our -[migration guide](./MIGRATION.md#upgrading-from-6.x-to-6.17.x). - -- ref: Export Session class from core/browser/node (#4508) -- chore(nextjs): Bump`@sentry/webpack-plugin` to 1.18.5 (#4501) -- ref(types): Move SeverityLevel and SeverityLevels to `@sentry/utils` (#4492) -- fix(vue): Cast name parameter to string (#4483) - -Work in this release contributed by @Bobakanoosh and @ssnielsen. Thank you for your contributions! - -## 6.17.4 - -- chore(deps): Bump `@sentry/webpack-plugin` from 1.18.3 to 1.18.4 (#4464) -- fix(browser): Set severity level for events captured by the global error handler (#4460) -- fix(integrations): Add default for `ExtraErrorData`'s `depth` option (#4487) -- fix(nextjs): Export `BrowserTracing` integration directly (#4480) -- fix(tracing): Export `SpanStatus` enum (#4478) -- fix(vue): Property `_isVue` not defined in Vue3 (#4461) - -Work in this release contributed by @7inspire, @jaeseokk, and @rchl. Thank you for your contributions! - -## 6.17.3 - -- fix(nextjs): Unwrap `req` and `res` if necessary when instrumenting server (#4467) - -## 6.17.2 - -This patch contains a breaking change for anyone setting the undocumented `rethrowAfterCapture` option for -`@sentry/serverless`'s AWS wrapper to `false`, as its functionality has been removed. For backwards compatibility with -anyone setting it to `true` (which is also the default), the option remains in the `WrapperOptions` type for now. It -will be removed in the next major release, though, so we recommend removing it from your code. - -- ref(serverless): Remove `rethrowAfterCapture` use in AWS lambda wrapper (#4448) -- fix(utils): Remove dom `is` casting (#4451) - -## 6.17.1 - -- ref(core): Renormalize event only after stringification errors (#4425) -- feat(nextjs): Add option to use `hidden-source-map` as webpack devtool value (#4436) -- fix(tracing): ignore the xhr/fetch response if its request is not being tracked (#4428) -- fix(vue): prevent after hook from starting new span (#4438) - -Work in this release contributed by @datbth. Thank you for your contribution! - -## 6.17.0 - -This release contains several internal refactors that help reduce the bundle size of the SDK and help prep for our -[upcoming major release](https://github.com/getsentry/sentry-javascript/issues/4240). There are no breaking changes in -this patch unless you are using our internal `Dsn` class, which has been removed. We also deprecated a few of our -typescript enums and our internal `API` class. We've detailed in our -[migration documentation](./MIGRATION.md#upgrading-from-6.x-to-6.17.x) how to update your sdk usage if you are using any -of these in your code. - -- feat: Remove Dsn class (#4325) -- feat(core): Add processing metadata to scope and event (#4252) -- feat(core): Deprecate API class (#4281) -- feat(ember): Update ember dependencies (#4253) -- fix(nextjs): Inject sentry.x.config.js into pages/\_error (#4397) -- fix(nextjs): Add sentry-cli existence check for enabling webpack plugin #4311 -- ref(tracing): deprecate span status enum (#4299) -- ref(tracing): Remove script evaluation span (#4433) -- ref(types): drop unused logLevel (#4317) -- ref(types): deprecate request status enum (#4316) -- ref(types): deprecate outcome enum (#4315) -- ref(types): deprecate transactionmethod enum (#4314) -- ref(types): deprecate status enum (#4298) -- ref(utils): improve invalid dsn error message (#4430) -- fix(vue): Prioritize app variable to avoid duplicate name pollution (#4437) - -Work in this release contributed by @yordis, @Badisi, and @lh1me. Thank you for your contribution! - -## 6.16.1 - -- feat(nextjs): Support Next.js v12 (#4093) -- fix(nextjs): Disable server instrumentation on Vercel (#4255) -- feat(tracing): Add metadata around idleTimeout (#4251) - -Work in this release contributed by @KATT. Thank you for your contribution! - -## 6.16.0 - -- feat(angular): Add Angular 13 to peer dep (#4183) -- fix(angular): Finish routing span before starting another one (#4191) -- fix(angular): Use ui category for span operations (#4222) -- feat(ember): Use @types/ember\_\_debug (#4173) -- fix(ember): Use ui category for span operations (#4221) -- feat(eslint-config): Enable array-callback-return rule (#4229) -- ref(eslint-config): Update spaced-comment rule (#4235) -- fix(integrations): Use ui category for vue span operations (#4219) -- fix(nextjs): Add sideEffects flag to NextJS SDK (#4216) -- fix(node): Make http integration spans have http span operation (#4224) -- fix(react): Mark react package as having no side effects (#4213) -- fix(react): Use ui category for operations (#4218) -- fix(tracing): Add express category to express middleware spans (#4223) -- fix(tracing): Treat HTTP status code below 100 as UnknownError (#4131) -- fix(types): Make Options type method params contravariant (#4234) -- fix(vue): Mark Vue as having no side effects. (#4217) -- fix(vue): Use ui category for span operations (#4220) - -Work in this release contributed by @jherdman and @travigd. Thank you for your contribution! - -## 6.15.0 - -- fix(browser): Capture stacktrace on `DOMExceptions`, if possible (#4160) -- fix(nextjs): Delay error propagation until `withSentry` is done (#4027) - -Work in this release contributed by @nowylie. Thank you for your contribution! - -## 6.14.3 - -- Revert: ref(utils): Use type predicates in `is` utility functions (#4124) - -## 6.14.2 - -- feat(awslambda) : Capture errors individually on sqs partial batch failure (#4130) -- feat(gatsby): Upload source maps automatically when sentry-cli is configured (#4109) -- fix(nextjs): Prevent `false API resolved without sending a response` warning (#4139) -- fix(vue): Merge default and manual hooks while creating mixins. (#4132) -- ref(utils): Use type predicates in `is` utility functions (#4124) - -Work in this release contributed by @J4YF7O. Thank you for your contribution! - -## 6.14.1 - -- feat(gatsby): Support Gatsby v4 (#4120) -- fix(nextjs): Stop sending transactions for requests that 404 (#4095) -- fix(nextjs): Prevent infinite recompilation in dev (#4123) -- fix(node): Prioritize globalAgent while figuring out protocol (#4087) - -## 6.14.0 - -- chore(deps): Bump @sentry/webpack-plugin to 1.18.1 (#4063) -- feat(awslambda): Add requestId filter to aws.cloudwatch.logs URL (#4032) -- feat(gatsby): Support non-serializable SDK options (#4064) -- feat(gatsby): Support user integrations as a function (#4050) -- feat(integrations): Call toJSON of originalException to extract more data (#4038) -- feat(integrations): Capture console.error as an exception (#4034) -- feat(nextjs): Add mechanism to error-logger-caught errors (#4061) -- feat(nextjs): Add mechanism to withSentry-caught errors (#4046) -- feat(nextjs): Tag backend events when running on vercel (#4091) -- fix(browser): Send client outcomes through tunnel if configured (#4031) -- fix(core): Be stricter about mechanism values (#4068) -- fix(core): Prevent exception recapturing (#4067) -- fix(nextjs): Always initialize SDK with global hub (#4086) -- fix(nextjs): Fix types in config code (#4057) -- fix(nextjs): Remove logic merging include values in withSentryConfig (#4056) -- fix(node): Check for potentially undefined httpModule (#4037) -- fix(tracing): Update paths for DB drivers auto-instrumentation (#4083) -- fix(vue): Move ROOT_SPAN_TIMER into Vue context. (#4081) - -Work in this release contributed by @tmilar, @deammer, and @freekii. Thank you for your contributions! - -## 6.13.3 - -- feat(nextjs): Add ability for integration tests to use linked `@sentry/xxxx` packages (#4019) -- feat(nextjs): Support `distDir` Next.js option (#3990) -- fix(tracing): Call hasTracingEnabled with correct options when invoking startTransaction (#4020) -- ref(browser): Refactor sending client reports w. fetch fallback (#4008) -- ref(core): Make getTransport method on client optional (#4013) -- ref(ember): Update htmlbars dependency (#4026) -- ref(integrations): Minor simplification of ExtraErrorData code (#4024) -- ref(react): Rely on error.cause to link ErrorBoundary errors (#4005) - -## 6.13.2 - -- fix(browser): Use getGlobalObject for document check (#3996) -- misc(all): Disallow direct usage of globals (#3999) - -## 6.13.1 - -- fix(browser): Check for document when sending outcomes (#3993) - -## 6.13.0 - -- feat(browser): Client Report Support (#3955) -- feat(perf): Add experimental option to improve LCP collection (#3879) -- fix(browser): Make sure that `document.head` or `document.body` exists for `injectReportDialog` (#3972) -- fix(browser): Parse frames-only `safari(-web)-extension` stack (#3929) -- fix(ember): Move `ember-source` to `devDependencies` (#3962) -- fix(hub): Don't set `lastEventID` for transactions (#3966) -- fix(nextjs): Include nextjs config's `basePath` on `urlPrefix` (#3922) -- fix(node): Add protocol detection for get/request calls without explict protocol (#3950) -- fix(node): Disable `autoSessionTracking` if dsn undefined (#3954) -- fix(vue): Check for matched route existence before starting transaction (#3973) -- ref(browser): Migrate unit tests from Chai and Karma to Jest (#3965) -- ref(nextjs): Exclude cross-platform tracing code from bundles (#3978) -- ref(tracing): Idle transaction refactoring (#3988) - -## 6.12.0 - -- fix(nextjs): Differentiate between webpack 4 and 5 in server builds (#3878) -- fix(core): Skip native frames while searching frame URLs. (#3897) -- fix(vue): Attach props only if VM is available (#3902) -- feat(tracing): Add pg-native support to Postgres integration. (#3894) -- ref(ember): Update addon to support Ember 4.0.0 (beta) (#3915) -- feat(react): Make Profiler \_mountSpan attribute protected (#3904) -- fix(ember): allow ember-beta to fail (#3910) -- fix(tracing): Prevent metrics erroring module load in web workers (#3941) -- misc(browser): Log when event is dropped by Dedupe integration (#3943) - -## 6.11.0 - -- feat(nextjs): Allow for TypeScript user config files (#3847) -- fix(browser): Make sure handler exists for LinkedErrors Integration (#3861) -- fix(core): Skip anonymous callbacks while searching frame URLs. (#3842) -- fix(core): Stop rejecting in `flush` and `close` when client undefined (#3846) -- fix(nextjs): Stop `SentryWebpackPlugin` from uploading unnecessary files (#3845) -- fix(react): Require ReactElement in ErrorBoundary props and render (#3857) -- fix(tests): Allow tests to run on Windows without WSL (#3813) -- fix(utils): Fix false-positive circular references when normalizing `Event` objects (#3864) -- fix(vue): Make Router.name type optional to match VueRouter (#3843) -- ref(core): Prevent redundant setup work (#3862) -- ref(nextjs): Stop reinitializing the server SDK unnecessarily (#3860) - -## 6.10.0 - -- feat(vue): Rework tracing and add support for `Vue 3` (#3804) -- feat(tracing): Upgrade to `web-vitals 2.1.0` (#3781) -- fix(ember): Make argument to `InitSentryForEmber` optional (#3802) -- fix(nextjs): Do not start a navigation if the from URL is the same (#3814) -- fix(nextjs): Let `flush` finish in API routes (#3811) -- fix(nextjs): Use `domains` to prevent scope bleed (#3788) -- fix(react): Make `Route` typing more generic (#3809) -- ref(tracing): Update span op for outgoing HTTP requests (#3821) -- ref(tracing): Remove updated CLS from web-vitals (#3822) - -## 6.9.0 - -- feat(browser): Use scope data in report dialog (#3792) -- feat(core): Add `ensureNoCircularStructures` experiment to help debug serialization bugs (#3776) -- feat(nextjs): Add options to disable webpack plugin (#3771) -- feat(react): Support render props in `ErrorBoundary` (#3793) -- fix(ember): Correctly cache ember types from prepublish hook (#3749) -- fix(ember): Fix runtime config options not being merged (#3791) -- fix(metrics): Check for cls entry sources (#3775) -- fix(nextjs): Make `withSentryConfig` return type match given config type (#3760) -- fix(node): Check if `captureRequestSession` is available before its called (#3773) -- fix(node): Enable `autoSessionTracking` correctly (#3758) -- fix(react): `allRoutes` cannot triple equal a new array instance (#3779) -- fix(tracing): Add check for `document.scripts` in metrics (#3766) -- fix(types): Update `ExtractedNodeRequestData` to include valid `query_params` for `tracesSampler` (#3715) -- ref(gatsby): Default release to empty string (#3759) -- ref(nextjs): Inject init code in `_app` and API routes (#3786) -- ref(nextjs): Pre-disable-plugin-option config cleanup (#3770) -- ref(nextjs): Stop setting redundant `productionBrowserSourceMaps` in config (#3765) - -## 6.8.0 - -- [browser] feat: Enable serialization of multiple DOM attributes for breadcrumbs. (#3755) -- [browser] feat: Make dedupe integration default for browser (#3730) -- [core] fix: Correctly limit Buffer requests (#3736) -- [ember] ref: Allow initing Ember without config entry (#3745) -- [serverless] fix: wrapEventFunction does not await for async code (#3740) - -## 6.7.2 - -- [core] fix: Do not track sessions if not enabled (#3686) -- [core] fix: Prevent sending terminal status session updates (#3701) -- [core] ref: Make `beforeSend` more strict (#3713) -- [browser] ref: Log which request type has been limited (#3687) -- [nextjs] feat: Auto enable node http integration on server (#3675) -- [nextjs] fix: Correctly handle functional next config in `withSentryConfig` (#3698) -- [nextjs] fix: Fix conflict with other libraries modifying webpack `entry` property (#3703) -- [nextjs] fix: Update @sentry/webpack-plugin to 1.15.1 in @sentry/nextjs to resolve build timeouts issue (#3708) -- [nextjs] ref: Split up config code and add tests (#3693) - -## 6.7.1 - -- [core] fix: Add event type to item header when envelopes are forced (#3676) -- [core] fix: Include DSN in envelope header for sessions (#3680) -- [core] fix: Prevent scope from storing more than 100 breadcrumbs at the time (#3677) -- [node] ref: Remove default http(s) import from http-module (#3681) -- [nextjs] feat: Add body data to transaction `request` context (#3672) - -## 6.7.0 - -- [core] feat: Add `tunnel` option to support request tunneling for dealing with ad-blockers (#3521) - -## 6.6.0 - -- [node] feat: Allow for overriding custom `UrlParser` in Node.js transports (#3612) -- [browser] feat: Add `serializeAttribute` option to DOM breadcrumbs. (#3620) -- [nextjs] fix: `Improve NextConfigExports` compatibility (#3592) -- [nextjs] fix: Use correct abs path for server init (#3649) -- [angular] fix: Do not run change detection when capturing the exception (#3618) -- [angular] fix: Do not run change detection when finishing transaction (#3622) -- [angular] fix: Provide a single compilation unit for the `trace` directive (#3617) -- [utils] fix: Check for `performance.now` when calculating browser timing (#3657) -- [integrations] fix: Run rewriting for both `exception` and `stacktrace` events (#3653) -- [node] ref: Replace old-style `require(console)` with a global object (#3623) -- [node] ref: Make `HTTPModule` more abstract to be able to use it in non-Node.JS environments (#3655) -- [nextjs] ref: Export `BrowserTracing` integration directly from `@sentry/nextjs` (#3647) - -## 6.5.1 - -- [nextjs] fix: Prevent webpack 5 from crashing server (#3642) -- [eslint] build: Upgrade to eslint 7.27.0 (#3639) -- [nextjs] test: Add nextjs integration tests for Server and Browser (#3632) -- [browser] ref: Don't send session duration in browser environments (#3616) -- [hub] fix: Correctly compute session durations (#3616) - -## 6.5.0 - -- [angular] fix: prevent memory leak when the root view is removed (#3594) -- [browser] fix: Do not trigger session on meaningless navigation (#3608) -- [nextjs] feat: Frontend + withSentry Performance Monitoring (#3580) -- [react] fix: Use history object for init transaction name (#3609) - -## 6.4.1 - -- [ember] ref: Fix merging of runtime config with environment config. (#3563) -- [angular] ref: Allow angular v12 as a peer dependency. (#3569) -- [tracing] fix: Avoid browser tracing initialization on node environment (#3548) -- [react] ref: Make RouteProps typing more generic (#3570) -- [tracing] fix: Correctly handle pg.Cursor in pg query method (#3567) -- [types] fix: Add attachment to SentryRequestType (#3561) -- [nextjs] ref: Disable node session for next.js (#3558) -- [eslint] feat: Add new eslint rules (#3545) - -## 6.4.0 - -- [core] feat: initialScope in SDK Options (#3544) -- [node] feat: Release Health for Node (Session Aggregates) (#3319) -- [node] feat: Autoload Database Integrations in Node environment (#3483) -- [react] feat: Add support for React 17 Error Boundaries (#3532) -- [tracing] fix: Generate TTFB (Time to first byte) from span data (#3515) - -## 6.3.6 - -- [nextjs] fix: Fix error logging (#3512) -- [nextjs] fix: Add environment automatically (#3495) -- [node] feat: Implement category based rate limiting (#3435) -- [node] fix: Set handled to false when it is a crash (#3493) -- [tracing] fix: Mark tracing distributables as side effects (#3519) - -## 6.3.5 - -- [nextjs] fix: Add tslib dependecy; change inject order (#3487) - -## 6.3.4 - -- [nextjs] fix: API routes logging (#3479) - -## 6.3.3 - -- [nextjs] fix: User server types (#3471) - -## 6.3.2 - -- [nextjs] ref: Remove next.js plugin (#3462) -- [core] fix: Prevent InboundFilters mergeOptions method from breaking users code (#3458) - -## 6.3.1 - -- [angular] fix: Make SentryErrorHandler extensible and export it publicly (#3438) -- [browser] feat: Capture information about the LCP element culprit (#3427) -- [core] fix: Correctly attach installed integrations to sdkinfo (#3447) -- [ember] fix: Add guards to ensure marks exist (#3436) -- [nextjs] fix: Fix incomplete merging of user config with Sentry config (#3434) -- [nextjs] ref: Use resolved paths for `require` calls in config code (#3426) -- [node] fix: Fix for manual tests in node (#3428) -- [transports] feat: Honor no_proxy env variable (#3412) - -## 6.3.0 - -- [browser] feat: Parse safari-extension and safari-web-extension errors (#3374) -- [browser] fix: Provide better descriptions for the performance navigation timing spans (#3245) -- [browser] test: Replace Authorization with Accept header (#3400) -- [ci] ci: Add CodeQL scanning -- [core] Drop session if release is not a string or is missing and log (#3396) -- [docs] Document how to publish a new release (#3361) -- [gatsby] fix: Specify gatsby peer dep (#3385) -- [gatsby] chore(docs): Update @sentry/gatsby README (#3384) -- [integrations] feat(integrations): add prefix support for RewriteFrames (#3416) -- [integrations] ref: Use esm imports with localforage and add esModuleInterop (#3403) -- [nextjs] feat: Next.js SDK + Plugin (#3301) -- [node] fix: Generate a Sentry Release string from env if its not provided (#3393) -- [tracing] fix: Replace performance.timeOrigin in favour of browserPerformanceTimeOrigin (#3397) -- [tracing] fix: Mark span as failed when fetch API call fails (#3351) -- [utils] fix: Use the more reliable timeOrigin (#3398) -- [utils] fix: Wrap oldOnPopState.apply call in try/catch to prevent Firefox from crashing (#3377) - -## 6.2.5 - -- [utils] fix: Avoid performance.timeOrigin if too skewed (#3356) - -## 6.2.4 - -- [browser] fix: Add `SentryRequestType` to `RateLimitingCategory` mapping (#3328) -- [browser] ref: Add fast-path to `fetchImpl` and cleanup redundant iframe (#3341) -- [node] fix: Fallback to empty string if `req.baseUrl` is empty (#3329) -- [node] ref: Remove circular dependency in `@sentry/node` (#3335) -- [tracing] fix: Attach mysql tracing to `Connection.createQuery` instead of `Connection.prototype.query` (#3353) -- [tracing] ref: Clarify naming in `BrowserTracing` integration (#3338) -- [ember] ref: Fix tests to be forward compatible with component changes (#3347) -- [ember] ref: Silence deprecation warnings in beta (#3346) - -## 6.2.3 - -- [gatsby] fix: Update Vercel environment variables to match their current system variables (#3337) - -## 6.2.2 - -- [hub] fix: Only create sessions if the correct methods are defined (#3281) -- [core] fix: Don't override SDK metadata (#3304) -- [browser] fix: Prevent fetch errors loops with invalid fetch implementations (#3318) -- [serverless] ref: Add compatible runtime nodejs14.x to building awslambda layer (#3303) -- [ember] fix: Keep route hook context when performance-wrapping (#3274) -- [integrations] fix: Normalized Event before caching. (#3305) - -## 6.2.1 - -- [core] fix: Moves SDK metadata-setting into the `NodeClient/BrowserClient` to protect it from being overwritten by - other classes extending `BaseClient` like @sentry/serverless (#3279) - -## 6.2.0 - -- [tracing] feat: Mongoose tracing support added to MongoDB (#3252) -- [tracing] fix: Add missing `find` method from mongo tracing list (#3253) -- [tracing] fix: Create `spanRecorder` whenever transactions are sampled (#3255) -- [node] fix: Parse ESM based frames with `file://` protocol (#3264) -- [react] fix: Remove react-dom peer dependency for RN (#3250) -- [ember] fix: Fixing fetching config during build step (#3246) -- [serverless]: fix: Handle incoming `sentry-trace` header (#3261) - -## 6.1.0 - -We updated the way how we calculate errored and crashed sessions with this update. Please be aware that some numbers -might change for you and they now should reflect the actual reality. Visit -[our docs](https://docs.sentry.io/platforms/javascript/configuration/releases/#release-health) for more information. - -- [browser] feat: Rework how we track sessions (#3224) -- [hub] ref: Simplify getting hub from active domain (#3227) -- [core] ref: Rename `user` to `publicKey` in `Dsn` type and class (#3225) -- [ember] fix: Fix backwards compatibility with Embroider changes (#3230) - -## 6.0.4 - -- [browser] fix: Don't break when function call context is undefined (#3222) -- [tracing] fix: Set default sampling context data where `startTransaction` is called (#3210) -- [tracing] fix: Remove stray sampling data tags (#3197) -- [tracing] fix: Clear activeTransaction from the scope and always start idle timers (#3215) -- [angular] ref: Add Angular 11 to possible peerDependencies list (#3201) -- [vue] ref: Add `vue-router` to peerDependencies list (#3214) - -## 6.0.3 - -- [tracing] ref: feat(tracing): Add context update methods to Span and Transaction (#3192) -- [node] ref: Make ExpressRequest not extend http.IncomingMessage anymore (#3211) -- [browser] deps: Allow for LocalForage >=1.8.1 (#3205) -- [ember] fix(ember): Fix location url for 'hash' location type (#3195) -- [ember] fix(ember): Fix Ember to work with Embroider and Fastboot (#3181) - -## 6.0.2 - -- [browser] fix: Disable session tracking in non-browser environments (#3194) - -## 6.0.1 - -- [vue] fix: Make sure that error is present before logging it in Vue (#3183) -- [serverless] fix: Fix issue when `/dist` didn't exist before building (#3190) - -## 6.0.0 - -_This major version release doesn't contain any breaking API/code changes._ Starting from the version `6.0.0`, all SDKs -that support sending sessions data will do so by default. See our -[Release Health](https://docs.sentry.io/product/releases/health/) docs to learn more. As of this version, it applies to -all Browser SDKs (Browser, React, Angular, Vue, Gatsby etc.). Node.js and other related Server SDKs will follow soon -after, in the minor `6.x` release. You can opt-out of this behavior by setting `autoSessionTracking: false` option -during SDK initialization. - ---- - -- [wasm] feat: Introduce a `@sentry/wasm` package (#3080) -- [tracing] feat: Turn Sessions Tracking on by default (#3099) -- [tracing] feat: Create session on history change (#3179) -- [core] feat: Attach SDK metadata to options and pass it to the API and transports (#3177) -- [build] feat: AWS Lambda layer target config for Craft (#3175) -- [tracing] fix: Make sure that mongo method is thenable before calling it (#3173) - -## 5.30.0 - -- [node] fix: esbuild warning dynamic require (#3164) -- [tracing] ref: Expose required things for React Native auto tracing (#3144) -- [ember] fix: rootURL breaking route recognition (#3166) -- [serverless] feat: Zip serverless dependencies for AWS Lambda (#3110) -- [build] feat: Target to deploy on AWS Lambda (#3165) -- [build] ref: Remove TravisCI (#3149) -- [build] ref: Upgrade action-prepare-release to latest version - -## 5.29.2 - -- Fix version - -## 5.29.1 - -- [types] ref: Loosen tag types, create new `Primitive` type (#3108) -- [tracing] feat: Send sample rate and type in transaction item header in envelope (#3068) -- [tracing] fix(web-vitals): Fix TTFB capture in Safari (#3106) - -## 5.29.0 - -- [tracing] feat: MongoDB Tracing Support (#3072) -- [tracing] feat: MySQL Tracing Support (#3088) -- [tracing] feat: PostgreSQL Tracing Support (#3064) -- [tracing] fix: Add `sentry-trace` header to outgoing http(s) requests in node (#3053) -- [node] fix: Revert express tracing integration type to use any (#3093) - -## 5.28.0 - -- [browser] fix: Handle expo file dir stack frames (#3070) -- [vue] feat: @sentry/vue (#2953) -- [node] ref: Revamp express route info extraction (#3084) -- [browser] fix: Dont append dsn twice to report dialog calls (#3079) -- [ember] fix: Use correct import from `@sentry/browser` (#3077) -- [node] ref: Express integration span name change and path unification (#3078) - -## 5.27.6 - -- [hub] fix: Don't invoke scope updates in scope listeners - -## 5.27.5 - -- [hub] fix: Sync ScopeListeners (#3065) -- [tracing] fix: Typo in constant name in @sentry/tracing (#3058) - -## 5.27.4 - -- [core] fix: Remove globalThis usage (#3033) -- [react] ref: Add React 17.x to peerDependencies (#3034) -- [tracing] fix: Express transaction name (#3048) -- [serverless] fix: AWS Execution duration (#3032) -- [serverless] fix: Add `optional` parameter to AWSServices integration (#3030) -- [serverless] fix: Wrap google cloud functions with a Proxy(). (#3035) -- [hub] fix: stop using @types/node in @sentry/hub (#3050) - -## 5.27.3 - -- [hub] fix: Make sure that `getSession` exists before calling it (#3017) -- [browser] feat: Add `DOMException.code` as tag if it exists (#3018) -- [browser] fix: Call `removeEventListener` twice only when necessary (#3016) -- [tracing] fix: Schedule the execution of the finish to let all the spans being closed first (#3022) -- [tracing] fix: Adjust some web vitals to be relative to fetchStart and some other improvements (#3019) -- [tracing] fix: Add transaction name as tag on error events (#3024) - -## 5.27.2 - -- [apm] ref: Delete sentry/apm package (#2990) -- [types] fix: make requestHandler options an own type (#2995) -- [core] fix: Use 'production' as default value for environment key (#3013) - -## 5.27.1 - -- [hub] fix: Preserve original user data for explicitly updated scopes (#2991) -- [ember] fix: prevent unexpected errors on transition (#2988) - -## 5.27.0 - -- [browser] feat: Sessions Health Tracking (#2973) -- [core] fix: Correct `processing` flag in `BaseClient` (#2983) -- [node] feat: use `req.cookies` if available instead of parsing (#2985) -- [core] ref: Use SentryError for `prepareEvent` rejections (#2973) -- [core] ref: Errors handling in `prepareEvent` pipeline (#2987) -- [serverless] feat: Implement tracing of Google Cloud Requests (#2981) -- [serverless] ref: Set global event processor and pass scope data for transactions (#2975) -- [tracing] feat: Add secure connect navigation timing (#2980) -- [tracing] feat: Capture time spent redirecting before loading the current page (#2986) -- [tracing] feat: Capture browser navigator information (#2966) -- [tracing] feat: Express router methods tracing (#2972) -- [tracing] ref: Only report FCP or FP if the page wasn't hidden prior to their instrumentation (#2979) - -## 5.26.0 - -- [serverless] feat: Implement error handling and tracing for `Google Cloud Functions` (#2945) -- [serverless] feat: Enable tracing for `AWSLambda` (#2945) -- [serverless] feat: Add `AWSResources` integration (#2945) -- [browser] feat: Implement `X-Sentry-Rate-Limits` handling for transports (#2962) -- [tracing] feat: Add measurements support and web vitals (#2909) -- [tracing] feat: Add web vitals: CLS and TTFB (#2964) -- [angular] ref: Make `@angular/common` a peerDependency instead of dependency (#2961) -- [ember] feat: Add more render instrumentation (#2902) -- [ember] ref: Use `@embroider/macros` instead of `runInDebug` (#2873) -- [hub] ref: Do not allow for popping last layer and unify getter methods (#2955) - -## 5.25.0 - -- [tracing] fix: Expose `startTransaction` in CDN bundle (#2938) -- [tracing] fix: Allow unsampled transactions to be findable by `getTransaction()` (#2952) -- [tracing] fix: Reimplement timestamp computation (#2947) -- [tracing] ref: Clean up sampling decision inheritance (#2921) (#2944) -- [react] fix: Makes `normalizeTransactionName` take a callback function in router-v3 (#2946) -- [ember] feat: Add more render instrumentation to @sentry/ember (#2902) -- [types] ref: Use correct types for `event.context` and allow for context removal (#2910) -- [types] ref: Make name required on transaction class (#2949) -- [build] feat: Update to use extends w. Volta (#2930) - -## 5.24.2 - -- [utils] fix: Check that performance is available before calling it in RN (#2924) - -## 5.24.1 - -- [types] fix: Remove Location type to avoid dom lib dependency (#2922) - -## 5.24.0 - -- [angular] fix: Make sure that message exist before returning it in angular error handler (#2903) -- [integrations] feat: Add referrer to data collected by UserAgent integration (#2912) -- [core] fix: Make sure that body is not exposed in the breadcrumb by default (#2911) -- [core] feat: Give access to XHR requests body in breadcrumb hint (#2904) -- [core] fix: Add a wrapper around performance for React Native (#2915) -- [integrations] fix: Make Vue tracing options optional (#2897) -- [integrations] ref: Remove unnecessary eventID check in offline integration (#2890) -- [tracing] feat: Add hook for trace sampling function to SDK options (#2820) - -## 5.23.0 - -- [serverless] feat: Introduce `@sentry/serverless` with `AWSLambda` support (#2886) -- [ember] feat: Add performance instrumentation for routes (#2784) -- [node] ref: Remove query strings from transaction and span names (#2857) -- [angular] ref: Strip query and fragment from Angular tracing URLs (#2874) -- [tracing] ref: Simplify `shouldCreateSpanForRequest` (#2867) - -## 5.22.3 - -- [integrations] fix: Window type (#2864) - -## 5.22.2 - -- [integrations] fix: localforage typing (#2861) - -## 5.22.1 - -- [integrations] fix: Add localforage typing (#2856) -- [tracing] fix: Make sure BrowserTracing is exported in CDN correctly (#2855) - -## 5.22.0 - -- [browser] ref: Recognize `Capacitor` scheme as `Gecko` (#2836) -- [node]: fix: Save `string` exception as a message for `syntheticException` (#2837) -- [tracing] feat: Add `build` dir in npm package (#2846) -- [tracing] fix: Fix typo in `addPerformanceEntries` method name (#2847) -- [apm] ref: Deprecate `@sentry/apm` package (#2844) -- [angular] fix: Allow for empty DSN/disabling with `AngularJS` integration (#2842) -- [gatsby] ref: Make `@sentry/tracing` mandatory + add tests (#2841) -- [integrations] feat: Add integration for offline support (#2778) -- [utils] ref: Revert the usage of `globalThis` for `getGlobalObject` util (#2851) -- [build] fix: Lock in `TypeScript` to `3.7.5` (#2848) -- [build] misc: Upgrade `Prettier` to `1.19.0` (#2850) - -## 5.21.4 - -- [ci] fix: Actually release correct code - -## 5.21.3 - -- [tracing] feat: Track span status for fetch requests (#2835) -- [react] fix: Return an any from createReduxEnhancer to avoid type conflicts (#2834) -- [react] fix: Make sure profiler is typed with any (#2838) - -## 5.21.2 - -- [tracing] fix: Normalize transaction names for express methods to match those of other SDKs (#2832) -- [tracing] feat: Change resource span op name and add data (#2816) -- [tracing] ref: Make sure error status is set on transactions (#2818) -- [apm/tracing] fix: Make sure Performance Observer takeRecords() is defined (#2825) - -## 5.21.1 - -- [ember] fix: Make the package public and fix the build by bumping TypeScript to v3.9 (#2811) -- [eslint] test: Don't test eslint config/plugin on Node <= v8 - -## 5.21.0 - -- [all] feat: Convert `sentry-javascript` to `ESLint` (#2786) -- [internal/eslint] feat: Add `@sentry-internal/eslint-config-sdk` (#2807) -- [ember] feat: Add `@sentry/ember` (#2739) -- [angular] feat: Add `@sentry/angular` (#2787) -- [react] feat: Add routing instrumentation for `React Router v4/v5` (#2780) -- [gatsby] feat: support `process.env.SENTRY_RELEASE` (#2776) -- [apm/tracing] feat: Export `addExtensionMethods` for SDKs to use (#2805) -- [apm/tracing] ref: Remove `express` typing (#2803) -- [node] fix: `Retry-After` header in node should be lower-case (#2779) - -## 5.20.1 - -- [core] ref: Expose sentry request for electron (#2774) -- [browser] fix: Make sure that DSN is always passed to report dialog (#2770) -- [apm/tracing] fix: Make sure fetch requests are being timed correctly (#2772) -- [apm/tracing] fix: Make sure pageload transactions start timestamps are correctly generated (#2773) -- [react] feat: Add instrumentation for React Router v3 (#2759) -- [react] ref: Use inline types to avoid redux dependency. (#2768) -- [node] fix: Set transaction on scope in node for request (#2769) - -## 5.20.0 - -- [browser] feat: Make `@sentry/browser` more treeshakeable (#2747) -- [browser] fix: Make sure that handler exists in `LinkedErrors` integration (#2742) -- [tracing] feat: Introduce `@sentry/tracing` (#2719) -- [tracing] ref: Use `idleTimout` if no activities occur in idle transaction (#2752) -- [react] feat: Export `createReduxEnhancer` to log redux actions as breadcrumbs, and attach state as an extra. (#2717) -- [react] feat: Add `beforeCapture` option to ErrorBoundary (#2753) -- [react] fix: Change import of `hoist-non-react-statics` (#2755) -- [gatsby] fix: Make `@sentry/apm` optional in `@sentry/gatsby` package (#2752) - -## 5.19.2 - -- [gatsby] fix: Include correct gatsby files in npm tarball (#2731) -- [browser] fix: Correctly detach event listeners (#2737) -- [browser] fix: Drop initial frame for production react errors (#2728) -- [node] chore: Upgrade https-proxy-agent to v5 (#2702) -- [types] ref: Define type for Extra(s) (#2727) - -## 5.19.1 - -- [browser] fix: Correctly remove all event listeners (#2725) -- [tracing] fix: APM CDN bundle expose startTransaction (#2726) -- [tracing] fix: Add manual `DOMStringList` typing (#2718) - -## 5.19.0 - -- [react] feat: Expose eventId on ErrorBoundary component (#2704) -- [node] fix: Extract transaction from nested express paths correctly (#2714) -- [tracing] feat: Pick up sentry-trace in JS `` tag (#2703) -- [tracing] fix: Respect fetch headers (#2712) (#2713) -- [tracing] fix: Check if performance.getEntries() exists (#2710) -- [tracing] fix: Add manual Location typing (#2700) -- [tracing] fix: Respect sample decision when continuing trace from header in node (#2703) -- [tracing] fix: All options of adding fetch headers (#2712) -- [gatsby] fix: Add gatsby SDK identifier (#2709) -- [gatsby] fix: Package gatsby files properly (#2711) - -## 5.18.1 - -- [react] feat: Update peer dependencies for `react` and `react-dom` (#2694) -- [react] ref: Change Profiler prop names (#2699) - -## 5.18.0 - -- [core] ref: Rename `whitelistUrls/blacklistUrls` to `allowUrls/denyUrls` (#2671) -- [core] feat: Export `makeMain` (#2665) -- [core] fix: Call `bindClient` when creating new `Hub` to make integrations work automatically (#2665) -- [react] feat: Add @sentry/react package (#2631) -- [react] feat: Add Error Boundary component (#2647) -- [react] feat: Add useProfiler hook (#2659) -- [react] ref: Refactor Profiler to account for update and render (#2677) -- [gatsby] feat: Add @sentry/gatsby package (#2652) -- [apm] feat: Add ability to get span from activity using `getActivitySpan` (#2677) -- [apm] fix: Check if `performance.mark` exists before calling it (#2680) -- [tracing] feat: Add `scope.getTransaction` to return a Transaction if it exists (#2668) -- [tracing] ref: Deprecate `scope.setTransaction` in favor of `scope.setTransactionName` (#2668) -- [tracing] feat: Add `beforeNavigate` option (#2691) -- [tracing] ref: Create navigation transactions using `window.location.pathname` instead of `window.location.href` - (#2691) - -## 5.17.0 - -- [browser] feat: Support `fetchParameters` (#2567) -- [apm] feat: Report LCP metric on pageload transactions (#2624) -- [core] fix: Normalize Transaction and Span consistently (#2655) -- [core] fix: Handle DSN qs and show better error messages (#2639) -- [browser] fix: Change XHR instrumentation order to handle `onreadystatechange` breadcrumbs correctly (#2643) -- [apm] fix: Re-add TraceContext for all events (#2656) -- [integrations] fix: Change Vue interface to be inline with the original types (#2634) -- [apm] ref: Use startTransaction where appropriate (#2644) - -## 5.16.1 - -- [node] fix: Requests to old `/store` endpoint need the `x-sentry-auth` header in node (#2637) - -## 5.16.0 - -_If you are a `@sentry/apm` and did manual instrumentation using `hub.startSpan` please be aware of the changes we did -to the API. The recommended entry point for manual instrumentation now is `Sentry.startTransaction` and creating child -Span by calling `startChild` on it. We have internal workarounds in place so the old code should still work but will be -removed in the future. If you are only using the `Tracing` integration there is no need for action._ - -- [core] feat: Send transactions in envelopes (#2553) -- [core] fix: Send event timestamp (#2575) -- [browser] feat: Allow for configuring TryCatch integration (#2601) -- [browser] fix: Call wrapped `RequestAnimationFrame` with correct context (#2570) -- [node] fix: Prevent reading the same source file multiple times (#2569) -- [integrations] feat: Vue performance monitoring (#2571) -- [apm] fix: Use proper type name for op (#2584) -- [core] fix: sent_at for envelope headers to use same clock (#2597) -- [apm] fix: Improve bundle size by moving span status to @sentry/apm (#2589) -- [apm] feat: No longer discard transactions instead mark them deadline exceeded (#2588) -- [apm] feat: Introduce `Sentry.startTransaction` and `Transaction.startChild` (#2600) -- [apm] feat: Transactions no longer go through `beforeSend` (#2600) -- [browser] fix: Emit Sentry Request breadcrumbs from inside the client (#2615) -- [apm] fix: No longer debounce IdleTransaction (#2618) -- [apm] feat: Add pageload transaction option + fixes (#2623) -- [minimal/core] feat: Allow for explicit scope through 2nd argument to `captureException/captureMessage` (#2627) - -## 5.15.5 - -- [browser/node] Add missing `BreadcrumbHint` and `EventHint` types exports (#2545) -- [utils] fix: Prevent `isMatchingPattern` from failing on invalid input (#2543) - -## 5.15.4 - -- [node] fix: Path domain onto global extension method to not use require (#2527) - -## 5.15.3 - -- [hub] fix: Restore dynamicRequire, but for `perf_hooks` only (#2524) - -## 5.15.2 - -- [hub] fix: Remove dynamicRequire, Fix require call (#2521) - -## 5.15.1 - -- [browser] fix: Prevent crash for react native instrumenting fetch (#2510) -- [node] fix: Remove the no longer required dynamicRequire hack to fix scope memory leak (#2515) -- [node] fix: Guard against invalid req.user input (#2512) -- [node] ref: Move node version to runtime context (#2507) -- [utils] fix: Make sure that SyncPromise handler is called only once (#2511) - -## 5.15.0 - -- [apm] fix: Sampling of traces work now only depending on the client option `tracesSampleRate` (#2500) -- [apm] fix: Remove internal `forceNoChild` parameter from `hub.startSpan` (#2500) -- [apm] fix: Made constructor of `Span` internal, only use `hub.startSpan` (#2500) -- [apm] ref: Remove status from tags in transaction (#2497) -- [browser] fix: Respect breadcrumbs sentry:false option (#2499) -- [node] ref: Skip body parsing for GET/HEAD requests (#2504) - -## 5.14.2 - -- [apm] fix: Use Performance API for timings when available, including Web Workers (#2492) -- [apm] fix: Remove Performance references (#2495) -- [apm] fix: Set `op` in node http.server transaction (#2496) - -## 5.14.1 - -- [apm] fix: Check for performance.timing in webworkers (#2491) -- [apm] ref: Remove performance clear entry calls (#2490) - -## 5.14.0 - -- [apm] feat: Add a simple heartbeat check, if activities don't change in 3 beats, finish the transaction (#2478) -- [apm] feat: Make use of the `performance` browser API to provide better instrumentation (#2474) -- [browser] ref: Move global error handler + unhandled promise rejection to instrument (#2475) -- [apm] ref: Always use monotonic clock for time calculations (#2485) -- [apm] fix: Add trace context to all events (#2486) - -## 5.13.2 - -- [apm] feat: Add `discardBackgroundSpans` to discard background spans by default - -## 5.13.1 - -- [node] fix: Restore engines back to `>= 6` - -## 5.13.0 - -- [apm] feat: Add `options.autoPopAfter` parameter to `pushActivity` to prevent never-ending spans (#2459) -- [apm] fix: Use monotonic clock to compute durations (#2441) -- [core] ref: Remove unused `sentry_timestamp` header (#2458) -- [node] ref: Drop Node v6, add Node v12 to test matrix, move all scripts to Node v12 (#2455) -- [utils] ref: Prevent instantiating unnecessary Date objects in `timestampWithMs` (#2442) -- [browser] fix: Mark transactions as event.transaction in breadcrumbs correctly - -## 5.12.5 - -- [browser] ref: Mark transactions as event.transaction in breadcrumbs (#2450) -- [node] fix: Dont overwrite servername in requestHandler (#2449) -- [utils] ref: Move creation of iframe into try/catch in fetch support check (#2447) - -## 5.12.4 +## 6.x -- [browser] ref: Rework XHR wrapping logic to make sure it always triggers (#2438) -- [browser] fix: Handle PromiseRejectionEvent-like CustomEvents (#2429) -- [core] ref: Notify user when event failed to deliver because of digestion pipeline issue (#2416) -- [node] fix: Improve incorrect `ParseRequest` typing (#2433) -- [apm] fix: Remove auto unknown_error transaction status (#2440) -- [apm] fix: Properly remove undefined keys from apm payload (#2414) +A full list of changes in the `6.x` release of the SDK can be found in the [6.x Changelog](./docs/changelog/v6.md). -## 5.12.3 +## 5.x -- [apm] fix: Remove undefined keys from trace.context (#2413) +A full list of changes in the `5.x` release of the SDK can be found in the [5.x Changelog](./docs/changelog/v5.md). -## 5.12.2 +## 4.x -- [apm] ref: Check if Tracing integration is enabled before dropping transaction - -## 5.12.1 - -- [apm] ref: If `maxTransactionTimeout` = `0` there is no timeout (#2410) -- [apm] fix: Make sure that the `maxTransactionTimeout` is always enforced on transaction events (#2410) -- [browser] fix: Support for Hermes stacktraces (#2406) - -## 5.12.0 - -- [core] feat: Provide `normalizeDepth` option and sensible default for scope methods (#2404) -- [browser] fix: Export `EventHint` type (#2407) - -## 5.11.2 - -- [apm] fix: Add new option to `Tracing` `maxTransactionTimeout` determines the max length of a transaction (#2399) -- [hub] ref: Always also set transaction name on the top span in the scope -- [core] fix: Use `event_id` from hint given by top-level hub calls - -## 5.11.1 - -- [apm] feat: Add build bundle including @sentry/browser + @sentry/apm -- [utils] ref: Extract adding source context incl. tests - -## 5.11.0 - -- [apm] fix: Always attach `contexts.trace` to finished transaction (#2353) -- [integrations] fix: Make RewriteFrame integration process all exceptions (#2362) -- [node] ref: Update agent-base to 5.0 to remove http/s patching (#2355) -- [browser] feat: Set headers from options in XHR/fetch transport (#2363) - -## 5.10.2 - -- [browser] fix: Always trigger default browser onerror handler (#2348) -- [browser] fix: Restore correct `functionToString` behavior for updated `fill` method (#2346) -- [integrations] ref: Allow for backslashes in unix paths (#2319) -- [integrations] feat: Support Windows-style path in RewriteFrame iteratee (#2319) - -## 5.10.1 - -- [apm] fix: Sent correct span id with outgoing requests (#2341) -- [utils] fix: Make `fill` and `wrap` work nicely together to prevent double-triggering instrumentations (#2343) -- [node] ref: Require `https-proxy-agent` only when actually needed (#2334) - -## 5.10.0 - -- [hub] feat: Update `span` implementation (#2161) -- [apm] feat: Add `@sentry/apm` package -- [integrations] feat: Change `Tracing` integration (#2161) -- [utils] feat: Introduce `instrument` util to allow for custom handlers -- [utils] Optimize `supportsNativeFetch` with a fast path that avoids DOM I/O (#2326) -- [utils] feat: Add `isInstanceOf` util for safety reasons - -## 5.9.1 - -- [browser] ref: Fix regression with bundle size - -## 5.9.0 - -- [node] feat: Added `mode` option for `OnUnhandledRejection` integration that changes how we log errors and what we do - with the process itself -- [browser] ref: Both global handlers now always return `true` to call default implementations (error logging) - -## 5.8.0 - -- [browser/node] feat: 429 http code handling in node/browser transports (#2300) -- [core] feat: Make sure that Debug integration is always setup as the last one (#2285) -- [browser] fix: Gracefuly handle incorrect input from onerror (#2302) -- [utils] fix: Safer normalizing for input with `domain` key (#2305) -- [utils] ref: Remove dom references from utils for old TS and env interop (#2303) - -## 5.7.1 - -- [core] ref: Use the smallest possible interface for our needs - `PromiseLike` (#2273) -- [utils] fix: Add TS dom reference to make sure its in place for compilation (#2274) - -## 5.7.0 - -- [core] ref: Use `Promise` as the interface, but `SyncPromise` as the implementation in all the places we need - `thenable` API -- [browser] fix: Capture only failed `console.assert` calls -- [browser] ref: Major `TraceKit` and `GlobalHandlers` refactor -- [browser] ref: Remove _all_ required IE10-11 polyfills -- [browser] ref: Remove `Object.assign` method usage -- [browser] ref: Remove `Number.isNaN` method usage -- [browser] ref: Remove `includes` method usage -- [browser] ref: Improve usage of types in `addEventListener` breadcrumbs wrapper -- [browser] ci: Use Galaxy S9 Plus for Android 9 -- [browser] ci: Increase timeouts and retries between Travis and BrowserStack -- [node] fix: Update https-proxy-agent to 3.0.0 for security reasons (#2262) -- [node] feat: Extract prototyped data in `extractUserData` (#2247) -- [node] ref: Use domain Hub detection only in Node environment -- [integrations] feat: Use `contexts` to handle ExtraErrorData (#2208) -- [integrations] ref: Remove `process.env.NODE_ENV` from Vue integration (#2263) -- [types] fix: Breadcrumb `data` needs to be an object -- [utils] ref: Make `Event` instances somewhat serializeable - -## 5.6.3 - -- [browser] fix: Don't capture our own XHR events that somehow bubbled-up to global handler (#2221) - -## 5.6.2 - -- [browser] feat: Use framesToPop for InvaliantViolations in React errors (#2204) -- [browser] fix: Apply crossorigin attribute with setAttribute tag for userReport dialog (#2196) -- [browser] fix: Make sure that falsy values are captured in unhandledrejections (#2207) -- [loader] fix: Loader should also retrigger falsy values as errors (#2207) - -## 5.6.1 - -- [core] fix: Correctly detect when client is enabled before installing integrations (#2193) -- [browser] ref: Loosen typings in `wrap` method - -## 5.6.0 - -- [core] fix: When using enabled:false integrations shouldnt be installed (#2181) -- [browser] feat: Add support for custom schemes to Tracekit -- [browser] ref: Return function call result from `wrap` method -- [browser] ref: Better UnhandledRejection messages (#2185) -- [browser] test: Complete rewrite of Browser Integration Tests (#2176) -- [node] feat: Add cookies as an optional property in the request handler (#2167) -- [node] ref: Unify method name casing in breadcrumbs (#2183) -- [integrations] feat: Add logErrors option to Vue integration (#2182) - -## 5.5.0 - -- [core] fix: Store processing state for each `flush` call separately (#2143) -- [scope] feat: Generate hint if not provided in the Hub calls (#2142) -- [browser] feat: Read `window.SENTRY_RELEASE` to set release by default (#2132) -- [browser] fix: Don't call `fn.handleEvent.bind` if `fn.handleEvent` does not exist (#2138) -- [browser] fix: Correctly handle events that utilize `handleEvent` object (#2149) -- [node] feat: Provide optional `shouldHandleError` option for node `errorHandler` (#2146) -- [node] fix: Remove unsafe `any` from `NodeOptions` type (#2111) -- [node] fix: Merge `transportOptions` correctly (#2151) -- [utils] fix: Add polyfill for `Object.setPrototypeOf` (#2127) -- [integrations] feat: `SessionDuration` integration (#2150) - -## 5.4.3 - -- [core] feat: Expose `Span` class -- [node] fix: Don't overwrite transaction on event in express handler - -## 5.4.2 - -- [core] fix: Allow `Integration` constructor to have arguments -- [browser] fix: Vue breadcrumb recording missing in payload -- [node] fix: Force agent-base to be at version 4.3.0 to fix various issues. Fix #1762, fix #2085 -- [integrations] fix: Tracing integration fetch headers bug where trace header is not attached if there are no options. -- [utils] fix: Better native `fetch` detection via iframes. Fix #1601 - -## 5.4.1 - -- [integrations] fix: Tracing integration fetch headers bug. - -## 5.4.0 - -- [global] feat: Exposed new simplified scope API. `Sentry.setTag`, `Sentry.setTags`, `Sentry.setExtra`, - `Sentry.setExtras`, `Sentry.setUser`, `Sentry.setContext` - -## 5.3.1 - -- [integrations] fix: Tracing integration CDN build. - -## 5.3.0 - -- [browser] fix: Remove `use_strict` from `@sentry/browser` -- [utils] fix: Guard string check in `truncate` -- [browser] fix: TraceKit fix for eval frames - -## 5.2.1 - -- [browser] feat: Expose `wrap` function in `@sentry/browser` -- [browser] feat: Added `onLoad` callback to `showReportDialog` -- [browser] fix: Use 'native code' as a filename for some frames - -## 5.2.0 - -- [opentracing] ref: Removed opentracing package -- [integrations] feat: Add tracing integration -- [hub] feat: Add tracing related function to scope and hub (`Scope.startSpan`, `Scope.setSpan`, `Hub.traceHeaders`) -- [hub] feat: Add new function to Scope `setContext` -- [hub] feat: Add new function to Scope `setTransaction` -- [integrations] fix: Update ember integration to include original error in `hint` in `beforeSend` -- [integrations] fix: Ember/Vue fix integration - -## 5.1.3 - -- [browser] fix: GlobalHandler integration sometimes receives Event objects as message: Fix #1949 - -## 5.1.2 - -- [browser] fix: Fixed a bug if Sentry was initialized multiple times: Fix #2043 -- [browser] ref: Mangle more stuff, reduce bundle size -- [browser] fix: Support for ram bundle frames -- [node] fix: Expose lastEventId method - -## 5.1.1 - -- [browser] fix: Breadcrumb Integration: Fix #2034 - -## 5.1.0 - -- [hub] feat: Add `setContext` on the scope -- [browser] fix: Breacrumb integration ui clicks -- [node] feat: Add `flushTimeout` to `requestHandler` to auto flush requests - -## 5.0.8 - -- [core] fix: Don't disable client before flushing -- [utils] fix: Remove node types -- [hub] fix: Make sure all breadcrumbs have a timestamp -- [hub] fix: Merge event with scope breadcrumbs instead of only using event breadcrumbs - -## 5.0.7 - -- [utils] ref: Move `htmlTreeAsString` to `@sentry/browser` -- [utils] ref: Remove `Window` typehint `getGlobalObject` -- [core] fix: Make sure that flush/close works as advertised -- [integrations] feat: Added `CaptureConsole` integration - -## 5.0.6 - -- [utils]: Change how we use `utils` and expose `esm` build -- [utils]: Remove `store` and `fs` classes -> moved to @sentry/electron where this is used -- [hub]: Allow to pass `null` to `setUser` to reset it - -## 5.0.5 - -- [esm]: `module` in `package.json` now provides a `es5` build instead of `es2015` - -## 5.0.4 - -- [integrations] fix: Not requiring angular types - -## 5.0.3 - -- [hub] fix: Don't reset registry when there is no hub on the carrier #1969 -- [integrations] fix: Export dedupe integration - -## 5.0.2 - -- [browser] fix: Remove `browser` field from `package.json` - -## 5.0.1 - -- [browser] fix: Add missing types - -## 5.0.0 - -This major bump brings a lot of internal improvements. Also, we extracted some integrations out of the SDKs and put them -in their own package called `@sentry/integrations`. For a detailed guide how to upgrade from `4.x` to `5.x` refer to our -[migration guide](https://github.com/getsentry/sentry-javascript/blob/master/MIGRATION.md). - -### Migration from v4 - -If you were using the SDKs high level API, the way we describe it in the docs, you should be fine without any code -changes. This is a **breaking** release since we removed some methods from the public API and removed some classes from -the default export. - -- **breaking** [node] fix: Events created from exception shouldn't have top-level message attribute -- [utils] ref: Update wrap method to hide internal sentry flags -- [utils] fix: Make internal Sentry flags non-enumerable in fill utils -- [utils] ref: Move `SentryError` + `PromiseBuffer` to utils -- **breaking** [core] ref: Use `SyncPromise` internally, this reduces memory pressure by a lot. -- ref: Move internal `ExtendedError` to a types package -- **breaking** [browser] ref: Removed `BrowserBackend` from default export. -- **breaking** [node] ref: Removed `BrowserBackend` from default export. -- **breaking** [core] feat: Disable client once flushed using `close` method -- **breaking** [core] ref: Pass `Event` to `sendEvent` instead of already stringified data -- [utils] feat: Introduce `isSyntheticEvent` util -- **breaking** [utils] ref: remove `isArray` util in favor of `Array.isArray` -- **breaking** [utils] ref: Remove `isNaN` util in favor of `Number.isNaN` -- **breaking** [utils] ref: Remove `isFunction` util in favor of `typeof === 'function'` -- **breaking** [utils] ref: Remove `isUndefined` util in favor of `=== void 0` -- **breaking** [utils] ref: Remove `assign` util in favor of `Object.assign` -- **breaking** [utils] ref: Remove `includes` util in favor of native `includes` -- **breaking** [utils] ref: Rename `serializeKeysToEventMessage` to `keysToEventMessage` -- **breaking** [utils] ref: Rename `limitObjectDepthToSize` to `normalizeToSize` and rewrite its internals -- **breaking** [utils] ref: Rename `safeNormalize` to `normalize` and rewrite its internals -- **breaking** [utils] ref: Remove `serialize`, `deserialize`, `clone` and `serializeObject` functions -- **breaking** [utils] ref: Rewrite normalization functions by removing most of them and leaving just `normalize` and - `normalizeToSize` -- **breaking** [core] ref: Extract all pluggable integrations into a separate `@sentry/integrations` package -- **breaking** [core] ref: Move `extraErrorData` integration to `@sentry/integrations` package -- [core] feat: Add `maxValueLength` option to adjust max string length for values, default is 250. -- [hub] feat: Introduce `setExtras`, `setTags`, `clearBreadcrumbs`. -- **breaking** [all] feat: Move `Mechanism` to `Exception` -- [browser/node] feat: Add `synthetic` to `Mechanism` in exception. -- [browser/node] fix: Use `addExceptionTypeValue` in helpers -- [browser] ref: Remove unused TraceKit code -- **breaking** [all] build: Expose `module` in `package.json` as entry point for esm builds. -- **breaking** [all] build: Use `es6` target instead of esnext for ESM builds -- [all] feat: Prefix all private methods with `_` -- [all] build: Use terser instead of uglify -- [opentracing] feat: Introduce `@sentry/opentracing` providing functions to attach opentracing data to Sentry Events -- **breaking** [core] ref: `Dedupe` Integration is now optional, it is no longer enabled by default. -- **breaking** [core] ref: Removed default client fingerprinting for messages -- [node] ref: Remove stack-trace dependencies -- **breaking** [core] ref: Transport function `captureEvent` was renamed to `sendEvent` -- [node] fix: Check if buffer isReady before sending/creating Promise for request. -- [browser] fix: Remove beacon transport. -- [browser] fix: Don't mangle names starting with two `__` -- [utils] fix: Ensure only one logger instance -- [node] feat: Add esm build -- [integrations] feat: Fix build and prepare upload to cdn -- [integrations] fix: Bug in vue integration with `attachProps` -- **breaking** [core] ref: Remove SDK information integration -- **breaking** [core] ref: Remove `install` function on integration interface -- [node] feat: Add esm build -- [integrations] feat: Fix build and prepare upload to cdn -- [integrations] fix: Bug in vue integration with `attachProps` - -## 5.0.0-rc.3 - -- [browser] fix: Don't mangle names starting with two `__` -- [utils] fix: Ensure only one logger instance - -## 5.0.0-rc.2 - -- [browser] fix: Remove beacon transport. - -## 5.0.0-rc.1 - -- [node] fix: Check if buffer isReady before sending/creating Promise for request. - -## 5.0.0-rc.0 - -- Fix: Tag npm release with `next` to not make it latest - -## 5.0.0-beta.2 - -- Fix: NPM release - -## 5.0.0-beta1 - -### Migration from v4 - -This major bump brings a lot of internal improvements. This is a **breaking** release since we removed some methods from -the public API and removed some classes from the default export. - -- **breaking** [node] fix: Events created from exception shouldn't have top-level message attribute -- [utils] ref: Update wrap method to hide internal sentry flags -- [utils] fix: Make internal Sentry flags non-enumerable in fill utils -- [utils] ref: Move `SentryError` + `PromiseBuffer` to utils -- **breaking** [core] ref: Use `SyncPromise` internally, this reduces memory pressure by a lot. -- **breaking** [browser] ref: Removed `BrowserBackend` from default export. -- **breaking** [node] ref: Removed `BrowserBackend` from default export. -- **breaking** [core] feat: Disable client once flushed using `close` method -- ref: Move internal `ExtendedError` to a types package -- **breaking** [core] ref: Pass `Event` to `sendEvent` instead of already stringified data -- [utils] feat: Introduce `isSyntheticEvent` util -- **breaking** [utils] ref: remove `isArray` util in favor of `Array.isArray` -- **breaking** [utils] ref: Remove `isNaN` util in favor of `Number.isNaN` -- **breaking** [utils] ref: Remove `isFunction` util in favor of `typeof === 'function'` -- **breaking** [utils] ref: Remove `isUndefined` util in favor of `=== void 0` -- **breaking** [utils] ref: Remove `assign` util in favor of `Object.assign` -- **breaking** [utils] ref: Remove `includes` util in favor of native `includes` -- **breaking** [utils] ref: Rename `serializeKeysToEventMessage` to `keysToEventMessage` -- **breaking** [utils] ref: Rename `limitObjectDepthToSize` to `normalizeToSize` and rewrite its internals -- **breaking** [utils] ref: Rename `safeNormalize` to `normalize` and rewrite its internals -- **breaking** [utils] ref: Remove `serialize`, `deserialize`, `clone` and `serializeObject` functions -- **breaking** [utils] ref: Rewrite normalization functions by removing most of them and leaving just `normalize` and - `normalizeToSize` -- **breaking** [core] ref: Extract all pluggable integrations into a separate `@sentry/integrations` package -- **breaking** [core] ref: Move `extraErrorData` integration to `@sentry/integrations` package -- [core] feat: Add `maxValueLength` option to adjust max string length for values, default is 250. -- [hub] feat: Introduce `setExtras`, `setTags`, `clearBreadcrumbs`. -- **breaking** [all] feat: Move `Mechanism` to `Exception` -- [browser/node] feat: Add `synthetic` to `Mechanism` in exception. -- [browser/node] fix: Use `addExceptionTypeValue` in helpers -- [browser] ref: Remove unused TraceKit code -- **breaking** [all] build: Expose `module` in `package.json` as entry point for esm builds. -- **breaking** [all] build: Use `es6` target instead of esnext for ESM builds -- [all] feat: Prefix all private methods with `_` -- [all] build: Use terser instead of uglify -- [opentracing] feat: Introduce `@sentry/opentracing` providing functions to attach opentracing data to Sentry Events -- **breaking** [core] ref: `Dedupe` Integration is now optional, it is no longer enabled by default. -- **breaking** [core] ref: Removed default client fingerprinting for messages -- [node] ref: Remove stack-trace dependencies -- **breaking** [core] ref: Transport function `captureEvent` was renamed to `sendEvent` - -## 4.6.4 - -- [utils] fix: Prevent decycling from referencing original objects -- [utils] fix: Preserve correct name when wrapping -- [raven-node] test: Update raven-node tests for new node version - -## 4.6.3 - -- [utils] fix: Normalize value before recursively walking down the tree -- [browser] ref: Check whether client is enabled for reportDialog and log instead of throw - -## 4.6.2 - -- [utils] fix: Preserve function prototype when filling -- [utils] fix: use a static object as fallback of the global object -- [node] feat: Read from `SENTRY_RELEASE` and `SENTRY_ENVIRONMENT` if present - -## 4.6.1 - -- [utils] fix: Patch `tslib_1__default` regression and add additional tests around it - -## 4.6.0 - -- [loader] fix: Detect if `init` has been called in an onload callback -- [core] fix: Use correct frame for `inboundFilter` methods -- [core] ref: Multiple `init` calls have been changed to "latest wins" instead of "ignore all after first" -- [core] feat: Introduce `flush` method which currently is an alias for `close` -- [node] feat: If `options.dsn` is undefined when calling `init` we try to load it from `process.env.SENTRY_DSN` -- [node] feat: Expose `flush` and `close` on `Sentry.*` -- [node] feat: Add `sentry` to express error handler response which contains the `event_id` of the error - -## 4.5.4 - -- [browser] fix: `DOMError` and `DOMException` should be error level events -- [browser] ref: Log error if Ember/Vue instances are not provided -- [utils] fix: Dont mutate original input in `decycle` util function -- [utils] fix: Skip non-enumerable properties in `decycle` util function -- [utils] ref: Update `wrap` method to hide internal Sentry flags -- [utils] fix: Make internal Sentry flags non-enumerable in `fill` util - -## 4.5.3 - -- [browser]: fix: Fix UnhandledPromise: [object Object] -- [core]: fix: Error in extraErrorData integration where event would not be send in case of non assignable object - property. -- [hub]: feat: Support non async event processors - -## 4.5.2 - -- [utils] fix: Decycling for objects to no produce an endless loop -- [browser] fix: `` event for unhandledRejection -- [loader] fix: Handle unhandledRejection the same way as it would be thrown - -## 4.5.1 - -- [utils] fix: Don't npm ignore esm for utils - -## 4.5.0 - -- [core] feat: Deprecate `captureEvent`, prefer `sendEvent` for transports. `sendEvent` now takes a string (body) - instead of `Event` object. -- [core] feat: Use correct buffer for requests in transports -- [core] feat: (beta) provide esm build -- [core] ref: Change way how transports are initialized -- [core] ref: Rename `RequestBuffer` to `PromiseBuffer`, also introduce limit -- [core] ref: Make sure that captureMessage input is a primitive -- [core] fix: Check if value is error object in extraErrorData integration -- [browser] fix: Prevent empty exception values -- [browser] fix: Permission denied to access property name -- [node] feat: Add file cache for providing pre/post context in frames -- [node] feat: New option `frameContextLines`, if set to `0` we do not provide source code pre/post context, default is - `7` lines pre/post -- [utils] fix: Use custom serializer inside `serialize` method to prevent circular references - -## 4.4.2 - -- [node] Port memory-leak tests from raven-node -- [core] feat: ExtraErrorData integration -- [hub] ref: use safeNormalize on any data we store on Scope -- [utils] feat: Introduce safeNormalize util method to unify stored data -- [loader] Support multiple onLoad callbacks - -## 4.4.1 - -- [core] Bump dependencies to remove flatmap-stream - -## 4.4.0 - -- [node] HTTP(S) Proxy support -- [node] Expose lastEventId method -- [browser] Correctly detect and remove wrapped function frames - -## 4.3.4 - -- [utils] fix: Broken tslib import - Fixes #1757 - -## 4.3.3 - -- [build] ref: Dont emit TypeScript helpers in every file separately -- [node] fix: Move stacktrace types from devDeps to deps as its exposed -- [browser] misc: Added browser examples page - -## 4.3.2 - -- [browser] fix: Typings for npm package - -## 4.3.1 - -- [browser] ref: Breadcrumbs will now be logged only to a max object depth of 2 -- [core] feat: Filter internal Sentry errors from transports/sdk -- [core] ref: Better fingerprint handling -- [node] ref: Expose Parsers functions - -## 4.3.0 - -- [browser]: Move `ReportingObserver` integration to "pluggable" making it an opt-in integration -- [utils]: Use node internal `path` / `fs` for `store.ts` - -## 4.2.4 - -- [browser]: Use `withScope` in `Ember` integration instead of manual `pushPop/popScope` calls -- [browser] fix: rethrow errors in testing mode with `Ember` integration (#1696) -- [browser/node]: Fix `LinkedErrors` integration to send exceptions in correct order and take main exception into the - `limit` count -- [browser/node] ref: Re-export `addGlobalEventProcessor` -- [core]: Fix `InboundFilters` integration so that it reads and merge configuration from the `init` call as well - -## 4.2.3 - -- [utils]: `bundlerSafeRequire` renamed to `dynamicRequire` now takes two arguments, first is should be `module`, second - `request` / `moduleName`. - -## 4.2.2 - -- [core]: Several internal fixes regarding integration, exports and domain. -- [core]: "De-deprecate" name of `Integration` interface. -- [node]: Export `parseRequest` on `Handlers`. - -## 4.2.1 - -- [core] Invert logger logic the explicitly enable it. -- [hub] Require `domain` in `getCurrentHub` in try/catch - Fixed #1670 -- [hub] Removed exposed getter on the Scope. - -## 4.2.0 - -- [browser] fix: Make `addBreadcrumb` sync internally, `beforeBreadcrumb` is now only sync -- [browser] fix: Remove internal `console` guard in `beforeBreadcrumb` -- [core] feat: Integrations now live on the `Client`. This means that when binding a new Client to the `Hub` the client - itself can decide which integration should run. -- [node] ref: Simplify Node global handlers code - -## 4.1.1 - -- [browser] fix: Use our own path utils instead of node built-ins -- [node] fix: Add colon to node base protocol to follow http module -- [utils] feat: Create internal path module - -## 4.1.0 - -- [browser] feat: Better mechanism detection in TraceKit -- [browser] fix: Change loader to use getAttribute instead of dataset -- [browser] fix: Remove trailing commas from loader for IE10/11 -- [browser] ref: Include md5 lib and transcript it to TypeScript -- [browser] ref: Remove all trailing commas from integration tests cuz IE10/11 -- [browser] ref: Remove default transaction from browser -- [browser] ref: Remove redundant debug.ts file from browser integrations -- [browser] test: Fix all integration tests in IE10/11 and Android browsers -- [browser] test: Run integration tests on SauceLabs -- [browser] test: Stop running raven-js saucelabs tests in favour of @sentry/browser -- [browser] test: Store breadcrumbs in the global variable in integration tests -- [browser] test: Update polyfills for integration tests -- [build] ref: Use Mocha v4 instead of v5, as it's not supporting IE10 -- [core] feat: Introduce stringify and debugger options in Debug integration -- [core] feat: RewriteFrames pluggable integration -- [core] feat: getRequestheaders should handle legacy DSNs -- [core] fix: correct sampleRate behaviour -- [core] misc: Warn user when beforeSend doesnt return an event or null -- [core] ref: Check for node-env first and return more accurate global object -- [core] ref: Remove Repo interface and repos attribute from Event -- [core] ref: Rewrite RequestBuffer using Array instead of Set for IE10/11 -- [hub] fix: Scope level overwrites level on the event -- [hub] fix: Correctly store and retrieve Hub from domain when one is active -- [hub] fix: Copy over user data when cloning scope -- [node] feat: Allow requestHandler to be configured -- [node] feat: Allow pick any user attributes from requestHandler -- [node] feat: Make node transactions a pluggable integration with tests -- [node] feat: Transactions handling for RequestHandler in Express/Hapi -- [node] fix: Dont wrap native modules more than once to prevent leaks -- [node] fix: Add the same protocol as dsn to base transport option -- [node] fix: Use getCurrentHub to retrieve correct hub in requestHandler -- [utils] ref: implemented includes, assign and isNaN polyfills - -## 4.0.6 - -- [browser] fix: Fallback to Error object when rejection `reason` is not available -- [browser] feat: Support Bluebird's `detail.reason` for promise rejections -- [types] fix: Use correct type for event's repos attribute - -## 4.0.5 - -- [browser] ref: Expose `ReportDialogOptions` -- [browser] ref: Use better default message for ReportingObserver -- [browser] feat: Capture wrapped function arguments as extra -- [browser] ref: Unify integrations options and set proper defaults -- [browser] fix: Array.from is not available in old mobile browsers -- [browser] fix: Check for anonymous function before getting its name for mechanism -- [browser] test: Add loader + integration tests -- [core] ref: Move SDKInformation integration into core prepareEvent method -- [core] ref: Move debug initialization as the first step -- [node] fix: Make handlers types compatibile with Express -- [utils] fix: Dont break when non-string is passed to truncate -- [hub] feat: Add `run` function that makes `this` hub the current global one - -## 4.0.4 - -- [browser] feat: Add `forceLoad` and `onLoad` function to be compatible with loader API - -## 4.0.3 - -- [browser] feat: Better dedupe integration event description -- [core] ref: Move Dedupe, FunctionString, InboundFilters and SdkInformation integrations to the core package -- [core] feat: Provide correct platform and make a place to override event internals -- [browser] feat: UserAgent integration - -## 4.0.2 - -- [browser] fix: Dont filter captured messages when they have no stacktraces - -## 4.0.1 - -- [browser] feat: Show dropped event url in `blacklistUrl`/`whitelistUrl` debug mode -- [browser] feat: Use better event description instead of `event_id` for user-facing logs -- [core] ref: Create common integrations that are exposed on `@sentry/core` and reexposed through `browser`/`node` -- [core] feat: Debug integration -- [browser] ref: Port TraceKit to TypeScript and disable TraceKit's remote fetching for now - -## 4.0.0 - -This is the release of our new SDKs, `@sentry/browser`, `@sentry/node`. While there are too many changes to list for -this release, we will keep a consistent changelog for upcoming new releases. `raven-js` (our legacy JavaScript/Browser -SDK) and `raven` (our legacy Node.js SDK) will still reside in this repo, but they will receive their own changelog. - -We generally guide people to use our new SDKs from this point onward. The migration should be straightforward if you -were only using the basic features of our previous SDKs. - -`raven-js` and `raven` will both still receive bugfixes but all the new features implemented will only work in the new -SDKs. The new SDKs are completely written in TypeScript, which means all functions, classes and properties are typed. - -## Links - -- [Official SDK Docs](https://docs.sentry.io/quickstart/) -- [TypeDoc](http://getsentry.github.io/sentry-javascript/) - -### Migration - -Here are some examples of how the new SDKs work. Please note that the API for all JavaScript SDKs is the same. - -#### Installation - -_Old_: - -```js -Raven.config('___PUBLIC_DSN___', { - release: '1.3.0', -}).install(); -``` - -_New_: - -```js -Sentry.init({ - dsn: '___PUBLIC_DSN___', - release: '1.3.0', -}); -``` - -#### Set a global tag - -_Old_: - -```js -Raven.setTagsContext({ key: 'value' }); -``` - -_New_: - -```js -Sentry.configureScope(scope => { - scope.setTag('key', 'value'); -}); -``` - -#### Capture custom exception - -_Old_: - -```js -try { - throwingFunction(); -} catch (e) { - Raven.captureException(e, { extra: { debug: false } }); -} -``` - -_New_: - -```js -try { - throwingFunction(); -} catch (e) { - Sentry.withScope(scope => { - scope.setExtra('debug', false); - Sentry.captureException(e); - }); -} -``` - -#### Capture a message - -_Old_: - -```js -Raven.captureMessage('test', 'info', { extra: { debug: false } }); -``` - -_New_: - -```js -Sentry.withScope(scope => { - scope.setExtra('debug', false); - Sentry.captureMessage('test', 'info'); -}); -``` - -#### Breadcrumbs - -_Old_: - -```js -Raven.captureBreadcrumb({ - message: 'Item added to shopping cart', - category: 'action', - data: { - isbn: '978-1617290541', - cartSize: '3', - }, -}); -``` - -_New_: - -```js -Sentry.addBreadcrumb({ - message: 'Item added to shopping cart', - category: 'action', - data: { - isbn: '978-1617290541', - cartSize: '3', - }, -}); -``` +A full list of changes in the `4.x` release of the SDK can be found in the [4.x Changelog](./docs/changelog/v4.md). diff --git a/docs/changelog/v4.md b/docs/changelog/v4.md new file mode 100644 index 000000000000..23add5de5d36 --- /dev/null +++ b/docs/changelog/v4.md @@ -0,0 +1,367 @@ +# Changelog for Sentry SDK 4.x + +Sentry SDK v4 is no longer supported. We recommend migrating to the latest version of the SDK. You can start by +migrating from `v4` of the SDK to `v5` by following the [migration guide](../migration/v4-to-v5_v6.md). + +## 4.6.4 + +- [utils] fix: Prevent decycling from referencing original objects +- [utils] fix: Preserve correct name when wrapping +- [raven-node] test: Update raven-node tests for new node version + +## 4.6.3 + +- [utils] fix: Normalize value before recursively walking down the tree +- [browser] ref: Check whether client is enabled for reportDialog and log instead of throw + +## 4.6.2 + +- [utils] fix: Preserve function prototype when filling +- [utils] fix: use a static object as fallback of the global object +- [node] feat: Read from `SENTRY_RELEASE` and `SENTRY_ENVIRONMENT` if present + +## 4.6.1 + +- [utils] fix: Patch `tslib_1__default` regression and add additional tests around it + +## 4.6.0 + +- [loader] fix: Detect if `init` has been called in an onload callback +- [core] fix: Use correct frame for `inboundFilter` methods +- [core] ref: Multiple `init` calls have been changed to "latest wins" instead of "ignore all after first" +- [core] feat: Introduce `flush` method which currently is an alias for `close` +- [node] feat: If `options.dsn` is undefined when calling `init` we try to load it from `process.env.SENTRY_DSN` +- [node] feat: Expose `flush` and `close` on `Sentry.*` +- [node] feat: Add `sentry` to express error handler response which contains the `event_id` of the error + +## 4.5.4 + +- [browser] fix: `DOMError` and `DOMException` should be error level events +- [browser] ref: Log error if Ember/Vue instances are not provided +- [utils] fix: Dont mutate original input in `decycle` util function +- [utils] fix: Skip non-enumerable properties in `decycle` util function +- [utils] ref: Update `wrap` method to hide internal Sentry flags +- [utils] fix: Make internal Sentry flags non-enumerable in `fill` util + +## 4.5.3 + +- [browser]: fix: Fix UnhandledPromise: [object Object] +- [core]: fix: Error in extraErrorData integration where event would not be send in case of non assignable object + property. +- [hub]: feat: Support non async event processors + +## 4.5.2 + +- [utils] fix: Decycling for objects to no produce an endless loop +- [browser] fix: `` event for unhandledRejection +- [loader] fix: Handle unhandledRejection the same way as it would be thrown + +## 4.5.1 + +- [utils] fix: Don't npm ignore esm for utils + +## 4.5.0 + +- [core] feat: Deprecate `captureEvent`, prefer `sendEvent` for transports. `sendEvent` now takes a string (body) + instead of `Event` object. +- [core] feat: Use correct buffer for requests in transports +- [core] feat: (beta) provide esm build +- [core] ref: Change way how transports are initialized +- [core] ref: Rename `RequestBuffer` to `PromiseBuffer`, also introduce limit +- [core] ref: Make sure that captureMessage input is a primitive +- [core] fix: Check if value is error object in extraErrorData integration +- [browser] fix: Prevent empty exception values +- [browser] fix: Permission denied to access property name +- [node] feat: Add file cache for providing pre/post context in frames +- [node] feat: New option `frameContextLines`, if set to `0` we do not provide source code pre/post context, default is + `7` lines pre/post +- [utils] fix: Use custom serializer inside `serialize` method to prevent circular references + +## 4.4.2 + +- [node] Port memory-leak tests from raven-node +- [core] feat: ExtraErrorData integration +- [hub] ref: use safeNormalize on any data we store on Scope +- [utils] feat: Introduce safeNormalize util method to unify stored data +- [loader] Support multiple onLoad callbacks + +## 4.4.1 + +- [core] Bump dependencies to remove flatmap-stream + +## 4.4.0 + +- [node] HTTP(S) Proxy support +- [node] Expose lastEventId method +- [browser] Correctly detect and remove wrapped function frames + +## 4.3.4 + +- [utils] fix: Broken tslib import - Fixes #1757 + +## 4.3.3 + +- [build] ref: Dont emit TypeScript helpers in every file separately +- [node] fix: Move stacktrace types from devDeps to deps as its exposed +- [browser] misc: Added browser examples page + +## 4.3.2 + +- [browser] fix: Typings for npm package + +## 4.3.1 + +- [browser] ref: Breadcrumbs will now be logged only to a max object depth of 2 +- [core] feat: Filter internal Sentry errors from transports/sdk +- [core] ref: Better fingerprint handling +- [node] ref: Expose Parsers functions + +## 4.3.0 + +- [browser]: Move `ReportingObserver` integration to "pluggable" making it an opt-in integration +- [utils]: Use node internal `path` / `fs` for `store.ts` + +## 4.2.4 + +- [browser]: Use `withScope` in `Ember` integration instead of manual `pushPop/popScope` calls +- [browser] fix: rethrow errors in testing mode with `Ember` integration (#1696) +- [browser/node]: Fix `LinkedErrors` integration to send exceptions in correct order and take main exception into the + `limit` count +- [browser/node] ref: Re-export `addGlobalEventProcessor` +- [core]: Fix `InboundFilters` integration so that it reads and merge configuration from the `init` call as well + +## 4.2.3 + +- [utils]: `bundlerSafeRequire` renamed to `dynamicRequire` now takes two arguments, first is should be `module`, second + `request` / `moduleName`. + +## 4.2.2 + +- [core]: Several internal fixes regarding integration, exports and domain. +- [core]: "De-deprecate" name of `Integration` interface. +- [node]: Export `parseRequest` on `Handlers`. + +## 4.2.1 + +- [core] Invert logger logic the explicitly enable it. +- [hub] Require `domain` in `getCurrentHub` in try/catch - Fixed #1670 +- [hub] Removed exposed getter on the Scope. + +## 4.2.0 + +- [browser] fix: Make `addBreadcrumb` sync internally, `beforeBreadcrumb` is now only sync +- [browser] fix: Remove internal `console` guard in `beforeBreadcrumb` +- [core] feat: Integrations now live on the `Client`. This means that when binding a new Client to the `Hub` the client + itself can decide which integration should run. +- [node] ref: Simplify Node global handlers code + +## 4.1.1 + +- [browser] fix: Use our own path utils instead of node built-ins +- [node] fix: Add colon to node base protocol to follow http module +- [utils] feat: Create internal path module + +## 4.1.0 + +- [browser] feat: Better mechanism detection in TraceKit +- [browser] fix: Change loader to use getAttribute instead of dataset +- [browser] fix: Remove trailing commas from loader for IE10/11 +- [browser] ref: Include md5 lib and transcript it to TypeScript +- [browser] ref: Remove all trailing commas from integration tests cuz IE10/11 +- [browser] ref: Remove default transaction from browser +- [browser] ref: Remove redundant debug.ts file from browser integrations +- [browser] test: Fix all integration tests in IE10/11 and Android browsers +- [browser] test: Run integration tests on SauceLabs +- [browser] test: Stop running raven-js saucelabs tests in favour of @sentry/browser +- [browser] test: Store breadcrumbs in the global variable in integration tests +- [browser] test: Update polyfills for integration tests +- [build] ref: Use Mocha v4 instead of v5, as it's not supporting IE10 +- [core] feat: Introduce stringify and debugger options in Debug integration +- [core] feat: RewriteFrames pluggable integration +- [core] feat: getRequestheaders should handle legacy DSNs +- [core] fix: correct sampleRate behaviour +- [core] misc: Warn user when beforeSend doesnt return an event or null +- [core] ref: Check for node-env first and return more accurate global object +- [core] ref: Remove Repo interface and repos attribute from Event +- [core] ref: Rewrite RequestBuffer using Array instead of Set for IE10/11 +- [hub] fix: Scope level overwrites level on the event +- [hub] fix: Correctly store and retrieve Hub from domain when one is active +- [hub] fix: Copy over user data when cloning scope +- [node] feat: Allow requestHandler to be configured +- [node] feat: Allow pick any user attributes from requestHandler +- [node] feat: Make node transactions a pluggable integration with tests +- [node] feat: Transactions handling for RequestHandler in Express/Hapi +- [node] fix: Dont wrap native modules more than once to prevent leaks +- [node] fix: Add the same protocol as dsn to base transport option +- [node] fix: Use getCurrentHub to retrieve correct hub in requestHandler +- [utils] ref: implemented includes, assign and isNaN polyfills + +## 4.0.6 + +- [browser] fix: Fallback to Error object when rejection `reason` is not available +- [browser] feat: Support Bluebird's `detail.reason` for promise rejections +- [types] fix: Use correct type for event's repos attribute + +## 4.0.5 + +- [browser] ref: Expose `ReportDialogOptions` +- [browser] ref: Use better default message for ReportingObserver +- [browser] feat: Capture wrapped function arguments as extra +- [browser] ref: Unify integrations options and set proper defaults +- [browser] fix: Array.from is not available in old mobile browsers +- [browser] fix: Check for anonymous function before getting its name for mechanism +- [browser] test: Add loader + integration tests +- [core] ref: Move SDKInformation integration into core prepareEvent method +- [core] ref: Move debug initialization as the first step +- [node] fix: Make handlers types compatibile with Express +- [utils] fix: Dont break when non-string is passed to truncate +- [hub] feat: Add `run` function that makes `this` hub the current global one + +## 4.0.4 + +- [browser] feat: Add `forceLoad` and `onLoad` function to be compatible with loader API + +## 4.0.3 + +- [browser] feat: Better dedupe integration event description +- [core] ref: Move Dedupe, FunctionString, InboundFilters and SdkInformation integrations to the core package +- [core] feat: Provide correct platform and make a place to override event internals +- [browser] feat: UserAgent integration + +## 4.0.2 + +- [browser] fix: Dont filter captured messages when they have no stacktraces + +## 4.0.1 + +- [browser] feat: Show dropped event url in `blacklistUrl`/`whitelistUrl` debug mode +- [browser] feat: Use better event description instead of `event_id` for user-facing logs +- [core] ref: Create common integrations that are exposed on `@sentry/core` and reexposed through `browser`/`node` +- [core] feat: Debug integration +- [browser] ref: Port TraceKit to TypeScript and disable TraceKit's remote fetching for now + +## 4.0.0 + +This is the release of our new SDKs, `@sentry/browser`, `@sentry/node`. While there are too many changes to list for +this release, we will keep a consistent changelog for upcoming new releases. `raven-js` (our legacy JavaScript/Browser +SDK) and `raven` (our legacy Node.js SDK) will still reside in this repo, but they will receive their own changelog. + +We generally guide people to use our new SDKs from this point onward. The migration should be straightforward if you +were only using the basic features of our previous SDKs. + +`raven-js` and `raven` will both still receive bugfixes but all the new features implemented will only work in the new +SDKs. The new SDKs are completely written in TypeScript, which means all functions, classes and properties are typed. + +## Links + +- [Official SDK Docs](https://docs.sentry.io/quickstart/) +- [TypeDoc](http://getsentry.github.io/sentry-javascript/) + +### Migration + +Here are some examples of how the new SDKs work. Please note that the API for all JavaScript SDKs is the same. + +#### Installation + +_Old_: + +```js +Raven.config('___PUBLIC_DSN___', { + release: '1.3.0', +}).install(); +``` + +_New_: + +```js +Sentry.init({ + dsn: '___PUBLIC_DSN___', + release: '1.3.0', +}); +``` + +#### Set a global tag + +_Old_: + +```js +Raven.setTagsContext({ key: 'value' }); +``` + +_New_: + +```js +Sentry.configureScope(scope => { + scope.setTag('key', 'value'); +}); +``` + +#### Capture custom exception + +_Old_: + +```js +try { + throwingFunction(); +} catch (e) { + Raven.captureException(e, { extra: { debug: false } }); +} +``` + +_New_: + +```js +try { + throwingFunction(); +} catch (e) { + Sentry.withScope(scope => { + scope.setExtra('debug', false); + Sentry.captureException(e); + }); +} +``` + +#### Capture a message + +_Old_: + +```js +Raven.captureMessage('test', 'info', { extra: { debug: false } }); +``` + +_New_: + +```js +Sentry.withScope(scope => { + scope.setExtra('debug', false); + Sentry.captureMessage('test', 'info'); +}); +``` + +#### Breadcrumbs + +_Old_: + +```js +Raven.captureBreadcrumb({ + message: 'Item added to shopping cart', + category: 'action', + data: { + isbn: '978-1617290541', + cartSize: '3', + }, +}); +``` + +_New_: + +```js +Sentry.addBreadcrumb({ + message: 'Item added to shopping cart', + category: 'action', + data: { + isbn: '978-1617290541', + cartSize: '3', + }, +}); +``` diff --git a/docs/changelog/v5.md b/docs/changelog/v5.md new file mode 100644 index 000000000000..47a78b6d9a92 --- /dev/null +++ b/docs/changelog/v5.md @@ -0,0 +1,791 @@ +# Changelog for Sentry SDK 5.x + +Sentry SDK v5 is no longer supported. We recommend migrating to the latest version of the SDK. There was no breaking +changes introduced in `v6` of the SDK, so you can start by migrating from `v5` of the SDK to `v7` by following the +[migration guide](../migration/v6-to-v7.md). + +## 5.30.0 + +- [node] fix: esbuild warning dynamic require (#3164) +- [tracing] ref: Expose required things for React Native auto tracing (#3144) +- [ember] fix: rootURL breaking route recognition (#3166) +- [serverless] feat: Zip serverless dependencies for AWS Lambda (#3110) +- [build] feat: Target to deploy on AWS Lambda (#3165) +- [build] ref: Remove TravisCI (#3149) +- [build] ref: Upgrade action-prepare-release to latest version + +## 5.29.2 + +- Fix version + +## 5.29.1 + +- [types] ref: Loosen tag types, create new `Primitive` type (#3108) +- [tracing] feat: Send sample rate and type in transaction item header in envelope (#3068) +- [tracing] fix(web-vitals): Fix TTFB capture in Safari (#3106) + +## 5.29.0 + +- [tracing] feat: MongoDB Tracing Support (#3072) +- [tracing] feat: MySQL Tracing Support (#3088) +- [tracing] feat: PostgreSQL Tracing Support (#3064) +- [tracing] fix: Add `sentry-trace` header to outgoing http(s) requests in node (#3053) +- [node] fix: Revert express tracing integration type to use any (#3093) + +## 5.28.0 + +- [browser] fix: Handle expo file dir stack frames (#3070) +- [vue] feat: @sentry/vue (#2953) +- [node] ref: Revamp express route info extraction (#3084) +- [browser] fix: Dont append dsn twice to report dialog calls (#3079) +- [ember] fix: Use correct import from `@sentry/browser` (#3077) +- [node] ref: Express integration span name change and path unification (#3078) + +## 5.27.6 + +- [hub] fix: Don't invoke scope updates in scope listeners + +## 5.27.5 + +- [hub] fix: Sync ScopeListeners (#3065) +- [tracing] fix: Typo in constant name in @sentry/tracing (#3058) + +## 5.27.4 + +- [core] fix: Remove globalThis usage (#3033) +- [react] ref: Add React 17.x to peerDependencies (#3034) +- [tracing] fix: Express transaction name (#3048) +- [serverless] fix: AWS Execution duration (#3032) +- [serverless] fix: Add `optional` parameter to AWSServices integration (#3030) +- [serverless] fix: Wrap google cloud functions with a Proxy(). (#3035) +- [hub] fix: stop using @types/node in @sentry/hub (#3050) + +## 5.27.3 + +- [hub] fix: Make sure that `getSession` exists before calling it (#3017) +- [browser] feat: Add `DOMException.code` as tag if it exists (#3018) +- [browser] fix: Call `removeEventListener` twice only when necessary (#3016) +- [tracing] fix: Schedule the execution of the finish to let all the spans being closed first (#3022) +- [tracing] fix: Adjust some web vitals to be relative to fetchStart and some other improvements (#3019) +- [tracing] fix: Add transaction name as tag on error events (#3024) + +## 5.27.2 + +- [apm] ref: Delete sentry/apm package (#2990) +- [types] fix: make requestHandler options an own type (#2995) +- [core] fix: Use 'production' as default value for environment key (#3013) + +## 5.27.1 + +- [hub] fix: Preserve original user data for explicitly updated scopes (#2991) +- [ember] fix: prevent unexpected errors on transition (#2988) + +## 5.27.0 + +- [browser] feat: Sessions Health Tracking (#2973) +- [core] fix: Correct `processing` flag in `BaseClient` (#2983) +- [node] feat: use `req.cookies` if available instead of parsing (#2985) +- [core] ref: Use SentryError for `prepareEvent` rejections (#2973) +- [core] ref: Errors handling in `prepareEvent` pipeline (#2987) +- [serverless] feat: Implement tracing of Google Cloud Requests (#2981) +- [serverless] ref: Set global event processor and pass scope data for transactions (#2975) +- [tracing] feat: Add secure connect navigation timing (#2980) +- [tracing] feat: Capture time spent redirecting before loading the current page (#2986) +- [tracing] feat: Capture browser navigator information (#2966) +- [tracing] feat: Express router methods tracing (#2972) +- [tracing] ref: Only report FCP or FP if the page wasn't hidden prior to their instrumentation (#2979) + +## 5.26.0 + +- [serverless] feat: Implement error handling and tracing for `Google Cloud Functions` (#2945) +- [serverless] feat: Enable tracing for `AWSLambda` (#2945) +- [serverless] feat: Add `AWSResources` integration (#2945) +- [browser] feat: Implement `X-Sentry-Rate-Limits` handling for transports (#2962) +- [tracing] feat: Add measurements support and web vitals (#2909) +- [tracing] feat: Add web vitals: CLS and TTFB (#2964) +- [angular] ref: Make `@angular/common` a peerDependency instead of dependency (#2961) +- [ember] feat: Add more render instrumentation (#2902) +- [ember] ref: Use `@embroider/macros` instead of `runInDebug` (#2873) +- [hub] ref: Do not allow for popping last layer and unify getter methods (#2955) + +## 5.25.0 + +- [tracing] fix: Expose `startTransaction` in CDN bundle (#2938) +- [tracing] fix: Allow unsampled transactions to be findable by `getTransaction()` (#2952) +- [tracing] fix: Reimplement timestamp computation (#2947) +- [tracing] ref: Clean up sampling decision inheritance (#2921) (#2944) +- [react] fix: Makes `normalizeTransactionName` take a callback function in router-v3 (#2946) +- [ember] feat: Add more render instrumentation to @sentry/ember (#2902) +- [types] ref: Use correct types for `event.context` and allow for context removal (#2910) +- [types] ref: Make name required on transaction class (#2949) +- [build] feat: Update to use extends w. Volta (#2930) + +## 5.24.2 + +- [utils] fix: Check that performance is available before calling it in RN (#2924) + +## 5.24.1 + +- [types] fix: Remove Location type to avoid dom lib dependency (#2922) + +## 5.24.0 + +- [angular] fix: Make sure that message exist before returning it in angular error handler (#2903) +- [integrations] feat: Add referrer to data collected by UserAgent integration (#2912) +- [core] fix: Make sure that body is not exposed in the breadcrumb by default (#2911) +- [core] feat: Give access to XHR requests body in breadcrumb hint (#2904) +- [core] fix: Add a wrapper around performance for React Native (#2915) +- [integrations] fix: Make Vue tracing options optional (#2897) +- [integrations] ref: Remove unnecessary eventID check in offline integration (#2890) +- [tracing] feat: Add hook for trace sampling function to SDK options (#2820) + +## 5.23.0 + +- [serverless] feat: Introduce `@sentry/serverless` with `AWSLambda` support (#2886) +- [ember] feat: Add performance instrumentation for routes (#2784) +- [node] ref: Remove query strings from transaction and span names (#2857) +- [angular] ref: Strip query and fragment from Angular tracing URLs (#2874) +- [tracing] ref: Simplify `shouldCreateSpanForRequest` (#2867) + +## 5.22.3 + +- [integrations] fix: Window type (#2864) + +## 5.22.2 + +- [integrations] fix: localforage typing (#2861) + +## 5.22.1 + +- [integrations] fix: Add localforage typing (#2856) +- [tracing] fix: Make sure BrowserTracing is exported in CDN correctly (#2855) + +## 5.22.0 + +- [browser] ref: Recognize `Capacitor` scheme as `Gecko` (#2836) +- [node]: fix: Save `string` exception as a message for `syntheticException` (#2837) +- [tracing] feat: Add `build` dir in npm package (#2846) +- [tracing] fix: Fix typo in `addPerformanceEntries` method name (#2847) +- [apm] ref: Deprecate `@sentry/apm` package (#2844) +- [angular] fix: Allow for empty DSN/disabling with `AngularJS` integration (#2842) +- [gatsby] ref: Make `@sentry/tracing` mandatory + add tests (#2841) +- [integrations] feat: Add integration for offline support (#2778) +- [utils] ref: Revert the usage of `globalThis` for `getGlobalObject` util (#2851) +- [build] fix: Lock in `TypeScript` to `3.7.5` (#2848) +- [build] misc: Upgrade `Prettier` to `1.19.0` (#2850) + +## 5.21.4 + +- [ci] fix: Actually release correct code + +## 5.21.3 + +- [tracing] feat: Track span status for fetch requests (#2835) +- [react] fix: Return an any from createReduxEnhancer to avoid type conflicts (#2834) +- [react] fix: Make sure profiler is typed with any (#2838) + +## 5.21.2 + +- [tracing] fix: Normalize transaction names for express methods to match those of other SDKs (#2832) +- [tracing] feat: Change resource span op name and add data (#2816) +- [tracing] ref: Make sure error status is set on transactions (#2818) +- [apm/tracing] fix: Make sure Performance Observer takeRecords() is defined (#2825) + +## 5.21.1 + +- [ember] fix: Make the package public and fix the build by bumping TypeScript to v3.9 (#2811) +- [eslint] test: Don't test eslint config/plugin on Node <= v8 + +## 5.21.0 + +- [all] feat: Convert `sentry-javascript` to `ESLint` (#2786) +- [internal/eslint] feat: Add `@sentry-internal/eslint-config-sdk` (#2807) +- [ember] feat: Add `@sentry/ember` (#2739) +- [angular] feat: Add `@sentry/angular` (#2787) +- [react] feat: Add routing instrumentation for `React Router v4/v5` (#2780) +- [gatsby] feat: support `process.env.SENTRY_RELEASE` (#2776) +- [apm/tracing] feat: Export `addExtensionMethods` for SDKs to use (#2805) +- [apm/tracing] ref: Remove `express` typing (#2803) +- [node] fix: `Retry-After` header in node should be lower-case (#2779) + +## 5.20.1 + +- [core] ref: Expose sentry request for electron (#2774) +- [browser] fix: Make sure that DSN is always passed to report dialog (#2770) +- [apm/tracing] fix: Make sure fetch requests are being timed correctly (#2772) +- [apm/tracing] fix: Make sure pageload transactions start timestamps are correctly generated (#2773) +- [react] feat: Add instrumentation for React Router v3 (#2759) +- [react] ref: Use inline types to avoid redux dependency. (#2768) +- [node] fix: Set transaction on scope in node for request (#2769) + +## 5.20.0 + +- [browser] feat: Make `@sentry/browser` more treeshakeable (#2747) +- [browser] fix: Make sure that handler exists in `LinkedErrors` integration (#2742) +- [tracing] feat: Introduce `@sentry/tracing` (#2719) +- [tracing] ref: Use `idleTimout` if no activities occur in idle transaction (#2752) +- [react] feat: Export `createReduxEnhancer` to log redux actions as breadcrumbs, and attach state as an extra. (#2717) +- [react] feat: Add `beforeCapture` option to ErrorBoundary (#2753) +- [react] fix: Change import of `hoist-non-react-statics` (#2755) +- [gatsby] fix: Make `@sentry/apm` optional in `@sentry/gatsby` package (#2752) + +## 5.19.2 + +- [gatsby] fix: Include correct gatsby files in npm tarball (#2731) +- [browser] fix: Correctly detach event listeners (#2737) +- [browser] fix: Drop initial frame for production react errors (#2728) +- [node] chore: Upgrade https-proxy-agent to v5 (#2702) +- [types] ref: Define type for Extra(s) (#2727) + +## 5.19.1 + +- [browser] fix: Correctly remove all event listeners (#2725) +- [tracing] fix: APM CDN bundle expose startTransaction (#2726) +- [tracing] fix: Add manual `DOMStringList` typing (#2718) + +## 5.19.0 + +- [react] feat: Expose eventId on ErrorBoundary component (#2704) +- [node] fix: Extract transaction from nested express paths correctly (#2714) +- [tracing] feat: Pick up sentry-trace in JS `` tag (#2703) +- [tracing] fix: Respect fetch headers (#2712) (#2713) +- [tracing] fix: Check if performance.getEntries() exists (#2710) +- [tracing] fix: Add manual Location typing (#2700) +- [tracing] fix: Respect sample decision when continuing trace from header in node (#2703) +- [tracing] fix: All options of adding fetch headers (#2712) +- [gatsby] fix: Add gatsby SDK identifier (#2709) +- [gatsby] fix: Package gatsby files properly (#2711) + +## 5.18.1 + +- [react] feat: Update peer dependencies for `react` and `react-dom` (#2694) +- [react] ref: Change Profiler prop names (#2699) + +## 5.18.0 + +- [core] ref: Rename `whitelistUrls/blacklistUrls` to `allowUrls/denyUrls` (#2671) +- [core] feat: Export `makeMain` (#2665) +- [core] fix: Call `bindClient` when creating new `Hub` to make integrations work automatically (#2665) +- [react] feat: Add @sentry/react package (#2631) +- [react] feat: Add Error Boundary component (#2647) +- [react] feat: Add useProfiler hook (#2659) +- [react] ref: Refactor Profiler to account for update and render (#2677) +- [gatsby] feat: Add @sentry/gatsby package (#2652) +- [apm] feat: Add ability to get span from activity using `getActivitySpan` (#2677) +- [apm] fix: Check if `performance.mark` exists before calling it (#2680) +- [tracing] feat: Add `scope.getTransaction` to return a Transaction if it exists (#2668) +- [tracing] ref: Deprecate `scope.setTransaction` in favor of `scope.setTransactionName` (#2668) +- [tracing] feat: Add `beforeNavigate` option (#2691) +- [tracing] ref: Create navigation transactions using `window.location.pathname` instead of `window.location.href` + (#2691) + +## 5.17.0 + +- [browser] feat: Support `fetchParameters` (#2567) +- [apm] feat: Report LCP metric on pageload transactions (#2624) +- [core] fix: Normalize Transaction and Span consistently (#2655) +- [core] fix: Handle DSN qs and show better error messages (#2639) +- [browser] fix: Change XHR instrumentation order to handle `onreadystatechange` breadcrumbs correctly (#2643) +- [apm] fix: Re-add TraceContext for all events (#2656) +- [integrations] fix: Change Vue interface to be inline with the original types (#2634) +- [apm] ref: Use startTransaction where appropriate (#2644) + +## 5.16.1 + +- [node] fix: Requests to old `/store` endpoint need the `x-sentry-auth` header in node (#2637) + +## 5.16.0 + +_If you are a `@sentry/apm` and did manual instrumentation using `hub.startSpan` please be aware of the changes we did +to the API. The recommended entry point for manual instrumentation now is `Sentry.startTransaction` and creating child +Span by calling `startChild` on it. We have internal workarounds in place so the old code should still work but will be +removed in the future. If you are only using the `Tracing` integration there is no need for action._ + +- [core] feat: Send transactions in envelopes (#2553) +- [core] fix: Send event timestamp (#2575) +- [browser] feat: Allow for configuring TryCatch integration (#2601) +- [browser] fix: Call wrapped `RequestAnimationFrame` with correct context (#2570) +- [node] fix: Prevent reading the same source file multiple times (#2569) +- [integrations] feat: Vue performance monitoring (#2571) +- [apm] fix: Use proper type name for op (#2584) +- [core] fix: sent_at for envelope headers to use same clock (#2597) +- [apm] fix: Improve bundle size by moving span status to @sentry/apm (#2589) +- [apm] feat: No longer discard transactions instead mark them deadline exceeded (#2588) +- [apm] feat: Introduce `Sentry.startTransaction` and `Transaction.startChild` (#2600) +- [apm] feat: Transactions no longer go through `beforeSend` (#2600) +- [browser] fix: Emit Sentry Request breadcrumbs from inside the client (#2615) +- [apm] fix: No longer debounce IdleTransaction (#2618) +- [apm] feat: Add pageload transaction option + fixes (#2623) +- [minimal/core] feat: Allow for explicit scope through 2nd argument to `captureException/captureMessage` (#2627) + +## 5.15.5 + +- [browser/node] Add missing `BreadcrumbHint` and `EventHint` types exports (#2545) +- [utils] fix: Prevent `isMatchingPattern` from failing on invalid input (#2543) + +## 5.15.4 + +- [node] fix: Path domain onto global extension method to not use require (#2527) + +## 5.15.3 + +- [hub] fix: Restore dynamicRequire, but for `perf_hooks` only (#2524) + +## 5.15.2 + +- [hub] fix: Remove dynamicRequire, Fix require call (#2521) + +## 5.15.1 + +- [browser] fix: Prevent crash for react native instrumenting fetch (#2510) +- [node] fix: Remove the no longer required dynamicRequire hack to fix scope memory leak (#2515) +- [node] fix: Guard against invalid req.user input (#2512) +- [node] ref: Move node version to runtime context (#2507) +- [utils] fix: Make sure that SyncPromise handler is called only once (#2511) + +## 5.15.0 + +- [apm] fix: Sampling of traces work now only depending on the client option `tracesSampleRate` (#2500) +- [apm] fix: Remove internal `forceNoChild` parameter from `hub.startSpan` (#2500) +- [apm] fix: Made constructor of `Span` internal, only use `hub.startSpan` (#2500) +- [apm] ref: Remove status from tags in transaction (#2497) +- [browser] fix: Respect breadcrumbs sentry:false option (#2499) +- [node] ref: Skip body parsing for GET/HEAD requests (#2504) + +## 5.14.2 + +- [apm] fix: Use Performance API for timings when available, including Web Workers (#2492) +- [apm] fix: Remove Performance references (#2495) +- [apm] fix: Set `op` in node http.server transaction (#2496) + +## 5.14.1 + +- [apm] fix: Check for performance.timing in webworkers (#2491) +- [apm] ref: Remove performance clear entry calls (#2490) + +## 5.14.0 + +- [apm] feat: Add a simple heartbeat check, if activities don't change in 3 beats, finish the transaction (#2478) +- [apm] feat: Make use of the `performance` browser API to provide better instrumentation (#2474) +- [browser] ref: Move global error handler + unhandled promise rejection to instrument (#2475) +- [apm] ref: Always use monotonic clock for time calculations (#2485) +- [apm] fix: Add trace context to all events (#2486) + +## 5.13.2 + +- [apm] feat: Add `discardBackgroundSpans` to discard background spans by default + +## 5.13.1 + +- [node] fix: Restore engines back to `>= 6` + +## 5.13.0 + +- [apm] feat: Add `options.autoPopAfter` parameter to `pushActivity` to prevent never-ending spans (#2459) +- [apm] fix: Use monotonic clock to compute durations (#2441) +- [core] ref: Remove unused `sentry_timestamp` header (#2458) +- [node] ref: Drop Node v6, add Node v12 to test matrix, move all scripts to Node v12 (#2455) +- [utils] ref: Prevent instantiating unnecessary Date objects in `timestampWithMs` (#2442) +- [browser] fix: Mark transactions as event.transaction in breadcrumbs correctly + +## 5.12.5 + +- [browser] ref: Mark transactions as event.transaction in breadcrumbs (#2450) +- [node] fix: Dont overwrite servername in requestHandler (#2449) +- [utils] ref: Move creation of iframe into try/catch in fetch support check (#2447) + +## 5.12.4 + +- [browser] ref: Rework XHR wrapping logic to make sure it always triggers (#2438) +- [browser] fix: Handle PromiseRejectionEvent-like CustomEvents (#2429) +- [core] ref: Notify user when event failed to deliver because of digestion pipeline issue (#2416) +- [node] fix: Improve incorrect `ParseRequest` typing (#2433) +- [apm] fix: Remove auto unknown_error transaction status (#2440) +- [apm] fix: Properly remove undefined keys from apm payload (#2414) + +## 5.12.3 + +- [apm] fix: Remove undefined keys from trace.context (#2413) + +## 5.12.2 + +- [apm] ref: Check if Tracing integration is enabled before dropping transaction + +## 5.12.1 + +- [apm] ref: If `maxTransactionTimeout` = `0` there is no timeout (#2410) +- [apm] fix: Make sure that the `maxTransactionTimeout` is always enforced on transaction events (#2410) +- [browser] fix: Support for Hermes stacktraces (#2406) + +## 5.12.0 + +- [core] feat: Provide `normalizeDepth` option and sensible default for scope methods (#2404) +- [browser] fix: Export `EventHint` type (#2407) + +## 5.11.2 + +- [apm] fix: Add new option to `Tracing` `maxTransactionTimeout` determines the max length of a transaction (#2399) +- [hub] ref: Always also set transaction name on the top span in the scope +- [core] fix: Use `event_id` from hint given by top-level hub calls + +## 5.11.1 + +- [apm] feat: Add build bundle including @sentry/browser + @sentry/apm +- [utils] ref: Extract adding source context incl. tests + +## 5.11.0 + +- [apm] fix: Always attach `contexts.trace` to finished transaction (#2353) +- [integrations] fix: Make RewriteFrame integration process all exceptions (#2362) +- [node] ref: Update agent-base to 5.0 to remove http/s patching (#2355) +- [browser] feat: Set headers from options in XHR/fetch transport (#2363) + +## 5.10.2 + +- [browser] fix: Always trigger default browser onerror handler (#2348) +- [browser] fix: Restore correct `functionToString` behavior for updated `fill` method (#2346) +- [integrations] ref: Allow for backslashes in unix paths (#2319) +- [integrations] feat: Support Windows-style path in RewriteFrame iteratee (#2319) + +## 5.10.1 + +- [apm] fix: Sent correct span id with outgoing requests (#2341) +- [utils] fix: Make `fill` and `wrap` work nicely together to prevent double-triggering instrumentations (#2343) +- [node] ref: Require `https-proxy-agent` only when actually needed (#2334) + +## 5.10.0 + +- [hub] feat: Update `span` implementation (#2161) +- [apm] feat: Add `@sentry/apm` package +- [integrations] feat: Change `Tracing` integration (#2161) +- [utils] feat: Introduce `instrument` util to allow for custom handlers +- [utils] Optimize `supportsNativeFetch` with a fast path that avoids DOM I/O (#2326) +- [utils] feat: Add `isInstanceOf` util for safety reasons + +## 5.9.1 + +- [browser] ref: Fix regression with bundle size + +## 5.9.0 + +- [node] feat: Added `mode` option for `OnUnhandledRejection` integration that changes how we log errors and what we do + with the process itself +- [browser] ref: Both global handlers now always return `true` to call default implementations (error logging) + +## 5.8.0 + +- [browser/node] feat: 429 http code handling in node/browser transports (#2300) +- [core] feat: Make sure that Debug integration is always setup as the last one (#2285) +- [browser] fix: Gracefuly handle incorrect input from onerror (#2302) +- [utils] fix: Safer normalizing for input with `domain` key (#2305) +- [utils] ref: Remove dom references from utils for old TS and env interop (#2303) + +## 5.7.1 + +- [core] ref: Use the smallest possible interface for our needs - `PromiseLike` (#2273) +- [utils] fix: Add TS dom reference to make sure its in place for compilation (#2274) + +## 5.7.0 + +- [core] ref: Use `Promise` as the interface, but `SyncPromise` as the implementation in all the places we need + `thenable` API +- [browser] fix: Capture only failed `console.assert` calls +- [browser] ref: Major `TraceKit` and `GlobalHandlers` refactor +- [browser] ref: Remove _all_ required IE10-11 polyfills +- [browser] ref: Remove `Object.assign` method usage +- [browser] ref: Remove `Number.isNaN` method usage +- [browser] ref: Remove `includes` method usage +- [browser] ref: Improve usage of types in `addEventListener` breadcrumbs wrapper +- [browser] ci: Use Galaxy S9 Plus for Android 9 +- [browser] ci: Increase timeouts and retries between Travis and BrowserStack +- [node] fix: Update https-proxy-agent to 3.0.0 for security reasons (#2262) +- [node] feat: Extract prototyped data in `extractUserData` (#2247) +- [node] ref: Use domain Hub detection only in Node environment +- [integrations] feat: Use `contexts` to handle ExtraErrorData (#2208) +- [integrations] ref: Remove `process.env.NODE_ENV` from Vue integration (#2263) +- [types] fix: Breadcrumb `data` needs to be an object +- [utils] ref: Make `Event` instances somewhat serializeable + +## 5.6.3 + +- [browser] fix: Don't capture our own XHR events that somehow bubbled-up to global handler (#2221) + +## 5.6.2 + +- [browser] feat: Use framesToPop for InvaliantViolations in React errors (#2204) +- [browser] fix: Apply crossorigin attribute with setAttribute tag for userReport dialog (#2196) +- [browser] fix: Make sure that falsy values are captured in unhandledrejections (#2207) +- [loader] fix: Loader should also retrigger falsy values as errors (#2207) + +## 5.6.1 + +- [core] fix: Correctly detect when client is enabled before installing integrations (#2193) +- [browser] ref: Loosen typings in `wrap` method + +## 5.6.0 + +- [core] fix: When using enabled:false integrations shouldnt be installed (#2181) +- [browser] feat: Add support for custom schemes to Tracekit +- [browser] ref: Return function call result from `wrap` method +- [browser] ref: Better UnhandledRejection messages (#2185) +- [browser] test: Complete rewrite of Browser Integration Tests (#2176) +- [node] feat: Add cookies as an optional property in the request handler (#2167) +- [node] ref: Unify method name casing in breadcrumbs (#2183) +- [integrations] feat: Add logErrors option to Vue integration (#2182) + +## 5.5.0 + +- [core] fix: Store processing state for each `flush` call separately (#2143) +- [scope] feat: Generate hint if not provided in the Hub calls (#2142) +- [browser] feat: Read `window.SENTRY_RELEASE` to set release by default (#2132) +- [browser] fix: Don't call `fn.handleEvent.bind` if `fn.handleEvent` does not exist (#2138) +- [browser] fix: Correctly handle events that utilize `handleEvent` object (#2149) +- [node] feat: Provide optional `shouldHandleError` option for node `errorHandler` (#2146) +- [node] fix: Remove unsafe `any` from `NodeOptions` type (#2111) +- [node] fix: Merge `transportOptions` correctly (#2151) +- [utils] fix: Add polyfill for `Object.setPrototypeOf` (#2127) +- [integrations] feat: `SessionDuration` integration (#2150) + +## 5.4.3 + +- [core] feat: Expose `Span` class +- [node] fix: Don't overwrite transaction on event in express handler + +## 5.4.2 + +- [core] fix: Allow `Integration` constructor to have arguments +- [browser] fix: Vue breadcrumb recording missing in payload +- [node] fix: Force agent-base to be at version 4.3.0 to fix various issues. Fix #1762, fix #2085 +- [integrations] fix: Tracing integration fetch headers bug where trace header is not attached if there are no options. +- [utils] fix: Better native `fetch` detection via iframes. Fix #1601 + +## 5.4.1 + +- [integrations] fix: Tracing integration fetch headers bug. + +## 5.4.0 + +- [global] feat: Exposed new simplified scope API. `Sentry.setTag`, `Sentry.setTags`, `Sentry.setExtra`, + `Sentry.setExtras`, `Sentry.setUser`, `Sentry.setContext` + +## 5.3.1 + +- [integrations] fix: Tracing integration CDN build. + +## 5.3.0 + +- [browser] fix: Remove `use_strict` from `@sentry/browser` +- [utils] fix: Guard string check in `truncate` +- [browser] fix: TraceKit fix for eval frames + +## 5.2.1 + +- [browser] feat: Expose `wrap` function in `@sentry/browser` +- [browser] feat: Added `onLoad` callback to `showReportDialog` +- [browser] fix: Use 'native code' as a filename for some frames + +## 5.2.0 + +- [opentracing] ref: Removed opentracing package +- [integrations] feat: Add tracing integration +- [hub] feat: Add tracing related function to scope and hub (`Scope.startSpan`, `Scope.setSpan`, `Hub.traceHeaders`) +- [hub] feat: Add new function to Scope `setContext` +- [hub] feat: Add new function to Scope `setTransaction` +- [integrations] fix: Update ember integration to include original error in `hint` in `beforeSend` +- [integrations] fix: Ember/Vue fix integration + +## 5.1.3 + +- [browser] fix: GlobalHandler integration sometimes receives Event objects as message: Fix #1949 + +## 5.1.2 + +- [browser] fix: Fixed a bug if Sentry was initialized multiple times: Fix #2043 +- [browser] ref: Mangle more stuff, reduce bundle size +- [browser] fix: Support for ram bundle frames +- [node] fix: Expose lastEventId method + +## 5.1.1 + +- [browser] fix: Breadcrumb Integration: Fix #2034 + +## 5.1.0 + +- [hub] feat: Add `setContext` on the scope +- [browser] fix: Breacrumb integration ui clicks +- [node] feat: Add `flushTimeout` to `requestHandler` to auto flush requests + +## 5.0.8 + +- [core] fix: Don't disable client before flushing +- [utils] fix: Remove node types +- [hub] fix: Make sure all breadcrumbs have a timestamp +- [hub] fix: Merge event with scope breadcrumbs instead of only using event breadcrumbs + +## 5.0.7 + +- [utils] ref: Move `htmlTreeAsString` to `@sentry/browser` +- [utils] ref: Remove `Window` typehint `getGlobalObject` +- [core] fix: Make sure that flush/close works as advertised +- [integrations] feat: Added `CaptureConsole` integration + +## 5.0.6 + +- [utils]: Change how we use `utils` and expose `esm` build +- [utils]: Remove `store` and `fs` classes -> moved to @sentry/electron where this is used +- [hub]: Allow to pass `null` to `setUser` to reset it + +## 5.0.5 + +- [esm]: `module` in `package.json` now provides a `es5` build instead of `es2015` + +## 5.0.4 + +- [integrations] fix: Not requiring angular types + +## 5.0.3 + +- [hub] fix: Don't reset registry when there is no hub on the carrier #1969 +- [integrations] fix: Export dedupe integration + +## 5.0.2 + +- [browser] fix: Remove `browser` field from `package.json` + +## 5.0.1 + +- [browser] fix: Add missing types + +## 5.0.0 + +This major bump brings a lot of internal improvements. Also, we extracted some integrations out of the SDKs and put them +in their own package called `@sentry/integrations`. For a detailed guide how to upgrade from `4.x` to `5.x` refer to our +[migration guide](https://github.com/getsentry/sentry-javascript/blob/master/MIGRATION.md). + +### Migration from v4 + +If you were using the SDKs high level API, the way we describe it in the docs, you should be fine without any code +changes. This is a **breaking** release since we removed some methods from the public API and removed some classes from +the default export. + +- **breaking** [node] fix: Events created from exception shouldn't have top-level message attribute +- [utils] ref: Update wrap method to hide internal sentry flags +- [utils] fix: Make internal Sentry flags non-enumerable in fill utils +- [utils] ref: Move `SentryError` + `PromiseBuffer` to utils +- **breaking** [core] ref: Use `SyncPromise` internally, this reduces memory pressure by a lot. +- ref: Move internal `ExtendedError` to a types package +- **breaking** [browser] ref: Removed `BrowserBackend` from default export. +- **breaking** [node] ref: Removed `BrowserBackend` from default export. +- **breaking** [core] feat: Disable client once flushed using `close` method +- **breaking** [core] ref: Pass `Event` to `sendEvent` instead of already stringified data +- [utils] feat: Introduce `isSyntheticEvent` util +- **breaking** [utils] ref: remove `isArray` util in favor of `Array.isArray` +- **breaking** [utils] ref: Remove `isNaN` util in favor of `Number.isNaN` +- **breaking** [utils] ref: Remove `isFunction` util in favor of `typeof === 'function'` +- **breaking** [utils] ref: Remove `isUndefined` util in favor of `=== void 0` +- **breaking** [utils] ref: Remove `assign` util in favor of `Object.assign` +- **breaking** [utils] ref: Remove `includes` util in favor of native `includes` +- **breaking** [utils] ref: Rename `serializeKeysToEventMessage` to `keysToEventMessage` +- **breaking** [utils] ref: Rename `limitObjectDepthToSize` to `normalizeToSize` and rewrite its internals +- **breaking** [utils] ref: Rename `safeNormalize` to `normalize` and rewrite its internals +- **breaking** [utils] ref: Remove `serialize`, `deserialize`, `clone` and `serializeObject` functions +- **breaking** [utils] ref: Rewrite normalization functions by removing most of them and leaving just `normalize` and + `normalizeToSize` +- **breaking** [core] ref: Extract all pluggable integrations into a separate `@sentry/integrations` package +- **breaking** [core] ref: Move `extraErrorData` integration to `@sentry/integrations` package +- [core] feat: Add `maxValueLength` option to adjust max string length for values, default is 250. +- [hub] feat: Introduce `setExtras`, `setTags`, `clearBreadcrumbs`. +- **breaking** [all] feat: Move `Mechanism` to `Exception` +- [browser/node] feat: Add `synthetic` to `Mechanism` in exception. +- [browser/node] fix: Use `addExceptionTypeValue` in helpers +- [browser] ref: Remove unused TraceKit code +- **breaking** [all] build: Expose `module` in `package.json` as entry point for esm builds. +- **breaking** [all] build: Use `es6` target instead of esnext for ESM builds +- [all] feat: Prefix all private methods with `_` +- [all] build: Use terser instead of uglify +- [opentracing] feat: Introduce `@sentry/opentracing` providing functions to attach opentracing data to Sentry Events +- **breaking** [core] ref: `Dedupe` Integration is now optional, it is no longer enabled by default. +- **breaking** [core] ref: Removed default client fingerprinting for messages +- [node] ref: Remove stack-trace dependencies +- **breaking** [core] ref: Transport function `captureEvent` was renamed to `sendEvent` +- [node] fix: Check if buffer isReady before sending/creating Promise for request. +- [browser] fix: Remove beacon transport. +- [browser] fix: Don't mangle names starting with two `__` +- [utils] fix: Ensure only one logger instance +- [node] feat: Add esm build +- [integrations] feat: Fix build and prepare upload to cdn +- [integrations] fix: Bug in vue integration with `attachProps` +- **breaking** [core] ref: Remove SDK information integration +- **breaking** [core] ref: Remove `install` function on integration interface +- [node] feat: Add esm build +- [integrations] feat: Fix build and prepare upload to cdn +- [integrations] fix: Bug in vue integration with `attachProps` + +## 5.0.0-rc.3 + +- [browser] fix: Don't mangle names starting with two `__` +- [utils] fix: Ensure only one logger instance + +## 5.0.0-rc.2 + +- [browser] fix: Remove beacon transport. + +## 5.0.0-rc.1 + +- [node] fix: Check if buffer isReady before sending/creating Promise for request. + +## 5.0.0-rc.0 + +- Fix: Tag npm release with `next` to not make it latest + +## 5.0.0-beta.2 + +- Fix: NPM release + +## 5.0.0-beta1 + +### Migration from v4 + +This major bump brings a lot of internal improvements. This is a **breaking** release since we removed some methods from +the public API and removed some classes from the default export. + +- **breaking** [node] fix: Events created from exception shouldn't have top-level message attribute +- [utils] ref: Update wrap method to hide internal sentry flags +- [utils] fix: Make internal Sentry flags non-enumerable in fill utils +- [utils] ref: Move `SentryError` + `PromiseBuffer` to utils +- **breaking** [core] ref: Use `SyncPromise` internally, this reduces memory pressure by a lot. +- **breaking** [browser] ref: Removed `BrowserBackend` from default export. +- **breaking** [node] ref: Removed `BrowserBackend` from default export. +- **breaking** [core] feat: Disable client once flushed using `close` method +- ref: Move internal `ExtendedError` to a types package +- **breaking** [core] ref: Pass `Event` to `sendEvent` instead of already stringified data +- [utils] feat: Introduce `isSyntheticEvent` util +- **breaking** [utils] ref: remove `isArray` util in favor of `Array.isArray` +- **breaking** [utils] ref: Remove `isNaN` util in favor of `Number.isNaN` +- **breaking** [utils] ref: Remove `isFunction` util in favor of `typeof === 'function'` +- **breaking** [utils] ref: Remove `isUndefined` util in favor of `=== void 0` +- **breaking** [utils] ref: Remove `assign` util in favor of `Object.assign` +- **breaking** [utils] ref: Remove `includes` util in favor of native `includes` +- **breaking** [utils] ref: Rename `serializeKeysToEventMessage` to `keysToEventMessage` +- **breaking** [utils] ref: Rename `limitObjectDepthToSize` to `normalizeToSize` and rewrite its internals +- **breaking** [utils] ref: Rename `safeNormalize` to `normalize` and rewrite its internals +- **breaking** [utils] ref: Remove `serialize`, `deserialize`, `clone` and `serializeObject` functions +- **breaking** [utils] ref: Rewrite normalization functions by removing most of them and leaving just `normalize` and + `normalizeToSize` +- **breaking** [core] ref: Extract all pluggable integrations into a separate `@sentry/integrations` package +- **breaking** [core] ref: Move `extraErrorData` integration to `@sentry/integrations` package +- [core] feat: Add `maxValueLength` option to adjust max string length for values, default is 250. +- [hub] feat: Introduce `setExtras`, `setTags`, `clearBreadcrumbs`. +- **breaking** [all] feat: Move `Mechanism` to `Exception` +- [browser/node] feat: Add `synthetic` to `Mechanism` in exception. +- [browser/node] fix: Use `addExceptionTypeValue` in helpers +- [browser] ref: Remove unused TraceKit code +- **breaking** [all] build: Expose `module` in `package.json` as entry point for esm builds. +- **breaking** [all] build: Use `es6` target instead of esnext for ESM builds +- [all] feat: Prefix all private methods with `_` +- [all] build: Use terser instead of uglify +- [opentracing] feat: Introduce `@sentry/opentracing` providing functions to attach opentracing data to Sentry Events +- **breaking** [core] ref: `Dedupe` Integration is now optional, it is no longer enabled by default. +- **breaking** [core] ref: Removed default client fingerprinting for messages +- [node] ref: Remove stack-trace dependencies +- **breaking** [core] ref: Transport function `captureEvent` was renamed to `sendEvent` diff --git a/docs/changelog/v6.md b/docs/changelog/v6.md new file mode 100644 index 000000000000..59e58bb42618 --- /dev/null +++ b/docs/changelog/v6.md @@ -0,0 +1,640 @@ +# Changelog for Sentry SDK 6.x + +Sentry SDK v6 is no longer supported. We recommend migrating to the latest version of the SDK. You can start by +migrating from `v6` of the SDK to `v7` by following the [migration guide](../migration/v6-to-v7.md). + +## 6.19.7 + +- fix(react): Add children prop type to ErrorBoundary component (#4966) +- fix(serverless): Re-add missing modules in Node AWS Lambda Layer (#4982) +- fix(tracing): Target tracing bundles for side effects (#4955) + +Work in this release contributed by @cameronaziz and @kpdecker. Thank you for your contributions! + +## 6.19.6 + +- fix(typing): Fix typing API in CaptureConsle (#4879) + +## 6.19.5 + +- ref(build): Add debug constants in each package individually (#4842) +- ref(build): Introduce central build directory to packages with bundles (#4838) (#4854) (#4868) +- feat(utils): Introduce getGlobalSingleton helper (#4860) + +## 6.19.4 + +- feat(react): Add React 18 as peer dep (#4819) +- ref(build): Add `build/types` to tarballs and adjust `types` entry points (#4824) + +Work in this release contributed by @MikevPeeren. Thank you for your contribution! + +## 6.19.3 + +- feat(browser): Add new v7 Fetch Transport (#4765) +- feat(browser): Add new v7 XHR Transport (#4803) +- fix(core): Use correct version of event when tagging normalization (#4780) +- fix(core): Stop mangling \_experiments (#4807) +- feat(node): Add new v7 http/s Transports (#4781) + +## 6.19.2 + +- feat(core): Add new transports to base backend (#4752) +- feat(utils): Add `isNaN` function (#4759) +- fix(integrations): Emit ES5 code in ES5 bundles (#4769) +- fix(vue): Drop vue-router peerDep (#4764) +- ref(core): Reduce inboundfilters bundle size (#4625) +- ref(integrations): Make ReportTypes a union type +- ref(node): Add source code context when using LinkedErrors (#4753) +- ref(utils): Introduce getEnvelopeType helper (#4751) +- ref(utils): Split normalization code into separate module (#4760) + +## 6.19.1 + +This release fixes a bug from 6.19.0 causing type import errors in most JS SDKs. + +- fix(types): Point to type definitions in dist folder (#4745) + +## 6.19.0 + +This release makes a change to the data normalization process, limiting the number of entries or properties which will +be included in any given array or object to 1000. Previously there was no limit, so in rare cases you may notice a +change in your context data. If this is a problem, you can increase the limit with the new `maxNormalizationBreadth` +setting. See [#4689](https://github.com/getsentry/sentry-javascript/pull/4689) for details. + +- feat(build): Create debug versions of minified bundles (#4699) +- feat(integrations): Make ES6 integration bundles (#4718) +- feat(utils): Limit `normalize` maximum properties/elements (#4689) +- feat(various): Apply debug guard to logger everywhere (#4698) +- fix(browser): Use `apply` rather than `call` in `try-catch` integration (#4695) +- fix(ember): Fix merging env config (#4714) +- fix(nextjs): Add env var to suppress API non-response meta-warning (#4706) +- fix(nextjs): Widen scope for client file upload (#4705) +- fix(node): Fix async stack parsing (#4721) +- ref(browser): Use ratelimit utils in base transport (#4686) +- ref(build): Introduce root build directory in `@sentry/browser` (#4688) +- ref(minimal): Simplify `syntheticException` creation (#4691) +- ref(tracing): Remove `BrowserTracing` logging flag default value (#4708) +- ref(utils): Simplify `isDebugBuild` logging guard (#4696) + +Work in this release contributed by @Turbo87. Thank you for your contribution! + +## 6.18.2 + +If you are using `@sentry-internal/eslint-config-sdk`, please note that this release turns on the +[quotes rule](https://eslint.org/docs/rules/quotes) to enforce usage of single quotes. + +This release also removes `@sentry/tracing` as a dependency of `@sentry/node`. Please explicitly install and import +`@sentry/tracing` if you want to use performance monitoring capabilities. For more details, +[see our docs on setting up Node Performance Monitoring](https://docs.sentry.io/platforms/node/performance/). + +We also now produce an ES6 version of our +[CDN tracing bundle](https://docs.sentry.io/platforms/javascript/install/cdn/#performance-bundle), which can be accessed +with `bundle.tracing.es6.min.js`. + +- chore(eslint): Turn on quotes rules (#4671) +- fix(node): prevent errors thrown on flush from breaking response (#4667) +- ref(node): Remove dependency on @sentry/tracing (#4647) +- fix(tracing): Make method required in transactionSampling type (#4657) +- feat(tracing): Add ES6 tracing bundle (#4674) + +Work in this release contributed by @Ignigena. Thank you for your contribution! + +## 6.18.1 + +- fix(ember): use \_backburner if it exists (#4603) +- feat(gatsby): Upgrade Sentry Webpack Plugin to 1.18.8 (#4636) +- feat(nextjs): Upgrade Sentry Webpack Plugin to 1.18.8 (#4643) +- fix(nextjs): webpack as optional peer-dependency (#4634) + +Work in this release contributed by @belgattitude, @pbernery, and @kylemh. Thank you for your contributions! + +## 6.18.0 + +This patch deprecates the `frameContextLines` option for the Node SDK. The +[migration documentation](./MIGRATION.md#upgrading-from-6.17.x-to-6.18.0) details how to migrate off the deprecated +`frameContextLines` option. + +- fix(browser): Only set event.stacktrace if we have 1 or more frames (#4614) +- fix(hub): keep hint event id if it's provided (#4577) +- fix(nextjs): Use env variable for build detection (#4608) +- ref(node): Refactor node source fetching into integration (#3729) +- feat(serverless): Added `ignoreSentryErrors` option for AWS lambda (#4620) + +Work in this release contributed by @GoshaEgorian and @ichina. Thank you for your contributions! + +## 6.17.9 + +- fix(gatsby): Add missing React peer dependency (#4576) +- fix(types): Use Sentry event type instead of dom one (#4584) + +Work in this release contributed by @aaronadamsCA. Thank you for your contribution! + +## 6.17.8 + +- feat(types): Add Envelope types (#4527) +- fix(build): Remove node code from CDN bundles (#4548) +- fix(build): Prevent unused utils code in integration bundles (#4547) +- fix(tracing): Export BrowserTracing directly in CDN bundle (#4570) +- fix(utils): Use apply in console instrumentation (#4568) +- ref(core): Log `normalizeDepth` when normalization is skipped(#4574) + +Work in this release contributed by @mydea. Thank you for your contribution! + +## 6.17.7 + +- fix(utils): Make new non-enumerable properties mutable (#4528) +- fix(vue): Check if route name is defined before casting (#4530) + +Work in this release contributed by @connorjclark. Thank you for your contribution! + +## 6.17.6 + +- fix(angular): Add check for global.location in angular universal (#4513) +- fix(nextjs): Stop injecting sentry into API middleware (#4517) +- fix(nextjs): Revert #4139 - remove manipulation of res.finished value (#4516) + +Work in this release contributed by @mobilestar1. Thank you for your contribution! + +## 6.17.5 + +This release deprecates the `Severity` enum, the `SeverityLevel` type, and the internal `SeverityLevels` array, all from +`@sentry/types`. In v7, `Severity` will disappear (in favor of `SeverityLevel`) and `SeverityLevel` and `SeverityLevels` +will live in `@sentry/utils`. If you are using any of the three, we encourage you to migrate your usage now, using our +[migration guide](./MIGRATION.md#upgrading-from-6.x-to-6.17.x). + +- ref: Export Session class from core/browser/node (#4508) +- chore(nextjs): Bump`@sentry/webpack-plugin` to 1.18.5 (#4501) +- ref(types): Move SeverityLevel and SeverityLevels to `@sentry/utils` (#4492) +- fix(vue): Cast name parameter to string (#4483) + +Work in this release contributed by @Bobakanoosh and @ssnielsen. Thank you for your contributions! + +## 6.17.4 + +- chore(deps): Bump `@sentry/webpack-plugin` from 1.18.3 to 1.18.4 (#4464) +- fix(browser): Set severity level for events captured by the global error handler (#4460) +- fix(integrations): Add default for `ExtraErrorData`'s `depth` option (#4487) +- fix(nextjs): Export `BrowserTracing` integration directly (#4480) +- fix(tracing): Export `SpanStatus` enum (#4478) +- fix(vue): Property `_isVue` not defined in Vue3 (#4461) + +Work in this release contributed by @7inspire, @jaeseokk, and @rchl. Thank you for your contributions! + +## 6.17.3 + +- fix(nextjs): Unwrap `req` and `res` if necessary when instrumenting server (#4467) + +## 6.17.2 + +This patch contains a breaking change for anyone setting the undocumented `rethrowAfterCapture` option for +`@sentry/serverless`'s AWS wrapper to `false`, as its functionality has been removed. For backwards compatibility with +anyone setting it to `true` (which is also the default), the option remains in the `WrapperOptions` type for now. It +will be removed in the next major release, though, so we recommend removing it from your code. + +- ref(serverless): Remove `rethrowAfterCapture` use in AWS lambda wrapper (#4448) +- fix(utils): Remove dom `is` casting (#4451) + +## 6.17.1 + +- ref(core): Renormalize event only after stringification errors (#4425) +- feat(nextjs): Add option to use `hidden-source-map` as webpack devtool value (#4436) +- fix(tracing): ignore the xhr/fetch response if its request is not being tracked (#4428) +- fix(vue): prevent after hook from starting new span (#4438) + +Work in this release contributed by @datbth. Thank you for your contribution! + +## 6.17.0 + +This release contains several internal refactors that help reduce the bundle size of the SDK and help prep for our +[upcoming major release](https://github.com/getsentry/sentry-javascript/issues/4240). There are no breaking changes in +this patch unless you are using our internal `Dsn` class, which has been removed. We also deprecated a few of our +typescript enums and our internal `API` class. We've detailed in our +[migration documentation](./MIGRATION.md#upgrading-from-6.x-to-6.17.x) how to update your sdk usage if you are using any +of these in your code. + +- feat: Remove Dsn class (#4325) +- feat(core): Add processing metadata to scope and event (#4252) +- feat(core): Deprecate API class (#4281) +- feat(ember): Update ember dependencies (#4253) +- fix(nextjs): Inject sentry.x.config.js into pages/\_error (#4397) +- fix(nextjs): Add sentry-cli existence check for enabling webpack plugin #4311 +- ref(tracing): deprecate span status enum (#4299) +- ref(tracing): Remove script evaluation span (#4433) +- ref(types): drop unused logLevel (#4317) +- ref(types): deprecate request status enum (#4316) +- ref(types): deprecate outcome enum (#4315) +- ref(types): deprecate transactionmethod enum (#4314) +- ref(types): deprecate status enum (#4298) +- ref(utils): improve invalid dsn error message (#4430) +- fix(vue): Prioritize app variable to avoid duplicate name pollution (#4437) + +Work in this release contributed by @yordis, @Badisi, and @lh1me. Thank you for your contribution! + +## 6.16.1 + +- feat(nextjs): Support Next.js v12 (#4093) +- fix(nextjs): Disable server instrumentation on Vercel (#4255) +- feat(tracing): Add metadata around idleTimeout (#4251) + +Work in this release contributed by @KATT. Thank you for your contribution! + +## 6.16.0 + +- feat(angular): Add Angular 13 to peer dep (#4183) +- fix(angular): Finish routing span before starting another one (#4191) +- fix(angular): Use ui category for span operations (#4222) +- feat(ember): Use @types/ember\_\_debug (#4173) +- fix(ember): Use ui category for span operations (#4221) +- feat(eslint-config): Enable array-callback-return rule (#4229) +- ref(eslint-config): Update spaced-comment rule (#4235) +- fix(integrations): Use ui category for vue span operations (#4219) +- fix(nextjs): Add sideEffects flag to NextJS SDK (#4216) +- fix(node): Make http integration spans have http span operation (#4224) +- fix(react): Mark react package as having no side effects (#4213) +- fix(react): Use ui category for operations (#4218) +- fix(tracing): Add express category to express middleware spans (#4223) +- fix(tracing): Treat HTTP status code below 100 as UnknownError (#4131) +- fix(types): Make Options type method params contravariant (#4234) +- fix(vue): Mark Vue as having no side effects. (#4217) +- fix(vue): Use ui category for span operations (#4220) + +Work in this release contributed by @jherdman and @travigd. Thank you for your contribution! + +## 6.15.0 + +- fix(browser): Capture stacktrace on `DOMExceptions`, if possible (#4160) +- fix(nextjs): Delay error propagation until `withSentry` is done (#4027) + +Work in this release contributed by @nowylie. Thank you for your contribution! + +## 6.14.3 + +- Revert: ref(utils): Use type predicates in `is` utility functions (#4124) + +## 6.14.2 + +- feat(awslambda) : Capture errors individually on sqs partial batch failure (#4130) +- feat(gatsby): Upload source maps automatically when sentry-cli is configured (#4109) +- fix(nextjs): Prevent `false API resolved without sending a response` warning (#4139) +- fix(vue): Merge default and manual hooks while creating mixins. (#4132) +- ref(utils): Use type predicates in `is` utility functions (#4124) + +Work in this release contributed by @J4YF7O. Thank you for your contribution! + +## 6.14.1 + +- feat(gatsby): Support Gatsby v4 (#4120) +- fix(nextjs): Stop sending transactions for requests that 404 (#4095) +- fix(nextjs): Prevent infinite recompilation in dev (#4123) +- fix(node): Prioritize globalAgent while figuring out protocol (#4087) + +## 6.14.0 + +- chore(deps): Bump @sentry/webpack-plugin to 1.18.1 (#4063) +- feat(awslambda): Add requestId filter to aws.cloudwatch.logs URL (#4032) +- feat(gatsby): Support non-serializable SDK options (#4064) +- feat(gatsby): Support user integrations as a function (#4050) +- feat(integrations): Call toJSON of originalException to extract more data (#4038) +- feat(integrations): Capture console.error as an exception (#4034) +- feat(nextjs): Add mechanism to error-logger-caught errors (#4061) +- feat(nextjs): Add mechanism to withSentry-caught errors (#4046) +- feat(nextjs): Tag backend events when running on vercel (#4091) +- fix(browser): Send client outcomes through tunnel if configured (#4031) +- fix(core): Be stricter about mechanism values (#4068) +- fix(core): Prevent exception recapturing (#4067) +- fix(nextjs): Always initialize SDK with global hub (#4086) +- fix(nextjs): Fix types in config code (#4057) +- fix(nextjs): Remove logic merging include values in withSentryConfig (#4056) +- fix(node): Check for potentially undefined httpModule (#4037) +- fix(tracing): Update paths for DB drivers auto-instrumentation (#4083) +- fix(vue): Move ROOT_SPAN_TIMER into Vue context. (#4081) + +Work in this release contributed by @tmilar, @deammer, and @freekii. Thank you for your contributions! + +## 6.13.3 + +- feat(nextjs): Add ability for integration tests to use linked `@sentry/xxxx` packages (#4019) +- feat(nextjs): Support `distDir` Next.js option (#3990) +- fix(tracing): Call hasTracingEnabled with correct options when invoking startTransaction (#4020) +- ref(browser): Refactor sending client reports w. fetch fallback (#4008) +- ref(core): Make getTransport method on client optional (#4013) +- ref(ember): Update htmlbars dependency (#4026) +- ref(integrations): Minor simplification of ExtraErrorData code (#4024) +- ref(react): Rely on error.cause to link ErrorBoundary errors (#4005) + +## 6.13.2 + +- fix(browser): Use getGlobalObject for document check (#3996) +- misc(all): Disallow direct usage of globals (#3999) + +## 6.13.1 + +- fix(browser): Check for document when sending outcomes (#3993) + +## 6.13.0 + +- feat(browser): Client Report Support (#3955) +- feat(perf): Add experimental option to improve LCP collection (#3879) +- fix(browser): Make sure that `document.head` or `document.body` exists for `injectReportDialog` (#3972) +- fix(browser): Parse frames-only `safari(-web)-extension` stack (#3929) +- fix(ember): Move `ember-source` to `devDependencies` (#3962) +- fix(hub): Don't set `lastEventID` for transactions (#3966) +- fix(nextjs): Include nextjs config's `basePath` on `urlPrefix` (#3922) +- fix(node): Add protocol detection for get/request calls without explict protocol (#3950) +- fix(node): Disable `autoSessionTracking` if dsn undefined (#3954) +- fix(vue): Check for matched route existence before starting transaction (#3973) +- ref(browser): Migrate unit tests from Chai and Karma to Jest (#3965) +- ref(nextjs): Exclude cross-platform tracing code from bundles (#3978) +- ref(tracing): Idle transaction refactoring (#3988) + +## 6.12.0 + +- fix(nextjs): Differentiate between webpack 4 and 5 in server builds (#3878) +- fix(core): Skip native frames while searching frame URLs. (#3897) +- fix(vue): Attach props only if VM is available (#3902) +- feat(tracing): Add pg-native support to Postgres integration. (#3894) +- ref(ember): Update addon to support Ember 4.0.0 (beta) (#3915) +- feat(react): Make Profiler \_mountSpan attribute protected (#3904) +- fix(ember): allow ember-beta to fail (#3910) +- fix(tracing): Prevent metrics erroring module load in web workers (#3941) +- misc(browser): Log when event is dropped by Dedupe integration (#3943) + +## 6.11.0 + +- feat(nextjs): Allow for TypeScript user config files (#3847) +- fix(browser): Make sure handler exists for LinkedErrors Integration (#3861) +- fix(core): Skip anonymous callbacks while searching frame URLs. (#3842) +- fix(core): Stop rejecting in `flush` and `close` when client undefined (#3846) +- fix(nextjs): Stop `SentryWebpackPlugin` from uploading unnecessary files (#3845) +- fix(react): Require ReactElement in ErrorBoundary props and render (#3857) +- fix(tests): Allow tests to run on Windows without WSL (#3813) +- fix(utils): Fix false-positive circular references when normalizing `Event` objects (#3864) +- fix(vue): Make Router.name type optional to match VueRouter (#3843) +- ref(core): Prevent redundant setup work (#3862) +- ref(nextjs): Stop reinitializing the server SDK unnecessarily (#3860) + +## 6.10.0 + +- feat(vue): Rework tracing and add support for `Vue 3` (#3804) +- feat(tracing): Upgrade to `web-vitals 2.1.0` (#3781) +- fix(ember): Make argument to `InitSentryForEmber` optional (#3802) +- fix(nextjs): Do not start a navigation if the from URL is the same (#3814) +- fix(nextjs): Let `flush` finish in API routes (#3811) +- fix(nextjs): Use `domains` to prevent scope bleed (#3788) +- fix(react): Make `Route` typing more generic (#3809) +- ref(tracing): Update span op for outgoing HTTP requests (#3821) +- ref(tracing): Remove updated CLS from web-vitals (#3822) + +## 6.9.0 + +- feat(browser): Use scope data in report dialog (#3792) +- feat(core): Add `ensureNoCircularStructures` experiment to help debug serialization bugs (#3776) +- feat(nextjs): Add options to disable webpack plugin (#3771) +- feat(react): Support render props in `ErrorBoundary` (#3793) +- fix(ember): Correctly cache ember types from prepublish hook (#3749) +- fix(ember): Fix runtime config options not being merged (#3791) +- fix(metrics): Check for cls entry sources (#3775) +- fix(nextjs): Make `withSentryConfig` return type match given config type (#3760) +- fix(node): Check if `captureRequestSession` is available before its called (#3773) +- fix(node): Enable `autoSessionTracking` correctly (#3758) +- fix(react): `allRoutes` cannot triple equal a new array instance (#3779) +- fix(tracing): Add check for `document.scripts` in metrics (#3766) +- fix(types): Update `ExtractedNodeRequestData` to include valid `query_params` for `tracesSampler` (#3715) +- ref(gatsby): Default release to empty string (#3759) +- ref(nextjs): Inject init code in `_app` and API routes (#3786) +- ref(nextjs): Pre-disable-plugin-option config cleanup (#3770) +- ref(nextjs): Stop setting redundant `productionBrowserSourceMaps` in config (#3765) + +## 6.8.0 + +- [browser] feat: Enable serialization of multiple DOM attributes for breadcrumbs. (#3755) +- [browser] feat: Make dedupe integration default for browser (#3730) +- [core] fix: Correctly limit Buffer requests (#3736) +- [ember] ref: Allow initing Ember without config entry (#3745) +- [serverless] fix: wrapEventFunction does not await for async code (#3740) + +## 6.7.2 + +- [core] fix: Do not track sessions if not enabled (#3686) +- [core] fix: Prevent sending terminal status session updates (#3701) +- [core] ref: Make `beforeSend` more strict (#3713) +- [browser] ref: Log which request type has been limited (#3687) +- [nextjs] feat: Auto enable node http integration on server (#3675) +- [nextjs] fix: Correctly handle functional next config in `withSentryConfig` (#3698) +- [nextjs] fix: Fix conflict with other libraries modifying webpack `entry` property (#3703) +- [nextjs] fix: Update @sentry/webpack-plugin to 1.15.1 in @sentry/nextjs to resolve build timeouts issue (#3708) +- [nextjs] ref: Split up config code and add tests (#3693) + +## 6.7.1 + +- [core] fix: Add event type to item header when envelopes are forced (#3676) +- [core] fix: Include DSN in envelope header for sessions (#3680) +- [core] fix: Prevent scope from storing more than 100 breadcrumbs at the time (#3677) +- [node] ref: Remove default http(s) import from http-module (#3681) +- [nextjs] feat: Add body data to transaction `request` context (#3672) + +## 6.7.0 + +- [core] feat: Add `tunnel` option to support request tunneling for dealing with ad-blockers (#3521) + +## 6.6.0 + +- [node] feat: Allow for overriding custom `UrlParser` in Node.js transports (#3612) +- [browser] feat: Add `serializeAttribute` option to DOM breadcrumbs. (#3620) +- [nextjs] fix: `Improve NextConfigExports` compatibility (#3592) +- [nextjs] fix: Use correct abs path for server init (#3649) +- [angular] fix: Do not run change detection when capturing the exception (#3618) +- [angular] fix: Do not run change detection when finishing transaction (#3622) +- [angular] fix: Provide a single compilation unit for the `trace` directive (#3617) +- [utils] fix: Check for `performance.now` when calculating browser timing (#3657) +- [integrations] fix: Run rewriting for both `exception` and `stacktrace` events (#3653) +- [node] ref: Replace old-style `require(console)` with a global object (#3623) +- [node] ref: Make `HTTPModule` more abstract to be able to use it in non-Node.JS environments (#3655) +- [nextjs] ref: Export `BrowserTracing` integration directly from `@sentry/nextjs` (#3647) + +## 6.5.1 + +- [nextjs] fix: Prevent webpack 5 from crashing server (#3642) +- [eslint] build: Upgrade to eslint 7.27.0 (#3639) +- [nextjs] test: Add nextjs integration tests for Server and Browser (#3632) +- [browser] ref: Don't send session duration in browser environments (#3616) +- [hub] fix: Correctly compute session durations (#3616) + +## 6.5.0 + +- [angular] fix: prevent memory leak when the root view is removed (#3594) +- [browser] fix: Do not trigger session on meaningless navigation (#3608) +- [nextjs] feat: Frontend + withSentry Performance Monitoring (#3580) +- [react] fix: Use history object for init transaction name (#3609) + +## 6.4.1 + +- [ember] ref: Fix merging of runtime config with environment config. (#3563) +- [angular] ref: Allow angular v12 as a peer dependency. (#3569) +- [tracing] fix: Avoid browser tracing initialization on node environment (#3548) +- [react] ref: Make RouteProps typing more generic (#3570) +- [tracing] fix: Correctly handle pg.Cursor in pg query method (#3567) +- [types] fix: Add attachment to SentryRequestType (#3561) +- [nextjs] ref: Disable node session for next.js (#3558) +- [eslint] feat: Add new eslint rules (#3545) + +## 6.4.0 + +- [core] feat: initialScope in SDK Options (#3544) +- [node] feat: Release Health for Node (Session Aggregates) (#3319) +- [node] feat: Autoload Database Integrations in Node environment (#3483) +- [react] feat: Add support for React 17 Error Boundaries (#3532) +- [tracing] fix: Generate TTFB (Time to first byte) from span data (#3515) + +## 6.3.6 + +- [nextjs] fix: Fix error logging (#3512) +- [nextjs] fix: Add environment automatically (#3495) +- [node] feat: Implement category based rate limiting (#3435) +- [node] fix: Set handled to false when it is a crash (#3493) +- [tracing] fix: Mark tracing distributables as side effects (#3519) + +## 6.3.5 + +- [nextjs] fix: Add tslib dependecy; change inject order (#3487) + +## 6.3.4 + +- [nextjs] fix: API routes logging (#3479) + +## 6.3.3 + +- [nextjs] fix: User server types (#3471) + +## 6.3.2 + +- [nextjs] ref: Remove next.js plugin (#3462) +- [core] fix: Prevent InboundFilters mergeOptions method from breaking users code (#3458) + +## 6.3.1 + +- [angular] fix: Make SentryErrorHandler extensible and export it publicly (#3438) +- [browser] feat: Capture information about the LCP element culprit (#3427) +- [core] fix: Correctly attach installed integrations to sdkinfo (#3447) +- [ember] fix: Add guards to ensure marks exist (#3436) +- [nextjs] fix: Fix incomplete merging of user config with Sentry config (#3434) +- [nextjs] ref: Use resolved paths for `require` calls in config code (#3426) +- [node] fix: Fix for manual tests in node (#3428) +- [transports] feat: Honor no_proxy env variable (#3412) + +## 6.3.0 + +- [browser] feat: Parse safari-extension and safari-web-extension errors (#3374) +- [browser] fix: Provide better descriptions for the performance navigation timing spans (#3245) +- [browser] test: Replace Authorization with Accept header (#3400) +- [ci] ci: Add CodeQL scanning +- [core] Drop session if release is not a string or is missing and log (#3396) +- [docs] Document how to publish a new release (#3361) +- [gatsby] fix: Specify gatsby peer dep (#3385) +- [gatsby] chore(docs): Update @sentry/gatsby README (#3384) +- [integrations] feat(integrations): add prefix support for RewriteFrames (#3416) +- [integrations] ref: Use esm imports with localforage and add esModuleInterop (#3403) +- [nextjs] feat: Next.js SDK + Plugin (#3301) +- [node] fix: Generate a Sentry Release string from env if its not provided (#3393) +- [tracing] fix: Replace performance.timeOrigin in favour of browserPerformanceTimeOrigin (#3397) +- [tracing] fix: Mark span as failed when fetch API call fails (#3351) +- [utils] fix: Use the more reliable timeOrigin (#3398) +- [utils] fix: Wrap oldOnPopState.apply call in try/catch to prevent Firefox from crashing (#3377) + +## 6.2.5 + +- [utils] fix: Avoid performance.timeOrigin if too skewed (#3356) + +## 6.2.4 + +- [browser] fix: Add `SentryRequestType` to `RateLimitingCategory` mapping (#3328) +- [browser] ref: Add fast-path to `fetchImpl` and cleanup redundant iframe (#3341) +- [node] fix: Fallback to empty string if `req.baseUrl` is empty (#3329) +- [node] ref: Remove circular dependency in `@sentry/node` (#3335) +- [tracing] fix: Attach mysql tracing to `Connection.createQuery` instead of `Connection.prototype.query` (#3353) +- [tracing] ref: Clarify naming in `BrowserTracing` integration (#3338) +- [ember] ref: Fix tests to be forward compatible with component changes (#3347) +- [ember] ref: Silence deprecation warnings in beta (#3346) + +## 6.2.3 + +- [gatsby] fix: Update Vercel environment variables to match their current system variables (#3337) + +## 6.2.2 + +- [hub] fix: Only create sessions if the correct methods are defined (#3281) +- [core] fix: Don't override SDK metadata (#3304) +- [browser] fix: Prevent fetch errors loops with invalid fetch implementations (#3318) +- [serverless] ref: Add compatible runtime nodejs14.x to building awslambda layer (#3303) +- [ember] fix: Keep route hook context when performance-wrapping (#3274) +- [integrations] fix: Normalized Event before caching. (#3305) + +## 6.2.1 + +- [core] fix: Moves SDK metadata-setting into the `NodeClient/BrowserClient` to protect it from being overwritten by + other classes extending `BaseClient` like @sentry/serverless (#3279) + +## 6.2.0 + +- [tracing] feat: Mongoose tracing support added to MongoDB (#3252) +- [tracing] fix: Add missing `find` method from mongo tracing list (#3253) +- [tracing] fix: Create `spanRecorder` whenever transactions are sampled (#3255) +- [node] fix: Parse ESM based frames with `file://` protocol (#3264) +- [react] fix: Remove react-dom peer dependency for RN (#3250) +- [ember] fix: Fixing fetching config during build step (#3246) +- [serverless]: fix: Handle incoming `sentry-trace` header (#3261) + +## 6.1.0 + +We updated the way how we calculate errored and crashed sessions with this update. Please be aware that some numbers +might change for you and they now should reflect the actual reality. Visit +[our docs](https://docs.sentry.io/platforms/javascript/configuration/releases/#release-health) for more information. + +- [browser] feat: Rework how we track sessions (#3224) +- [hub] ref: Simplify getting hub from active domain (#3227) +- [core] ref: Rename `user` to `publicKey` in `Dsn` type and class (#3225) +- [ember] fix: Fix backwards compatibility with Embroider changes (#3230) + +## 6.0.4 + +- [browser] fix: Don't break when function call context is undefined (#3222) +- [tracing] fix: Set default sampling context data where `startTransaction` is called (#3210) +- [tracing] fix: Remove stray sampling data tags (#3197) +- [tracing] fix: Clear activeTransaction from the scope and always start idle timers (#3215) +- [angular] ref: Add Angular 11 to possible peerDependencies list (#3201) +- [vue] ref: Add `vue-router` to peerDependencies list (#3214) + +## 6.0.3 + +- [tracing] ref: feat(tracing): Add context update methods to Span and Transaction (#3192) +- [node] ref: Make ExpressRequest not extend http.IncomingMessage anymore (#3211) +- [browser] deps: Allow for LocalForage >=1.8.1 (#3205) +- [ember] fix(ember): Fix location url for 'hash' location type (#3195) +- [ember] fix(ember): Fix Ember to work with Embroider and Fastboot (#3181) + +## 6.0.2 + +- [browser] fix: Disable session tracking in non-browser environments (#3194) + +## 6.0.1 + +- [vue] fix: Make sure that error is present before logging it in Vue (#3183) +- [serverless] fix: Fix issue when `/dist` didn't exist before building (#3190) + +## 6.0.0 + +_This major version release doesn't contain any breaking API/code changes._ Starting from the version `6.0.0`, all SDKs +that support sending sessions data will do so by default. See our +[Release Health](https://docs.sentry.io/product/releases/health/) docs to learn more. As of this version, it applies to +all Browser SDKs (Browser, React, Angular, Vue, Gatsby etc.). Node.js and other related Server SDKs will follow soon +after, in the minor `6.x` release. You can opt-out of this behavior by setting `autoSessionTracking: false` option +during SDK initialization. + +--- + +- [wasm] feat: Introduce a `@sentry/wasm` package (#3080) +- [tracing] feat: Turn Sessions Tracking on by default (#3099) +- [tracing] feat: Create session on history change (#3179) +- [core] feat: Attach SDK metadata to options and pass it to the API and transports (#3177) +- [build] feat: AWS Lambda layer target config for Craft (#3175) +- [tracing] fix: Make sure that mongo method is thenable before calling it (#3173) From ad9d6abcda2ca1862a813ca2d11f3f968464e9ab Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 19 Mar 2024 15:10:13 -0400 Subject: [PATCH 41/56] feat(v8/nextjs): Remove usage of class integrations (#11182) In order to proceed with removing `Sentry.Integrations.X` as per https://github.com/getsentry/sentry-javascript/issues/8844, there's still some places to clean up. This does conflict with https://github.com/getsentry/sentry-javascript/pull/11016, but not sure when that merges in, so opening this in the meantime to unblock the integrations cleanup work. if we think the OTEL nextjs work will merge in sooner then the next 1-2 days, I'm happy to leave this alone for now! --- packages/nextjs/src/server/httpIntegration.ts | 16 ++++------------ packages/nextjs/src/server/index.ts | 10 ++++------ .../src/server/onUncaughtExceptionIntegration.ts | 16 ++++------------ packages/nextjs/test/serverSdk.test.ts | 12 ------------ 4 files changed, 12 insertions(+), 42 deletions(-) diff --git a/packages/nextjs/src/server/httpIntegration.ts b/packages/nextjs/src/server/httpIntegration.ts index a170e86bd4ea..1da29b5e866b 100644 --- a/packages/nextjs/src/server/httpIntegration.ts +++ b/packages/nextjs/src/server/httpIntegration.ts @@ -1,13 +1,5 @@ -import { Integrations } from '@sentry/node-experimental'; +import { httpIntegration as originalHttpIntegration } from '@sentry/node-experimental'; -/** - * A custom HTTP integration where we always enable tracing. - */ -export class Http extends Integrations.Http { - public constructor(options?: ConstructorParameters[0]) { - super({ - ...options, - tracing: true, - }); - } -} +export const httpIntegration: typeof originalHttpIntegration = options => { + return originalHttpIntegration({ ...options, tracing: true }); +}; diff --git a/packages/nextjs/src/server/index.ts b/packages/nextjs/src/server/index.ts index 6ec2f500a8c3..a52a88a5db94 100644 --- a/packages/nextjs/src/server/index.ts +++ b/packages/nextjs/src/server/index.ts @@ -13,16 +13,14 @@ import { devErrorSymbolicationEventProcessor } from '../common/devErrorSymbolica import { getVercelEnv } from '../common/getVercelEnv'; import { isBuild } from '../common/utils/isBuild'; import { distDirRewriteFramesIntegration } from './distDirRewriteFramesIntegration'; -import { Http } from './httpIntegration'; -import { OnUncaughtException } from './onUncaughtExceptionIntegration'; +import { httpIntegration } from './httpIntegration'; +import { onUncaughtExceptionIntegration } from './onUncaughtExceptionIntegration'; export * from '@sentry/node-experimental'; export { captureUnderscoreErrorException } from '../common/_error'; export const Integrations = { ...OriginalIntegrations, - Http, - OnUncaughtException, }; const globalWithInjectedValues = global as typeof global & { @@ -85,8 +83,8 @@ export function init(options: NodeOptions): void { ...getDefaultIntegrations(options).filter( integration => !['Http', 'OnUncaughtException'].includes(integration.name), ), - new Http(), - new OnUncaughtException(), + httpIntegration(), + onUncaughtExceptionIntegration(), ]; // This value is injected at build time, based on the output directory specified in the build config. Though a default diff --git a/packages/nextjs/src/server/onUncaughtExceptionIntegration.ts b/packages/nextjs/src/server/onUncaughtExceptionIntegration.ts index e88520cf9534..8bbe348cb082 100644 --- a/packages/nextjs/src/server/onUncaughtExceptionIntegration.ts +++ b/packages/nextjs/src/server/onUncaughtExceptionIntegration.ts @@ -1,13 +1,5 @@ -import { Integrations } from '@sentry/node-experimental'; +import { onUncaughtExceptionIntegration as originalOnUncaughtExceptionIntegration } from '@sentry/node-experimental'; -/** - * A custom OnUncaughtException integration that does not exit by default. - */ -export class OnUncaughtException extends Integrations.OnUncaughtException { - public constructor(options?: ConstructorParameters[0]) { - super({ - exitEvenIfOtherHandlersAreRegistered: false, - ...options, - }); - } -} +export const onUncaughtExceptionIntegration: typeof originalOnUncaughtExceptionIntegration = options => { + return originalOnUncaughtExceptionIntegration({ ...options, exitEvenIfOtherHandlersAreRegistered: false }); +}; diff --git a/packages/nextjs/test/serverSdk.test.ts b/packages/nextjs/test/serverSdk.test.ts index a9ce73588e7a..24a03f39a95b 100644 --- a/packages/nextjs/test/serverSdk.test.ts +++ b/packages/nextjs/test/serverSdk.test.ts @@ -151,18 +151,6 @@ describe('Server init()', () => { expect(httpIntegration).toBeDefined(); expect(httpIntegration).toEqual(expect.objectContaining({ _tracing: {} })); }); - - it('forces `_tracing = true` even if set to false', () => { - init({ - integrations: [new Integrations.Http({ tracing: false })], - }); - - const nodeInitOptions = nodeInit.mock.calls[0][0] as ModifiedInitOptions; - const httpIntegration = findIntegrationByName(nodeInitOptions.integrations, 'Http'); - - expect(httpIntegration).toBeDefined(); - expect(httpIntegration).toEqual(expect.objectContaining({ _tracing: {} })); - }); }); }); }); From 37abbd1074c5e6bf82fac88917bad0e23df1b9c3 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 20 Mar 2024 15:12:19 +0100 Subject: [PATCH 42/56] feat(core): Filter out noisy GoogleTag error by default (#11208) We received reports about this error ``` TypeError: Cannot redefine property: googletag ``` being thrown and reported to Sentry. It's a noisy error where we strongly suspect that browser extensions interfere with our users' apps. In an effort to quickly reduce noise, this patch adds the error message to our SDK `inboundFilters` integration. --- .../core/src/integrations/inboundfilters.ts | 1 + .../lib/integrations/inboundfilters.test.ts | 20 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/core/src/integrations/inboundfilters.ts b/packages/core/src/integrations/inboundfilters.ts index 833169e33bd2..9c64476568c7 100644 --- a/packages/core/src/integrations/inboundfilters.ts +++ b/packages/core/src/integrations/inboundfilters.ts @@ -10,6 +10,7 @@ const DEFAULT_IGNORE_ERRORS = [ /^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/, /^ResizeObserver loop completed with undelivered notifications.$/, + /^Cannot redefine property: googletag$/, ]; /** Options for the InboundFilters integration */ diff --git a/packages/core/test/lib/integrations/inboundfilters.test.ts b/packages/core/test/lib/integrations/inboundfilters.test.ts index 72d553ce3dc2..e4c46d18094f 100644 --- a/packages/core/test/lib/integrations/inboundfilters.test.ts +++ b/packages/core/test/lib/integrations/inboundfilters.test.ts @@ -198,6 +198,17 @@ const RESIZEOBSERVER_EVENT: Event = { }, }; +const GOOGLETAG_EVENT: Event = { + exception: { + values: [ + { + type: 'TypeError', + value: 'Cannot redefine property: googletag', + }, + ], + }, +}; + const MALFORMED_EVENT: Event = { exception: { values: [ @@ -299,16 +310,21 @@ describe('InboundFilters', () => { expect(eventProcessor(EXCEPTION_EVENT, {})).toBe(null); }); - it('uses default filters', () => { + it('uses default filters (script error)', () => { const eventProcessor = createInboundFiltersEventProcessor(); expect(eventProcessor(SCRIPT_ERROR_EVENT, {})).toBe(null); }); - it('uses default filters ResizeObserver', () => { + it('uses default filters (ResizeObserver)', () => { const eventProcessor = createInboundFiltersEventProcessor(); expect(eventProcessor(RESIZEOBSERVER_EVENT, {})).toBe(null); }); + it('uses default filters (googletag)', () => { + const eventProcessor = createInboundFiltersEventProcessor(); + expect(eventProcessor(GOOGLETAG_EVENT, {})).toBe(null); + }); + it('filters on last exception when multiple present', () => { const eventProcessor = createInboundFiltersEventProcessor({ ignoreErrors: ['incorrect type given for parameter `chewToy`'], From 3ee65ab257eccbaf7ebd4efb5a521caff6a12dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kry=C5=A1tof=20Wold=C5=99ich?= <31292499+krystofwoldrich@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:32:40 +0100 Subject: [PATCH 43/56] fix(attachments): Add missing `view_hierarchy` attachment type (#11197) --- packages/types/src/attachment.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/types/src/attachment.ts b/packages/types/src/attachment.ts index 1e619cf108ea..11bbca772e02 100644 --- a/packages/types/src/attachment.ts +++ b/packages/types/src/attachment.ts @@ -3,7 +3,8 @@ export type AttachmentType = | 'event.minidump' | 'event.applecrashreport' | 'unreal.context' - | 'unreal.logs'; + | 'unreal.logs' + | 'event.view_hierarchy'; /** * An attachment to an event. This is used to upload arbitrary data to Sentry. From 1f921baf22e0607f75e27d0a82ad4f98c5a267fc Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 20 Mar 2024 17:12:58 -0400 Subject: [PATCH 44/56] feat(v8/ember): Remove InitSentryForEmber export (#11202) ref https://github.com/getsentry/sentry-javascript/issues/10100 --- MIGRATION.md | 12 ++++++++++++ packages/ember/addon/index.ts | 5 ----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 05c89429f5f2..1daf6c3d5c8d 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -349,6 +349,7 @@ To make sure these integrations work properly you'll have to change how you - [SvelteKit SDK](./MIGRATION.md#sveltekit-sdk) - [Astro SDK](./MIGRATION.md#astro-sdk) - [AWS Serverless SDK](./MIGRATION.md#aws-serverless-sdk) +- [Ember SDK](./MIGRATION.md#ember-sdk) ### General @@ -888,6 +889,17 @@ time, including breaking changes within the same major version of the SDK. In `v6.17.2` the `rethrowAfterCapture` option to `wrapHandler` was deprecated. In `v8` it has been removed. There is no replacement API. +### Ember SDK + +Removed top-level exports: `InitSentryForEmber` + +- [Removal of `InitSentryForEmber` export](./MIGRATION.md#removal-of-initsentryforember-export) + +#### Removal of `InitSentryForEmber` export + +The `InitSentryForEmber` export has been removed. Instead, you should use the `Sentry.init` method to initialize the +SDK. + ## 5. Behaviour Changes - [Updated behaviour of `tracePropagationTargets` in the browser](./MIGRATION.md#updated-behaviour-of-tracepropagationtargets-in-the-browser-http-tracing-headers--cors) diff --git a/packages/ember/addon/index.ts b/packages/ember/addon/index.ts index 5ab053aa63df..f17e4749ceb7 100644 --- a/packages/ember/addon/index.ts +++ b/packages/ember/addon/index.ts @@ -128,8 +128,3 @@ export const instrumentRoutePerformance = (BaseRoute }; export * from '@sentry/browser'; - -/** - * @deprecated Use `Sentry.init()` instead. - */ -export const InitSentryForEmber = init; From 11d3cad7467cbfb0da03fb34ee900e529d77a2f2 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Thu, 21 Mar 2024 11:14:25 +0100 Subject: [PATCH 45/56] build: Gitignore angular output folder (#11223) --- packages/angular/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/angular/.gitignore diff --git a/packages/angular/.gitignore b/packages/angular/.gitignore new file mode 100644 index 000000000000..98a47fa1885e --- /dev/null +++ b/packages/angular/.gitignore @@ -0,0 +1 @@ +.angular From 3cc03440826375d6c563872ef6a810ef3bb2c6c1 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Thu, 21 Mar 2024 11:22:24 +0100 Subject: [PATCH 46/56] deps: Unstale yarn lock (#11222) --- yarn.lock | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5064a198aea8..6644c3a1fca6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6712,8 +6712,17 @@ dependencies: "@types/unist" "*" -"@types/history-4@npm:@types/history@4.7.8", "@types/history-5@npm:@types/history@4.7.8", "@types/history@*": - name "@types/history-4" +"@types/history-4@npm:@types/history@4.7.8": + version "4.7.8" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" + integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== + +"@types/history-5@npm:@types/history@4.7.8": + version "4.7.8" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" + integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== + +"@types/history@*": version "4.7.8" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== @@ -7103,7 +7112,15 @@ "@types/history" "^3" "@types/react" "*" -"@types/react-router-4@npm:@types/react-router@5.1.14", "@types/react-router-5@npm:@types/react-router@5.1.14": +"@types/react-router-4@npm:@types/react-router@5.1.14": + version "5.1.14" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.14.tgz#e0442f4eb4c446541ad7435d44a97f8fe6df40da" + integrity sha512-LAJpqYUaCTMT2anZheoidiIymt8MuX286zoVFPM3DVb23aQBH0mAkFvzpd4LKqiolV8bBtZWT5Qp7hClCNDENw== + dependencies: + "@types/history" "*" + "@types/react" "*" + +"@types/react-router-5@npm:@types/react-router@5.1.14": version "5.1.14" resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.14.tgz#e0442f4eb4c446541ad7435d44a97f8fe6df40da" integrity sha512-LAJpqYUaCTMT2anZheoidiIymt8MuX286zoVFPM3DVb23aQBH0mAkFvzpd4LKqiolV8bBtZWT5Qp7hClCNDENw== @@ -25288,8 +25305,7 @@ react-is@^18.0.0: dependencies: "@remix-run/router" "1.0.2" -"react-router-6@npm:react-router@6.3.0", react-router@6.3.0: - name react-router-6 +"react-router-6@npm:react-router@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== @@ -25304,6 +25320,13 @@ react-router-dom@^6.2.2: history "^5.2.0" react-router "6.3.0" +react-router@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" + integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== + dependencies: + history "^5.2.0" + react@^18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96" @@ -27783,7 +27806,7 @@ stringify-object@^3.2.1: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -27811,6 +27834,13 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -30457,7 +30487,16 @@ workerpool@^6.4.0: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.4.0.tgz#f8d5cfb45fde32fa3b7af72ad617c3369567a462" integrity sha512-i3KR1mQMNwY2wx20ozq2EjISGtQWDIfV56We+yGJ5yDs8jTwQiLLaqHlkBHITlCuJnYlVRmXegxFxZg7gqI++A== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@7.0.0, wrap-ansi@^5.1.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.1.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@7.0.0, wrap-ansi@^5.1.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.1.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From aa76951eed2bd4243c81bb17ccc31c2df0cdd270 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Thu, 21 Mar 2024 16:20:18 +0100 Subject: [PATCH 47/56] test: Add tests to demonstrate `withScope` data loss for uncaught errors (#11204) This PR adds integration tests (browser and node) to demonstrate the current behavior around loosing scope data when a thrown error is caught by global handlers "outside" the lifetime of the throw origin's scope. This occurs specifically within the `withScope` API where the scope is popped if an error is caught but then the error is rethrown to be caught by handlers down the line. --- .../withScope/throwError/subject.js | 7 ++ .../public-api/withScope/throwError/test.ts | 33 +++++++ .../handle-error-scope-data-loss/server.ts | 31 +++++++ .../handle-error-scope-data-loss/test.ts | 89 +++++++++++++++++++ 4 files changed, 160 insertions(+) create mode 100644 dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/subject.js create mode 100644 dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/test.ts create mode 100644 dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/server.ts create mode 100644 dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/test.ts diff --git a/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/subject.js b/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/subject.js new file mode 100644 index 000000000000..67cc16af1d40 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/subject.js @@ -0,0 +1,7 @@ +Sentry.setTag('global', 'tag'); +setTimeout(() => { + Sentry.withScope(scope => { + scope.setTag('local', 'tag'); + throw new Error('test error'); + }); +}, 10); diff --git a/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/test.ts b/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/test.ts new file mode 100644 index 000000000000..cb21bebb8241 --- /dev/null +++ b/dev-packages/browser-integration-tests/suites/public-api/withScope/throwError/test.ts @@ -0,0 +1,33 @@ +import { expect } from '@playwright/test'; +import type { Event } from '@sentry/types'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest } from '../../../../utils/helpers'; + +/** + * Why does this test exist? + * + * We recently discovered that errors caught by global handlers will potentially loose scope data from the active scope + * where the error was thrown in. The simple example in this test (see subject.ts) demonstrates this behavior (in a + * browser environment but the same behavior applies to the server; see the test there). + * + * This test nevertheless covers the behavior so that we're aware. + */ +sentryTest( + 'withScope scope is NOT applied to thrown error caught by global handler', + async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getFirstSentryEnvelopeRequest(page, url); + + const ex = eventData.exception?.values ? eventData.exception.values[0] : undefined; + + // This tag is missing :( + expect(eventData.tags?.local).toBeUndefined(); + + expect(eventData.tags).toMatchObject({ + global: 'tag', + }); + expect(ex?.value).toBe('test error'); + }, +); diff --git a/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/server.ts b/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/server.ts new file mode 100644 index 000000000000..ad45cd5d6713 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/server.ts @@ -0,0 +1,31 @@ +import { loggingTransport, startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests'; +import * as Sentry from '@sentry/node-experimental'; +import express from 'express'; + +const app = express(); + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', + transport: loggingTransport, +}); + +app.use(Sentry.Handlers.requestHandler()); + +Sentry.setTag('global', 'tag'); + +app.get('/test/withScope', () => { + Sentry.withScope(scope => { + scope.setTag('local', 'tag'); + throw new Error('test_error'); + }); +}); + +app.get('/test/isolationScope', () => { + Sentry.getIsolationScope().setTag('isolation-scope', 'tag'); + throw new Error('isolation_test_error'); +}); + +app.use(Sentry.Handlers.errorHandler()); + +startExpressServerAndSendPortToRunner(app); diff --git a/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/test.ts b/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/test.ts new file mode 100644 index 000000000000..f1bb9a1229b1 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/express/handle-error-scope-data-loss/test.ts @@ -0,0 +1,89 @@ +import { cleanupChildProcesses, createRunner } from '../../../utils/runner'; + +afterAll(() => { + cleanupChildProcesses(); +}); + +/** + * Why does this test exist? + * + * We recently discovered that errors caught by global handlers will potentially loose scope data from the active scope + * where the error was originally thrown in. The simple example in this test (see subject.ts) demonstrates this behavior + * (in a Node environment but the same behavior applies to the browser; see the test there). + * + * This test nevertheless covers the behavior so that we're aware. + */ +test('withScope scope is NOT applied to thrown error caught by global handler', done => { + const runner = createRunner(__dirname, 'server.ts') + .ignore('session', 'sessions') + .expect({ + event: { + exception: { + values: [ + { + mechanism: { + type: 'middleware', + handled: false, + }, + type: 'Error', + value: 'test_error', + stacktrace: { + frames: expect.arrayContaining([ + expect.objectContaining({ + function: expect.any(String), + lineno: expect.any(Number), + colno: expect.any(Number), + }), + ]), + }, + }, + ], + }, + // 'local' tag is not applied to the event + tags: expect.not.objectContaining({ local: expect.anything() }), + }, + }) + .start(done); + + expect(() => runner.makeRequest('get', '/test/withScope')).rejects.toThrow(); +}); + +/** + * This test shows that the isolation scope set tags are applied correctly to the error. + */ +test('isolation scope is applied to thrown error caught by global handler', done => { + const runner = createRunner(__dirname, 'server.ts') + .ignore('session', 'sessions') + .expect({ + event: { + exception: { + values: [ + { + mechanism: { + type: 'middleware', + handled: false, + }, + type: 'Error', + value: 'isolation_test_error', + stacktrace: { + frames: expect.arrayContaining([ + expect.objectContaining({ + function: expect.any(String), + lineno: expect.any(Number), + colno: expect.any(Number), + }), + ]), + }, + }, + ], + }, + tags: { + global: 'tag', + 'isolation-scope': 'tag', + }, + }, + }) + .start(done); + + expect(() => runner.makeRequest('get', '/test/isolationScope')).rejects.toThrow(); +}); From e9c184535c1efaf57dfb2be1dc5b11ac5367d7c5 Mon Sep 17 00:00:00 2001 From: Josh Kelley Date: Thu, 21 Mar 2024 11:39:42 -0400 Subject: [PATCH 48/56] fix(node): Time zone handling for `cron` (#11225) The `cron` package uses `timeZone`, while Sentry internally uses `timezone`. This caused Sentry cron jobs to be incorrectly upserted with no time zone information. Because of the use of the `...(timeZone ? { timeZone } : undefined)` idiom, TypeScript type checking did not catch the mistake. I kept `cron`'s `timeZone` capitalization within Sentry's instrumentation and changed from the `...(timeZone ? { timeZone } : undefined)` idiom so TypeScript could catch mistakes of this sort. (Passing an undefined `timezone` appears to be okay, because Sentry's `node-cron` instrumentation does it.) --- packages/node-experimental/src/cron/cron.ts | 4 ++-- packages/node-experimental/test/cron.test.ts | 21 +++++++++++++------- packages/node/src/cron/cron.ts | 4 ++-- packages/node/test/cron.test.ts | 21 +++++++++++++------- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/packages/node-experimental/src/cron/cron.ts b/packages/node-experimental/src/cron/cron.ts index 2540d82e736b..8b6fc324a7a6 100644 --- a/packages/node-experimental/src/cron/cron.ts +++ b/packages/node-experimental/src/cron/cron.ts @@ -100,7 +100,7 @@ export function instrumentCron(lib: T & CronJobConstructor, monitorSlug: stri }, { schedule: { type: 'crontab', value: cronString }, - ...(timeZone ? { timeZone } : {}), + timezone: timeZone || undefined, }, ); } @@ -132,7 +132,7 @@ export function instrumentCron(lib: T & CronJobConstructor, monitorSlug: stri }, { schedule: { type: 'crontab', value: cronString }, - ...(timeZone ? { timeZone } : {}), + timezone: timeZone || undefined, }, ); }; diff --git a/packages/node-experimental/test/cron.test.ts b/packages/node-experimental/test/cron.test.ts index eee6d4a66711..d068280a41e0 100644 --- a/packages/node-experimental/test/cron.test.ts +++ b/packages/node-experimental/test/cron.test.ts @@ -53,13 +53,20 @@ describe('cron check-ins', () => { const CronJobWithCheckIn = cron.instrumentCron(CronJobMock, 'my-cron-job'); - new CronJobWithCheckIn('* * * Jan,Sep Sun', () => { - expect(withMonitorSpy).toHaveBeenCalledTimes(1); - expect(withMonitorSpy).toHaveBeenLastCalledWith('my-cron-job', expect.anything(), { - schedule: { type: 'crontab', value: '* * * 1,9 0' }, - }); - done(); - }); + new CronJobWithCheckIn( + '* * * Jan,Sep Sun', + () => { + expect(withMonitorSpy).toHaveBeenCalledTimes(1); + expect(withMonitorSpy).toHaveBeenLastCalledWith('my-cron-job', expect.anything(), { + schedule: { type: 'crontab', value: '* * * 1,9 0' }, + timezone: 'America/Los_Angeles', + }); + done(); + }, + undefined, + true, + 'America/Los_Angeles', + ); }); test('CronJob.from()', done => { diff --git a/packages/node/src/cron/cron.ts b/packages/node/src/cron/cron.ts index 2540d82e736b..8b6fc324a7a6 100644 --- a/packages/node/src/cron/cron.ts +++ b/packages/node/src/cron/cron.ts @@ -100,7 +100,7 @@ export function instrumentCron(lib: T & CronJobConstructor, monitorSlug: stri }, { schedule: { type: 'crontab', value: cronString }, - ...(timeZone ? { timeZone } : {}), + timezone: timeZone || undefined, }, ); } @@ -132,7 +132,7 @@ export function instrumentCron(lib: T & CronJobConstructor, monitorSlug: stri }, { schedule: { type: 'crontab', value: cronString }, - ...(timeZone ? { timeZone } : {}), + timezone: timeZone || undefined, }, ); }; diff --git a/packages/node/test/cron.test.ts b/packages/node/test/cron.test.ts index eee6d4a66711..d068280a41e0 100644 --- a/packages/node/test/cron.test.ts +++ b/packages/node/test/cron.test.ts @@ -53,13 +53,20 @@ describe('cron check-ins', () => { const CronJobWithCheckIn = cron.instrumentCron(CronJobMock, 'my-cron-job'); - new CronJobWithCheckIn('* * * Jan,Sep Sun', () => { - expect(withMonitorSpy).toHaveBeenCalledTimes(1); - expect(withMonitorSpy).toHaveBeenLastCalledWith('my-cron-job', expect.anything(), { - schedule: { type: 'crontab', value: '* * * 1,9 0' }, - }); - done(); - }); + new CronJobWithCheckIn( + '* * * Jan,Sep Sun', + () => { + expect(withMonitorSpy).toHaveBeenCalledTimes(1); + expect(withMonitorSpy).toHaveBeenLastCalledWith('my-cron-job', expect.anything(), { + schedule: { type: 'crontab', value: '* * * 1,9 0' }, + timezone: 'America/Los_Angeles', + }); + done(); + }, + undefined, + true, + 'America/Los_Angeles', + ); }); test('CronJob.from()', done => { From 523b0066be5d6c17e93c532b971328622f117eaa Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 21 Mar 2024 15:42:03 +0000 Subject: [PATCH 49/56] feat(browser): Make fetch the default transport for offline (#11209) Now we only have one included transport, this simplifies the vast majority of use cases: Before: ```ts import { init, makeBrowserOfflineTransport, makeFetchTransport } from "@sentry/browser"; init({ dsn: "__DSN__", transport: makeBrowserOfflineTransport(makeFetchTransport) }) ``` After: ```ts import { init, makeBrowserOfflineTransport } from "@sentry/browser"; init({ dsn: "__DSN__", transport: makeBrowserOfflineTransport() }) ``` --- packages/browser/src/transports/offline.ts | 7 ++++--- packages/browser/src/transports/types.ts | 6 +----- packages/browser/test/unit/transports/offline.test.ts | 1 + 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/browser/src/transports/offline.ts b/packages/browser/src/transports/offline.ts index dbccb8507c01..dd7d9c70d929 100644 --- a/packages/browser/src/transports/offline.ts +++ b/packages/browser/src/transports/offline.ts @@ -1,7 +1,8 @@ import type { OfflineStore, OfflineTransportOptions } from '@sentry/core'; import { makeOfflineTransport } from '@sentry/core'; -import type { Envelope, InternalBaseTransportOptions, Transport } from '@sentry/types'; +import type { BaseTransportOptions, Envelope, Transport } from '@sentry/types'; import { parseEnvelope, serializeEnvelope } from '@sentry/utils'; +import { makeFetchTransport } from './fetch'; // 'Store', 'promisifyRequest' and 'createStore' were originally copied from the 'idb-keyval' package before being // modified and simplified: https://github.com/jakearchibald/idb-keyval @@ -141,8 +142,8 @@ function makeIndexedDbOfflineTransport( /** * Creates a transport that uses IndexedDb to store events when offline. */ -export function makeBrowserOfflineTransport( - createTransport: (options: T) => Transport, +export function makeBrowserOfflineTransport( + createTransport: (options: T) => Transport = makeFetchTransport, ): (options: T & BrowserOfflineTransportOptions) => Transport { return makeIndexedDbOfflineTransport(makeOfflineTransport(createTransport)); } diff --git a/packages/browser/src/transports/types.ts b/packages/browser/src/transports/types.ts index 127a7697ddb5..e0ed666cc787 100644 --- a/packages/browser/src/transports/types.ts +++ b/packages/browser/src/transports/types.ts @@ -1,10 +1,6 @@ import type { BaseTransportOptions } from '@sentry/types'; -import type { BrowserOfflineTransportOptions } from './offline'; - -type BaseTransportAndOfflineTransportOptions = BaseTransportOptions & BrowserOfflineTransportOptions; - -export interface BrowserTransportOptions extends BaseTransportAndOfflineTransportOptions { +export interface BrowserTransportOptions extends BaseTransportOptions { /** Fetch API init parameters. Used by the FetchTransport */ fetchOptions?: RequestInit; /** Custom headers for the transport. Used by the XHRTransport and FetchTransport */ diff --git a/packages/browser/test/unit/transports/offline.test.ts b/packages/browser/test/unit/transports/offline.test.ts index 758c19d30798..ccc206dbdf97 100644 --- a/packages/browser/test/unit/transports/offline.test.ts +++ b/packages/browser/test/unit/transports/offline.test.ts @@ -89,6 +89,7 @@ describe('makeOfflineTransport', () => { queuedCount += 1; return true; }, + url: 'http://localhost', }); const result = await transport.send(ERROR_ENVELOPE); From be09f8909b2783f70febf5efe3ac56939cdcbb0d Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 21 Mar 2024 15:48:17 +0000 Subject: [PATCH 50/56] feat(node): Allow Anr worker to be stopped and restarted (#11214) With the Electron SDK, we have an issue (https://github.com/getsentry/sentry-electron/issues/830) where ANR causes the app to freeze when the machine goes through a suspend/resume cycle. This PR exposes `stopWorker` and `startWorker` methods which can be used in the downstream [ANR integration wrapper](https://github.com/getsentry/sentry-electron/blob/master/src/main/integrations/anr.ts) to stop the ANR feature before device suspend and start it again on device resume. --- .../suites/anr/stop-and-start.js | 50 ++++++++++++++ .../node-integration-tests/suites/anr/test.ts | 4 ++ .../src/integrations/anr/index.ts | 69 +++++++++++++++---- 3 files changed, 109 insertions(+), 14 deletions(-) create mode 100644 dev-packages/node-integration-tests/suites/anr/stop-and-start.js diff --git a/dev-packages/node-integration-tests/suites/anr/stop-and-start.js b/dev-packages/node-integration-tests/suites/anr/stop-and-start.js new file mode 100644 index 000000000000..9de453abf23d --- /dev/null +++ b/dev-packages/node-integration-tests/suites/anr/stop-and-start.js @@ -0,0 +1,50 @@ +const crypto = require('crypto'); +const assert = require('assert'); + +const Sentry = require('@sentry/node'); + +setTimeout(() => { + process.exit(); +}, 10000); + +const anr = Sentry.anrIntegration({ captureStackTrace: true, anrThreshold: 100 }); + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', + debug: true, + autoSessionTracking: false, + integrations: [anr], +}); + +function longWorkIgnored() { + for (let i = 0; i < 20; i++) { + const salt = crypto.randomBytes(128).toString('base64'); + const hash = crypto.pbkdf2Sync('myPassword', salt, 10000, 512, 'sha512'); + assert.ok(hash); + } +} + +function longWork() { + for (let i = 0; i < 20; i++) { + const salt = crypto.randomBytes(128).toString('base64'); + const hash = crypto.pbkdf2Sync('myPassword', salt, 10000, 512, 'sha512'); + assert.ok(hash); + } +} + +setTimeout(() => { + anr.stopWorker(); + + setTimeout(() => { + longWorkIgnored(); + + setTimeout(() => { + anr.startWorker(); + + setTimeout(() => { + longWork(); + }); + }, 2000); + }, 2000); +}, 2000); diff --git a/dev-packages/node-integration-tests/suites/anr/test.ts b/dev-packages/node-integration-tests/suites/anr/test.ts index 210f32588588..7ace974d6170 100644 --- a/dev-packages/node-integration-tests/suites/anr/test.ts +++ b/dev-packages/node-integration-tests/suites/anr/test.ts @@ -101,4 +101,8 @@ conditionalTest({ min: 16 })('should report ANR when event loop blocked', () => test('from forked process', done => { createRunner(__dirname, 'forker.js').expect({ event: EXPECTED_ANR_EVENT }).start(done); }); + + test('worker can be stopped and restarted', done => { + createRunner(__dirname, 'stop-and-start.js').expect({ event: EXPECTED_ANR_EVENT }).start(done); + }); }); diff --git a/packages/node-experimental/src/integrations/anr/index.ts b/packages/node-experimental/src/integrations/anr/index.ts index 6ef1b5d58ac3..cd18556ef23d 100644 --- a/packages/node-experimental/src/integrations/anr/index.ts +++ b/packages/node-experimental/src/integrations/anr/index.ts @@ -1,5 +1,5 @@ import { defineIntegration, getCurrentScope } from '@sentry/core'; -import type { Contexts, Event, EventHint, IntegrationFn } from '@sentry/types'; +import type { Contexts, Event, EventHint, IntegrationFn, IntegrationFnResult } from '@sentry/types'; import { logger } from '@sentry/utils'; import * as inspector from 'inspector'; import { Worker } from 'worker_threads'; @@ -32,33 +32,69 @@ async function getContexts(client: NodeClient): Promise { const INTEGRATION_NAME = 'Anr'; +type AnrInternal = { startWorker: () => void; stopWorker: () => void }; + const _anrIntegration = ((options: Partial = {}) => { + let worker: Promise<() => void> | undefined; + let client: NodeClient | undefined; + return { name: INTEGRATION_NAME, - setup(client: NodeClient) { + startWorker: () => { + if (worker) { + return; + } + + if (client) { + worker = _startWorker(client, options); + } + }, + stopWorker: () => { + if (worker) { + // eslint-disable-next-line @typescript-eslint/no-floating-promises + worker.then(stop => { + stop(); + worker = undefined; + }); + } + }, + setup(initClient: NodeClient) { if (NODE_VERSION.major < 16 || (NODE_VERSION.major === 16 && NODE_VERSION.minor < 17)) { throw new Error('ANR detection requires Node 16.17.0 or later'); } - // setImmediate is used to ensure that all other integrations have been setup - setImmediate(() => _startWorker(client, options)); + client = initClient; + + // setImmediate is used to ensure that all other integrations have had their setup called first. + // This allows us to call into all integrations to fetch the full context + setImmediate(() => this.startWorker()); }, - }; + } as IntegrationFnResult & AnrInternal; }) satisfies IntegrationFn; -export const anrIntegration = defineIntegration(_anrIntegration); +type AnrReturn = (options?: Partial) => IntegrationFnResult & AnrInternal; + +export const anrIntegration = defineIntegration(_anrIntegration) as AnrReturn; /** * Starts the ANR worker thread + * + * @returns A function to stop the worker */ -async function _startWorker(client: NodeClient, _options: Partial): Promise { - const contexts = await getContexts(client); +async function _startWorker( + client: NodeClient, + integrationOptions: Partial, +): Promise<() => void> { const dsn = client.getDsn(); if (!dsn) { - return; + return () => { + // + }; } + const contexts = await getContexts(client); + // These will not be accurate if sent later from the worker thread delete contexts.app?.app_memory; delete contexts.device?.free_memory; @@ -78,11 +114,11 @@ async function _startWorker(client: NodeClient, _options: Partial { + // eslint-disable-next-line @typescript-eslint/no-floating-promises + worker.terminate(); + }; } From e878dceb0db523b2f5e1b3aee2c06d10def05676 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Thu, 21 Mar 2024 17:47:06 +0100 Subject: [PATCH 51/56] feat(opentelemetry): Do not capture exceptions for timed events (#11221) --- packages/opentelemetry/src/index.ts | 2 - packages/opentelemetry/src/spanProcessor.ts | 6 - .../utils/captureExceptionForTimedEvent.ts | 55 -------- .../test/integration/otelTimedEvents.test.ts | 55 -------- .../captureExceptionForTimedEvent.test.ts | 131 ------------------ 5 files changed, 249 deletions(-) delete mode 100644 packages/opentelemetry/src/utils/captureExceptionForTimedEvent.ts delete mode 100644 packages/opentelemetry/test/integration/otelTimedEvents.test.ts delete mode 100644 packages/opentelemetry/test/utils/captureExceptionForTimedEvent.test.ts diff --git a/packages/opentelemetry/src/index.ts b/packages/opentelemetry/src/index.ts index abf6640bca5c..8cae9b317837 100644 --- a/packages/opentelemetry/src/index.ts +++ b/packages/opentelemetry/src/index.ts @@ -1,4 +1,3 @@ -import { maybeCaptureExceptionForTimedEvent } from './utils/captureExceptionForTimedEvent'; import { getRequestSpanData } from './utils/getRequestSpanData'; export type { OpenTelemetryClient } from './types'; @@ -47,7 +46,6 @@ export { getClient } from '@sentry/core'; * @hidden */ const _INTERNAL = { - maybeCaptureExceptionForTimedEvent, getRequestSpanData, } as const; diff --git a/packages/opentelemetry/src/spanProcessor.ts b/packages/opentelemetry/src/spanProcessor.ts index 5dedcb464d58..210a2202ca27 100644 --- a/packages/opentelemetry/src/spanProcessor.ts +++ b/packages/opentelemetry/src/spanProcessor.ts @@ -8,7 +8,6 @@ import { logger } from '@sentry/utils'; import { DEBUG_BUILD } from './debug-build'; import { SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE } from './semanticAttributes'; import { SentrySpanExporter } from './spanExporter'; -import { maybeCaptureExceptionForTimedEvent } from './utils/captureExceptionForTimedEvent'; import { getScopesFromContext } from './utils/contextData'; import { setIsSetup } from './utils/setupCheck'; import { setSpanScopes } from './utils/spanData'; @@ -48,11 +47,6 @@ function onSpanStart(span: Span, parentContext: Context): void { } function onSpanEnd(span: Span): void { - // Capture exceptions as events - span.events.forEach(event => { - maybeCaptureExceptionForTimedEvent(event, span); - }); - const client = getClient(); client?.emit('spanEnd', span); } diff --git a/packages/opentelemetry/src/utils/captureExceptionForTimedEvent.ts b/packages/opentelemetry/src/utils/captureExceptionForTimedEvent.ts deleted file mode 100644 index d67e26a21475..000000000000 --- a/packages/opentelemetry/src/utils/captureExceptionForTimedEvent.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { Span as OtelSpan, TimedEvent } from '@opentelemetry/sdk-trace-base'; -import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; -import { captureException } from '@sentry/core'; -import { isString } from '@sentry/utils'; - -/** - * Maybe capture a Sentry exception for an OTEL timed event. - * This will check if the event is exception-like and in that case capture it as an exception. - */ -export function maybeCaptureExceptionForTimedEvent(event: TimedEvent, otelSpan?: OtelSpan): void { - if (event.name !== 'exception') { - return; - } - - const attributes = event.attributes; - if (!attributes) { - return; - } - - const message = attributes[SemanticAttributes.EXCEPTION_MESSAGE]; - - if (typeof message !== 'string') { - return; - } - - const syntheticError = new Error(message); - - const stack = attributes[SemanticAttributes.EXCEPTION_STACKTRACE]; - if (isString(stack)) { - syntheticError.stack = stack; - } - - const type = attributes[SemanticAttributes.EXCEPTION_TYPE]; - if (isString(type)) { - syntheticError.name = type; - } - - captureException(syntheticError, { - captureContext: otelSpan - ? { - contexts: { - otel: { - attributes: otelSpan.attributes, - resource: otelSpan.resource.attributes, - }, - trace: { - trace_id: otelSpan.spanContext().traceId, - span_id: otelSpan.spanContext().spanId, - parent_span_id: otelSpan.parentSpanId, - }, - }, - } - : undefined, - }); -} diff --git a/packages/opentelemetry/test/integration/otelTimedEvents.test.ts b/packages/opentelemetry/test/integration/otelTimedEvents.test.ts deleted file mode 100644 index f0e0fc109c80..000000000000 --- a/packages/opentelemetry/test/integration/otelTimedEvents.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; - -import { getClient } from '@sentry/core'; -import { startSpan } from '../../src/trace'; -import type { TestClientInterface } from '../helpers/TestClient'; -import { cleanupOtel, mockSdkInit } from '../helpers/mockSdkInit'; - -describe('Integration | OTEL TimedEvents', () => { - afterEach(() => { - cleanupOtel(); - }); - - it('captures TimedEvents with name `exception` as exceptions', async () => { - const beforeSend = jest.fn(() => null); - const beforeSendTransaction = jest.fn(() => null); - - mockSdkInit({ beforeSend, beforeSendTransaction, enableTracing: true }); - - const client = getClient() as TestClientInterface; - - startSpan({ name: 'test' }, span => { - span.addEvent('exception', { - [SemanticAttributes.EXCEPTION_MESSAGE]: 'test-message', - 'test-span-event-attr': 'test-span-event-attr-value', - }); - - span.addEvent('other', { - [SemanticAttributes.EXCEPTION_MESSAGE]: 'test-message-2', - 'test-span-event-attr': 'test-span-event-attr-value', - }); - }); - - await client.flush(); - - expect(beforeSend).toHaveBeenCalledTimes(1); - expect(beforeSend).toHaveBeenCalledWith( - expect.objectContaining({ - exception: { - values: [ - { - type: 'Error', - value: 'test-message', - }, - ], - }, - }), - { - event_id: expect.any(String), - originalException: expect.any(Error), - syntheticException: expect.any(Error), - captureContext: expect.any(Object), - }, - ); - }); -}); diff --git a/packages/opentelemetry/test/utils/captureExceptionForTimedEvent.test.ts b/packages/opentelemetry/test/utils/captureExceptionForTimedEvent.test.ts deleted file mode 100644 index 4e6103e9a7a8..000000000000 --- a/packages/opentelemetry/test/utils/captureExceptionForTimedEvent.test.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { Span as OtelSpan, TimedEvent } from '@opentelemetry/sdk-trace-base'; -import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; -import * as SentryCore from '@sentry/core'; - -import { maybeCaptureExceptionForTimedEvent } from '../../src/utils/captureExceptionForTimedEvent'; - -describe('maybeCaptureExceptionForTimedEvent', () => { - afterEach(() => { - jest.clearAllMocks(); - }); - - it('ignores non-exception events', async () => { - const event: TimedEvent = { - time: [12345, 0], - name: 'test event', - }; - - const captureException = jest.spyOn(SentryCore, 'captureException'); - maybeCaptureExceptionForTimedEvent(event); - - expect(captureException).not.toHaveBeenCalled(); - }); - - it('ignores exception events without EXCEPTION_MESSAGE', async () => { - const event: TimedEvent = { - time: [12345, 0], - name: 'exception', - }; - - const captureException = jest.spyOn(SentryCore, 'captureException'); - maybeCaptureExceptionForTimedEvent(event); - - expect(captureException).not.toHaveBeenCalled(); - }); - - it('captures exception from event with EXCEPTION_MESSAGE', async () => { - const event: TimedEvent = { - time: [12345, 0], - name: 'exception', - attributes: { - [SemanticAttributes.EXCEPTION_MESSAGE]: 'test-message', - }, - }; - - const captureException = jest.spyOn(SentryCore, 'captureException'); - maybeCaptureExceptionForTimedEvent(event); - - expect(captureException).toHaveBeenCalledTimes(1); - expect(captureException).toHaveBeenCalledWith(expect.objectContaining({ message: 'test-message' }), { - captureContext: undefined, - }); - expect(captureException).toHaveBeenCalledWith(expect.any(Error), { - captureContext: undefined, - }); - }); - - it('captures stack and type, if available', async () => { - const event: TimedEvent = { - time: [12345, 0], - name: 'exception', - attributes: { - [SemanticAttributes.EXCEPTION_MESSAGE]: 'test-message', - [SemanticAttributes.EXCEPTION_STACKTRACE]: 'test-stack', - [SemanticAttributes.EXCEPTION_TYPE]: 'test-type', - }, - }; - - const captureException = jest.spyOn(SentryCore, 'captureException'); - maybeCaptureExceptionForTimedEvent(event); - - expect(captureException).toHaveBeenCalledTimes(1); - expect(captureException).toHaveBeenCalledWith( - expect.objectContaining({ message: 'test-message', name: 'test-type', stack: 'test-stack' }), - { - captureContext: undefined, - }, - ); - expect(captureException).toHaveBeenCalledWith(expect.any(Error), { - captureContext: undefined, - }); - }); - - it('captures span context, if available', async () => { - const event: TimedEvent = { - time: [12345, 0], - name: 'exception', - attributes: { - [SemanticAttributes.EXCEPTION_MESSAGE]: 'test-message', - }, - }; - - const span = { - parentSpanId: 'test-parent-span-id', - attributes: { - 'test-attr1': 'test-value1', - }, - resource: { - attributes: { - 'test-attr2': 'test-value2', - }, - }, - spanContext: () => { - return { spanId: 'test-span-id', traceId: 'test-trace-id' }; - }, - } as unknown as OtelSpan; - - const captureException = jest.spyOn(SentryCore, 'captureException'); - maybeCaptureExceptionForTimedEvent(event, span); - - expect(captureException).toHaveBeenCalledTimes(1); - expect(captureException).toHaveBeenCalledWith(expect.objectContaining({ message: 'test-message' }), { - captureContext: { - contexts: { - otel: { - attributes: { - 'test-attr1': 'test-value1', - }, - resource: { - 'test-attr2': 'test-value2', - }, - }, - trace: { - trace_id: 'test-trace-id', - span_id: 'test-span-id', - parent_span_id: 'test-parent-span-id', - }, - }, - }, - }); - }); -}); From f078a3be4e58d473e9a62ceaf18501113ecdee38 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 21 Mar 2024 13:17:49 -0400 Subject: [PATCH 52/56] fix(metrics): use web-vitals ttfb calculation (#11185) Recommend reading through https://web.dev/articles/ttfb before review. In https://www.notion.so/sentry/TTFB-vital-is-0-for-navigation-events-2337114dd75542569eb70255a467aba6 we identified that ttfb was being incorrectly calculated in certain scenarios. This was because we were calculating `ttfb` relative to transaction start time, **before** it has been adjusted by `browser` related spans about request/response ( remember browser tracing adjusts the start timestamp of a pageload transaction after adding certain request/response related spans). This meant that `Math.max(responseStartTimestamp - transactionStartTime, 0)` would just end up being `0` most of the time because using `transactionStartTime` was not correct. To fix this, we avoid trying to rely on our `transactionStartTime` timestamp at all, but instead using the web vitals version helper for this. When this gets merged in, I'll backport it to v7. I'm doing this in v8 first because I don't want to deal with the merge conflict that comes when we eventually migrate this code from tracing internal into the browser package. As a next step, we should seriously think about getting rid of all of our vendored code and just rely on the web vitals library - it's a huge pain to maintain this, and I'm sure there are some insidious bugs sneaking about. --- .../tracing-internal/src/browser/index.ts | 1 + .../src/browser/instrument.ts | 20 +++- .../src/browser/metrics/index.ts | 64 ++++++------- .../src/browser/web-vitals/README.md | 10 ++ .../src/browser/web-vitals/onTTFB.ts | 91 +++++++++++++++++++ .../src/browser/web-vitals/types/base.ts | 2 +- .../src/browser/web-vitals/types/ttfb.ts | 80 ++++++++++++++++ packages/tracing-internal/src/index.ts | 1 + .../test/browser/metrics/index.test.ts | 29 ------ yarn.lock | 51 +---------- 10 files changed, 236 insertions(+), 113 deletions(-) create mode 100644 packages/tracing-internal/src/browser/web-vitals/onTTFB.ts create mode 100644 packages/tracing-internal/src/browser/web-vitals/types/ttfb.ts diff --git a/packages/tracing-internal/src/browser/index.ts b/packages/tracing-internal/src/browser/index.ts index d1bbbffe02b3..6d4168329dc4 100644 --- a/packages/tracing-internal/src/browser/index.ts +++ b/packages/tracing-internal/src/browser/index.ts @@ -15,5 +15,6 @@ export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, + addTtfbInstrumentationHandler, addLcpInstrumentationHandler, } from './instrument'; diff --git a/packages/tracing-internal/src/browser/instrument.ts b/packages/tracing-internal/src/browser/instrument.ts index 2a4e7acaf3b1..35e251983508 100644 --- a/packages/tracing-internal/src/browser/instrument.ts +++ b/packages/tracing-internal/src/browser/instrument.ts @@ -5,10 +5,11 @@ import { onCLS } from './web-vitals/getCLS'; import { onFID } from './web-vitals/getFID'; import { onLCP } from './web-vitals/getLCP'; import { observe } from './web-vitals/lib/observe'; +import { onTTFB } from './web-vitals/onTTFB'; type InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource'; -type InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid'; +type InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid' | 'ttfb'; // We provide this here manually instead of relying on a global, as this is not available in non-browser environements // And we do not want to expose such types @@ -86,6 +87,7 @@ const instrumented: { [key in InstrumentHandlerType]?: boolean } = {}; let _previousCls: Metric | undefined; let _previousFid: Metric | undefined; let _previousLcp: Metric | undefined; +let _previousTtfb: Metric | undefined; /** * Add a callback that will be triggered when a CLS metric is available. @@ -123,6 +125,13 @@ export function addFidInstrumentationHandler(callback: (data: { metric: Metric } return addMetricObserver('fid', callback, instrumentFid, _previousFid); } +/** + * Add a callback that will be triggered when a FID metric is available. + */ +export function addTtfbInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback { + return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb); +} + export function addPerformanceInstrumentationHandler( type: 'event', callback: (data: { entries: (PerformanceEntry & { target?: unknown | null })[] }) => void, @@ -199,6 +208,15 @@ function instrumentLcp(): StopListening { }); } +function instrumentTtfb(): StopListening { + return onTTFB(metric => { + triggerHandlers('ttfb', { + metric, + }); + _previousTtfb = metric; + }); +} + function addMetricObserver( type: InstrumentHandlerTypeMetric, callback: InstrumentHandlerCallback, diff --git a/packages/tracing-internal/src/browser/metrics/index.ts b/packages/tracing-internal/src/browser/metrics/index.ts index 4eabd49f218c..364a1617112b 100644 --- a/packages/tracing-internal/src/browser/metrics/index.ts +++ b/packages/tracing-internal/src/browser/metrics/index.ts @@ -11,10 +11,13 @@ import { addFidInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, + addTtfbInstrumentationHandler, } from '../instrument'; import { WINDOW } from '../types'; +import { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry'; import { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher'; import type { NavigatorDeviceMemory, NavigatorNetworkInformation } from '../web-vitals/types'; +import type { TTFBMetric } from '../web-vitals/types/ttfb'; import { isMeasurementValue, startAndEndSpan } from './utils'; const MAX_INT_AS_BYTES = 2147483647; @@ -54,11 +57,13 @@ export function startTrackingWebVitals(): () => void { const fidCallback = _trackFID(); const clsCallback = _trackCLS(); const lcpCallback = _trackLCP(); + const ttfbCallback = _trackTtfb(); return (): void => { fidCallback(); clsCallback(); lcpCallback(); + ttfbCallback(); }; } @@ -173,6 +178,18 @@ function _trackFID(): () => void { }); } +function _trackTtfb(): () => void { + return addTtfbInstrumentationHandler(({ metric }) => { + const entry = metric.entries[metric.entries.length - 1]; + if (!entry) { + return; + } + + DEBUG_BUILD && logger.log('[Measurements] Adding TTFB'); + _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' }; + }); +} + /** Add performance related spans to a span */ export function addPerformanceEntries(span: Span): void { const performance = getBrowserPerformanceAPI(); @@ -186,9 +203,6 @@ export function addPerformanceEntries(span: Span): void { const performanceEntries = performance.getEntries(); - let responseStartTimestamp: number | undefined; - let requestStartTimestamp: number | undefined; - const { op, start_timestamp: transactionStartTime } = spanToJSON(span); // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -203,8 +217,6 @@ export function addPerformanceEntries(span: Span): void { switch (entry.entryType) { case 'navigation': { _addNavigationSpans(span, entry, timeOrigin); - responseStartTimestamp = timeOrigin + msToSec(entry.responseStart); - requestStartTimestamp = timeOrigin + msToSec(entry.requestStart); break; } case 'mark': @@ -242,7 +254,7 @@ export function addPerformanceEntries(span: Span): void { // Measurements are only available for pageload transactions if (op === 'pageload') { - _addTtfbToMeasurements(_measurements, responseStartTimestamp, requestStartTimestamp, transactionStartTime); + _addTtfbRequestTimeToMeasurements(_measurements); ['fcp', 'fp', 'lcp'].forEach(name => { if (!_measurements[name] || !transactionStartTime || timeOrigin >= transactionStartTime) { @@ -524,39 +536,19 @@ function setResourceEntrySizeData( } /** - * Add ttfb information to measurements + * Add ttfb request time information to measurements. * - * Exported for tests + * ttfb information is added via vendored web vitals library. */ -export function _addTtfbToMeasurements( - _measurements: Measurements, - responseStartTimestamp: number | undefined, - requestStartTimestamp: number | undefined, - transactionStartTime: number | undefined, -): void { - // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the span and the - // start of the response in milliseconds - if (typeof responseStartTimestamp === 'number' && transactionStartTime) { - DEBUG_BUILD && logger.log('[Measurements] Adding TTFB'); - _measurements['ttfb'] = { - // As per https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStart, - // responseStart can be 0 if the request is coming straight from the cache. - // This might lead us to calculate a negative ttfb if we don't use Math.max here. - // - // This logic is the same as what is in the web-vitals library to calculate ttfb - // https://github.com/GoogleChrome/web-vitals/blob/2301de5015e82b09925238a228a0893635854587/src/onTTFB.ts#L92 - // TODO(abhi): We should use the web-vitals library instead of this custom calculation. - value: Math.max(responseStartTimestamp - transactionStartTime, 0) * 1000, +function _addTtfbRequestTimeToMeasurements(_measurements: Measurements): void { + const navEntry = getNavigationEntry() as TTFBMetric['entries'][number]; + const { responseStart, requestStart } = navEntry; + + if (requestStart <= responseStart) { + DEBUG_BUILD && logger.log('[Measurements] Adding TTFB Request Time'); + _measurements['ttfb.requestTime'] = { + value: responseStart - requestStart, unit: 'millisecond', }; - - if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) { - // Capture the time spent making the request and receiving the first byte of the response. - // This is the time between the start of the request and the start of the response in milliseconds. - _measurements['ttfb.requestTime'] = { - value: (responseStartTimestamp - requestStartTimestamp) * 1000, - unit: 'millisecond', - }; - } } } diff --git a/packages/tracing-internal/src/browser/web-vitals/README.md b/packages/tracing-internal/src/browser/web-vitals/README.md index 73a0a72c2e4b..c87dd69d55b7 100644 --- a/packages/tracing-internal/src/browser/web-vitals/README.md +++ b/packages/tracing-internal/src/browser/web-vitals/README.md @@ -12,6 +12,8 @@ Current vendored web vitals are: - LCP (Largest Contentful Paint) - FID (First Input Delay) - CLS (Cumulative Layout Shift) +- INP (Interaction to Next Paint) +- TTFB (Time to First Byte) ## Notable Changes from web-vitals library @@ -44,3 +46,11 @@ https://github.com/getsentry/sentry-javascript/pull/2964 https://github.com/getsentry/sentry-javascript/pull/2909 - Added support for FID (First Input Delay) and LCP (Largest Contentful Paint) + +https://github.com/getsentry/sentry-javascript/pull/9690 + +- Added support for INP (Interaction to Next Paint) + +TODO + +- Add support for TTFB (Time to First Byte) diff --git a/packages/tracing-internal/src/browser/web-vitals/onTTFB.ts b/packages/tracing-internal/src/browser/web-vitals/onTTFB.ts new file mode 100644 index 000000000000..946141107fa8 --- /dev/null +++ b/packages/tracing-internal/src/browser/web-vitals/onTTFB.ts @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { WINDOW } from '../types'; +import { bindReporter } from './lib/bindReporter'; +import { getActivationStart } from './lib/getActivationStart'; +import { getNavigationEntry } from './lib/getNavigationEntry'; +import { initMetric } from './lib/initMetric'; +import type { ReportCallback, ReportOpts } from './types'; +import type { TTFBMetric } from './types/ttfb'; + +/** + * Runs in the next task after the page is done loading and/or prerendering. + * @param callback + */ +const whenReady = (callback: () => void): void => { + if (!WINDOW.document) { + return; + } + + if (WINDOW.document.prerendering) { + addEventListener('prerenderingchange', () => whenReady(callback), true); + } else if (WINDOW.document.readyState !== 'complete') { + addEventListener('load', () => whenReady(callback), true); + } else { + // Queue a task so the callback runs after `loadEventEnd`. + setTimeout(callback, 0); + } +}; + +/** + * Calculates the [TTFB](https://web.dev/time-to-first-byte/) value for the + * current page and calls the `callback` function once the page has loaded, + * along with the relevant `navigation` performance entry used to determine the + * value. The reported value is a `DOMHighResTimeStamp`. + * + * Note, this function waits until after the page is loaded to call `callback` + * in order to ensure all properties of the `navigation` entry are populated. + * This is useful if you want to report on other metrics exposed by the + * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For + * example, the TTFB metric starts from the page's [time + * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it + * includes time spent on DNS lookup, connection negotiation, network latency, + * and server processing time. + */ +export const onTTFB = (onReport: ReportCallback, opts?: ReportOpts): void => { + // Set defaults + // eslint-disable-next-line no-param-reassign + opts = opts || {}; + + // https://web.dev/ttfb/#what-is-a-good-ttfb-score + // const thresholds = [800, 1800]; + + const metric = initMetric('TTFB'); + const report = bindReporter(onReport, metric, opts.reportAllChanges); + + whenReady(() => { + const navEntry = getNavigationEntry() as TTFBMetric['entries'][number]; + + if (navEntry) { + // The activationStart reference is used because TTFB should be + // relative to page activation rather than navigation start if the + // page was prerendered. But in cases where `activationStart` occurs + // after the first byte is received, this time should be clamped at 0. + metric.value = Math.max(navEntry.responseStart - getActivationStart(), 0); + + // In some cases the value reported is negative or is larger + // than the current page time. Ignore these cases: + // https://github.com/GoogleChrome/web-vitals/issues/137 + // https://github.com/GoogleChrome/web-vitals/issues/162 + if (metric.value < 0 || metric.value > performance.now()) return; + + metric.entries = [navEntry]; + + report(true); + } + }); +}; diff --git a/packages/tracing-internal/src/browser/web-vitals/types/base.ts b/packages/tracing-internal/src/browser/web-vitals/types/base.ts index ea2764c8ea64..6d748d7843b4 100644 --- a/packages/tracing-internal/src/browser/web-vitals/types/base.ts +++ b/packages/tracing-internal/src/browser/web-vitals/types/base.ts @@ -105,4 +105,4 @@ export interface ReportOpts { */ export type LoadState = 'loading' | 'dom-interactive' | 'dom-content-loaded' | 'complete'; -export type StopListening = () => void; +export type StopListening = undefined | void | (() => void); diff --git a/packages/tracing-internal/src/browser/web-vitals/types/ttfb.ts b/packages/tracing-internal/src/browser/web-vitals/types/ttfb.ts new file mode 100644 index 000000000000..86f1329ebee8 --- /dev/null +++ b/packages/tracing-internal/src/browser/web-vitals/types/ttfb.ts @@ -0,0 +1,80 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { Metric, ReportCallback } from './base'; +import type { NavigationTimingPolyfillEntry } from './polyfills'; + +/** + * A TTFB-specific version of the Metric object. + */ +export interface TTFBMetric extends Metric { + name: 'TTFB'; + entries: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[]; +} + +/** + * An object containing potentially-helpful debugging information that + * can be sent along with the TTFB value for the current page visit in order + * to help identify issues happening to real-users in the field. + */ +export interface TTFBAttribution { + /** + * The total time from when the user initiates loading the page to when the + * DNS lookup begins. This includes redirects, service worker startup, and + * HTTP cache lookup times. + */ + waitingTime: number; + /** + * The total time to resolve the DNS for the current request. + */ + dnsTime: number; + /** + * The total time to create the connection to the requested domain. + */ + connectionTime: number; + /** + * The time time from when the request was sent until the first byte of the + * response was received. This includes network time as well as server + * processing time. + */ + requestTime: number; + /** + * The `PerformanceNavigationTiming` entry used to determine TTFB (or the + * polyfill entry in browsers that don't support Navigation Timing). + */ + navigationEntry?: PerformanceNavigationTiming | NavigationTimingPolyfillEntry; +} + +/** + * A TTFB-specific version of the Metric object with attribution. + */ +export interface TTFBMetricWithAttribution extends TTFBMetric { + attribution: TTFBAttribution; +} + +/** + * A TTFB-specific version of the ReportCallback function. + */ +export interface TTFBReportCallback extends ReportCallback { + (metric: TTFBMetric): void; +} + +/** + * A TTFB-specific version of the ReportCallback function with attribution. + */ +export interface TTFBReportCallbackWithAttribution extends TTFBReportCallback { + (metric: TTFBMetricWithAttribution): void; +} diff --git a/packages/tracing-internal/src/index.ts b/packages/tracing-internal/src/index.ts index 98efc8dc1032..2dd4cf2f1768 100644 --- a/packages/tracing-internal/src/index.ts +++ b/packages/tracing-internal/src/index.ts @@ -22,6 +22,7 @@ export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, + addTtfbInstrumentationHandler, addLcpInstrumentationHandler, } from './browser'; diff --git a/packages/tracing-internal/test/browser/metrics/index.test.ts b/packages/tracing-internal/test/browser/metrics/index.test.ts index 84b3950aeeec..b0015ca0a514 100644 --- a/packages/tracing-internal/test/browser/metrics/index.test.ts +++ b/packages/tracing-internal/test/browser/metrics/index.test.ts @@ -10,7 +10,6 @@ import { } from '@sentry/core'; import type { Span } from '@sentry/types'; import type { ResourceEntry } from '../../../src/browser/metrics'; -import { _addTtfbToMeasurements } from '../../../src/browser/metrics'; import { _addMeasureSpans, _addResourceSpans } from '../../../src/browser/metrics'; import { WINDOW } from '../../../src/browser/types'; import { TestClient, getDefaultClientOptions } from '../../utils/TestClient'; @@ -341,34 +340,6 @@ describe('_addResourceSpans', () => { }); }); -describe('_addTtfbToMeasurements', () => { - it('adds ttfb to measurements', () => { - const measurements = {}; - _addTtfbToMeasurements(measurements, 300, 200, 100); - expect(measurements).toEqual({ - ttfb: { - unit: 'millisecond', - value: 200000, - }, - 'ttfb.requestTime': { - unit: 'millisecond', - value: 100000, - }, - }); - }); - - it('does not add negative ttfb', () => { - const measurements = {}; - _addTtfbToMeasurements(measurements, 100, 200, 300); - expect(measurements).toEqual({ - ttfb: { - unit: 'millisecond', - value: 0, - }, - }); - }); -}); - const setGlobalLocation = (location: Location) => { // @ts-expect-error need to delete this in order to set to new value delete WINDOW.location; diff --git a/yarn.lock b/yarn.lock index 6644c3a1fca6..644e37903884 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6712,17 +6712,7 @@ dependencies: "@types/unist" "*" -"@types/history-4@npm:@types/history@4.7.8": - version "4.7.8" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" - integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== - -"@types/history-5@npm:@types/history@4.7.8": - version "4.7.8" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" - integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== - -"@types/history@*": +"@types/history-4@npm:@types/history@4.7.8", "@types/history-5@npm:@types/history@4.7.8", "@types/history@*": version "4.7.8" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== @@ -7112,15 +7102,7 @@ "@types/history" "^3" "@types/react" "*" -"@types/react-router-4@npm:@types/react-router@5.1.14": - version "5.1.14" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.14.tgz#e0442f4eb4c446541ad7435d44a97f8fe6df40da" - integrity sha512-LAJpqYUaCTMT2anZheoidiIymt8MuX286zoVFPM3DVb23aQBH0mAkFvzpd4LKqiolV8bBtZWT5Qp7hClCNDENw== - dependencies: - "@types/history" "*" - "@types/react" "*" - -"@types/react-router-5@npm:@types/react-router@5.1.14": +"@types/react-router-4@npm:@types/react-router@5.1.14", "@types/react-router-5@npm:@types/react-router@5.1.14": version "5.1.14" resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.14.tgz#e0442f4eb4c446541ad7435d44a97f8fe6df40da" integrity sha512-LAJpqYUaCTMT2anZheoidiIymt8MuX286zoVFPM3DVb23aQBH0mAkFvzpd4LKqiolV8bBtZWT5Qp7hClCNDENw== @@ -25305,7 +25287,7 @@ react-is@^18.0.0: dependencies: "@remix-run/router" "1.0.2" -"react-router-6@npm:react-router@6.3.0": +"react-router-6@npm:react-router@6.3.0", react-router@6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== @@ -25320,13 +25302,6 @@ react-router-dom@^6.2.2: history "^5.2.0" react-router "6.3.0" -react-router@6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" - integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== - dependencies: - history "^5.2.0" - react@^18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96" @@ -27806,7 +27781,7 @@ stringify-object@^3.2.1: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -27834,13 +27809,6 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -30487,16 +30455,7 @@ workerpool@^6.4.0: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.4.0.tgz#f8d5cfb45fde32fa3b7af72ad617c3369567a462" integrity sha512-i3KR1mQMNwY2wx20ozq2EjISGtQWDIfV56We+yGJ5yDs8jTwQiLLaqHlkBHITlCuJnYlVRmXegxFxZg7gqI++A== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@7.0.0, wrap-ansi@^5.1.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.1.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@7.0.0, wrap-ansi@^5.1.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.1.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From 164b1f225f258d6d070566e5efc2fcb408a74a0c Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 21 Mar 2024 19:47:35 +0000 Subject: [PATCH 53/56] fix(node): Clear ANR timer on stop (#11229) This was missed from the original PR #11214 but is already included in the backport #11228 --- packages/node-experimental/src/integrations/anr/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/node-experimental/src/integrations/anr/index.ts b/packages/node-experimental/src/integrations/anr/index.ts index cd18556ef23d..8e28e0eb3535 100644 --- a/packages/node-experimental/src/integrations/anr/index.ts +++ b/packages/node-experimental/src/integrations/anr/index.ts @@ -175,5 +175,6 @@ async function _startWorker( return () => { // eslint-disable-next-line @typescript-eslint/no-floating-promises worker.terminate(); + clearInterval(timer); }; } From 492f1156c66ce7c4015750de63c2cb7f371069c3 Mon Sep 17 00:00:00 2001 From: Catherine Lee <55311782+c298lee@users.noreply.github.com> Date: Thu, 21 Mar 2024 16:44:42 -0400 Subject: [PATCH 54/56] fix(feedback): Fix screenshot black bars in Safari (#11233) Fixes issue where screenshotting in Safari results in black bars on the right and bottom of the image. Before: image After: image Relates to https://github.com/getsentry/sentry/issues/63749 --- .../src/screenshot/components/ScreenshotEditor.tsx | 8 +++----- .../src/screenshot/components/useTakeScreenshot.tsx | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx index e8f0feb32a02..826d7ecb1947 100644 --- a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx +++ b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx @@ -217,11 +217,9 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor if (!context) { throw new Error('Could not get canvas context'); } - const sourceWidth = imageSource.videoWidth; - const sourceHeight = imageSource.videoHeight; - imageBuffer.width = sourceWidth; - imageBuffer.height = sourceHeight; - context.drawImage(imageSource, 0, 0, sourceWidth, sourceHeight); + imageBuffer.width = imageSource.videoWidth; + imageBuffer.height = imageSource.videoHeight; + context.drawImage(imageSource, 0, 0); }, [imageBuffer], ), diff --git a/packages/feedback/src/screenshot/components/useTakeScreenshot.tsx b/packages/feedback/src/screenshot/components/useTakeScreenshot.tsx index af59edfc9d42..bf50eab24283 100644 --- a/packages/feedback/src/screenshot/components/useTakeScreenshot.tsx +++ b/packages/feedback/src/screenshot/components/useTakeScreenshot.tsx @@ -16,8 +16,8 @@ export const useTakeScreenshot = ({ onBeforeScreenshot, onScreenshot, onAfterScr onBeforeScreenshot(); const stream = await NAVIGATOR.mediaDevices.getDisplayMedia({ video: { - width: WINDOW.innerWidth, - height: WINDOW.innerHeight, + width: WINDOW.innerWidth * WINDOW.devicePixelRatio, + height: WINDOW.innerHeight * WINDOW.devicePixelRatio, }, audio: false, // @ts-expect-error experimental flags: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab From b927b5dad6cb41645936f69285b096f17848a495 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 21 Mar 2024 22:29:44 -0400 Subject: [PATCH 55/56] meta: CHANGELOG for 8.0.0-alpha.5 --- CHANGELOG.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17a777ecdab9..8b8f8c398d62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,67 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +## 8.0.0-alpha.5 + +This is the fifth alpha release of Sentry JavaScript SDK v8, which includes a variety of breaking changes. + +Read the [in-depth migration guide](./MIGRATION.md) to find out how to address any breaking changes in your code. + +### Important Changes + +- **feat(nextjs): Remove `client.(server|client).config.ts` functionality in favor of `instrumentation.ts` (#11059)** + - feat(nextjs): Bump minimum required Next.js version to `13.2.0` (#11097) + +With version 8 of the SDK we will no longer support the use of `sentry.server.config.ts` and `sentry.edge.config.ts` +files. Instead, please initialize the Sentry Next.js SDK for the serverside in a +[Next.js instrumentation hook](https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation). +**`sentry.client.config.ts|js` is still supported and encouraged for initializing the clientside SDK.** Please see the +[Migration Guide](./MIGRATION.md#updated-the-recommended-way-of-calling-sentryinit) for more details. + +In addition, the Next.js SDK now requires a minimum Next.js version of `13.2.0`. + +### Removal/Refactoring of deprecated functionality + +- feat(node): Remove deprecated/duplicate/unused definitions (#11120) +- feat(v8): Remove deprecated integration methods on client (#11134) +- feat(v8/browser): Remove class export for linked errors (#11129) +- feat(v8/browser): Remove deprecated wrap export (#11127) +- feat(v8/core): Remove deprecated client.setupIntegrations method (#11179) +- feat(v8/core): Remove deprecated integration classes (#11132) +- feat(v8/ember): Remove InitSentryForEmber export (#11202) +- feat(v8/nextjs): Remove usage of class integrations (#11182) +- feat(v8/replay): Delete deprecated types (#11177) +- feat(v8/utils): Remove deprecated util functions (#11143) +- ref(node): Remove class based export for local variable integration (#11128) + +### Other Changes + +- feat(aws-serverless): Remove deprecated `rethrowAfterCapture` option (#11126) +- feat(browser): Make fetch the default transport for offline (#11209) +- feat(core): Filter out noisy GoogleTag error by default (#11208) +- feat(deps): Bump @sentry/cli from 2.30.0 to 2.30.2 (#11168) +- feat(nextjs): Prefix webpack plugin log messages with runtime (#11173) +- feat(node-profiling): Output ESM and remove Sentry deps from output (#11135) +- feat(node): Allow Anr worker to be stopped and restarted (#11214) +- feat(node): Support `tunnel` option for ANR (#11163) +- feat(opentelemetry): Do not capture exceptions for timed events (#11221) +- feat(serverless): Add Node.js 20 to compatible runtimes (#11103) +- feat(sveltekit): Switch to Otel-based `@sentry/node` package (#11075) +- fix(attachments): Add missing `view_hierarchy` attachment type (#11197) +- fix(build): Ensure tree shaking works properly for ESM output (#11122) +- fix(feedback): Only allow screenshots in secure contexts (#11188) +- fix(feedback): Reduce force layout in screenshots (#11181) +- fix(feedback): Smoother cropping experience and better UI (#11165) +- fix(feedback): Fix screenshot black bars in Safari (#11233) +- fix(metrics): use correct statsd data category (#11184) +- fix(metrics): use web-vitals ttfb calculation (#11185) +- fix(node): Export `initOpenTelemetry` (#11158) +- fix(node): Clear ANR timer on stop (#11229) +- fix(node): Time zone handling for `cron` (#11225) +- fix(node): Use unique variable for ANR context transfer (#11161) +- fix(opentelemetry): Do not stomp span error status (#11169) +- fix(types): Fix incorrect `sampled` type on `Transaction` (#11115) + ## 8.0.0-alpha.4 This is the fourth Alpha release of the v8 cycle, which includes a variety of breaking changes. From 9ceed4b047c3c91291ff06ca983b4ea24b5c1581 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Fri, 22 Mar 2024 10:04:10 +0100 Subject: [PATCH 56/56] Apply suggestions from code review --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b8f8c398d62..4ce787aa60f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ In addition, the Next.js SDK now requires a minimum Next.js version of `13.2.0`. ### Removal/Refactoring of deprecated functionality +- feat(aws-serverless): Remove deprecated `rethrowAfterCapture` option (#11126) - feat(node): Remove deprecated/duplicate/unused definitions (#11120) - feat(v8): Remove deprecated integration methods on client (#11134) - feat(v8/browser): Remove class export for linked errors (#11129) @@ -39,7 +40,6 @@ In addition, the Next.js SDK now requires a minimum Next.js version of `13.2.0`. ### Other Changes -- feat(aws-serverless): Remove deprecated `rethrowAfterCapture` option (#11126) - feat(browser): Make fetch the default transport for offline (#11209) - feat(core): Filter out noisy GoogleTag error by default (#11208) - feat(deps): Bump @sentry/cli from 2.30.0 to 2.30.2 (#11168)