Commit Graph

131 Commits

Author SHA1 Message Date
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
dc1a16ee0b
Revert "Add back context to patch"
This reverts commit b4710a1494.
2019-02-06 13:20:40 -06:00
Asher
b4710a1494
Add back context to patch 2019-02-06 13:18:44 -06:00
Asher
428729769b
Use nativeNodeRequire 2019-02-06 13:04:54 -06:00
Asher
86045e32c6
Remove context from patch 2019-02-06 13:00:24 -06:00
Asher
66aceb38df
Minimize patched lines 2019-02-06 12:59:03 -06:00
Asher
076d80081d
Use number of cpus - 1 for HappyPack 2019-02-06 12:08:31 -06:00
Asher
f034aee26e
Remove unused isCi var 2019-02-06 12:05:48 -06:00
Asher
ddf96077a3
Pass builtin extension dir to vscode 2019-02-06 11:01:15 -06:00
Asher
a85af49c58
Explicitly exclude markdown.css
Apparently !! doesn't work as advertised (or I don't understand how it's
supposed to work).
2019-02-05 11:16:08 -06:00
Asher
c80b2fabc3
Use inline file-loader for require.toUrl
Instead of trying to match on the string, because that string could be
anything or change in future versions.
2019-02-05 11:16:08 -06:00
Asher
55f9c81516
Fix markdown CSS being included in main CSS 2019-02-05 11:16:07 -06:00
Asher
6bb62005cb
Fix require.toUrl and walkthroughs 2019-02-05 11:16:06 -06:00
Asher
a353a59945
Move wheel event change out of patch 2019-02-05 11:16:06 -06:00
Asher
b40722869e
Move mouse wheel fix out of patch 2019-02-05 11:16:05 -06:00
Asher
383c44af07
Fix scrolling on Firefox 2019-02-05 11:16:04 -06:00
Asher
e1101c195d
Fix refactoring 2019-02-05 11:16:04 -06:00
Asher
6c4e2f9251
Terminal pasting 2019-02-05 11:16:03 -06:00
Asher
bef46391fa
Enable native clipboard for editor and inputs
StackOverflow will be useful again.
2019-02-05 11:16:02 -06:00
Asher
ebe5e1b1a9
Uploader online (#26) 2019-02-05 11:16:02 -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
Asher
e43e7b36e7
bob it...twist it...patch it 2019-02-05 11:15:58 -06:00
Asher
b1cd5c142f
Fix some styling issues 2019-02-05 11:15:55 -06:00
Asher
15bfd15742
Implement global storage database channel client
Since our channels don't actually go back to the server or anything like
that. Could be something to look into though.
2019-02-05 11:15:54 -06:00
Asher
cba8196c19
Propagate log level to client 2019-02-05 11:15:54 -06:00
Asher
4e6d6f0725
Add ignore-loader dependency and ignore more things 2019-02-05 11:15:51 -06:00
Asher
811260cc80
Hook up shared process sorta 2019-02-05 11:15:51 -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
Asher
2ff34bc5e2
Client partially loaded
Need to resolve the remaining modules and then check and apply any
necessary patches.
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