CodeSampleX

Sample

@babel/preset-env 8.0.2: preset-env

Verified sample for npm @babel/preset-env 8.0.2: preset-env. The contract ran on node 22 · linux debian/x64 · docker and passed.

sha256:0e21190ae362d4da8685e2c965340d63ebfdf8480719cd38e0bf049c6104a4f8

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
1
Signing keys that built it
1
Declared environment node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10

Verification-run environments

Environment Contract Stages Run
node 22 · linux debian/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1node:22@sha256:8a34c4ab3ea2…
2026-09-03

Case

HOW
Goal
verify pkg:npm/%40babel/preset-env@8.0.2
Packages
Symbols
  • @babel/preset-env
Environment
node 22.23.2
Created
2026-09-03T10:11:05Z

Contract

  1. Configuring the include option with transform-arrow-functions forces transpilation of arrow functions to function expressions even when targeting modern runtimes (such as Chrome 120) that natively support them, while preserving non-included syntax like template literals.
  2. The include option accepts shorthand plugin names (transform-arrow-functions), full package names (@babel/plugin-transform-arrow-functions), and RegExp patterns (/^transform-arrow/).
  3. Configuring the exclude option with transform-arrow-functions prevents arrow function transpilation even when targeting older runtimes (such as IE 11) that lack native support, preserving arrow syntax while other transforms remain active.
  4. The exclude option accepts RegExp patterns (/^transform-arrow/) to exclude matching transform plugins from compilation.
  5. Specifying the same plugin in both include and exclude options throws a validation Error indicating that the plugin was found in both options.
  6. Passing an unrecognized plugin name to include throws a validation Error stating that the plugin is not valid.
  7. Direct preset initialization with include or exclude adjusts the length of the returned plugins array relative to the target baseline.

Files

  • NOTES.md
  • PROMPT.md
  • csx.json
  • package-lock.json
  • package.json
  • spec.json
  • test/contract.mjs

Download the source artifact (tar.gz)

Source

NOTES.md
# @babel/preset-env Plugin Customization via include and exclude

## search_known_solution Result

`search_known_solution` returned existing samples for `@babel/preset-env@8.0.2`:
- `sha256:0e5c41047e8f368cb12ecb51f5efc04ac1bc1078de279411af5aee5b26a6cb52`: Default `modules: 'auto'` resolution based on caller `supportsStaticESM`.
- `sha256:b5c5836da37c42e25e176b53730d9503770543e476377d9f54af3a953beffc62`: Stale shared tuple behavior across multiple transform calls.
- `sha256:d1c4e6d5b5f6d67cedb5e95f468a787b2752c4c69b6ef2c96f4bf0ecf8b87ed3`: Default module transpilation of `export * as ns` syntax.
- `sha256:96181bdb531ffb3f77b41700fed349f697ecb137816bcb657b3ed00ddd6714b6`: Rejection of removed legacy options (`loose`, `spec`, `bugfixes`, `useBuiltIns`) in Babel 8.
- `sha256:422dd3e4cc5554fd1cc4487175946e131792636834ed04605f3452f1a66340f5`: Target overrides via `forceAllTransforms`.

None of the existing samples verify the `include` and `exclude` configuration options, shorthand/prefix resolution, RegExp pattern matching, mutual exclusion collision handling, or unrecognized plugin validation.

## What a Model or Developer Would Have Written

Developers commonly assume that compilation targets strictly dictate plugin inclusion, requiring full `@babel/plugin-*` names if manually overridden, and that `include` and `exclude` silently resolve conflicts by precedence order if the same plugin is supplied to both.

## Observed Behaviour and Failure Modes

1. **Forced Plugin Inclusion via `include`**:
   Configuring `include: ['transform-arrow-functions']` forces the activation of arrow function transpilation down to function expressions even when targeting modern environments (such as Chrome 120) that natively support arrow functions, while non-included features (such as template literals) remain untouched.

2. **Shorthand, Full Name, and RegExp Matching**:
   `include` and `exclude` accept shorthand names (`'transform-arrow-functions'`), full package identifiers (`'@babel/plugin-transform-arrow-functions'`), and regular expressions (such as `/^transform-arrow/`).

3. **Feature Exclusion via `exclude`**:
   Configuring `exclude: ['transform-arrow-functions']` prevents arrow functions from being transpiled even when targeting legacy runtimes (such as IE 11), while all other target-mandated transformations continue to run.

4. **Mutual Exclusion Collision**:
   Specifying the same plugin in both `include` and `exclude` throws a synchronous validation `Error`:
   `The plugins/built-ins '...' were found in both the "include" and "exclude" options.`

5. **Unrecognized Plugin Validation**:
   Specifying an invalid or unrecognized plugin in `include` or `exclude` throws a descriptive `Error`:
   `The plugins/built-ins '...' passed to the 'include' option are not valid.`

6. **Programmatic Preset Inspection**:
   Direct initialization of `@babel/preset-env` with `include` or `exclude` increments or decrements the length of the returned preset `plugins` array relative to the target baseline.
PROMPT.md
Clean-room public code sample — generation instructions

Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.

A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.

Goal: verify pkg:npm/%40babel/preset-env@8.0.2
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:npm/%40babel/preset-env@8.0.2
Constraints:
  - executionContext: node
Required runtime conditions:
  - ecosystem: npm
  - language: javascript
  - moduleSystem: cjs
  - packageManager: npm@10.9.8
  - runtime: node@22.23.2

Rules:
  - One focused purpose; the smallest project that proves the goal.
  - Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
  - Pin every dependency with a lockfile so resolution is reproducible.
  - No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
  - No personal names, emails, company names, or project identifiers of any kind.
  - No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
  - Keep it under 200 files and 256KB packed.
