Extending `xhr` shim for node.js with socket event hooks and a default timeout of 30s