Commit Graph

104 Commits

Author SHA1 Message Date
Asher 14da71499f
Set platform based on server (#32)
* Set platform based on server

Had to refactor a bit to ensure our values get set before VS Code tries
to use them.

* Pave the way for mnemonics on all platforms

* Fix context menus on Mac

* Fix a bunch of things on Mac including menu bar

* Set keybindings based on client's OS
2019-02-26 12:01:14 -06:00
Kyle Carberry 0c2c957312 Fix readdir for root path (#35)
* Fix readdir for root path

* Fix merge of webpack conf

* Fix travis.yml to deploy on master

* Remove windows platform from travis.yml

* Enable caching

* mkdirpSync

* Fix build script
2019-02-25 16:29:34 -06:00
Asher eaea947318
Fix spdlog and node-pty in binary 2019-02-25 15:18:44 -06:00
Asher 1e55736c69
Move string replacements for node-pty to general 2019-02-25 11:53:02 -06:00
Asher 59eec534b6
Recursively create modules directory 2019-02-22 18:42:59 -06:00
Asher 75c8bd62f1
Fix forking in binary 2019-02-22 17:36:55 -06:00
Asher d9fc29fb0b
Pass data directory when forking with bootstrap 2019-02-22 16:31:21 -06:00
Asher 8b8bef015e
Add evaluation helpers (#33)
* Add evaluation helpers

* Make some helpers only available server-side

They don't make any sense on the client side.

* Fork the right thing
2019-02-22 15:56:29 -06:00
Kyle Carberry de3fbd689f
Fix local building for module extraction 2019-02-22 15:06:34 -06:00
Kyle Carberry 73d6b77614
Externalize spdlog .node module 2019-02-21 19:32:08 -06:00
Kyle Carberry bc076ca30d
Fix custom paths resolve 2019-02-21 13:00:46 -06:00
Kyle Carberry 85d2225e0c Featureful (#31)
* Fix loading within the CLI

* Remove app

* Remove promise handle

* Add initial travis file

* Add libxkbfile dependency

* Add libxkbfile-dev

* Add build script

* Fix malformed bash statement

* Remove yarn from script

* Improve build script

* Extract upx before usage

* Only run upx if on linux

* Ensure resource directory exists

* Pack runnable binary

* Export binary with platform

* Improve build process

* Install upx before running install script

* Update typescript version before running nexe

* Add os.release() function for multi-platform support

* Update travis.yml to improve deployment

* Add on CI

* Update to v1.31.0

* Add libsecret

* Update build target

* Skip cleanup

* Fix built-in extensions

* Add basics for apps

* Create custom DNS server

* Fix forking within CLI. Fixes TS language features

* Fix filename resolve

* Fix default extensions path

* Add custom dialog

* Store workspace path

* Remove outfiles

* Cleanup

* Always authed outside of CLI

* Use location.host for client

* Remove useless app interface

* Remove debug file for building wordlist

* Use chromes tcp host

* Update patch

* Build browser app before packaging

* Replace all css containing file:// URLs, fix webviews

* Fix save

* Fix mkdir
2019-02-21 11:55:42 -06:00
Asher 6b5f50cddf
Handle shared process `error` event; add some logging 2019-02-19 18:02:01 -06:00
Asher 4a80bcb42c
Make everything use active evals (#30)
* Add trace log level

* Use active eval to implement spdlog

* Split server/client active eval interfaces

Since all properties are *not* valid on both sides

* +200% fire resistance

* Implement exec using active evaluations

* Fully implement child process streams

* Watch impl, move child_process back to explicitly adding events

Automatically forwarding all events might be the right move, but wanna
think/discuss it a bit more because it didn't come out very cleanly.

* Would you like some args with that callback?

* Implement the rest of child_process using active evals

* Rampant memory leaks

Emit "kill" to active evaluations when client disconnects in order to
kill processes. Most likely won't be the final solution.

* Resolve some minor issues with output panel

* Implement node-pty with active evals

* Provide clearTimeout to vm sandbox

* Implement socket with active evals

* Extract some callback logic

Also remove some eval interfaces, need to re-think those.

* Implement net.Server and remainder of net.Socket using active evals

* Implement dispose for active evaluations

* Use trace for express requests

* Handle sending buffers through evaluation events

* Make event logging a bit more clear

* Fix some errors due to us not actually instantiating until connect/listen

* is this a commit message?

* We can just create the evaluator in the ctor

Not sure what I was thinking.

* memory leak for you, memory leak for everyone

* it's a ternary now

* Don't dispose automatically on close or error

The code may or may not be disposable at that point.

* Handle parsing buffers on the client side as well

* Remove unused protobuf

* Remove TypedValue

* Remove unused forkProvider and test

* Improve dispose pattern for active evals

* Socket calls close after error; no need to bind both

* Improve comment

* Comment is no longer wishy washy due to explicit boolean

* Simplify check for sendHandle and options

* Replace _require with __non_webpack_require__

Webpack will then replace this with `require` which we then provide to
the vm sandbox.

* Provide path.parse

* Prevent original-fs from loading

* Start with a pid of -1

vscode immediately checks the PID to see if the debug process launch
correctly, but of course we don't get the pid synchronously.

* Pass arguments to bootstrap-fork

* Fully implement streams

Was causing errors because internally the stream would set this.writing
to true and it would never become false, so subsequent messages would
never send.

* Fix serializing errors and streams emitting errors multiple times

* Was emitting close to data

* Fix missing path for spawned processes

* Move evaluation onDispose call

Now it's accurate and runs when the active evaluation has actually
disposed.

* Fix promisifying fs.exists

* Fix some active eval callback issues

* Patch existsSync in debug adapter
2019-02-19 10:17:03 -06:00
Asher 73762017c8
Fix failure due to included files when using vscode's log level enum 2019-02-07 14:17:14 -06:00
Asher e4ff8e1c63
Set shared process log level 2019-02-07 13:50:43 -06:00
Asher 86d70ec790
Add constants file 2019-02-07 13:11:01 -06:00
Asher 81f48b8b06
Add trash module 2019-02-07 11:05:17 -06:00
Asher 499798fc17
Wrap shared process in retry 2019-02-06 18:11:31 -06:00
Asher f034aee26e
Remove unused isCi var 2019-02-06 12:05:48 -06:00
Asher 972806b210
Remove no longer used and commented out VSCODE_ALLOW_IO line 2019-02-06 12:02:18 -06:00
Asher 559bdbc147
Mo re spa ci ng 2019-02-06 12:00:51 -06:00
Asher 33b4c96a27
Spa cing 2019-02-06 12:00:01 -06:00
Asher 588da0443c
Some cleanup
- Use whateverEmitter.event for the onWhatever methods.
- Add readonly to a bunch of things.
- Remove some redundancy in types.
- Move initializations out of the constructor and into the declarations
  where it was reasonable to do so.
- Disable a few no-any violations.
2019-02-06 11:53:23 -06:00
Asher e770920be0
Remove block padding (blank lines)
Also made a rule for it.
2019-02-05 18:09:04 -06:00
Asher 70ad911641
vscode-online -> vscode-remote 2019-02-05 15:26:57 -06:00
Kyle Carberry 797efe72fd
Fix loading within the CLI (#27)
* Fix loading within the CLI

* Remove app

* Remove promise handle

* Fix requested changes
2019-02-05 11:16:09 -06:00
Asher ebe5e1b1a9
Uploader online (#26) 2019-02-05 11:16:02 -06:00
Asher 3a88ae5fb2
Get search working and clean up disconnected client (#23)
* Use ipc instead of pipe

* Run callback passed to child process's send method

* It also returns true

* Correct send signature

* Kill processes when client disconnects
2019-02-05 11:15:59 -06:00
Kyle Carberry b4798d1a48
Fix syntax highlighting, process spawning, extensions, terminals (#22)
* Fix syntax highlighting, process spawning, extensions, terminals

* Replace colons in toISOString

* Move pathSets included in task
2019-02-05 11:15:59 -06:00
Kyle Carberry 9b1a635d63
Add static file serve for resources inside of data-directory (#19) 2019-02-05 11:15:59 -06:00
Asher c6d35d098a
Extension host (#20)
* 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
2019-02-05 11:15:58 -06:00
Asher 536ded2cc5
Add some debug logging 2019-02-05 11:15:58 -06:00
Asher 5cb657b415
Get forked watcher & searcher working 2019-02-05 11:15:56 -06:00
Kyle Carberry 4cd6bed8d2
Add stdio sources (#17) 2019-02-05 11:15:56 -06:00
Asher 704a0defc9
Centralize fork logging 2019-02-05 11:15:55 -06:00
Asher 8a789ac957
Get boostrap stuff forking
They don't run yet but seem to be forking correctly now.
2019-02-05 11:15:55 -06:00
Asher cba8196c19
Propagate log level to client 2019-02-05 11:15:54 -06:00
Asher 777f460957
Use options instead of separate tsconfig
Negates the need to duplicate the HappyPack config.
2019-02-05 11:15:53 -06:00
Asher e7d7ff3733
Add some debug logging to the shared process 2019-02-05 11:15:53 -06:00
Asher a33d69232a
Add log level to logger
This is mostly so I can avoid the request logging which pushes out other
logs pretty fast.
2019-02-05 11:15:52 -06:00
Asher 36a2d26148
Get shared process socket path to the environment service 2019-02-05 11:15:52 -06:00
Asher 4eb9f87217
Fix server crashing when sending data on closing/closed socket 2019-02-05 11:15:51 -06:00
Asher 811260cc80
Hook up shared process sorta 2019-02-05 11:15:51 -06:00
Kyle Carberry d827015b40
Add shared process active message (#16)
* Add shared process active message

* Add client function for calling bootstrap fork
2019-02-05 11:15:50 -06:00
Asher 72bf4547d4
Getting the client to run (#12)
* 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
2019-02-05 11:15:50 -06:00
Kyle Carberry 05899b5edf
Create initial server layout (#11)
* Create initial server layout

* Adjust command name to entry

* Add @oclif/config as dependency

* Implement build process for outputting single binary

* Add init message

* Remove unused import, add tsconfig.json to .gitignore

* Accidently pushed wacky change to output host FS files

* Add options to createApp
2019-02-05 11:15:49 -06:00
Kyle Carberry a328204d80
Implement fs module (#3)
* 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
2019-02-05 11:15:47 -06:00
Kyle Carberry da27bc0f04
Document client functions 2019-02-05 11:15:47 -06:00
Kyle Carberry d61873e8da
Add commands (#2)
* Add remote command execution

* Add tests for environment variables and resize

* Fix tab spacing, add newlines

* Remove extra newline

* Add fork
2019-02-05 11:15:47 -06:00
Kyle Carberry 0e7e8086d4
Add test for string with wacky chars 2019-02-05 11:15:45 -06:00
Kyle Carberry 984420d181
Convert indentation to tabs 2019-02-05 11:15:44 -06:00
Kyle Carberry 8ed940ac09
Add test for promises 2019-02-05 11:15:44 -06:00
Kyle Carberry cff746db32
Add evaluate 2019-02-05 11:15:44 -06:00