This reverts commit 7427109658.
The new version of the `cookie` package contains code with optional chaining (`?.`), which is not supported by older Node.js versions (< 14).
The types for cookie are now bundled, so that there is no conflict with the types coming from `cookie@1`:
> error TS2724: '"cookie"' has no exported member named 'CookieSerializeOptions'. Did you mean 'SerializeOptions'?
>
> import type { CookieSerializeOptions } from "cookie";
> ~~~~~~~~~~~~~~~~~~~~~~
Related: https://github.com/socketio/socket.io/issues/5283
In some specific cases, the transport was not closed right away,
leaving the Node.js process alive even after closing the server.
The HTTP long-polling transport would be closed after the heartbeat
failure and the `closeTimeout` delay (20 + 25 + 30 seconds).
Example:
```js
io.on("connection", (socket) => {
// the writeBuffer is not empty, so the transport is not closed right away
io.close();
});
```
Related: https://github.com/socketio/socket.io/issues/5088