Anmol Sethi
9917da068a
v3.7.0
2020-11-16 11:11:50 -05:00
Anmol Sethi
40a7c11ce3
node/routes: Fix error handling
...
We should always send HTML if the user agent expects it.
If they do not, they should clearly indicate such via the Accept header.
Closes #2297
2020-11-13 18:44:28 -05:00
Asher
6f14b8b8dd
Add separate handler for error
...
Feels like it parallels better with the other handlers.
2020-11-12 12:07:45 -06:00
Asher
b73ea2fea2
Unbind message handler itself after getting message
...
Also switch `once` to `on` since we `off` them later anyway so no point
in making Node do it twice.
2020-11-12 12:03:28 -06:00
Asher
e1702a1d21
Merge branch master into code-asher/ch1385
2020-11-12 11:52:02 -06:00
Asher
5499a3d125
Use baseUrl when redirecting from domain proxy
...
This will make the route more robust since it'll work under more than
just the root.
2020-11-12 11:23:52 -06:00
Asher
31b67062b0
Remove <type> from onMessage
...
Turns out that while Typescript can't infer the callback return type
from it, Typescript can do the opposite and infer it from the callback
return type.
2020-11-12 11:17:45 -06:00
Asher
72931edcf0
Fix cleanup after getting message from vscode
2020-11-12 11:16:21 -06:00
Asher
79478eb89f
Clarify some points around the cookie domain
...
Also add a check that the domain has a dot. This covers the localhost
case as well, so remove that.
2020-11-10 18:53:38 -06:00
Asher
4574593664
Refactor vscode init to use async
...
Hopefully is a bit easier to read.
2020-11-10 18:21:20 -06:00
Asher
71850e312b
Avoid setting ?to=/
...
That's the default so it's extra visual noise.
2020-11-10 18:14:18 -06:00
Asher
b8340a2ae9
Close sockets correctly
2020-11-10 17:55:04 -06:00
Asher
f706039a9d
Re-add TLS socket proxy
2020-11-10 17:55:03 -06:00
Asher
de4949571c
Document getFirstPath better
2020-11-10 17:02:39 -06:00
Asher
0a01338edd
Deduplicate child process message dance
2020-11-10 16:36:46 -06:00
Anmol Sethi
fe399ff0fe
Fix formatting
2020-11-06 14:47:08 -05:00
Anmol Sethi
277211c4ce
plugin: Make init and applications callbacks optional
2020-11-06 14:47:08 -05:00
Anmol Sethi
9453f891df
plugin.ts: Fix usage of routerPath in mount
2020-11-06 10:13:01 -05:00
Anmol Sethi
14f408a837
plugin: Plugin modules now export a single top level identifier
...
Makes typing much easier. Addresse's Will's last comment.
2020-11-06 10:13:01 -05:00
Anmol Sethi
8a8159c683
plugin: More review fixes
...
Next commit will address Will's comments about the typings being weird.
2020-11-06 10:13:01 -05:00
Anmol Sethi
706bc23f04
plugin: Fixes for CI
2020-11-06 10:13:01 -05:00
Anmol Sethi
af73b96313
routes/apps.ts: Add example output
2020-11-06 10:12:47 -05:00
Anmol Sethi
2a13d003d3
plugin.ts: Add homepageURL to plugin and application
2020-11-06 10:12:47 -05:00
Anmol Sethi
687094802e
plugin.ts: Make application endpoint paths absolute
2020-11-06 10:12:46 -05:00
Anmol Sethi
139a28e0ea
plugin.ts: Describe private counterpart functions
...
Addresses Will's comments.
2020-11-06 10:12:46 -05:00
Anmol Sethi
e03bbe3149
routes/apps.ts: Implement /api/applications endpoint
2020-11-06 10:12:46 -05:00
Anmol Sethi
afff86ae9c
plugin.ts: Adjust to implement pluginapi.d.ts correctly
2020-11-06 10:12:46 -05:00
Anmol Sethi
fed545e67d
plugin.d.ts -> pluginapi.d.ts
...
More clear.
2020-11-06 10:12:46 -05:00
Anmol Sethi
8d3a7721fe
plugin.d.ts: Document plugin priority correctly
2020-11-06 10:12:46 -05:00
Anmol Sethi
75e52a3774
plugin.ts: Fixes for @code-asher
2020-11-06 10:12:46 -05:00
Anmol Sethi
f4d7f00033
plugin.ts: Fixes for @wbobeirne
2020-11-06 10:12:46 -05:00
Anmol Sethi
30d2962e21
src/node/plugin.ts: Warn on duplicate plugin and only load first
2020-11-06 10:12:46 -05:00
Anmol Sethi
82e8a00a0d
Fix CI
2020-11-06 10:12:46 -05:00
Anmol Sethi
e08a55d44a
src/node/plugin.ts: Implement new plugin API
2020-11-06 10:12:45 -05:00
Asher
959497067c
Document HttpError
...
Also type the status.
2020-11-05 17:07:58 -06:00
Asher
f7076247f9
Move domain proxy to routes
...
This matches better with the other routes.
Also add a missing authentication check to the path proxy web socket.
2020-11-05 17:07:32 -06:00
Asher
f6c4434191
Tweak proxy fallthrough behavior
...
It will now redirect all HTML requests. Also it avoids req.accepts since
that's always truthy.
2020-11-05 16:49:30 -06:00
Asher
cb991a9143
Handle errors for JSON requests
...
Previously it would have just given them the error HTML.
2020-11-05 15:19:56 -06:00
Asher
3f1750cf83
Fix destroying response in update again
...
I added another reject that doesn't destroy the response.
2020-11-05 15:08:10 -06:00
Asher
7b2752a62c
Move websocket routes into a separate app
...
This is mostly so we don't have to do any wacky patching but it also
makes it so we don't have to keep checking if the request is a web
socket request every time we add middleware.
2020-11-05 15:08:09 -06:00
Asher
9e09c1f92b
Upgrade to Express 5
...
Now async routes are handled!
2020-11-05 15:08:08 -06:00
Asher
8252c372af
Provide a way to tell when event handlers are finished
...
This lets us actually wait for disposal before a graceful exit.
2020-11-05 15:08:07 -06:00
Asher
396af23842
Kill VS Code when process exits
...
This is to ensure it doesn't hang around.
2020-11-04 17:07:41 -06:00
Asher
34225e2bdf
Use ensureAuthenticated as middleware
2020-11-04 17:07:40 -06:00
Asher
476379a77e
Fix cookie domain
...
Had double Domain=
2020-11-04 17:07:39 -06:00
Asher
210fc049c4
Document VS Code endpoints
2020-11-04 17:07:39 -06:00
Asher
e5c8e0aad1
Remove useless ||
2020-11-04 17:07:38 -06:00
Asher
c5ce365482
Use query variable to force update check
2020-11-04 17:07:37 -06:00
Asher
a653b93ce2
Include protocol on printed address
...
This makes it clickable from the terminal.
2020-11-04 17:07:36 -06:00
Asher
e2c35facdb
Remove invalid comment on maybeProxy
...
It no longer handles authentication.
2020-11-04 17:07:35 -06:00
Asher
75b93f9dc5
Fix bind address priority
...
Broke when converting to a loop.
2020-11-04 17:07:24 -06:00
Asher
8066da12fe
Remove unused Locals interface
2020-11-03 15:37:22 -06:00
Asher
03e0013112
Unbind error/exit events once handshakes resolve
2020-11-03 15:27:21 -06:00
Asher
e243f6e369
Return early when forking to reduce indentation
2020-11-03 15:27:21 -06:00
Asher
c10450c4c5
Move isFile into util
...
That allows its use in entry.ts as well.
2020-11-03 15:27:20 -06:00
Asher
c72c53f64d
Fix not being able to dispose vscode after failed disposal
2020-11-03 14:36:27 -06:00
Asher
f4e5855318
Simplify update request
2020-11-03 14:35:23 -06:00
Asher
3a074fd844
Skip unnecessary auth type check when using --link
2020-11-03 14:30:34 -06:00
Asher
8a9e61defb
Use Addr interface everywhere and loop over arg sources
2020-11-03 14:28:49 -06:00
Asher
1067507c41
Proxy to 0.0.0.0 instead of localhost
2020-11-03 14:28:48 -06:00
Anmol Sethi
f9e0990594
Merge pull request #2255 from cdr/self-signed-3b2c
...
Fix self signed certificate for iPad
2020-11-03 14:04:47 -05:00
Asher
9ad7d0b7a3
Fix potential 500 when loading in parallel
2020-10-30 16:16:46 -05:00
Asher
07e7c38ea2
Immediately pause web socket
...
This will buffer any data sent to it until something is ready to listen
on it.
2020-10-30 16:16:46 -05:00
Anmol Sethi
a1b61d1659
src/node/util.ts: Mark generated certificates as CA
...
Required for access under iPad.
2020-10-30 13:36:53 -04:00
Anmol Sethi
bae28727bd
src/node/cli.ts: Add --cert-host to configure generated certificate hostname
2020-10-30 13:36:53 -04:00
Anmol Sethi
8b85006996
src/node/util.ts: Make certificate generation "modern"
...
Now we add a subject alt name, set extendedKeyUsage and use the
correct certificate extension.
The above allow it to be properly trusted by iOS.
See https://support.apple.com/en-us/HT210176
*.cert isn't a real extension for certificates, *.crt is correct
for it to be recognized by e.g. keychain or when importing as a profile
into iOS.
Updates #1566
I've been able to successfully connect from my iPad Pro now to my
code-server instance with a self signed certificate! Next commit
will be docs.
2020-10-30 13:36:53 -04:00
Anmol Sethi
10b3028196
util: Generate self signed certificate into data directory
...
Closes #1778
2020-10-30 13:36:53 -04:00
Asher
f2f1fee6f1
Short-circuit heartbeat when alive
2020-10-27 17:48:37 -05:00
Asher
504d89638b
Fix open line being printed when open fails
...
Opening the URL can fail if the user doesn't have something appropriate
installed to handle it.
2020-10-27 17:43:11 -05:00
Asher
dc177ab505
Unambiguify address replacement
...
Co-authored-by: Teffen Ellis <TeffenEllis@users.noreply.github.com>
2020-10-27 17:38:54 -05:00
Asher
cde94d5ed4
Remove redundant serverAddress check
...
We now guarantee there is an address.
2020-10-27 17:35:42 -05:00
Asher
305348f0ac
Improve proxy fallthrough logic
...
- Use accept header.
- Match /login and /login/ exactly.
- Match /static/ (trailing slash).
- Use req.path. Same result but feels more accurate to me.
2020-10-27 17:31:37 -05:00
Asher
6ab6cb4f07
Fix error handler types
2020-10-27 17:20:13 -05:00
Asher
6422a8d74b
Fix webview resource path
2020-10-27 17:17:05 -05:00
Asher
257d9a4fa4
Make authentication work with sub-domain proxy
2020-10-26 17:56:14 -05:00
Asher
112eda4605
Convert routes to Express
2020-10-26 17:56:13 -05:00
Asher
4b6cbacbad
Add file for global constants
2020-10-26 17:56:12 -05:00
Asher
71dc5c7542
Switch to Express
...
It doesn't do anything yet.
2020-10-26 17:56:11 -05:00
Asher
8e93e28162
Strip config file password from debug log
2020-10-20 16:18:28 -05:00
Asher
9f25cc6d5d
Move providers from `app` to `routes`
2020-10-20 16:18:27 -05:00
Asher
2928d362fa
Move heart and AuthType out of http
...
This file is going to get blasted in favor of Express.
2020-10-20 16:18:24 -05:00
Asher
dcb303a437
Move argument defaults into setDefaults
2020-10-20 16:15:13 -05:00
Asher
a7c43a8eb6
Remove CSP tag from VS Code html
...
This matches with the html in the VS Code repo and also fixes a problem
with the worker which loads HTML using data: and then can't load any
scripts because 'self' doesn't work.
2020-10-14 17:11:24 -05:00
Asher
30d05aeb4b
Update require base URL for VS Code loader
...
It needs to have the scheme otherwise when resolving these modules the
loader will default to the file scheme and fail to fetch.
2020-10-14 17:11:24 -05:00
Asher
07580e1fcb
Add path to loader for tas-client-umd
...
It's a new module used by 1.50.0.
2020-10-14 17:11:23 -05:00
Anmol Sethi
00383b79b9
Merge pull request #2099 from cdr/open-in
...
Make opening in an existing instance work outside code-server
2020-10-12 01:14:15 -04:00
Asher
c6ba12942c
Filter blank plugin directories ( #2187 )
...
I neglected to realize that "".split(":") is an array with "" in it.
2020-10-11 02:14:43 -04:00
Asher
26c735b434
Remove tryParse
...
Now that the exception handling happens further up there doesn't seem to
be an advantage in having this in a separate method.
2020-10-09 17:05:21 -05:00
Asher
466a04f874
Remove pointless use of openInFlagCount
...
It'll always be zero here.
2020-10-09 16:57:45 -05:00
Asher
e0769dc13a
Move config file info log
...
Otherwise it outputs when trying to open a file in an existing instance
externally. Externally there isn't an environment variable to branch on
to skip this line so instead output it with the other info lines in the
child process.
2020-10-09 16:57:44 -05:00
Asher
fe19391c03
Read most recent socket path from file
2020-10-09 16:57:43 -05:00
Asher
021c084e43
Move log level defaults into setDefaults
...
This will allow cliArgs to be only the actual arguments the user passed
which will be used for some logic around opening in existing instances.
2020-10-09 16:57:42 -05:00
Asher
1902296702
Remove references to --open-in flag
2020-10-09 16:57:41 -05:00
Asher
bb1bf88439
Fix wrapper.start not actually waiting for anything
2020-10-09 16:57:41 -05:00
Asher
0a8e71c647
Refactor wrapper
...
- Immediately create ipcMain so it doesn't have to be a function which I
think feels cleaner.
- Move exit handling to a separate function to compensate (otherwise
the VS Code CLI for example won't be able to exit on its own).
- New isChild prop that is clearer than checking for parentPid (IMO).
- Skip all the checks that aren't necessary for the child process (like
--help, --version, etc).
- Since we check if we're the child in entry go ahead and move the
wrap code into entry as well since that's basically what it does.
- Use a single catch at the end of the entry.
- Split out the VS Code CLI and existing instance code into separate
functions.
2020-10-09 16:57:40 -05:00
Asher
6bdaada689
Move uncaught exception handler to wrapper
...
Feels more appropriate there to me.
2020-10-09 16:50:24 -05:00
Anmol Sethi
1e4e72aa5b
Merge pull request #2184 from nhooyr/link-flag-1547
...
cloud: Rename --coder-bind to --link
2020-10-09 13:53:55 -04:00
Anmol Sethi
fcfb03382a
cloud: Add mention of cloud repo
2020-10-09 12:57:48 -04:00
Anmol Sethi
d67bd3f604
cloud: Rename --coder-bind to --link
2020-10-09 12:57:20 -04:00
Anmol Sethi
2d1de749f4
Unlink socket before using ( #2181 )
...
See https://stackoverflow.com/a/34881585/4283659
Closes #1538
2020-10-09 12:34:52 -04:00