I run code-server behind an authenticating Kubernetes Ingress which sets a cookie after a successful login is performed. Since this cookie is not set when fetching the manifest, the fetch fails and gets redirected to the authentication page, breaking code-server completely.
See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
This is to match how the other binaries are built. Also made some
changes to make the Docker containers clean up for when you are running
this locally.
* Set NODE_ENV and VERSION when building
Should fix the version flag not reporting correctly as well as enable
the service worker and prevent the 404 hmr requests again.
* Log env vars
To help make sure it's built correctly when looking at the Travis logs.
Since this will be a path in the binary that we don't want to create on
the user's system. I also removed the option to override it; it doesn't
seem like a great idea since you'd always want those builtin extensions.
This way we also don't have to check if the option was passed and only
create it if that was the case.
This isn't a real error event; we artificially emit it just in case
something waiting to start is listening to the error event in order to
clean up and/or restart.
* Allow setting paths for builtin exts and extra dirs
The extra directories aren't used yet, just available from the
environment service and to the shared process.
* Utilize extra builtin extensions path
* Utilize extra extensions directory
* Fix cached mtimes for extra extension dirs
* Simplify extension cache equality check
* Make all assets unique
All CSS and JavaScript files have unique names now. I also moved the
login to the /login path in order to ensure the HTML for each page is
also unique.
* Explicitly include assets to cache
* Added serviceworker and manifest.json
* added deps in package.json
* fixed image link
* actually fixed images i think
* added assets to individual module folders
* added caching
* Serviceworker now properly loads
* Changed single to double quotes
* Update lock
* moved the service worker back into prod only
* removed sw from general
* changed background color of splash screen
* added logo to server
* centralized logo into single assets folder
* Update Node to 10.15.1
* Remove string replace that was used for oclif
* Update nbin
* Package node-pty and spdlog with nbin
* Label stderr/stdout from shared process
* Remove fork override
* Prevent "already disposed" errors when trying to kill disposed proxies
* Include spdlog dependencies
* Shim /node_modules
* Add node_modules to Docker ignore
It keeps using my already-built .node files which results in a
mismatching GLIBC version error.
* Update nbin
* Update VS Code to 1.33.0
* Fix slow file tree
* Fix WindowsService fill
* Provide `off` on event listeners
* Fix webview
* Fix double title bar and missing preferences on Mac
* Bump VS Code version in Travis config
* Fix black dialog text (again)
* Fix shared process not starting
* Adjust linux distro to ubuntu 14.04
* Cache lib directory for speedy builds
* Fix path linking for default extensions
* Update reset
* Reset to head
* Improve caching
* Still run yarn in CI
* Update yarn before install
* Increase cache timeout
* Install vscode from vstar
* Undo data-dir changes to CLI, add back clean, remove unused CI func
* Remove additional flags added
* Remove unused dependency
* Reset vscode install dir so patching always works
Registering returns an instance that lets you retry and recover without
needing to keep passing the name everywhere.
Also refactored the shared process a little to make better use of the
retry and downgraded stderr messages to warnings because they aren't
critical.
* Make proxies decide how to handle disconnects
* Connect to a new terminal instance on disconnect
* Use our retry for the watcher
* Specify method when proxy doesn't exist
* Don't error when closing/killing disconnected proxy
* Specify proxy ID when a method doesn't exist
* Use our retry for the searcher
Also dispose some things for the watcher because it doesn't seem that
was done properly.
The searcher also now starts immediately so there won't be lag when you
perform your first search.
* Use our retry for the extension host
* Emit error in parent proxy class
Reduces duplicate code. Not all items are "supposed" to have an error
event according to the original implementation we are filling, but there
is no reason why we can't emit our own events (and are already doing so
for the "disconnected" event anyway).
* Reconnect spdlog
* Add error message when shared process disconnects
* Pass method resolve to parse
* Don't pass method to getProxy
It doesn't tell you anything that trace logging wouldn't and has
no relation to what the function actually does.
* Fix infinite recursion when disposing protocol client in tests
* Replace evaluations with proxies and messages
* Return proxies synchronously
Otherwise events can be lost.
* Ensure events cannot be missed
* Refactor remaining fills
* Use more up-to-date version of util
For callbackify.
* Wait for dispose to come back before removing
This prevents issues with the "done" event not always being the last
event fired. For example a socket might close and then end, but only
if the caller called end.
* Remove old node-pty tests
* Fix emitting events twice on duplex streams
* Preserve environment when spawning processes
* Throw a better error if the proxy doesn't exist
* Remove rimraf dependency from ide
* Update net.Server.listening
* Use exit event instead of killed
Doesn't look like killed is even a thing.
* Add response timeout to server
* Fix trash
* Require node-pty & spdlog after they get unpackaged
This fixes an error when running in the binary.
* Fix errors in down emitter preventing reconnecting
* Fix disposing proxies when nothing listens to "error" event
* Refactor event tests to use jest.fn()
* Reject proxy call when disconnected
Otherwise it'll wait for the timeout which is a waste of time since we
already know the connection is dead.
* Use nbin for binary packaging
* Remove additional module requires
* Attempt to remove require for local bootstrap-fork
* Externalize fsevents