Commit Graph

189 Commits

Author SHA1 Message Date
Asher
63f7c57b4e
Randomly generate password 2019-03-04 11:46:34 -06:00
Kyle Carberry
e2ec010a1d
Add allow-http flag 2019-03-04 07:45:35 +00:00
Kyle Carberry
db4a71aefe
Merge branch 'master' of github.com:codercom/vscode-online 2019-03-01 16:55:34 -06:00
Kyle Carberry
185c811354
Update default port to 8443 2019-03-01 16:55:31 -06:00
Asher
c384dfb815 Use Coder marketplace (#44)
* Allow setting marketplace URL

* Add zip fill

* Comment out CSP for now

* Fill zip on client as well

Probably will need it for client-side extensions.

* Don't use itemUrl (it's undefined)

* Remove extension rating

* Hide ratings with CSS instead of patching them out

* Add hard-coded fallback for service URL

* Only use coder-develop for extapi if env is explicitly development

* Don't use coder-develop at all for extapi

If you need it, you can set SERVICE_URL.
2019-03-01 15:51:11 -06:00
Kyle Carberry
06855adaa5
Create working directory if it doesn't exist 2019-03-01 10:33:16 -06:00
Kyle Carberry
38b500fc02
Inherit theme color for brief loading screen 2019-03-01 09:45:59 -06:00
Kyle Carberry
94edbd59e9
Bypass certificates on bypass auth 2019-02-28 16:06:17 -06:00
Kyle Carberry
43048c6d12
Force certificates 2019-02-28 14:34:54 -06:00
Kyle Carberry
e8174095ca
Add windows support (#41)
* Add windows support

* Improve multi-platform support

* Install with network-concurrency 1

* Use file-glob to upload windows binary

* Don't install packages in parallel if on windows

* Rename vscode-remote to code-server

* Add output at intervals so CI doesn't kill build

* Update all tasks to provide timed output

* Don't perform tasks sync otherwise we can't log
2019-02-28 14:04:19 -06:00
Kyle Carberry
83b64365ba
Convert to node-pty-prebuilt 2019-02-27 22:16:31 -06:00
Kyle Carberry
f6d2d17085
Update ide-api 2019-02-27 15:36:39 -06:00
Asher
68cb19ab6f
Use client's OS for keybindings
Fixes https://github.com/codercom/frontend/issues/331.
2019-02-27 15:17:01 -06:00
Kyle Carberry
676b30934f
Add ripgrep, fill native fs functions, add ping endpoint (#39)
* Add ripgrep, fill native fs functions, add ping endpoint

* Make show in folder redirect to the workspace
2019-02-27 15:12:26 -06:00
Asher
3bacbca325
Fix images not appearing (iconv encoding issue)
Fixed by returning the original buffer from `fs.read` and then just
using whatever encoding was passed in to iconv, so this should all work
exactly the same now as it does on native Node.
2019-02-27 14:44:25 -06:00
Kyle Carberry
20c0fc4c52
Use default user shell 2019-02-27 12:43:00 -06:00
Kyle Carberry
f421de29d0
Fix IDE typing for custom event 2019-02-27 09:38:45 -06:00
Kyle Carberry
0b5b7afbac
Update IDE api 2019-02-27 09:03:44 -06:00
Asher
71b7bbf99a
Check EISDIR for Mac when performing mkdir 2019-02-26 18:23:33 -06:00
Asher
d556e110cb
Include code in stringified errors
This is done by returning the entire error stringified instead of just
the message.

This fixes the issue with the "save as" dialog.
2019-02-26 16:27:01 -06:00
Kyle Carberry
be3f0c437f
Fixes browser app, adds no-auth (#38)
* Add no-auth flag

* Install packages for app dir
2019-02-26 16:03:42 -06:00
Asher
a07d0c9c3d
Fix file open overflow on Firefox 2019-02-26 15:09:59 -06:00
Asher
f05ce105e8
Update dialog to use workbench instead of client 2019-02-26 14:41:34 -06:00
Asher
fa26c0bcd6
Fix undefined navigator in bootstrap fork
Due to some files that now import browser.ts.
2019-02-26 14:23:10 -06:00
Asher
04e02bdb08
Fix extra CSS being included on the client 2019-02-26 14:23:01 -06:00
Kyle Carberry
7b5871136b Add IDE API (#36) 2019-02-26 12:12:42 -06:00
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
80d9baadc0
Attempt to require spdlog and node-pty 2019-02-22 18:57:19 -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
670003c3c9
Fix browser app 2019-02-21 18:07:52 -06:00
Asher
7edf797efc
Parse args sent through evaluation function
Previously they'd go in still stringified so we didn't get a chance to
convert buffer objects back to buffers, for example, making things like
`fs.write` write `[object Object]` to files.
2019-02-21 14:11:49 -06:00
Asher
fe107802e3
Fix stringifying Uint8Array 2019-02-21 14:11:49 -06:00
Asher
e4150de154
Fix handleExternalDrop event 2019-02-21 14:11:49 -06:00
Asher
227474c156
Fix storage path ending replacement 2019-02-21 14:11:49 -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
bdd24081ab
Get version from vscode's package.json 2019-02-20 12:54:26 -06:00
Asher
6b5f50cddf
Handle shared process error event; add some logging 2019-02-19 18:02:01 -06:00
Asher
6708c8a5c8
Prevent shared process from loading client code
I think this happened when I added the trash code, since that's what
includes the client.
2019-02-19 17:58:17 -06:00
Asher
33c2d451c4
Fix incorrect options to node-pty 2019-02-19 16:46:42 -06:00
Asher
ed50c64a77
Move and refactor net tests 2019-02-19 16:36:35 -06:00
Asher
e6f8786df2
Move node-pty tests 2019-02-19 15:38:17 -06:00
Asher
3685e6555c
Move and refactor child_process tests 2019-02-19 15:30:56 -06:00
Asher
d80f82ab98
Move and refactor fs tests 2019-02-19 14:21:04 -06:00
Asher
2889b3fede
Add test for disposing active evaluations 2019-02-19 10:42:32 -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
5d02194048
Throw errors if accessing paths before set 2019-02-06 16:55:29 -06:00
Asher
5ea1d8b2aa
Bit of cleanup, some test fixes, moving some funcs 2019-02-06 16:45:11 -06:00
Asher
66aceb38df
Minimize patched lines 2019-02-06 12:59:03 -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
ddf96077a3
Pass builtin extension dir to vscode 2019-02-06 11:01:15 -06:00
Asher
91bd6775c3
Move node fill implementations to ide package 2019-02-06 10:49:29 -06:00
Asher
670b13798a
Remove URI factory
It's not actually used anymore.
2019-02-06 10:41:59 -06:00
Asher
1b0a962c0d
Remove loading screen and move require.posix fill 2019-02-06 10:32:58 -06:00
Asher
d705bb1180
Rename Client -> IdeClient 2019-02-06 10:18:59 -06:00
Asher
94f977845a
Make event listeners never undefined, remove unused func 2019-02-06 10:16:43 -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
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
ec515c0a3f
Skip unsupported actions and menu items
Using this to skip the toggle developer tools action since there doesn't
seem to be any way to do that from the browser. There might be others we
will need to add.
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
d677a2ee37
Fix gutter icons from extensions 2019-02-05 11:16:05 -06:00
Asher
e1101c195d
Fix refactoring 2019-02-05 11:16:04 -06:00
Asher
c594af4396
More exit debugging
Papers, please.
2019-02-05 11:16:03 -06:00
Asher
e585587e67
Fix redundant aliases in command palette 2019-02-05 11:16:03 -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
Asher
62b1e0ef00
Surgical removal of a benign TODO 2019-02-05 11:16:02 -06:00
Asher
4a8d11995b
@ts-ignore-be-gone
Spray liberally.
2019-02-05 11:16:01 -06:00
Asher
8fc959e256
There once was an unnecessary ISO date string fill 2019-02-05 11:16:01 -06:00
Asher
8654f9cb06
Fix client not using log dir from shared proc
Needed the path set promise to run first.

And removed the protocol promise stuff that was hanging around not doing
anything useful.
2019-02-05 11:16:00 -06:00
Asher
a0c443d8d3
Sometimes an exec has no callback
How lonely.
2019-02-05 11:16:00 -06:00
Kyle Carberry
20f5d8eeed
Add active evals (#25)
* Add active evals

* Convert type of stats to date or string

* Fix generic overloads for run

* Lower evaluate timeout

* Add comment for createWriteStream
2019-02-05 11:16:00 -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
b08237d63f
Fill net.createServer 2019-02-05 11:15:57 -06:00