* Update Code to 1.94.2
* Convert from yarn to npm
This is to match VS Code. We were already partially using npm for the
releases so this is some nice alignment.
* Update caniuse-lite
This was complaining on every unit test.
* Update eslint
I was having a bunch of dependency conflicts and eslint seemed to be the
culprit so I just removed it and set it up again, since it seems things
have changed quite a bit.
* Update test dependencies
I was getting oom when running the unit tests...updating seems to work.
* Remove package.json `scripts` property in release
The new pre-install script was being included, which is dev-only.
This was always the intent; did not realize jq's merge was recursive.
* Remove jest and devDependencies in release as well
* Update test extension dependencies
This appears to be conflicting with the root dependencies.
* Fix playwright exec
npm does not let you run binaries like yarn does, as far as I know.
* Fix import of server-main.js
* Fix several tests by waiting for selectors
* Move splitOnFirstEquals to util
I will be making use of this to parse the forwarded header.
* Type splitOnFirstEquals with two items
Also add some test cases.
* Check origin header on web sockets
* Update changelog with origin check
* Fix web sockets not closing with error code
* Update Node types to 16
* Update Express core types
Fixes a number of conflicts it has with Node 16.
* Fix websocket router types
It seems req was `any` before so now we have to handle the types. Also
it seems the socket is of type `stream.Duplex`, not `net.Socket`.
The ws types had to be updated to support the new type.
Unfortunately Code still uses the old type so cast for now.
In the web socket router just use a cast for the extra properties we
add. We could add the types to the Express namespace but I am not sure
we really want these commonly accessible so keep with the casts for now.
Likely we should use Express's `locals` or something instead.
* Add missing return
Not sure why it only just now started complaining though.
Co-authored-by: Asher <ash@coder.com>
This is mostly so we don't have to do any wacky patching but it also
makes it so we don't have to keep checking if the request is a web
socket request every time we add middleware.