This repository implements the official GitHub Action `actions/setup-node`, which sets up a Node.js environment in GitHub Actions workflows. It downloads and caches the requested Node.js version (including LTS, nightly, RC, and v8-canary builds), adds it to the PATH, optionally caches npm/yarn/pnpm dependencies using `actions/cache`, registers problem matchers for TypeScript and ESLint, and configures authentication for private npm registries. The architecture is a composite action with a main entry point (`src/setup-node.ts`) and a post-job cache-save entry point (`src/cache-save.ts`), both compiled via ncc. The codebase is well-structured with abstract base classes for distribution handling, a factory pattern for selecting the correct distribution, and separate modules for cache utilities and authentication. It relies on the `@actions/*` toolkit libraries and external services (GitHub node-versions manifest, nodejs.org dist mirrors).