Compare commits

...

7 Commits

Author SHA1 Message Date
Ryuya b73928bb8c
Merge 44db038779 into 9f98d803c0 2025-10-06 14:10:18 +08:00
Alexander Akait 9f98d803c0
fix: javascript parser options types (#19980)
Github Actions / lint (push) Has been cancelled Details
Github Actions / validate-legacy-node (push) Has been cancelled Details
Github Actions / benchmark (1/4) (push) Has been cancelled Details
Github Actions / benchmark (2/4) (push) Has been cancelled Details
Github Actions / benchmark (3/4) (push) Has been cancelled Details
Github Actions / benchmark (4/4) (push) Has been cancelled Details
Github Actions / basic (push) Has been cancelled Details
Github Actions / unit (push) Has been cancelled Details
Github Actions / integration (10.x, macos-latest, a) (push) Has been cancelled Details
Github Actions / integration (10.x, macos-latest, b) (push) Has been cancelled Details
Github Actions / integration (10.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (10.x, ubuntu-latest, b) (push) Has been cancelled Details
Github Actions / integration (10.x, windows-latest, a) (push) Has been cancelled Details
Github Actions / integration (10.x, windows-latest, b) (push) Has been cancelled Details
Github Actions / integration (12.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (14.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (16.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (18.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (20.x, macos-latest, a) (push) Has been cancelled Details
Github Actions / integration (20.x, macos-latest, b) (push) Has been cancelled Details
Github Actions / integration (20.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (20.x, ubuntu-latest, b) (push) Has been cancelled Details
Github Actions / integration (20.x, windows-latest, a) (push) Has been cancelled Details
Github Actions / integration (20.x, windows-latest, b) (push) Has been cancelled Details
Github Actions / integration (22.x, macos-latest, a) (push) Has been cancelled Details
Github Actions / integration (22.x, macos-latest, b) (push) Has been cancelled Details
Github Actions / integration (22.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (22.x, ubuntu-latest, b) (push) Has been cancelled Details
Github Actions / integration (22.x, windows-latest, a) (push) Has been cancelled Details
Github Actions / integration (22.x, windows-latest, b) (push) Has been cancelled Details
Github Actions / integration (24.x, macos-latest, a) (push) Has been cancelled Details
Github Actions / integration (24.x, macos-latest, b) (push) Has been cancelled Details
Github Actions / integration (24.x, ubuntu-latest, a) (push) Has been cancelled Details
Github Actions / integration (24.x, ubuntu-latest, b) (push) Has been cancelled Details
Github Actions / integration (24.x, windows-latest, a) (push) Has been cancelled Details
Github Actions / integration (24.x, windows-latest, b) (push) Has been cancelled Details
Github Actions / integration (lts/*, ubuntu-latest, a, 1) (push) Has been cancelled Details
Github Actions / integration (lts/*, ubuntu-latest, b, 1) (push) Has been cancelled Details
Update examples / examples (push) Has been cancelled Details
2025-10-04 14:58:38 +03:00
dependabot[bot] 8804459884
chore(deps): bump CodSpeedHQ/action from 4.0.1 to 4.1.0 (#19977)
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/codspeedhq/action/releases)
- [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md)
- [Commits](653fdc30e6...3959e9e296)

---
updated-dependencies:
- dependency-name: CodSpeedHQ/action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 13:32:45 +03:00
Alexander Akait bc91301142
chore: update codespeed (#19959) 2025-10-04 13:26:48 +03:00
Ryuya 44db038779 feat: add general discussion template 2025-08-30 10:34:46 +09:00
Ryuya b8aaeac1de chore: remove validation checkboxes 2025-08-28 08:34:08 +09:00
Ryuya 8823af17f5 feat: improve issue templates and add discussion templates 2025-07-12 15:32:49 -07:00
14 changed files with 531 additions and 125 deletions

72
.github/DISCUSSION_TEMPLATE/ideas.yml vendored Normal file
View File

@ -0,0 +1,72 @@
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature! Help us understand your proposal by providing detailed information.
- type: textarea
attributes:
label: Feature Description
description: Provide a clear and concise description of the feature you'd like
placeholder: I would like webpack to support...
validations:
required: true
- type: textarea
attributes:
label: Goals
description: What problems would this feature solve?
value: |
1.
2.
3.
validations:
required: true
- type: textarea
attributes:
label: Current Behavior
description: How does webpack currently handle this use case?
placeholder: Currently, webpack requires users to...
validations:
required: true
- type: textarea
attributes:
label: Proposed Solution
description: How should this feature work? Include API examples if applicable
placeholder: |
I propose adding a new option:
```js
module.exports = {
newFeature: {
enabled: true
}
}
```
validations:
required: true
- type: textarea
attributes:
label: Alternatives Considered
description: What other solutions have you considered?
placeholder: |
- Using plugin X, but it doesn't support Y
- Writing custom loader, but it's too complex
- Current workaround using...
validations:
required: false
- type: textarea
attributes:
label: Use Cases
description: Provide specific examples of how this feature would be used
placeholder: |
This would be useful for:
- Projects that need to...
- When building applications with...
- Teams that want to...
validations:
required: true

23
.github/DISCUSSION_TEMPLATE/other.yml vendored Normal file
View File

@ -0,0 +1,23 @@
labels: ["discussion"]
body:
- type: markdown
attributes:
value: |
This template is for general discussions that don't fit into Q&A or Ideas categories.
For bug reports, please use the [issue tracker](https://github.com/webpack/webpack/issues/new/choose).
For questions and help, consider using the [Q&A category](https://github.com/webpack/webpack/discussions/categories/q-a).
- type: textarea
attributes:
label: Context
description: Share your thoughts or any relevant background
placeholder: What would you like to discuss?
validations:
required: false
- type: input
attributes:
label: webpack version
description: What version of webpack are you using?
placeholder: "5.89.0"

70
.github/DISCUSSION_TEMPLATE/q-a.yml vendored Normal file
View File

@ -0,0 +1,70 @@
labels: ["help wanted"]
body:
- type: markdown
attributes:
value: |
Need help with webpack? You're in the right place! Before asking:
- Check the [webpack documentation](https://webpack.js.org)
- Search existing [discussions](https://github.com/webpack/webpack/discussions)
- Search existing [issues](https://github.com/webpack/webpack/issues)
- type: textarea
attributes:
label: What do you need help with?
description: Describe your problem or question clearly
placeholder: I'm trying to configure webpack to do X, but I'm getting Y instead...
validations:
required: true
- type: textarea
attributes:
label: Your webpack configuration
description: Share your webpack.config.js or relevant configuration
render: js
placeholder: |
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js'
}
}
validations:
required: false
- type: textarea
attributes:
label: Error logs
description: If you're getting errors, paste them here
render: shell
placeholder: |
ERROR in ./src/index.js
Module not found: Error: Can't resolve...
validations:
required: false
- type: input
attributes:
label: Repository
description: Link to a minimal reproduction helps us help you faster
placeholder: https://github.com/username/webpack-issue
validations:
required: false
- type: textarea
attributes:
label: What have you tried?
description: List any solutions you've already attempted
placeholder: |
- I tried adding X to my config
- I searched for similar issues and found...
- I read the documentation about Y
validations:
required: false
- type: input
attributes:
label: webpack version
description: What version of webpack are you using?
placeholder: "5.89.0"
validations:
required: true

115
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,115 @@
name: Bug Report
description: Report a bug in webpack
labels: ["type: bug"]
body:
- type: markdown
attributes:
value: |
Thank you for reporting a bug! Before submitting:
- Search [existing issues](https://github.com/webpack/webpack/issues) to avoid duplicates
- Try the latest version of webpack
- For help with your project, use [Discussions](https://github.com/webpack/webpack/discussions)
⚠️ **Important**: Issues that cannot be reproduced or contain vague information will be closed. If you need help debugging your specific setup, please use [Discussions](https://github.com/webpack/webpack/discussions/new?category=q-a) instead.
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is
placeholder: When I do X, Y happens instead of Z
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Link to Minimal Reproduction
description: |
Please provide a minimal reproduction using:
- GitHub repository with minimal webpack.config.js
**If a minimal reproduction is difficult** (e.g., performance issues in large projects with thousands of files):
- Describe your project structure in detail
- Include your full webpack configuration
- Provide specific metrics (build times, memory usage, file counts)
placeholder: |
https://github.com/user/webpack-repro
OR for complex cases:
- Build takes 30+ minutes
- Issue only appears with specific combinations of loaders/plugins
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: Clear steps to reproduce the behavior
placeholder: |
1. Run 'npm install'
2. Run 'npm run build'
3. See error in console
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: |
Please run `npx webpack info` and paste the output here
render: shell
placeholder: |
System:
OS: macOS 14.0.0
CPU: (12) arm64 Apple M1
Memory: 16.00 GB
Binaries:
Node: 22.17.0
npm: 10.0.0
Packages:
webpack: 5.100.0
validations:
required: true
- type: dropdown
id: regression
attributes:
label: Is this a regression?
description: Did this work in a previous version of webpack?
options:
- "No"
- "Yes (please specify version below)"
validations:
required: true
- type: input
id: regression-version
attributes:
label: Last Working Version
description: If regression, which version worked?
placeholder: "v5.99.9"
- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other context about the problem (error logs, workarounds, etc.)

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: Feature Request
url: https://github.com/webpack/webpack/discussions/new?category=ideas
about: Request new features or suggest improvements
- name: Ask for Help
url: https://github.com/webpack/webpack/discussions/new?category=q-a
about: Ask questions and get help from the community
- name: Other Discussion
url: https://github.com/webpack/webpack/discussions/new?category=general
about: General discussions that don't fit other categories

View File

@ -97,7 +97,7 @@ jobs:
- run: yarn link webpack --frozen-lockfile
- name: Run benchmarks
uses: CodSpeedHQ/action@653fdc30e6c40ffd9739e40c8a0576f4f4523ca1 # v4.0.1
uses: CodSpeedHQ/action@3959e9e296ef25296e93e32afcc97196f966e57f # v4.1.0
with:
run: yarn benchmark --ci
mode: "instrumentation"

View File

@ -284,6 +284,7 @@
"url's",
"valign",
"valtype",
"walltime",
"wasi",
"wasm",
"watchings",
@ -304,7 +305,6 @@
"commithash",
"formaters",
"akait",
"Akait",
"evenstensberg",
"Stensberg",
"ovflowd",

View File

@ -3349,7 +3349,6 @@ export interface JavascriptParserOptions {
* Set the inner regular expression for partial dynamic dependencies.
*/
wrappedContextRegExp?: RegExp;
[k: string]: any;
}
/**
* Generator options for json modules.

View File

@ -110,7 +110,7 @@
"devDependencies": {
"@babel/core": "^7.27.1",
"@babel/preset-react": "^7.27.1",
"@codspeed/core": "^4.0.1",
"@codspeed/core": "^5.0.1",
"@eslint/js": "^9.36.0",
"@eslint/markdown": "^7.3.0",
"@stylistic/eslint-plugin": "^5.4.0",

File diff suppressed because one or more lines are too long

View File

@ -1786,7 +1786,7 @@
"JavascriptParserOptions": {
"description": "Parser options for javascript modules.",
"type": "object",
"additionalProperties": true,
"additionalProperties": false,
"properties": {
"amd": {
"$ref": "#/definitions/Amd"

View File

@ -3,6 +3,15 @@ import fs from "fs/promises";
import { Session } from "inspector";
import path from "path";
import { fileURLToPath, pathToFileURL } from "url";
import {
InstrumentHooks,
getCodspeedRunnerMode,
getGitDir,
getV8Flags,
mongoMeasurement,
setupCore,
teardownCore
} from "@codspeed/core";
import { simpleGit } from "simple-git";
import { Bench, hrtimeNow } from "tinybench";
@ -12,32 +21,6 @@ const git = simpleGit(rootPath);
const REV_LIST_REGEXP = /^([a-f0-9]+)\s*([a-f0-9]+)\s*([a-f0-9]+)?\s*$/;
const getV8Flags = () => {
const nodeVersionMajor = Number.parseInt(
process.version.slice(1).split(".")[0],
10
);
const flags = [
"--hash-seed=1",
"--random-seed=1",
"--no-opt",
"--predictable",
"--predictable-gc-schedule",
"--interpreted-frames-native-stack",
"--allow-natives-syntax",
"--expose-gc",
"--no-concurrent-sweeping",
"--max-old-space-size=4096"
];
if (nodeVersionMajor < 18) {
flags.push("--no-randomize-hashes");
}
if (nodeVersionMajor < 20) {
flags.push("--no-scavenge-task");
}
return flags;
};
const checkV8Flags = () => {
const requiredFlags = getV8Flags();
const actualFlags = process.execArgv;
@ -248,6 +231,8 @@ for (const baselineInfo of baselineRevisions) {
}
}
const baseOutputPath = path.join(__dirname, "js", "benchmark");
function buildConfiguration(
test,
baseline,
@ -385,105 +370,239 @@ const scenarios = [
}
];
const baseOutputPath = path.join(__dirname, "js", "benchmark");
function getStackTrace(belowFn) {
const oldLimit = Error.stackTraceLimit;
Error.stackTraceLimit = Infinity;
const dummyObject = {};
const v8Handler = Error.prepareStackTrace;
Error.prepareStackTrace = (dummyObject, v8StackTrace) => v8StackTrace;
Error.captureStackTrace(dummyObject, belowFn || getStackTrace);
const v8StackTrace = dummyObject.stack;
Error.prepareStackTrace = v8Handler;
Error.stackTraceLimit = oldLimit;
return v8StackTrace;
}
function getCallingFile() {
const stack = getStackTrace();
let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]
const gitDir = getGitDir(callingFile);
if (gitDir === undefined) {
throw new Error("Could not find a git repository");
}
if (callingFile.startsWith("file://")) {
callingFile = fileURLToPath(callingFile);
}
return path.relative(gitDir, callingFile);
}
const taskUriMap = new WeakMap();
function getOrCreateUriMap(bench) {
let uriMap = taskUriMap.get(bench);
if (!uriMap) {
uriMap = new Map();
taskUriMap.set(bench, uriMap);
}
return uriMap;
}
function getTaskUri(bench, taskName, rootCallingFile) {
const uriMap = taskUriMap.get(bench);
return uriMap?.get(taskName) || `${rootCallingFile}::${taskName}`;
}
const withCodSpeed = async (/** @type {import("tinybench").Bench} */ bench) => {
const { Measurement, getGitDir, mongoMeasurement, setupCore, teardownCore } =
await import("@codspeed/core");
const codspeedRunnerMode = getCodspeedRunnerMode();
if (!Measurement.isInstrumented()) {
const rawRun = bench.run;
bench.run = async () => {
console.warn(
`[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`
);
return await rawRun.bind(bench)();
};
if (codspeedRunnerMode === "disabled") {
return bench;
}
const getStackTrace = (belowFn) => {
const oldLimit = Error.stackTraceLimit;
Error.stackTraceLimit = Infinity;
const dummyObject = {};
const v8Handler = Error.prepareStackTrace;
Error.prepareStackTrace = (dummyObject, v8StackTrace) => v8StackTrace;
Error.captureStackTrace(dummyObject, belowFn || getStackTrace);
const v8StackTrace = dummyObject.stack;
Error.prepareStackTrace = v8Handler;
Error.stackTraceLimit = oldLimit;
return v8StackTrace;
};
const getCallingFile = () => {
const stack = getStackTrace();
let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]
const gitDir = getGitDir(callingFile);
if (gitDir === undefined) {
throw new Error("Could not find a git repository");
}
if (callingFile.startsWith("file://")) {
callingFile = fileURLToPath(callingFile);
}
return path.relative(gitDir, callingFile);
};
const rawAdd = bench.add;
const uriMap = getOrCreateUriMap(bench);
bench.add = (name, fn, opts) => {
const callingFile = getCallingFile();
const uri = `${callingFile}::${name}`;
const options = { ...opts, uri };
return rawAdd.bind(bench)(name, fn, options);
let uri = callingFile;
if (bench.name !== undefined) {
uri += `::${bench.name}`;
}
uri += `::${name}`;
uriMap.set(name, uri);
return rawAdd.bind(bench)(name, fn, opts);
};
const rootCallingFile = getCallingFile();
bench.run = async function run() {
const iterations = bench.opts.iterations - 1;
console.log("[CodSpeed] running");
setupCore();
for (const task of bench.tasks) {
await bench.opts.setup?.(task, "run");
await task.fnOpts.beforeAll?.call(task);
const samples = [];
async function iteration() {
try {
await task.fnOpts.beforeEach?.call(task, "run");
const start = bench.opts.now();
await task.fn();
samples.push(bench.opts.now() - start || 0);
await task.fnOpts.afterEach?.call(this, "run");
} catch (err) {
if (bench.opts.throws) {
throw err;
}
if (codspeedRunnerMode === "instrumented") {
const setupBenchRun = () => {
setupCore();
console.log(
"[CodSpeed] running with @codspeed/tinybench (instrumented mode)"
);
};
const finalizeBenchRun = () => {
teardownCore();
console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
return bench.tasks;
};
const wrapFunctionWithFrame = (fn, isAsync) => {
if (isAsync) {
return async function __codspeed_root_frame__() {
await fn();
};
}
return function __codspeed_root_frame__() {
fn();
};
};
const logTaskCompletion = (uri, status) => {
console.log(`[CodSpeed] ${status} ${uri}`);
};
const taskCompletionMessage = () =>
InstrumentHooks.isInstrumented() ? "Measured" : "Checked";
const iterationAsync = async (task) => {
try {
await task.fnOpts.beforeEach?.call(task, "run");
const start = bench.opts.now();
await task.fn();
const end = bench.opts.now() - start || 0;
await task.fnOpts.afterEach?.call(this, "run");
return [start, end];
} catch (err) {
if (bench.opts.throws) {
throw err;
}
}
while (samples.length < iterations) {
await iteration();
}
// Codspeed Measure
const uri =
task.opts && "uri" in task.options
? task.opts.uri
: `${rootCallingFile}::${task.name}`;
await task.fnOpts.beforeEach?.call(task);
await mongoMeasurement.start(uri);
await (async function __codspeed_root_frame__() {
Measurement.startInstrumentation();
await task.fn();
Measurement.stopInstrumentation(uri);
})();
await mongoMeasurement.stop(uri);
await task.fnOpts.afterEach?.call(task);
console.log(`[Codspeed] ✔ Measured ${uri}`);
await task.fnOpts.afterAll?.call(task);
};
const wrapWithInstrumentHooksAsync = async (fn, uri) => {
InstrumentHooks.startBenchmark();
const result = await fn();
InstrumentHooks.stopBenchmark();
InstrumentHooks.setExecutedBenchmark(process.pid, uri);
return result;
};
const runTaskAsync = async (task, uri) => {
const { fnOpts, fn } = task;
// Custom setup
await bench.opts.setup?.(task, "run");
await fnOpts?.beforeAll?.call(task, "run");
// Custom warmup
// We don't run `optimizeFunction` because our function is never optimized, instead we just warmup webpack
const samples = [];
while (samples.length < bench.opts.iterations - 1) {
samples.push(await iterationAsync(task));
}
await fnOpts?.beforeEach?.call(task, "run");
await mongoMeasurement.start(uri);
global.gc?.();
await wrapWithInstrumentHooksAsync(wrapFunctionWithFrame(fn, true), uri);
await mongoMeasurement.stop(uri);
await fnOpts?.afterEach?.call(task, "run");
console.log(`[Codspeed] ✔ Measured ${uri}`);
await fnOpts?.afterAll?.call(task, "run");
// Custom teardown
await bench.opts.teardown?.(task, "run");
task.processRunResult({ latencySamples: samples });
}
teardownCore();
console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
return bench.tasks;
};
logTaskCompletion(uri, taskCompletionMessage());
};
const iteration = (task) => {
try {
task.fnOpts.beforeEach?.call(task, "run");
const start = bench.opts.now();
task.fn();
const end = bench.opts.now() - start || 0;
task.fnOpts.afterEach?.call(this, "run");
return [start, end];
} catch (err) {
if (bench.opts.throws) {
throw err;
}
}
};
const wrapWithInstrumentHooks = (fn, uri) => {
InstrumentHooks.startBenchmark();
const result = fn();
InstrumentHooks.stopBenchmark();
InstrumentHooks.setExecutedBenchmark(process.pid, uri);
return result;
};
const runTaskSync = (task, uri) => {
const { fnOpts, fn } = task;
// Custom setup
bench.opts.setup?.(task, "run");
fnOpts?.beforeAll?.call(task, "run");
// Custom warmup
const samples = [];
while (samples.length < bench.opts.iterations - 1) {
samples.push(iteration(task));
}
fnOpts?.beforeEach?.call(task, "run");
wrapWithInstrumentHooks(wrapFunctionWithFrame(fn, false), uri);
fnOpts?.afterEach?.call(task, "run");
console.log(`[Codspeed] ✔ Measured ${uri}`);
fnOpts?.afterAll?.call(task, "run");
// Custom teardown
bench.opts.teardown?.(task, "run");
logTaskCompletion(uri, taskCompletionMessage());
};
const finalizeAsyncRun = () => {
finalizeBenchRun();
};
const finalizeSyncRun = () => {
finalizeBenchRun();
};
bench.run = async () => {
setupBenchRun();
for (const task of bench.tasks) {
const uri = getTaskUri(task.bench, task.name, rootCallingFile);
await runTaskAsync(task, uri);
}
return finalizeAsyncRun();
};
bench.runSync = () => {
setupBenchRun();
for (const task of bench.tasks) {
const uri = getTaskUri(task.bench, task.name, rootCallingFile);
runTaskSync(task, uri);
}
return finalizeSyncRun();
};
} else if (codspeedRunnerMode === "walltime") {
// We don't need it
}
return bench;
};
@ -495,7 +614,6 @@ const bench = await withCodSpeed(
warmupIterations: 2,
iterations: 8,
setup(task, mode) {
global.gc();
console.log(`Setup (${mode} mode): ${task.name}`);
},
teardown(task, mode) {

2
types.d.ts vendored
View File

@ -8195,8 +8195,6 @@ declare class JavascriptParser extends ParserClass {
* Parser options for javascript modules.
*/
declare interface JavascriptParserOptions {
[index: string]: any;
/**
* Set the value of `require.amd` and `define.amd`. Or disable AMD support.
*/

View File

@ -332,14 +332,14 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@codspeed/core@^4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@codspeed/core/-/core-4.0.1.tgz#91049cce17b8c1d1b4b6cbc481f5ddc1145d6e1e"
integrity sha512-fJ53arfgtzCDZa8DuGJhpTZ3Ll9A1uW5nQ2jSJnfO4Hl5MRD2cP8P4vPvIUAGbdbjwCxR1jat6cW8OloMJkJXw==
"@codspeed/core@^5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@codspeed/core/-/core-5.0.1.tgz#6145c898a86a6d56a169611c3e9657a8b97c7642"
integrity sha512-4g5ZyFAin8QywK4+0FK1uXG3GLRPu0oc3xbP+7OUhhFxbwpzFuaJtKmnTofMqLy9/pHH6Bl/7H0/DTVH3cpFkA==
dependencies:
axios "^1.4.0"
find-up "^6.3.0"
form-data "^4.0.0"
form-data "^4.0.4"
node-gyp-build "^4.6.0"
"@cspell/cspell-bundled-dicts@9.1.3":
@ -3878,7 +3878,7 @@ fork-ts-checker-webpack-plugin@^9.0.2:
semver "^7.3.5"
tapable "^2.2.1"
form-data@^4.0.0, form-data@^4.0.4:
form-data@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==