# babel/babel — codebase unpack

> Canonical page: https://codevetter.com/unpack/babel

This is a deterministic Repo Unpack scan of babel/babel — a structural map, not a review, security audit, or maintainer-endorsed description.

- Scanned commit: 7c1dcfac003791a7fee733ed13851a5cac1ccf1c (2026-09-30)
- Last upstream commit: Make `@babel/preset-typescript` export type `Options` (#18251)
- Generated by codevetter 1.15.0 on 2026-10-02
- 3997 files scanned · 6.3 MB

Source inspection; upstream code and tests were not executed.

## Languages

- JavaScript: 16029 files
- JSON: 9282 files
- TypeScript: 1664 files
- Markdown: 214 files
- Shell: 22 files
- YAML: 20 files
- HTML: 5 files
- Vue: 1 files

## Repository structure

- packages/ — 3589 files
- eslint/ — 98 files
- scripts/ — 65 files
- benchmark/ — 61 files
- codemods/ — 54 files
- test/ — 48 files
- .github/ — 25 files
- .yarn/ — 5 files

Probable source entrypoint: `packages/` (inferred from the tree, not upstream docs)

## Package

- package.json: babel v8.0.6 — 66 declared dependencies

## Structural health signals

Average score 7.7/10 across 96 files; 15 hotspots. These are deterministic review leads, not proof of a bug.

## Recent history

- 7c1dcfac0037 (2026-09-30) Make `@babel/preset-typescript` export type `Options` (#18251)
- c5b07a5b684d (2026-09-30) Evaluate TypeScript expression wrappers in `NodePath#evaluate` (#18151)
- b6bb5646d6d7 (2026-09-30) Fix eslint-parser AST definition of AccessorProperty (#18257)
- 41a16f69299e (2026-09-29) chore: use `npm trust` to set up trusted publishing (#18260)
- d23b2fd8d561 (2026-09-28) fix(core): createConfigItem allows cb as 2nd arg (#18254)

## Overview

Babel is a JavaScript compiler toolkit for application developers, build-tool authors, and language-tooling maintainers. Its core resolves layered configuration, parses source into an AST, runs extensible transformation passes, and generates code with source maps. This Babel 8 checkout also supplies command-line compilation, browser compilation, Node require hooks, target-aware presets, and ESLint integration.

## System map

The repository is a Yarn workspace monorepo organized around independently published compiler packages. Core coordinates parser, traversal, types, helpers, and generator packages, while CLI, register, standalone, and ESLint packages adapt it to different runtimes. Configuration and compilation state live primarily in memory; register additionally persists compiled results. Distribution consists of npm packages and browser artifacts produced by repository build tooling.
- The private ESM root pins Yarn 4.17.0 and groups packages, codemods, ESLint integrations, runtime integration projects, and benchmarks into workspaces. — [package.json#L1-21](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/package.json#L1-L21) [package.json#L90-97](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/package.json#L90-L97) [doc/design/monorepo.md#L3-19](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/doc/design/monorepo.md#L3-L19)
- @babel/core exports string, file, and AST transformation APIs, parsing APIs, configuration loaders, and AST tooling; its package entrypoint is lib/index.js. — [packages/babel-core/src/index.ts#L23-48](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/index.ts#L23-L48) [packages/babel-core/src/index.ts#L78-95](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/index.ts#L78-L95) [packages/babel-core/package.json#L73-79](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/package.json#L73-L79)
- Core's compiler boundary depends on separate parser, generator, traverse, types, template, helpers, and compilation-target packages. — [packages/babel-core/package.json#L40-56](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/package.json#L40-L56) [packages/babel-core/src/transformation/index.ts#L1-18](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/index.ts#L1-L18)
- The babel executable imports the compiled CLI dispatcher; parseArgv selects directory mode when outDir is set and file/stdin mode otherwise. — [packages/babel-cli/package.json#L41-45](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/package.json#L41-L45) [packages/babel-cli/bin/babel.js#L1-7](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/bin/babel.js#L1-L7) [packages/babel-cli/src/babel/index.ts#L3-17](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/index.ts#L3-L17)
- Core package imports select browser-specific configuration, target resolution, file transformation, and source-map readers instead of their Node implementations. — [packages/babel-core/package.json#L80-115](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/package.json#L80-L115)
- @babel/register bridges synchronous require hooks to asynchronous Babel processing with a worker thread, MessageChannel, SharedArrayBuffer, and Atomics.wait. — [packages/babel-register/src/hook.ts#L30-54](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/hook.ts#L30-L54) [packages/babel-register/src/worker-client.ts#L43-83](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker-client.ts#L43-L83)
- Core configuration uses separate synchronous/asynchronous memory caches; register owns an additional memory index and compressed cacache storage on disk. — [packages/babel-core/src/config/caching.ts#L99-115](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/caching.ts#L99-L115) [packages/babel-register/src/worker/cache.ts#L10-19](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L10-L19) [packages/babel-register/src/worker/cache.ts#L114-125](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L114-L125)
- Root scripts delegate build, lint, and tests to Make targets; release automation builds with make prepublish and publishes npm packages with provenance, while PR automation publishes testing packages. — [package.json#L6-19](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/package.json#L6-L19) [.github/workflows/release.yml#L127-135](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/release.yml#L127-L135) [.github/workflows/pkg-pr-new.yml#L25-28](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/pkg-pr-new.yml#L25-L28)

## Feature catalog

The inspected user surfaces cover programmatic compilation, command-line output, runtime loading, browser execution, and linting integration. Compiler configuration controls plugins, presets, file selection, environments, and emitted formatting. Target-aware preset selection and source maps support application build pipelines. This catalog describes inspected feature families and does not claim exhaustive coverage of every transform package.
- Core exposes callback, synchronous, and Promise-based transformations; in Babel 8, transform without a callback throws and directs callers to transformSync. — [packages/babel-core/src/transform.ts#L31-64](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transform.ts#L31-L64) [packages/babel-core/src/index.ts#L78-95](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/index.ts#L78-L95)
- CLI accepts plugins, presets, config-file, env-name, root-mode, ignore/only filters, source-map modes, and compact/minified/comment formatting controls. — [packages/babel-cli/src/babel/options.ts#L16-52](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L16-L52) [packages/babel-cli/src/babel/options.ts#L61-105](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L61-L105)
- CLI supports stdin, concatenated out-file output, directory output, extension replacement or preservation, dotfile inclusion, asset copying, and watch mode. — [packages/babel-cli/src/babel/options.ts#L108-162](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L108-L162) [packages/babel-cli/src/babel/file.ts#L243-247](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/file.ts#L243-L247) [packages/babel-cli/src/babel/dir.ts#L95-107](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L95-L107)
- BABEL_SHOW_CONFIG_FOR selects a regular file and prints its applicable root, relative, and programmatic configurations in ascending priority. — [packages/babel-core/src/config/files/configuration.ts#L351-365](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/files/configuration.ts#L351-L365) [packages/babel-core/src/config/config-chain.ts#L265-273](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/config-chain.ts#L265-L273)
- preset-env filters transforms using compatibility data, targets, include/exclude options, and caller module capabilities; useBuiltIns adds a core-js 3 polyfill plugin. — [packages/babel-preset-env/src/index.ts#L252-283](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-preset-env/src/index.ts#L252-L283) [packages/babel-preset-env/src/index.ts#L290-313](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-preset-env/src/index.ts#L290-L313)
- Standalone bundles env, React, TypeScript, Flow, and historical presets; it exposes transform APIs and automatically processes supported script tags on DOMContentLoaded. — [packages/babel-standalone/src/index.ts#L59-86](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L59-L86) [packages/babel-standalone/src/index.ts#L177-198](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L177-L198) [packages/babel-standalone/src/index.ts#L259-283](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L259-L283)
- @babel/register installs reversible compilation hooks and source-map support; babel-node installs register and offers transformed eval/print execution, with REPL imports and exports explicitly rejected. — [packages/babel-register/src/hook.ts#L43-63](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/hook.ts#L43-L63) [packages/babel-node/src/_babel-node.ts#L48-67](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-node/src/_babel-node.ts#L48-L67) [packages/babel-node/src/_babel-node.ts#L97-141](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-node/src/_babel-node.ts#L97-L141)
- @babel/eslint-parser provides parse and parseForESLint; the latter returns the parsed AST, analyzed scopeManager, and Babel-derived visitorKeys. — [eslint/babel-eslint-parser/src/index.ts#L13-35](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/eslint/babel-eslint-parser/src/index.ts#L13-L35)

## Data flow

Compilation begins with source text or a filename plus validated options. Configuration establishes absolute paths, targets, plugin descriptors, and ordered passes before parsing or transforming. Per-file state owns the AST, normalized options, metadata, and incoming map, then returns code and dependency information. CLI adapters write outputs, while register optionally caches compiled results across processes.
- loadPrivatePartialConfig validates input options, resolves cwd/root/filename, constructs an environment/caller context, builds the root chain, and resolves targets. — [packages/babel-core/src/config/partial.ts#L71-125](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/partial.ts#L71-L125)
- buildRootChain merges root config, relative file config, and programmatic config in that precedence order; ignored files receive empty plugin/preset lists and fileHandling='ignored'. — [packages/babel-core/src/config/config-chain.ts#L275-288](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/config-chain.ts#L275-L288)
- loadFullConfig expands preset descriptors into plugin passes, normally reversing preset order; explicit plugin descriptors are inserted first in the initial pass. — [packages/babel-core/src/config/full.ts#L111-161](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L111-L161) [packages/babel-core/src/config/full.ts#L177-200](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L177-L200)
- transformFileRunner resolves configuration before reading UTF-8 source; a null configuration returns null without reading or compiling the input file. — [packages/babel-core/src/transform-file.ts#L18-28](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transform-file.ts#L18-L28)
- normalizeFile wraps Program roots as File nodes, rejects other roots, optionally clones supplied ASTs, or parses source; incoming maps come from an explicit object or trailing sourceMappingURL. — [packages/babel-core/src/transformation/normalize-file.ts#L35-65](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/normalize-file.ts#L35-L65) [packages/babel-core/src/transformation/normalize-file.ts#L67-105](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/normalize-file.ts#L67-L105)
- run returns FileResult metadata, normalized options, optional AST/code/map, actual sourceType, and a freshly flattened externalDependencies Set after transformation. — [packages/babel-core/src/transformation/index.ts#L36-80](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/index.ts#L36-L80) [packages/babel-core/test/external-dependencies.js#L36-44](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/external-dependencies.js#L36-L44)
- Directory output derives destination paths from input-relative paths and output-extension options, writes optional map sidecars before code, and copies permissions; file mode combines source maps with line offsets. — [packages/babel-cli/src/babel/dir.ts#L29-71](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L29-L71) [packages/babel-cli/src/babel/file.ts#L29-67](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/file.ts#L29-L67)
- Register cache keys hash serialized resolved options, Babel version, and environment; matching source mtime permits reuse, while new code/map values enter memory and compressed disk batches. — [packages/babel-register/src/worker/transform.ts#L27-53](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/transform.ts#L27-L53) [packages/babel-register/src/worker/transform.ts#L112-122](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/transform.ts#L112-L122) [packages/babel-register/src/worker/cache.ts#L100-125](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L100-L125)

## Behavior traces

The source was followed through API compilation, CLI startup and output, and register persistence. These traces preserve execution order and important early exits. Additional inspected branches cover stdin, watch dependencies, standalone scripts, and automatic source-map consumption. They are source-derived walkthroughs rather than observed runtime executions.
- API compilation: transformSync/transformAsync → transformRunner → loadConfig/loadFullConfig → loadPrivatePartialConfig → buildRootChain; null config ends the flow, otherwise run performs compilation. — [packages/babel-core/src/transform.ts#L21-29](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transform.ts#L21-L29) [packages/babel-core/src/transform.ts#L56-64](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transform.ts#L56-L64) [packages/babel-core/src/config/full.ts#L58-69](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L58-L69) [packages/babel-core/src/config/partial.ts#L102-114](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/partial.ts#L102-L114)
- Compiler execution: run → normalizeOptions, including manipulateOptions → normalizeFile/parser → transformFile; each pass constructs PluginPass objects, invokes pre, merges/traverses visitors, invokes post, then generateCode runs. — [packages/babel-core/src/transformation/normalize-opts.ts#L63-71](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/normalize-opts.ts#L63-L71) [packages/babel-core/src/transformation/index.ts#L41-63](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/index.ts#L41-L63) [packages/babel-core/src/transformation/index.ts#L83-132](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/index.ts#L83-L132)
- CLI startup: bin/babel.js imports lib/babel/index.js → parseArgv parses, expands/sorts globs, deduplicates inputs, and validates combinations → dispatcher selects dirCommand/fileCommand; validation failure sets exitCode 2. — [packages/babel-cli/bin/babel.js#L1-7](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/bin/babel.js#L1-L7) [packages/babel-cli/src/babel/options.ts#L192-225](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L192-L225) [packages/babel-cli/src/babel/options.ts#L269-275](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L269-L275) [packages/babel-cli/src/babel/index.ts#L7-17](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/index.ts#L7-L17)
- Directory compilation: handle enumerates inputs → handleFile → write checks extension and calls util.compile → transformFileAsync resolves config and reads source → write emits map/code and chmod; ignored or non-compilable inputs may instead be copied. — [packages/babel-cli/src/babel/dir.ts#L25-71](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L25-L71) [packages/babel-cli/src/babel/dir.ts#L95-131](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L95-L131) [packages/babel-cli/src/babel/util.ts#L105-117](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/util.ts#L105-L117) [packages/babel-core/src/transform-file.ts#L18-28](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transform-file.ts#L18-L28)
- Stdin compilation: fileCommand → stdin → readStdin collects UTF-8 text until end → transformRepl calls callback-based babel.transform → output/buildResult emits stdout or the requested file. — [packages/babel-cli/src/babel/file.ts#L94-150](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/file.ts#L94-L150) [packages/babel-cli/src/babel/file.ts#L243-247](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/file.ts#L243-L247) [packages/babel-cli/src/babel/util.ts#L89-102](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/util.ts#L89-L102)
- Watch updates: enable creates FSWatcher → compile records externalDependencies → updateExternalDependencies updates forward/reverse indexes → startWatcher adds queued paths → add/change events identify affected inputs and directory callbacks invoke handleFile. — [packages/babel-cli/src/babel/watcher.ts#L12-38](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/watcher.ts#L12-L38) [packages/babel-cli/src/babel/watcher.ts#L71-118](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/watcher.ts#L71-L118) [packages/babel-cli/src/babel/util.ts#L111-115](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/util.ts#L111-L115) [packages/babel-cli/src/babel/dir.ts#L227-249](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L227-L249)
- Register persistence: register → hook.register → compile/client.transform → worker handleMessage TRANSFORM → worker transform loads options and checks cache → transformAsync/store; exit or signal handling sends SAVE → saveCache → Cache.flush. — [packages/babel-register/src/index.ts#L10-30](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/index.ts#L10-L30) [packages/babel-register/src/hook.ts#L30-54](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/hook.ts#L30-L54) [packages/babel-register/src/worker/handle-message.ts#L10-21](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/handle-message.ts#L10-L21) [packages/babel-register/src/worker/transform.ts#L97-145](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/transform.ts#L97-L145)
- Browser execution: DOMContentLoaded → transformScriptTags → runScripts filters script tags → loadScripts obtains inline text or loads src by XHR → check runs eligible scripts in order, allowing async tags to bypass waiting → run appends transformed script elements. — [packages/babel-standalone/src/index.ts#L259-276](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L259-L276) [packages/babel-standalone/src/transformScriptTags.ts#L105-143](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/transformScriptTags.ts#L105-L143) [packages/babel-standalone/src/transformScriptTags.ts#L173-233](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/transformScriptTags.ts#L173-L233) [packages/babel-standalone/src/transformScriptTags.ts#L240-269](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/transformScriptTags.ts#L240-L269)

## Testing signals

Tests and CI were inspected, not executed; their existence establishes intended coverage, not passing results. Jest uses jest-light-runner in a Node environment, and fixture harnesses exercise parser, compiler, and CLI behavior against built artifacts. CI defines coverage, platform matrices, external parser suites, runtime interoperability, and downstream integration checks. Inspection was bounded, so unexamined packages and scenarios remain unassessed.
- The inspected Jest configuration uses jest-light-runner, Node testEnvironment, V8 coverage, and test discovery under packages, codemods, and eslint; no test or CI execution was performed for this brief. — [jest.config.ts#L5-14](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/jest.config.ts#L5-L14) [jest.config.ts#L27-50](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/jest.config.ts#L27-L50) [.github/workflows/ci.yml#L200-206](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L200-L206)
- Parser test/index.js feeds built parse into runFixtureTests, whose generated cases vary starting positions and compare recovered AST/error results with expected fixtures. — [packages/babel-parser/test/index.js#L1-4](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/test/index.js#L1-L4) [packages/babel-parser/test/helpers/run-fixture-tests.js#L59-89](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/test/helpers/run-fixture-tests.js#L59-L89) [packages/babel-parser/test/helpers/run-fixture-tests.js#L97-125](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/test/helpers/run-fixture-tests.js#L97-L125)
- Core async tests assert rejection of async config functions, Promise configs, and async cache handlers even through transformAsync, while accepting an ESM config that configures caching. — [packages/babel-core/test/async.js#L22-75](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/async.js#L22-L75) [packages/babel-core/test/async.js#L79-113](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/async.js#L79-L113)
- Source-map tests exercise downward resolution, downward package crossings, and rejection of upward package-boundary crossings; dependency tests assert fresh Sets and propagation through cached plugins. — [packages/babel-core/test/input-source-map-resolution.js#L72-125](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/input-source-map-resolution.js#L72-L125) [packages/babel-core/test/input-source-map-resolution.js#L195-227](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/input-source-map-resolution.js#L195-L227) [packages/babel-core/test/external-dependencies.js#L36-44](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/external-dependencies.js#L36-L44) [packages/babel-core/test/external-dependencies.js#L107-142](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/test/external-dependencies.js#L107-L142)
- CLI tests build parallel process fixtures against compiled binaries with default transforms and normalize duration/path output; register tests cover hook setup/revert, source-map support, disk reuse, invalid cache paths, and batching. — [packages/babel-cli/test/helpers/runner.js#L24-56](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/test/helpers/runner.js#L24-L56) [packages/babel-register/test/index.js#L136-199](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/test/index.js#L136-L199) [packages/babel-register/test/cache.skip-bundled.js#L41-113](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/test/cache.skip-bundled.js#L41-L113)
- Coverage excludes standalone, generated types, and helper implementations; publish-bundle runs skip .skip-bundled.js tests. The cache-expiry test checks removal after 30 days, so it does not establish the implementation's exact one-day cutoff. — [jest.config.ts#L15-23](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/jest.config.ts#L15-L23) [jest.config.ts#L41-48](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/jest.config.ts#L41-L48) [packages/babel-register/test/cache.skip-bundled.js#L70-89](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/test/cache.skip-bundled.js#L70-L89) [packages/babel-register/src/worker/cache.ts#L54-60](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L54-L60)
- CI specifies Node 22/24/25 tests, Windows/macOS tests, c8 coverage and ESM checks, and separate build/lint/test jobs with BABEL_9_BREAKING=true. — [.github/workflows/ci.yml#L181-206](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L181-L206) [.github/workflows/ci.yml#L213-249](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L213-L249) [.github/workflows/ci.yml#L251-299](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L251-L299) [.github/workflows/ci.yml#L338-396](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L338-L396)
- CI defines external Test262/Flow/TypeScript parser suites and runtime/bundler checks; E2E uses local Verdaccio packages with Babel, create-react-app, Angular CLI, and Prettier, while several other project entries are commented out. — [.github/workflows/ci.yml#L398-423](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L398-L423) [.github/workflows/ci.yml#L463-468](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L463-L468) [.github/workflows/e2e-tests.yml#L17-38](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/e2e-tests.yml#L17-L38) [.github/workflows/e2e-tests.yml#L41-57](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/e2e-tests.yml#L41-L57)

## Risk map

The principal trust boundaries are executable configuration/plugins, filesystem output, browser script execution, and synchronous worker IPC. Source-map loading includes a lexical root/package restriction, while register cache location is configurable outside the checkout. Two potential failure modes below are explicitly labeled hypotheses and were not reproduced. These observations do not establish confirmed vulnerabilities or whole-repository security coverage.
- Loading JavaScript/TypeScript configs and plugins executes modules through require or dynamic import, and config factories are invoked directly; these paths inherit host-process capabilities. — [packages/babel-core/src/config/files/module-types.ts#L17-48](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/files/module-types.ts#L17-L48) [packages/babel-core/src/config/files/configuration.ts#L52-88](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/files/configuration.ts#L52-L88) [packages/babel-core/src/config/files/plugins.ts#L220-234](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/files/plugins.ts#L220-L234)
- CLI --delete-dir-on-start reaches recursive force deletion of the requested outDir; normal compilation also creates directories and overwrites code/map files at derived destinations. — [packages/babel-cli/src/babel/dir.ts#L156-163](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L156-L163) [packages/babel-cli/src/babel/util.ts#L120-122](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/util.ts#L120-L122) [packages/babel-cli/src/babel/dir.ts#L16-18](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L16-L18) [packages/babel-cli/src/babel/dir.ts#L60-71](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/dir.ts#L60-L71)
- Automatic external source-map loading rejects upward paths outside the nearest package/root using path.relative checks, then reads the accepted path synchronously; this code does not perform realpath-based containment. — [packages/babel-core/src/transformation/read-input-source-map-file.ts#L10-41](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/read-input-source-map-file.ts#L10-L41) [packages/babel-core/src/transformation/read-input-source-map-file.ts#L44-54](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/read-input-source-map-file.ts#L44-L54)
- Register cache IO may target BABEL_CACHE_PATH, a discovered package cache, or temporary/home storage; enabling the cache also removes entries older than one day. — [packages/babel-register/src/worker/cache.ts#L10-15](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L10-L15) [packages/babel-register/src/worker/cache.ts#L24-45](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L24-L45) [packages/babel-register/src/worker/cache.ts#L50-64](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/cache.ts#L50-L64)
- Hypothesis: register can reuse stale compilation if source content changes without changing mtime, because cacheLookup hashes resolved options/version/environment and validates mtime rather than input text. (inferred) — [packages/babel-register/src/worker/transform.ts#L27-53](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/transform.ts#L27-L53) [packages/babel-register/src/worker/transform.ts#L97-122](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/transform.ts#L97-L122)
- Hypothesis: worker startup failure or failure before notification could leave a require hook blocked, because WorkerClient calls Atomics.wait without a timeout; normal worker response handling notifies in finally. (inferred) — [packages/babel-register/src/worker-client.ts#L47-78](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker-client.ts#L47-L78) [packages/babel-register/src/worker/index.ts#L24-39](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/index.ts#L24-L39)
- Standalone fetches script src URLs with XHR and appends generated script text to the document, preserving nonce; babel-node separately runs transformed eval text through vm.runInThisContext. — [packages/babel-standalone/src/transformScriptTags.ts#L105-143](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/transformScriptTags.ts#L105-L143) [packages/babel-node/src/_babel-node.ts#L97-118](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-node/src/_babel-node.ts#L97-L118)
- Release automation has npm OIDC and Git write paths and explicitly avoids cached release builds; compiler correctness also assumes built-ins and their standard contracts have not been redefined. — [.github/workflows/release.yml#L58-65](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/release.yml#L58-L65) [.github/workflows/release.yml#L94-117](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/release.yml#L94-L117) [doc/design/compiler-assumptions.md#L3-9](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/doc/design/compiler-assumptions.md#L3-L9)

## Extension points

Plugins and presets are the main compiler extension contracts. Factories receive versioned APIs and cache controls, while plugin objects supply visitors and lifecycle hooks. Parser mixins, standalone registries, CLI option declarations, and worker action dispatch provide additional integration points. These mechanisms enforce ordering and compatibility constraints that extensions must preserve.
- PluginObject supports name, manipulateOptions, pre/post, inherits, visitor, parserOverride, and generatorOverride; validation rejects unknown properties and catch-all visitor enter/exit handlers. — [packages/babel-core/src/config/validation/plugins.ts#L24-54](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/validation/plugins.ts#L24-L54) [packages/babel-core/src/config/validation/plugins.ts#L84-104](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/validation/plugins.ts#L84-L104) [packages/babel-core/src/config/validation/plugins.ts#L114-130](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/validation/plugins.ts#L114-L130)
- Plugin/preset factories receive api, options, and dirname; API construction includes cache, env, caller, targets, addExternalDependency, and plugin assumption access. — [packages/babel-core/src/config/full.ts#L257-271](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L257-L271) [packages/babel-core/src/config/helpers/config-api.ts#L84-120](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/helpers/config-api.ts#L84-L120)
- Inherited plugins chain pre/post/manipulateOptions hooks, merge inherited and local visitors, and propagate inherited external dependencies with cache invalidation. — [packages/babel-core/src/config/full.ts#L352-389](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L352-L389)
- PluginPass exposes per-pass Map state, file/options/cwd/filename/isAsync context, helper availability/insertion, and code-frame error construction. — [packages/babel-core/src/transformation/plugin-pass.ts#L4-35](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/plugin-pass.ts#L4-L35) [packages/babel-core/src/transformation/plugin-pass.ts#L38-59](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/plugin-pass.ts#L38-L59)
- Parser/generator overrides may decline by returning undefined, but multiple returned results or Promise results throw; otherwise Babel uses its default parser/generator. — [packages/babel-core/src/parser/index.ts#L16-44](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/parser/index.ts#L16-L44) [packages/babel-core/src/transformation/file/generate.ts#L20-48](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/file/generate.ts#L20-L48)
- Parser extensions compose ordered mixins for ESTree, JSX, Flow, TypeScript, V8 intrinsics, and placeholders; parser classes are cached by mixin names, and Flow/TypeScript cannot be combined. — [packages/babel-parser/src/plugin-utils.ts#L17-19](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/src/plugin-utils.ts#L17-L19) [packages/babel-parser/src/plugin-utils.ts#L136-157](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/src/plugin-utils.ts#L136-L157) [packages/babel-parser/src/index.ts#L138-160](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/src/index.ts#L138-L160)
- Standalone exposes registerPlugin(s) and registerPreset(s); duplicate names warn and replace registry entries, and processOptions resolves user-supplied names against those registries. — [packages/babel-standalone/src/index.ts#L133-174](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L133-L174) [packages/babel-standalone/src/index.ts#L205-252](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-standalone/src/index.ts#L205-L252)
- CLI options extend through Commander declarations and babelOptions/cliOptions mapping; register worker functionality extends through the ACTIONS switch dispatching option, transform, ignore, and save requests. — [packages/babel-cli/src/babel/options.ts#L277-335](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/src/babel/options.ts#L277-L335) [packages/babel-register/src/worker/handle-message.ts#L10-24](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-register/src/worker/handle-message.ts#L10-L24)

## Contributor handoff

Begin changes in the owning package and follow its public API into implementation and fixture runners. The repository expects built lib artifacts for many tests, and its configuration deliberately separates source builds from test compilation. Tests and CI were inspected, not executed; any future checks require execution authorization and must produce their own outcomes. This brief is bounded, and historical comments or documentation should be checked against current manifests and workflows.
- Read package.json, the affected package manifest, CONTRIBUTING.md, and local AGENTS.md first; the latter documents specific disclosure and wording requirements for LLM-generated PR descriptions. — [package.json#L6-21](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/package.json#L6-L21) [packages/babel-core/package.json#L33-35](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/package.json#L33-L35) [CONTRIBUTING.md#L40-80](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L40-L80) [AGENTS.md#L3-9](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/AGENTS.md#L3-L9)
- Use the pinned Yarn version and package engine ranges: core and CLI require Node ^22.18.0 or >=24.11.0, which is more precise than CONTRIBUTING.md's broad minimum. — [package.json#L21-21](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/package.json#L21-L21) [packages/babel-core/package.json#L33-35](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/package.json#L33-L35) [packages/babel-cli/package.json#L44-45](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/package.json#L44-L45) [CONTRIBUTING.md#L40-42](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L40-L42)
- Keep implementation edits in owning src files and account for built lib artifacts: parser and CLI runners consume compiled code, and root tsconfig.json declares itself generator-produced. — [packages/babel-parser/test/index.js#L1-4](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/test/index.js#L1-L4) [packages/babel-cli/test/helpers/runner.js#L12-22](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/test/helpers/runner.js#L12-L22) [packages/babel-cli/test/helpers/runner.js#L39-46](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-cli/test/helpers/runner.js#L39-L46) [tsconfig.json#L1-18](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/tsconfig.json#L1-L18)
- Before changing transform semantics, read config/full.ts and transformation/index.ts together: reversed preset expansion, explicit-plugin priority, merged visitors, and lifecycle hooks determine execution order. — [packages/babel-core/src/config/full.ts#L127-161](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L127-L161) [packages/babel-core/src/config/full.ts#L177-200](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/config/full.ts#L177-L200) [packages/babel-core/src/transformation/index.ts#L83-132](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-core/src/transformation/index.ts#L83-L132)
- When execution is authorized, begin with a narrow package Jest selector such as yarn jest babel-cli; repository test/lint targets and CI were inspected here, not executed or reported as passing. — [CONTRIBUTING.md#L118-149](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L118-L149) [Makefile.source.ts#L407-420](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/Makefile.source.ts#L407-L420) [Makefile.source.ts#L454-474](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/Makefile.source.ts#L454-L474) [.github/workflows/ci.yml#L243-249](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L243-L249)
- Regression fixtures distinguish input/output snapshots, expected errors, and preferred semantic exec.js assertions; OVERWRITE=true deliberately rewrites fixtures and should be used with reviewed expectations. — [CONTRIBUTING.md#L204-214](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L204-L214) [CONTRIBUTING.md#L239-256](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L239-L256) [CONTRIBUTING.md#L272-277](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L272-L277) [packages/babel-parser/test/helpers/run-fixture-tests.js#L129-149](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/packages/babel-parser/test/helpers/run-fixture-tests.js#L129-L149)
- Preserve isolation from the monorepo build config: babel.config.ts rejects ordinary test loading, and ESLint's parser disables babelrc, root config, and browserslist config discovery. — [babel.config.ts#L21-29](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/babel.config.ts#L21-L29) [eslint.config.ts#L68-77](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/eslint.config.ts#L68-L77)
- Check behavior flags against current CI rather than copying historical examples: CONTRIBUTING.md still documents BABEL_8_BREAKING, while CI has BABEL_9_BREAKING variants; formatting uses two spaces, double quotes, and source/test trailing-comma overrides. — [CONTRIBUTING.md#L112-115](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/CONTRIBUTING.md#L112-L115) [.github/workflows/ci.yml#L294-300](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L294-L300) [.github/workflows/ci.yml#L357-363](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.github/workflows/ci.yml#L357-L363) [.prettierrc#L1-24](https://github.com/babel/babel/blob/7c1dcfac003791a7fee733ed13851a5cac1ccf1c/.prettierrc#L1-L24)

Source repository: https://github.com/babel/babel
Full evidence corpus: https://github.com/Codevetter/codevetter/tree/main/benchmarks/repo-unpacks/babel.json

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
