I am very sorry to raise such an issue (I know its often pretty frustrating as a maintainer to have someone else tell me about "semver violations"), please understand that I am only reporting because I would also want to be aware of issues that consumers of my packages are facing.
The ws updated landed in #587 was a breaking change and releasing that updated as 3.4.0 means existing consumers that still support Node 6 environments are now broken. Since ws@7 drops support for Node 6 (for example, it uses object rest/spread), any Node 6 consumers that had been using ^3.3.1 (which worked fine) will now get 3.4.0 and receive errors when ws's lib/websocket.js is required.
Thank you for your time (and again, I apologize for the distasteful issue).