csx.json
{"case":{"believed":"Compilation targets strictly dictate plugin selection, requiring full package names if manually overridden, and include and exclude silently resolve collisions by precedence rather than throwing an error.","caseId":"case:sha256:2c20eb7fed21abb4495f97bcffe4b74ba9891db4387cecd802c7875d50c1a88c","constraints":{"executionContext":"node"},"contract":["Configuring the include option with transform-arrow-functions forces transpilation of arrow functions to function expressions even when targeting modern runtimes (such as Chrome 120) that natively support them, while preserving non-included syntax like template literals.","The include option accepts shorthand plugin names (transform-arrow-functions), full package names (@babel/plugin-transform-arrow-functions), and RegExp patterns (/^transform-arrow/).","Configuring the exclude option with transform-arrow-functions prevents arrow function transpilation even when targeting older runtimes (such as IE 11) that lack native support, preserving arrow syntax while other transforms remain active.","The exclude option accepts RegExp patterns (/^transform-arrow/) to exclude matching transform plugins from compilation.","Specifying the same plugin in both include and exclude options throws a validation Error indicating that the plugin was found in both options.","Passing an unrecognized plugin name to include throws a validation Error stating that the plugin is not valid.","Direct preset initialization with include or exclude adjusts the length of the returned plugins array relative to the target baseline."],"goal":"verify pkg:npm/%40babel/preset-env@8.0.2","kind":"HOW","packages":["pkg:npm/%40babel/preset-env@8.0.2"],"schemaVersion":1,"symbols":["@babel/preset-env"]},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"npm","executionContext":"node","language":"javascript","libc":"glibc","libcVersion":"2.39","moduleSystem":"cjs","os":"linux","osVersionBucket":"24","packageManager":"npm","packageManagerVersion":"10.9.8","runtime":"node","runtimeVersion":"22.23.2","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/%40babel/preset-env@8.0.2"],"schemaVersion":1,"subject":"pkg:npm/%40babel/preset-env@8.0.2","symbols":["@babel/preset-env"],"verifierAdapter":"node-typescript@1"}
package-lock.json (first part only)
{
  "name": "npm-babel-preset-env-include-exclude",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "npm-babel-preset-env-include-exclude",
      "version": "1.0.0",
      "license": "MIT-0",
      "dependencies": {
        "@babel/core": "8.0.1",
        "@babel/preset-env": "8.0.2"
      }
    },
    "node_modules/@babel/code-frame": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz",
      "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-validator-identifier": "^8.0.0",
        "js-tokens": "^10.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/compat-data": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz",
      "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/core": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz",
      "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==",
      "license": "MIT",
      "dependencies": {
        "@babel/code-frame": "^8.0.0",
        "@babel/generator": "^8.0.0",
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helpers": "^8.0.0",
        "@babel/parser": "^8.0.0",
        "@babel/template": "^8.0.0",
        "@babel/traverse": "^8.0.0",
        "@babel/types": "^8.0.0",
        "@types/gensync": "^1.0.5",
        "convert-source-map": "^2.0.0",
        "empathic": "^2.0.1",
        "gensync": "^1.0.0-beta.2",
        "import-meta-resolve": "^4.2.0",
        "json5": "^2.2.3",
        "obug": "^2.1.1",
        "semver": "^7.7.3"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/babel"
      }
    },
    "node_modules/@babel/generator": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz",
      "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==",
      "license": "MIT",
      "dependencies": {
        "@babel/parser": "^8.0.0",
        "@babel/types": "^8.0.0",
        "@jridgewell/gen-mapping": "^0.3.12",
        "@jridgewell/trace-mapping": "^0.3.28",
        "@types/jsesc": "^2.5.0",
        "jsesc": "^3.0.2"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-annotate-as-pure": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-8.0.0.tgz",
      "integrity": "sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==",
      "license": "MIT",
      "dependencies": {
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-compilation-targets": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz",
      "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==",
      "license": "MIT",
      "dependencies": {
        "@babel/compat-data": "^8.0.0",
        "@babel/helper-validator-option": "^8.0.0",
        "browserslist": "^4.24.0",
        "lru-cache": "^11.0.0",
        "semver": "^7.7.3"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-create-class-features-plugin": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-8.0.1.tgz",
      "integrity": "sha512-++t3ZktzlLmASAxIlxeXQK9Z2YwUafYGYcvGBFevqOqt16HozVHStUoQvWD09fzAZOb/uJGpUTBuGK41AJAuOA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-annotate-as-pure": "^8.0.0",
        "@babel/helper-member-expression-to-functions": "^8.0.0",
        "@babel/helper-optimise-call-expression": "^8.0.0",
        "@babel/helper-replace-supers": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0",
        "@babel/traverse": "^8.0.0",
        "semver": "^7.7.3"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-create-regexp-features-plugin": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-8.0.1.tgz",
      "integrity": "sha512-PydTbcVTiIfVweHMeY1u3MslaD/ZzvnaTNhJp+7ghofelLWshF66Ckc/ZsjStfvRQIKQ4uVG0yEJucyDtyrWgw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-annotate-as-pure": "^8.0.0",
        "regexpu-core": "^6.3.1",
        "semver": "^7.7.3"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-define-polyfill-provider": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-1.0.0.tgz",
      "integrity": "sha512-9jzVaTeZyXRDKTgUnNzcPQMO8y0ga3o+Z4fKjNet9Fcx7slgKa83qRbz0EwROSd6qO6CoEe/HQszqSPKb5lhkw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.0",
        "lodash.debounce": "^4.0.8"
      },
      "engines": {
        "node": "^20.19.0 || >=22.12.0"
      },
      "peerDependencies": {
        "@babel/core": "^7.4.0 || ^8.0.0"
      }
    },
    "node_modules/@babel/helper-globals": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz",
      "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-member-expression-to-functions": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-8.0.0.tgz",
      "integrity": "sha512-xkXrMbtk87Gk7+oKBVmBc6EORg/Qwx++AHESldmHkpvG8wgccdhJJFwrzqlF382Fk8wfXhJHWE/g/43QvEGNPQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/traverse": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-module-imports": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-8.0.0.tgz",
      "integrity": "sha512-NZ7mSS93o4ndX4KrbD7W8Sf3QT8Qe24PrnFyUcuOPDzK6faqDFKjY9RG7he7+I7FdiQ4llpnosFqzrXa+Vy3Ew==",
      "license": "MIT",
      "dependencies": {
        "@babel/traverse": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-module-transforms": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-8.0.1.tgz",
      "integrity": "sha512-UgAhl1kqiW5ciE0yCXqqvnb4H2n3IELJ7lIIQRezwDPilPEZX5i+Rvbja9MFTkwUn2biEiSMeV31aUzR4Lwakw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-imports": "^8.0.0",
        "@babel/helper-validator-identifier": "^8.0.0",
        "@babel/traverse": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-optimise-call-expression": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-8.0.0.tgz",
      "integrity": "sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg==",
      "license": "MIT",
      "dependencies": {
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-plugin-utils": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-8.0.1.tgz",
      "integrity": "sha512-3PKFgjTyPlhFhorfP+SjKQxLViIL++zWjFOO4hGriYU+Bsm983DxEM1JmDRJVWXV0O9npu+xXRqz7Pbd3mh70g==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-remap-async-to-generator": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-8.0.1.tgz",
      "integrity": "sha512-baAKuLEMmu6BCSY3tuiU7qglM1qOZt6F1SrFScA241oNqksxkxfEZEKztlGRmoVns9AQ5UgArH7RsUEjxWnzgQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-annotate-as-pure": "^8.0.0",
        "@babel/helper-wrap-function": "^8.0.0",
        "@babel/traverse": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-replace-supers": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-8.0.1.tgz",
      "integrity": "sha512-B1SZADIcy3tmH8CmWvj4SHi/oAPom4UL3uknTc2QRNsPVLFk/sPnZvQL/8kj7Y5omvjMqie0vklvs6XM4OLW5Q==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-member-expression-to-functions": "^8.0.0",
        "@babel/helper-optimise-call-expression": "^8.0.0",
        "@babel/traverse": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-8.0.0.tgz",
      "integrity": "sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw==",
      "license": "MIT",
      "dependencies": {
        "@babel/traverse": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-string-parser": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz",
      "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-validator-identifier": {
      "version": "8.0.4",
      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz",
      "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-validator-option": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz",
      "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==",
      "license": "MIT",
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helper-wrap-function": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-8.0.0.tgz",
      "integrity": "sha512-Qpm8+wi5xfDkBfollanwriCcKniFfBmMmaKB01GVM6VGzKXo1fdxosZp04qEr5HM+LKhwr3hG1yRy8+ORsficA==",
      "license": "MIT",
      "dependencies": {
        "@babel/template": "^8.0.0",
        "@babel/traverse": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/helpers": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz",
      "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==",
      "license": "MIT",
      "dependencies": {
        "@babel/template": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/parser": {
      "version": "8.0.4",
      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz",
      "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==",
      "license": "MIT",
      "dependencies": {
        "@babel/types": "^8.0.4"
      },
      "bin": {
        "parser": "bin/babel-parser.js"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-8.0.1.tgz",
      "integrity": "sha512-Ytgjjne4RnG3Oig7ik+NfY4ebRY30BPptVkkyu1f72eINJXRM3/bkU++tIc5aPvyLmo4KH20avq0xJ2o+9aEnw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-8.0.1.tgz",
      "integrity": "sha512-X7pAMBhuKluA7UfwZNvKN0XVVu/AGeo84Z75eJl85rcb8J2aBzLK92btahM1X5h0oi0QIrbe0qIMA/0+4Buk7w==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-8.0.1.tgz",
      "integrity": "sha512-DJviKTxYfH0hFwnMiW4dnPyMGzS3Hrr4zUfXl1zwQ0QiGlGlNYklLoPSYEQr8S7nau0/K7NdQjTh0qbYuyFjCA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-8.0.1.tgz",
      "integrity": "sha512-DmR/N+B9+4PbURFj4+zdnWj49/PFAnK2bn8+E4ZAmwn3J5QCxnbG7Ep6aRfz9M8Aw+rBro0kIJQycvzFpl4buQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-8.0.1.tgz",
      "integrity": "sha512-x8bi0LFVD2xkULjfNn+hCMg16yAFHAM9fS/ThSFeYBi+0MP9K6qcY2BZb4urUwC7PYtEy5wPe6TKjOEjXrCGFA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0",
        "@babel/plugin-transform-optional-chaining": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-8.0.1.tgz",
      "integrity": "sha512-P8+RN2n7ts2s1vnE+lXdHYf+dhnmcGSen/kWzBsVluT9Sey5AqmcRXYWlHqgQxaNlKTD5YMa1tf5z4d1v8W88w==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-arrow-functions": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-8.0.1.tgz",
      "integrity": "sha512-o/gr7kRlq3PKLLuYth4udOsrC7geBerti+QtwPeyxMOsEQO1d8kDHqk9r2PtMx2y9i8FG7tzyTerfv1yMLSMsQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-async-generator-functions": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-8.0.1.tgz",
      "integrity": "sha512-kqnSMF1YHBzuiQrl68675i5Ma1oljvo+SJsNEZFZVBu5BUrVIZm9KId3ui2PdtLK2sv2zM8sJnjPDfgLxQlEqQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-remap-async-to-generator": "^8.0.1",
        "@babel/traverse": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-async-to-generator": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-8.0.1.tgz",
      "integrity": "sha512-e1jmmEU4p2Lx64sA1+EF8e8/RxPuegzbXcEbmFp5alDyLE+f2ViUpZ77bRWMXzihTwgVVmn/TOpqDbAuS5g1Ew==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-imports": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-remap-async-to-generator": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-block-scoped-functions": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-8.0.1.tgz",
      "integrity": "sha512-0V97/gcf7LIgPieEiK1YT0eXa18XJFSLOTZjzEZhA9SJIqZhD/IwGUrCitBzXSmnGCP7hchwC6svHtJ/Eidcpg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-block-scoping": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-8.0.1.tgz",
      "integrity": "sha512-HxiQvKsSCs2jOmMhjDrooHaZYOy6W8bqwXp/zjdgPjsNrda6tK9/CH3a/cVIeg6ge3hSS02ALqvqgIo4rTsuSg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-class-properties": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-8.0.1.tgz",
      "integrity": "sha512-tORnYiVhIHnKj90TgbSZXrO24f9oEpA6MgFxpIDSKKlHv7AzBIRhkMlYevanueLNYaQXqZWarfCgXM4bWTfNiw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-class-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-class-static-block": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-8.0.1.tgz",
      "integrity": "sha512-NEVK+L0Le8h8tJ+IK0CGS5y9Yi1ZHxLj6M5PeanhMFuq9aSo0XI+Wtmbuyop6fTNukOm7ORNntf/kwid891vqQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-class-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-classes": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-8.0.1.tgz",
      "integrity": "sha512-phwyCES8kIMAdVOFw25ztmgAvkl2G+TvUv7azUYyrlR1Qoo3eLJC/MU3MGUKFZ4BWtsJ1NTJM1lKRLzKbswg7w==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-annotate-as-pure": "^8.0.0",
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helper-globals": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-replace-supers": "^8.0.1",
        "@babel/traverse": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-computed-properties": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-8.0.1.tgz",
      "integrity": "sha512-i4l3OGLO8DUDcwdnyraOvILbhqdUf4QgfzhVxSOSzRy49XKXrY7pwaSg9gDSKmhZfNPrEMciBSJSciQh/CjB1A==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-destructuring": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-8.0.1.tgz",
      "integrity": "sha512-RtR8uLDl0QcCmqMNIkM8gmDeYZ3rS0ZH+sa+I6sfc09yFoqfp9AEPgBstq9KyfVb0lFCVSRFfJXCI70FIl5ccw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-dotall-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-8.0.1.tgz",
      "integrity": "sha512-czOUoSaZljJ92yu+bYlXqb/UBN8K9daNCob/B6/7nthSvfGP6YhCnfqD64XWfyb2dN4ypxALNplApoJrsMd4fw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-duplicate-keys": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-8.0.1.tgz",
      "integrity": "sha512-kNnVLkxFUEcTtCyB5PFVQ5Xoy88Bk1lU/ZgDu97CW8eNhRH2Wsiy8Sq5l5dFnwtIUYjzsXHU77jUy1W5AtGSIw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-8.0.1.tgz",
      "integrity": "sha512-Tv43P47o6fuHgBL7HLHQg3WKXohW9CEUGjLtnCDW27yJLK0zKUdTTqREbZbycNHA83hewMjde5tF6ekrHu9bAA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-dynamic-import": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-8.0.1.tgz",
      "integrity": "sha512-AS9GlgKc43tJNRu7yOvLaTko4qmdOb+8M69uNS8i421WLO20eVez7LdG5khKdi8E0LIQpYzzzdGIrdXWnO753g==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-explicit-resource-management": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-8.0.1.tgz",
      "integrity": "sha512-VzDIYwBlLCpV6mJfloRdJm8HmYnMqs7O+bGha8yfg2kP7jAdxeCw6yZBVBeaKKQUThtSU52iy+3lB7DhYsbOBA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/plugin-transform-destructuring": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-exponentiation-operator": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-8.0.1.tgz",
      "integrity": "sha512-DsZvUUklUmDQ7d2vp+VjqgUWD51mGxhZZ1FPdPP9Hcj0vsgGUKX+zEBGp/vzB1O5PZUxWT/Euq5fu39M9dm9wg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-export-namespace-from": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-8.0.1.tgz",
      "integrity": "sha512-bFzznm46bvWGaTYKle3iolbBJ+oPBfUjwCPesxlFE3SQ7DaY9EHf/8Y5ZzrodKJi8JDdcAyaVWaDUSVyhULh0g==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-for-of": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-8.0.1.tgz",
      "integrity": "sha512-rpeXtgELjpIBQH/+YmyFlD9timPEVCyqY+TNednzoeoTYvXSBEeUvYnYE+BK8rB8m6hHiNK7aL9QWKhGifEJCw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-function-name": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-8.0.1.tgz",
      "integrity": "sha512-H1L/JfPf3CqmubuaiZaquXKQ8MRs4YWSsgRllkTviM8TafcCNnlvc4/fJZ3rXP8HmFM+/Bg+TlsPehUI9BtDFA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-json-strings": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-8.0.1.tgz",
      "integrity": "sha512-Mowp8X0J6p7ZehLU82B5e65te2uuSeDHyxrEROwEAS2VKXNXssfw5ZMqhY7k9iXTsOv1Xs/49G3lDCj9Vvw8qQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-literals": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-8.0.1.tgz",
      "integrity": "sha512-ai7kfPRcfyUV1EszXoF1PvL3IuJoCuH08WSEPoRcJTWfZZ55VL/rcfvbVY16QLA3jjbzzSneQSoCtD3L6OyUjw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-logical-assignment-operators": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-8.0.1.tgz",
      "integrity": "sha512-Emvtr5zkEGyCNAmt+qKD5EUh8G0RbxV9EZWrDdX0LuVy5tBq1B3fOIslvVF9aCJmpnwS/AvAT53b9LxAZyXlng==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-member-expression-literals": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-8.0.1.tgz",
      "integrity": "sha512-3Axi9abnyGsm/hh6DsKPZ1Cr9fTtKqS7w0Ig5g12mU269YclpH8pV3xMln2vPLexXgUp6S6L+I06d9/YOLfRKA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-modules-amd": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-8.0.1.tgz",
      "integrity": "sha512-FDdhET8y1YFDNRuoynqSf23WTzbBBpbIB2oRrlFX7YYm9uWtFvJDSD1r/epBSjfPkOjeaaLgRW9xNnt3JGx46A==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-transforms": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-modules-commonjs": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-8.0.1.tgz",
      "integrity": "sha512-PMuzulWrrzFNmY3lXSk/tV9NRb7y0eZZLJY4UEo2TKszroxvUZHAPPi+T9FDyrQhod+TQA+t+8/QYaaMpiEuhA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-transforms": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-modules-systemjs": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-8.0.1.tgz",
      "integrity": "sha512-0NEHanXmnFEnfT2dLKTXnu7m8GXFsnxRgteBC2aH21hYMBwAgxu5dcTdi/Eg+ToI1HbZe0CHwz4XRLgRNQhYoQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-transforms": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-validator-identifier": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-modules-umd": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-8.0.1.tgz",
      "integrity": "sha512-XKTa2J2MdkmbVEeChq9f7Or0VYcsF0NyVBgytRyeN9F+J+ETAB2SHhfkG4toz/ssuU0i+h/QgJ6ddo5YakSQcA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-module-transforms": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-8.0.1.tgz",
      "integrity": "sha512-zCHu+Jr2gTdJE48lN9SV/kXueCW2M79mKtKJc/ttfzzr/jvgdQdCd17RADMqFRQc/25MLxdtjTmlD0HSAMOlIQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-new-target": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-8.0.1.tgz",
      "integrity": "sha512-QSQxVg1x4PuOuhWUs4Y9u+x9Y+ER8z6G3tC+bDLBzvoOrNLJrEBQLRnwrTP8e5klihAw6Z+e9X5RjdAKcAGapA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-8.0.1.tgz",
      "integrity": "sha512-AgCJAmQLF7+PtsK79wJqr4xJ2StHCXlz7JL5CVFP4HejJx25Tk6yl1ZrXvi0cKh3VGDVnfVxefxnrpsBirgpyQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-numeric-separator": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-8.0.1.tgz",
      "integrity": "sha512-it2DmUyLIA1GQUXlFDEnI+/G89mTgxndnAiZYpW8xYR6LboblfirMqiWJeTna5uypQJg7viTT4D1iEURRtFcfw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-object-rest-spread": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-8.0.1.tgz",
      "integrity": "sha512-VmxkDu6bBdbxRzqn6E93hYucug4OVa6svSO19W//vVzNUGAmQzk3QRyHyyEtfcjSLR3NWfRsWwVM9zExLmd+2w==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/plugin-transform-destructuring": "^8.0.1",
        "@babel/plugin-transform-parameters": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-object-super": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-8.0.1.tgz",
      "integrity": "sha512-fDkPXRTRKGm25bAq01q82UM4ypPqdVXCwphUUm4t1dL01fGIG0v8KRvT+4BjhMAtRxtPuI34t5Vs7yjRgs3ZgQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-replace-supers": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-optional-catch-binding": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-8.0.1.tgz",
      "integrity": "sha512-b2OQ74uGliyATcasTjxGy2O/86UI/n+EN4juB4EMfEwTi9j9uq70PuP0L8fW77vfRY66gO/YoTo/WbIdQ/Si1g==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-optional-chaining": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-8.0.1.tgz",
      "integrity": "sha512-WtRS1c94lZGpGHxYLXMEWeoMVcuv8nkiyr8BTs6OYZv7N3Y9xVE8nbdFIl4lDJH6aH8/pLhqAQOL69d/WI9WdA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-parameters": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-8.0.1.tgz",
      "integrity": "sha512-IIwRqroW0CYQwR6+3pnmu27z+H98poScWdnov8z6osumMeEsFxAFBBsDS2CFk2jFpPlGqVr89jK/HXO6i5DzxQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-private-methods": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-8.0.1.tgz",
      "integrity": "sha512-TrFCGcXaVDh6S5IRhmLSRTY9H80VTCMQWnZtzBRg4RWg3KCLmdmsmj4M15kZAPZfoPkWL/SJb4em3Py/vOiX8g==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-class-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-private-property-in-object": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-8.0.1.tgz",
      "integrity": "sha512-e+yfOqSYBZaf3PARpiQkjZrpWYgmcFLhK+1tevh2CpHR1O9/36IdyPnAZusESX5nzVV/XZTDAtQBRLa8HPT5Dw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-annotate-as-pure": "^8.0.0",
        "@babel/helper-create-class-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-property-literals": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-8.0.1.tgz",
      "integrity": "sha512-Z/qx4cxUtYR1nt7XWRutObPxDks98fEYsjWbVeKEqZH6y3AGknmgzCqmHf2FHWZCl1DfoPeuJY+3hZ+35D+2tg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-regenerator": {
      "version": "8.0.2",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-8.0.2.tgz",
      "integrity": "sha512-aFfsjCRYducRV4dPnpsBbdRkLjboca9FVDg6HZCgy0Ahvk2ZQ/2exmCRC5qS9P6rsWwrmIheNaIM6A1j2F8KMA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-regexp-modifiers": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-8.0.1.tgz",
      "integrity": "sha512-02ITRDBesPdTYU0oShAzERwEPzozOUQSXlz3qrt8JGuhalBJQv9z5NjgHJPC9sS3Fsam8gDtfAEpBnqZwUIdjQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-reserved-words": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-8.0.1.tgz",
      "integrity": "sha512-+aykZi7ZP3U84veqfJXm3HhPZGddWFi64g7jr0ni6tb1zel+1ey+SL+IRKPoZXFyFqvYEsoqrmx4PyEJRlHl/Q==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-shorthand-properties": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-8.0.1.tgz",
      "integrity": "sha512-JddANd9yPVH8dYgVoNkqAH5BftnsDxFpG51Zas7sc6F3poz5QWcejHNGO8a/57IX5ByjGSzEmYk9Z7ZMa5MWaw==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-spread": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-8.0.1.tgz",
      "integrity": "sha512-O9Bw9FyxlSw1SlMg3S82/GKNZ0x77RPbHezotEy1JTlIM/vk6WO8jW1iF+iTiKLOXNvi+b+LZ9t77Gi+Q0FhGg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-sticky-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-8.0.1.tgz",
      "integrity": "sha512-IsVP6WrZZQdaG2zLmeKwWiI+ua2NB5L1+f77C2/8z2NCDz7uxlIA/lnwocYOJk9PXcOC2sZgRls3LN4XpNduzQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-template-literals": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-8.0.1.tgz",
      "integrity": "sha512-JXvtj5+BJA9Qv3prDzW2z2DkGTJNmG0BObTdUD03STiu1Jr4fNQkQy3hYZgPL46a2RjcuhwBMYf49BOuJ98gnA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-typeof-symbol": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-8.0.1.tgz",
      "integrity": "sha512-+wJoxgxP2gtey0UMUOMhzMMji2XHO/Uu6MXUh/r5Yhc2jngKzK/wFxY2WNe4UCaRcMvCb4gcnB8wIgFXJsocXg==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-unicode-escapes": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-8.0.1.tgz",
      "integrity": "sha512-TAXJepIJ6vZphytTwcf+LuXi2M2ZWI43VCqNw+1ZZLPP/38Z1A8j4Mahvg8kqDgMOSM/cakk+hedTJCiw3jQuQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-unicode-property-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-8.0.1.tgz",
      "integrity": "sha512-zjBN9tSMSuomNDfurL69Gf7+v4D2t5uI1mSZaYJDo88SKpbduhCXqtxH7Tx66iCF6caWYwnBzSM0tnCozmQq5Q==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-unicode-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-8.0.1.tgz",
      "integrity": "sha512-v0oO83cvT5lwbcIVRShpx4vaHD8AvM9IBowsQuTeP+kGmhh3recJQs33Bl6dlo3/2g9amlznLbFGn4VJbPCJqA==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/plugin-transform-unicode-sets-regex": {
      "version": "8.0.1",
      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-8.0.1.tgz",
      "integrity": "sha512-MlQeyS0K7gh0XNeLBMS/3Z07HjDOKhA7xm2L18GyxOXyiFHI9E+ZuQ4mFYmcLjluXsE/Wf6dABIqZvKpKw0Z3w==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-create-regexp-features-plugin": "^8.0.1",
        "@babel/helper-plugin-utils": "^8.0.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/preset-env": {
      "version": "8.0.2",
      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-8.0.2.tgz",
      "integrity": "sha512-CUGLn9hNBCF/eXnwdFAWERbniCcXCRvnKwLV9fegeUEIqv7YlU2MepsWMMM54GcILx5XYMnRh+JAL+K5G+mK6g==",
      "license": "MIT",
      "dependencies": {
        "@babel/compat-data": "^8.0.0",
        "@babel/helper-compilation-targets": "^8.0.0",
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/helper-validator-option": "^8.0.0",
        "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^8.0.1",
        "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^8.0.1",
        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^8.0.1",
        "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^8.0.1",
        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^8.0.1",
        "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^8.0.1",
        "@babel/plugin-transform-arrow-functions": "^8.0.1",
        "@babel/plugin-transform-async-generator-functions": "^8.0.1",
        "@babel/plugin-transform-async-to-generator": "^8.0.1",
        "@babel/plugin-transform-block-scoped-functions": "^8.0.1",
        "@babel/plugin-transform-block-scoping": "^8.0.1",
        "@babel/plugin-transform-class-properties": "^8.0.1",
        "@babel/plugin-transform-class-static-block": "^8.0.1",
        "@babel/plugin-transform-classes": "^8.0.1",
        "@babel/plugin-transform-computed-properties": "^8.0.1",
        "@babel/plugin-transform-destructuring": "^8.0.1",
        "@babel/plugin-transform-dotall-regex": "^8.0.1",
        "@babel/plugin-transform-duplicate-keys": "^8.0.1",
        "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^8.0.1",
        "@babel/plugin-transform-dynamic-import": "^8.0.1",
        "@babel/plugin-transform-explicit-resource-management": "^8.0.1",
        "@babel/plugin-transform-exponentiation-operator": "^8.0.1",
        "@babel/plugin-transform-export-namespace-from": "^8.0.1",
        "@babel/plugin-transform-for-of": "^8.0.1",
        "@babel/plugin-transform-function-name": "^8.0.1",
        "@babel/plugin-transform-json-strings": "^8.0.1",
        "@babel/plugin-transform-literals": "^8.0.1",
        "@babel/plugin-transform-logical-assignment-operators": "^8.0.1",
        "@babel/plugin-transform-member-expression-literals": "^8.0.1",
        "@babel/plugin-transform-modules-amd": "^8.0.1",
        "@babel/plugin-transform-modules-commonjs": "^8.0.1",
        "@babel/plugin-transform-modules-systemjs": "^8.0.1",
        "@babel/plugin-transform-modules-umd": "^8.0.1",
        "@babel/plugin-transform-named-capturing-groups-regex": "^8.0.1",
        "@babel/plugin-transform-new-target": "^8.0.1",
        "@babel/plugin-transform-nullish-coalescing-operator": "^8.0.1",
        "@babel/plugin-transform-numeric-separator": "^8.0.1",
        "@babel/plugin-transform-object-rest-spread": "^8.0.1",
        "@babel/plugin-transform-object-super": "^8.0.1",
        "@babel/plugin-transform-optional-catch-binding": "^8.0.1",
        "@babel/plugin-transform-optional-chaining": "^8.0.1",
        "@babel/plugin-transform-parameters": "^8.0.1",
        "@babel/plugin-transform-private-methods": "^8.0.1",
        "@babel/plugin-transform-private-property-in-object": "^8.0.1",
        "@babel/plugin-transform-property-literals": "^8.0.1",
        "@babel/plugin-transform-regenerator": "^8.0.2",
        "@babel/plugin-transform-regexp-modifiers": "^8.0.1",
        "@babel/plugin-transform-reserved-words": "^8.0.1",
        "@babel/plugin-transform-shorthand-properties": "^8.0.1",
        "@babel/plugin-transform-spread": "^8.0.1",
        "@babel/plugin-transform-sticky-regex": "^8.0.1",
        "@babel/plugin-transform-template-literals": "^8.0.1",
        "@babel/plugin-transform-typeof-symbol": "^8.0.1",
        "@babel/plugin-transform-unicode-escapes": "^8.0.1",
        "@babel/plugin-transform-unicode-property-regex": "^8.0.1",
        "@babel/plugin-transform-unicode-regex": "^8.0.1",
        "@babel/plugin-transform-unicode-sets-regex": "^8.0.1",
        "@babel/preset-modules": "^0.2.0",
        "babel-plugin-polyfill-corejs3": "^1.0.0",
        "core-js-compat": "^3.48.0",
        "semver": "^7.7.3"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/preset-modules": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.2.0.tgz",
      "integrity": "sha512-yz0RBN2fx4fjCeFcTWsWgL7PxSRltvTa0Qg14HkWCU3qS8MO7ZSJlBVbGceynd5C9NsJwwUHNQD3dc6tYO+jqQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-plugin-utils": "^8.0.1",
        "@babel/plugin-transform-dotall-regex": "^8.0.1",
        "@babel/plugin-transform-unicode-property-regex": "^8.0.1",
        "@babel/types": "^8.0.0",
        "esutils": "^2.0.2"
      },
      "peerDependencies": {
        "@babel/core": "^8.0.0"
      }
    },
    "node_modules/@babel/template": {
      "version": "8.0.0",
      "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz",
      "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/code-frame": "^8.0.0",
        "@babel/parser": "^8.0.0",
        "@babel/types": "^8.0.0"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/traverse": {
      "version": "8.0.4",
      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.4.tgz",
      "integrity": "sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==",
      "license": "MIT",
      "dependencies": {
        "@babel/code-frame": "^8.0.0",
        "@babel/generator": "^8.0.0",
        "@babel/helper-globals": "^8.0.0",
        "@babel/parser": "^8.0.4",
        "@babel/template": "^8.0.0",
        "@babel/types": "^8.0.4",
        "obug": "^2.1.1"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@babel/types": {
      "version": "8.0.4",
      "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz",
      "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-string-parser": "^8.0.0",
        "@babel/helper-validator-identifier": "^8.0.4"
      },
      "engines": {
        "node": "^22.18.0 || >=24.11.0"
      }
    },
    "node_modules/@jridgewell/gen-mapping": {
      "version": "0.3.13",
      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
      "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
      "license": "MIT",
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.5.0",
        "@jridgewell/trace-mapping": "^0.3.24"
      }
    },
    "node_modules/@jridgewell/resolve-uri": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
      "license": "MIT",
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/@jridgewell/sourcemap-codec": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
      "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
      "license": "MIT"
    },
    "node_modules/@jridgewell/trace-mapping": {
      "version": "0.3.31",
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
      "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
      "license": "MIT",
      "dependencies": {
        "@jridgewell/resolve-uri": "^3.1.0",
        "@jridgewell/sourcemap-codec": "^1.4.14"
      }
    },
    "node_modules/@types/gensync": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.5.tgz",
      "integrity": "sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==",
      "license": "MIT"
    },
    "node_modules/@types/jsesc": {
      "version": "2.5.1",
      "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz",
      "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==",
      "license": "MIT"
    },
    "node_modules/babel-plugin-polyfill-corejs3": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-1.0.0.tgz",
      "integrity": "sha512-yIkslVjbmml2Xjb6XhFW7lISXHsqk6cesxTdDsXoMom4Lnb99DbD3OQbSOoM5Z+ASh8YXYaLAsRQrU2Jeh3Qig==",
      "license": "MIT",
      "dependencies": {
        "@babel/helper-define-polyfill-provider": "^1.0.0",
        "core-js-compat": "^3.48.0"
      },
      "engines": {
        "node": "^20.19.0 || >=22.12.0"
      },
      "peerDependencies": {
        "@babel/core": "^7.4.0 || ^8.0.0"
      }
    },
    "node_modules/baseline-browser-mapping": {
      "version": "2.11.20",
      "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz",
      "integrity": "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==",
      "license": "Apache-2.0",
      "bin": {
        "baseline-browser-mapping": "dist/cli.cjs"
      },
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/browserslist": {
      "version": "4.28.8",
      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz",
      "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==",
      "funding": [
        {
          "type": "opencollective",
          "url": "https://opencollective.com/browserslist"
        },
        {
          "type": "tidelift",
          "url": "https://tidelift.com/funding/github/npm/browserslist"
        },
        {
          "type": "github",
          "url": "https://github.com/sponsors/ai"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "baseline-browser-mapping": "^2.11.12",
        "caniuse-lite": "^1.0.30001809",
        "electron-to-chromium": "^1.5.402",
        "node-releases": "^2.0.53",
        "update-browserslist-db": "^1.3.0"
      },
      "bin": {
        "browserslist": "cli.js"
      },
      "engines": {
        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
      }
    },
    "node_modules/caniuse-lite": {
      "version": "1.0.30001810",
      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz",
      "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==",
      "funding": [
        {
          "type": "opencollective",
          "url": "https://opencollective.com/browserslist"
        },
        {
          "type": "tidelift",
          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
        },
        {
          "type": "github",
          "url": "https://github.com/sponsors/ai"
        }
      ],
      "license": "CC-BY-4.0"
    },
    "node_modules/convert-source-map": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
      "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
      "license": "MIT"
    },
    "node_modules/core-js-compat": {
      "version": "3.50.0",
      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz",
      "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==",
      "license": "MIT",
      "dependencies": {
        "browserslist": "^4.28.7"
      },
      "engines": {
        "node": ">=6.4.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/core-js"
      }
    },
    "node_modules/electron-to-chromium": {
      "version": "1.5.420",
      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.420.tgz",
      "integrity": "sha512-2yD6XreGusOfNV+dUcvipJEXc3n/n7fgr7996aszTG+YY5E4mqM4tOq/3uhP129cazL9YHbVWSpc79ePotWtPA==",
      "license": "ISC"
    },
    "node_modules/empathic": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz",
      "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==",
      "license": "MIT",
      "engines": {
        "node": ">=14"
      }
    },
    "node_modules/escalade": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
      "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
      "license": "MIT",
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
      "license": "BSD-2-Clause",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/gensync": {
      "version": "1.0.0-beta.2",
      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
      "license": "MIT",
      "engines": {
        "node": ">=6.9.0"
      }
    },
    "node_modules/import-meta-resolve": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
      "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
      "license": "MIT",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
      }
    },
    "node_modules/js-tokens": {
      "version": "10.0.0",
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
      "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
      "license": "MIT"
    },
    "node_modules/jsesc": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tg
package.json
{
  "name": "npm-babel-preset-env-include-exclude",
  "version": "1.0.0",
  "license": "MIT-0",
  "type": "module",
  "scripts": {
    "test": "node test/contract.mjs"
  },
  "dependencies": {
    "@babel/core": "8.0.1",
    "@babel/preset-env": "8.0.2"
  }
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify pkg:npm/%40babel/preset-env@8.0.2",
  "kind": "HOW",
  "packages": [
    "pkg:npm/%40babel/preset-env@8.0.2"
  ],
  "constraints": {
    "executionContext": "node"
  },
  "runtimeConditions": {
    "ecosystem": "npm",
    "language": "javascript",
    "moduleSystem": "cjs",
    "packageManager": "npm@10.9.8",
    "runtime": "node@22.23.2"
  }
}
test/contract.mjs
import assert from 'node:assert/strict';
import * as babel from '@babel/core';
import presetEnv from '@babel/preset-env';

const api = {
  version: '8.0.2',
  assertVersion: () => undefined,
  caller: () => false,
  targets: () => ({}),
};

const sampleCode = `
const add = (a, b) => a + b;
const greeting = \`Hello \${name}\`;
const prop = obj?.nested?.value;
`;

// 1. include forces specific syntax transformations even when modern compilation targets natively support them.
{
  const modernTransformed = babel.transformSync(sampleCode, {
    presets: [[presetEnv, { targets: { chrome: '120' }, modules: false }]],
    configFile: false,
    babelrc: false,
  });
  assert.ok(modernTransformed && modernTransformed.code);
  assert.match(modernTransformed.code, /\(a, b\) => a \+ b/, 'Arrow function should be preserved for modern targets');
  assert.match(modernTransformed.code, /`Hello \${name}`/, 'Template literal should be preserved for modern targets');

  const includeTransformed = babel.transformSync(sampleCode, {
    presets: [[presetEnv, {
      targets: { chrome: '120' },
      modules: false,
      include: ['transform-arrow-functions'],
    }]],
    configFile: false,
    babelrc: false,
  });
  assert.ok(includeTransformed && includeTransformed.code);
  assert.doesNotMatch(includeTransformed.code, /\(a, b\) =>/, 'Arrow function must be transpiled when included');
  assert.match(includeTransformed.code, /function\s*\(/, 'Arrow function must compile to function expression');
  assert.match(includeTransformed.code, /`Hello \${name}`/, 'Non-included template literal must remain untranspiled');
}

// 2. include accepts shorthand names, full package names, and RegExp patterns.
{
  const shorthandRes = babel.transformSync(sampleCode, {
    presets: [[presetEnv, { targets: { chrome: '120' }, modules: false, include: ['transform-arrow-functions'] }]],
    configFile: false,
    babelrc: false,
  });
  assert.doesNotMatch(shorthandRes.code, /\(a, b\) =>/);

  const fullNameRes = babel.transformSync(sampleCode, {
    presets: [[presetEnv, { targets: { chrome: '120' }, modules: false, include: ['@babel/plugin-transform-arrow-functions'] }]],
    configFile: false,
    babelrc: false,
  });
  assert.doesNotMatch(fullNameRes.code, /\(a, b\) =>/);

  const regexRes = babel.transformSync(sampleCode, {
    presets: [[presetEnv, { targets: { chrome: '120' }, modules: false, include: [/^transform-arrow/] }]],
    configFile: false,
    babelrc: false,
  });
  assert.doesNotMatch(regexRes.code, /\(a, b\) =>/);
}

// 3. exclude prevents specific syntax transformations even when targeting older browsers.
{
  const baselineOlder = babel.transformSync(sampleCode, {
    presets: [[presetEnv, { targets: { ie: '11' }, modules: false }]],
    configFile: false,
    babelrc: false,
  });
  assert.ok(baselineOlder && baselineOlder.code);
  assert.doesNotMatch(baselineOlder.code, /\(a, b\) =>/, 'Arrow functions must transpile by default for ie 11');
  assert.doesNotMatch(baselineOlder.code, /`Hello \${name}`/, 'Template literals must transpile by default for ie 11');

  const excludeTransformed = babel.transformSync(sampleCode, {
    presets: [[presetEnv, {
      targets: { ie: '11' },
      modules: false,
      exclude: ['transform-arrow-functions'],
    }]],
    configFile: false,
    babelrc: false,
  });
  assert.ok(excludeTransformed && excludeTransformed.code);
  assert.match(excludeTransformed.code, /\(a, b\) => a \+ b/, 'Arrow function must remain untranspiled when excluded');
  assert.doesNotMatch(excludeTransformed.code, /`Hello \${name}`/, 'Non-excluded template literals must still be transpiled');
}

// 4. exclude supports RegExp patterns to exclude matching plugins.
{
  const excludeRegexRes = babel.transformSync(sampleCode, {
    presets: [[presetEnv, {
      targets: { ie: '11' },
      modules: false,
      exclude: [/^transform-arrow/],
    }]],
    configFile: false,
    babelrc: false,
  });
  assert.ok(excludeRegexRes && excludeRegexRes.code);
  assert.match(excludeRegexRes.code, /\(a, b\) => a \+ b/, 'Arrow function must remain untranspiled when regex-excluded');
  assert.doesNotMatch(excludeRegexRes.code, /`Hello \${name}`/, 'Other features must still transpile');
}

// 5. Specifying the same plugin in both include and exclude throws a validation Error.
{
  assert.throws(
    () => babel.transformSync(sampleCode, {
      presets: [[presetEnv, {
        include: ['transform-arrow-functions'],
        exclude: ['transform-arrow-functions'],
      }]],
      configFile: false,
      babelrc: false,
    }),
    {
      name: 'Error',
      message: /The plugins\/built-ins 'transform-arrow-functions' were found in both the "include" and\s+"exclude" options\./,
    },
    'Should throw when plugin is present in both include and exclude'
  );
}

// 6. Passing an unrecognized plugin name to include throws a validation Error.
{
  assert.throws(
    () => babel.transformSync(sampleCode, {
      presets: [[presetEnv, {
        include: ['nonexistent-babel-transform-plugin'],
      }]],
      configFile: false,
      babelrc: false,
    }),
    {
      name: 'Error',
      message: /The plugins\/built-ins 'nonexistent-babel-transform-plugin' passed to the 'include' option are not\s+valid\./,
    },
    'Should throw when invalid plugin name is passed to include'
  );
}

// 7. Direct preset initialization with include or exclude adjusts the length of the returned plugins array.
{
  const modernBaseline = presetEnv(api, { targets: { chrome: '120' } });
  const modernIncluded = presetEnv(api, { targets: { chrome: '120' }, include: ['transform-arrow-functions'] });
  assert.equal(modernIncluded.plugins.length, modernBaseline.plugins.length + 1, 'include must add exactly 1 plugin to modern baseline');

  const olderBaseline = presetEnv(api, { targets: { ie: '11' } });
  const olderExcluded = presetEnv(api, { targets: { ie: '11' }, exclude: ['transform-arrow-functions'] });
  assert.equal(olderExcluded.plugins.length, olderBaseline.plugins.length - 1, 'exclude must remove exactly 1 plugin from older baseline');
}

console.log('Contract assertions passed: @babel/preset-env include and exclude options verified.');

Origin Seeder

anonymous