* Implement write/read buffers in electron fill
This makes cutting and copy files from the file tree work.
* Implement fs.createReadStream
This is used by the file tree to copy files.
* Allow passing proxies back from client to server
This makes things like piping streams possible.
* Synchronously bind to proxy events
This eliminates any chance whatsoever of missing events due to binding
too late.
* Make it possible to bind some events on demand
* Add some protocol documentation
* 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
* Convert fully to protobuf (was partially JSON)
* Handle all floating promises
* Remove stringified proto from trace logging
It wasn't proving to be very useful.
* 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
* Set low CPU priority on watcher
Fixes#247.
* Batch stat and readdir calls
* Fix fs.exists
callbackify seems to always adds an error as the first argument. Opted
to just use the promise for this one.
* Batch lstat
* Add maximum time for flushing batches
* 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
* Add active evals
* Convert type of stats to date or string
* Fix generic overloads for run
* Lower evaluate timeout
* Add comment for createWriteStream
* Implement net.Server
* Move Socket class into Client
This way we don't need to expose anything.
* Remove some unused imports
* Pass environment variables to bootstrap fork
* Add debug log for when socket disconnects from server
* Use VSCODE_ALLOW_IO for shared process only
* Extension host can send messages now
* Support callback for logging
This lets us do potentially expensive operations which will only be
performed if the log level is sufficiently low.
* Stop extension host from committing suicide
* Blank line
* Add static serve (#21)
* Add extension URLs
* how did i remove this
* Fix writing an empty string
* Implement dialogs on window service
* Clean up workbench and integrate initialization data
* Uncomment Electron fill
* Run server & client together
* Clean up Electron fill & patch
* Bind fs methods
This makes them usable with the promise form:
`promisify(access)(...)`.
* Add space between tag and title to browser logger
* Add typescript dep to server and default __dirname for path
* Serve web files from server
* Adjust some dev options
* Rework workbench a bit to use a class and catch unexpected errors
* No mkdirs for now, fix util fill, use bash with exec
* More fills, make general client abstract
* More fills
* Fix cp.exec
* Fix require calls in fs fill being aliased
* Create data and storage dir
* Implement fs.watch
Using exec for now.
* Implement storage database fill
* Fix os export and homedir
* Add comment to use navigator.sendBeacon
* Fix fs callbacks (some args are optional)
* Make sure data directory exists when passing it back
* Update patch
* Target es5
* More fills
* Add APIs required for bootstrap-fork to function (#15)
* Add bootstrap-fork execution
* Add createConnection
* Bundle bootstrap-fork into cli
* Remove .node directory created from spdlog
* Fix npm start
* Remove unnecessary comment
* Add webpack-hot-middleware if CLI env is not set
* Add restarting to shared process
* Fix starting with yarn
* Implements the fs module
* Add stats object
* Add not implemented to createWriteStream
* Update mkdtemp to use tmp dir
* Unexport Stats
* Add client web socket for commands and restructure