Migrate to eslint flat config (qr-code.ts override for the mask-penalty sliding-window) and composite tsconfig.