#54194: build: remove ts-node and load specs as native ESM (44-x-y)
Backport of #54166
Backport of #54167
Backport of #52735
Backport of #54168
Backport of #54169
Backport of #54170
Backport of #54171
See those PRs for details. #54172 (TypeScript 7) is left out here because this branch still bundles lib/ with webpack and ts-loader, which need TypeScript's JS API. #52735 rides along because the dead release.ts / get-url-hash.ts / get-asset.ts it removes were the only script sources that would otherwise have needed converting for plain node.
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 this branch's lockfile; the menu-item and desktop-name specs still exercise lib/ sources on this branch, so they require() them the way deprecate-spec.ts does and menu-item-roles.ts marks its type-only imports; 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