#54195: build: remove ts-node and load specs as native ESM (43-x-y)
Backport of #54166
Backport of #54167
Backport of #52100
Backport of #52735
Backport of #54168
Backport of #54169
Backport of #50793
Backport of #54170
Backport of #54171
See those PRs for details. #54172 (TypeScript 7) is left out because this branch still bundles lib/ with webpack and ts-loader. #52100 and #52735 ride along because the pre-Sudowoodo release entry scripts and their two specs were the remaining ts-node users on this branch; release-assets.json is already here (#52732), so Sudowoodo does not read anything this removes. #50793 (ws 8 in spec/) rides along so the websocket specs can use the same named ESM imports as newer branches.
Branch-specific bits: github-token.mts still uses got here, so its default import is unwrapped for Node's CommonJS interop; yarn 4.18 re-hashes the built-in resolve compat patch entries in the lockfile; a few remote-control bodies in the crash-reporter and fuses specs name what they use now that the CommonJS shims are gone; the spec codemod and the type-import autofix were re-run against this branch's specs rather than cherry-picked line for line; the nan test lockfile in the yarn patch was regenerated for this branch's nan pin.
Notes: none
Generated by Claude Code
Backport Information
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron