Aaron O'Mullan
375ce63c63
feat(core): streams ( #12596 )
...
This allows resources to be "streams" by implementing read/write/shutdown. These streams are implicit since their nature (read/write/duplex) isn't known until called, but we could easily add another method to explicitly tag resources as streams.
`op_read/op_write/op_shutdown` are now builtin ops provided by `deno_core`
Note: this current implementation is simple & straightforward but it results in an additional alloc per read/write call
Closes #12556
2021-11-09 19:26:17 +01:00
Luca Casonato
0de6d1edc4
fix(fetch): set content-length for empty POST/PUT ( #12703 )
...
This commit changes `fetch` to set `content-length: 0` on POST and PUT
requests with no body.
2021-11-09 12:10:40 +01:00
Luca Casonato
75793baae8
Revert "refactor(ext/http): rewrite hyper integration and fix bug ( #12332 )" ( #12704 )
...
This reverts commit 5b1e537446
.
2021-11-09 12:10:21 +01:00
Bert Belder
5b1e537446
refactor(ext/http): rewrite hyper integration and fix bug ( #12332 )
...
Fixes: #12193
2021-11-08 12:49:11 -08:00
Luca Casonato
80d3a5f8be
feat: update to V8 9.7 ( #12685 )
...
This commit updates the rusty_v8 to 0.34.0. This commit also adds
the required typings for the new Array#findLast and Array#findIndexLast
methods.
2021-11-08 14:24:54 +01:00
David Sherret
0ec151b8cb
chore: upgrade deno_ast to 0.5.0 ( #12595 )
2021-11-01 16:22:27 -04:00
Kitson Kelly
d3662e487d
feat(ext/fetch): support fetching local files ( #12545 )
...
Closes #11925
Closes #2150
Co-authored-by: Bert Belder <bertbelder@gmail.com>
2021-11-01 15:29:46 +11:00
Kenta Moriuchi
95b9e5f30f
feat(ext/console): Display error.cause in console ( #12462 )
2021-10-30 19:25:46 +02:00
David Sherret
d44011a69e
fix(runtime): require full read and write permissions to create symlinks ( #12554 )
2021-10-29 17:05:55 -04:00
Luca Casonato
b7341438f2
feat: stabilize Deno.startTls ( #12581 )
...
This commit stabilizes `Deno.startTls` and removes `certFile` from the
`StartTlsOptions`.
2021-10-29 17:13:31 +02:00
Kitson Kelly
a065604155
feat(cli): enable useUnknownInCatchVariables
by default ( #12547 )
...
Closes #11826
**BREAKING CHANGE** this behaviour was disable when introduced in Deno 1.14/TypeScript 4.4. It will highlight code that unsafely handles variables that are caught, and will cause type errors in unsafe code.
2021-10-28 08:43:40 +11:00
Leo K
6268703487
fix(ext/http): allow multiple values in upgrade header for websocket ( #12551 )
...
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2021-10-26 23:06:44 +02:00
Bert Belder
cf9c4f0031
feat(ext/net): add TlsConn.handshake() ( #12467 )
...
A `handshake()` method was added that returns when the TLS handshake is
complete. The `TlsListener` and `TlsConn` interfaces were added to
accomodate this new method.
Closes: #11759 .
2021-10-26 22:27:47 +02:00
Yoshiya Hinosawa
a9b34118a9
feat(runtime): add Deno.addSignalListener API ( #12512 )
2021-10-26 12:03:38 +09:00
Andreu Botella
e39dace8cb
fix(tls): Make TLS clients support HTTP/2 ( #12530 )
...
`fetch()` and client-side websocket used to support HTTP/2, but this
regressed in #11491 . This patch reenables it by explicitly adding `h2`
and `http/1.1` to the list of ALPN protocols on the HTTP and websocket
clients.
2021-10-25 18:41:06 +02:00
Bartek Iwańczuk
2997021615
fix: declare web types as global ( #12497 )
...
Co-authored-by: Feng Yu <F3n67u@outlook.com>
2021-10-21 08:47:14 +02:00
Bert Belder
6a96560986
fix(ext/net): fix TLS bugs and add 'op_tls_handshake' ( #12501 )
...
A bug was fixed that could cause a hang when a method was
called on a TlsConn object that had thrown an exception earlier.
Additionally, a bug was fixed that caused TlsConn.write() to not
completely flush large buffers (>64kB) to the socket.
The public `TlsConn.handshake()` API is scheduled for inclusion in the
next minor release. See https://github.com/denoland/deno/pull/12467 .
2021-10-20 01:30:04 +02:00
Nayeem Rahman
d77a4f1d43
fix(cli/tests): flaky Deno.watchFs() tests ( #12485 )
2021-10-19 07:50:13 -04:00
Bert Belder
ff932b411d
fix(core): poll async ops eagerly ( #12385 )
...
Currently all async ops are polled lazily, which means that op
initialization code is postponed until control is yielded to the event
loop. This has some weird consequences, e.g.
```js
let listener = Deno.listen(...);
let conn_promise = listener.accept();
listener.close();
// `BadResource` is thrown. A reasonable error would be `Interrupted`.
let conn = await conn_promise;
```
JavaScript promises are expected to be eagerly evaluated. This patch
makes ops actually do that.
2021-10-17 19:50:42 +02:00
Bert Belder
62f43030b4
chore(cli/tests): fix flaky fs watcher tests ( #12385 )
...
On OS X, the watcher sometimes witnesses the creation of it's own root
directory. Creating that directory using a sync op instead of an async
op sidesteps the issue.
2021-10-17 15:12:48 +02:00
Kenta Moriuchi
1d55fcb74c
fix(console): fix display of primitive wrapper objects ( #12425 )
2021-10-14 12:52:08 +09:00
Divy Srivastava
58f04d8e46
feat(ext/crypto): implement deriveKey ( #12117 )
2021-10-12 16:09:46 +05:30
Aaron O'Mullan
5bad8e1773
perf(webidl): inline ResponseInit converter ( #12285 )
2021-10-11 23:43:52 +02:00
Luca Casonato
c40d5040cd
fix(http): don't expose body on GET/HEAD requests ( #12260 )
...
GET/HEAD requests can't have bodies according to `fetch` spec. This
commit changes the HTTP server to hide request bodies for requests with
GET or HEAD methods.
2021-10-11 18:39:55 +02:00
Divy Srivastava
3b2cb8e711
feat(ext/crypto): implement AES-CBC encryption & decryption ( #12123 )
...
* initial stuff
* stuff
* merge stuff
* cleanup
* fmt
* length
* update lockfile
* decrypt
* fixy
* clippy hello?
* hmm
* fixs
* fix lint
* add AesCbcParams
* fixes
* fixy
* lockfile fixy
* fix dumb assertions
* re run CI
* rerun CI
* rerun CI
2021-10-11 16:37:51 +02:00
David Sherret
426ebf854a
feat(unstable/test): imperative test steps API ( #12190 )
2021-10-11 09:45:02 -04:00
Feng Yu
668b400ff2
feat(runtime): improve error messages of runtime fs ( #11984 )
...
This commit annotates errors returned from FS Deno APIs to include
paths that were passed to the API calls.
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-10-11 15:21:18 +02:00
Ryan Dahl
6ac0337165
feat: Stabilize Deno.kill and Deno.Process.kill ( #12375 )
...
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-10-10 15:48:26 +02:00
Feng Yu
ffea0f198c
test: remove duplicate import ( #12374 )
2021-10-10 15:24:03 +02:00
Divy Srivastava
a5d3c8b06c
feat(ext/crypto): implement deriveBits for ECDH (p256) ( #11873 )
2021-10-08 17:29:36 +02:00
Aaron O'Mullan
370c27e09a
feat(core): cleaner opcall stack traces ( #12358 )
2021-10-07 18:39:27 +02:00
Bert Belder
822047b845
fix(runtime): don't equate SIGINT to SIGKILL on Windows ( #12356 )
2021-10-07 16:31:02 +02:00
Divy Srivastava
3aa8591595
feat(ext/crypto): export spki for RSA ( #12114 )
2021-10-06 11:18:12 +02:00
Divy Srivastava
8884141c3f
fix(ext/crypto): missing Aes key typings ( #12307 )
2021-10-03 15:24:46 +02:00
Ahab
198f5b9514
fix(ext/net): should not panic when listening to unix abstract address ( #12300 )
2021-10-02 19:09:59 +02:00
Divy Srivastava
5065c7bcd9
feat(ext/crypto): implement wrapKey ( #12125 )
2021-10-01 11:39:49 +02:00
Divy Srivastava
c0b6c0eea5
fix(ext/crypto): decode id-RSASSA-PSS with default params ( #12147 )
2021-10-01 11:14:16 +02:00
David Sherret
c3e441c5b5
fix: worker environment permissions should accept an array ( #12250 )
2021-09-30 15:50:59 -04:00
David Sherret
cdac190583
chore: ensure first process in shared flock test does not enter and exit lock before second enters ( #12255 )
2021-09-30 15:45:13 -04:00
Luca Casonato
0d7a417f33
feat(tls): custom in memory CA certificates ( #12219 )
...
This adds support for using in memory CA certificates for
`Deno.startTLS`, `Deno.connectTLS` and `Deno.createHttpClient`.
`certFile` is deprecated in `startTls` and `connectTls`, and removed
from `Deno.createHttpClient`.
2021-09-30 09:26:15 +02:00
Ahab
923d9c7786
fix(ext/fetch): avoid panic when header is invalid ( #12244 )
2021-09-29 18:42:06 +02:00
Luca Casonato
ff3a17b72d
fix: subprocess kill support on windows ( #12134 )
2021-09-27 12:18:02 +02:00
Ben Noordhuis
2b6f8d0187
fix(ext/http): include port number in h2 urls ( #12181 )
2021-09-26 20:26:16 +02:00
Aaron O'Mullan
3c88dffd32
fix(http): panic when responding to a closed conn ( #12216 )
...
Our oneshot receiver in `HyperService::call` would unwrap and panic, the `.await` on the oneshot receiver happens when the sender is dropped.
The sender is dropped in `op_http_response` because:
1. We take `ResponseSenderResource`
2. Then get `ConnResource` and early exit on failure (conn already closed)
3. The taken sender then gets dropped in this early exit before any response is sent over the channel
Fallbacking to returning a dummy response to hyper seems to be a fine quickfix
2021-09-25 13:22:19 +02:00
Casper Beyer
830586d242
test(cli): align unit test permissions with runtime test permissions ( #12189 )
2021-09-23 01:50:50 +02:00
Casper Beyer
20692f3e84
chore: replace calls to assertThrowsAsync with assertRejects ( #12176 )
2021-09-22 09:21:11 -04:00
Elias Sjögreen
60b68e63f1
test(ext/ffi): add tests for different parameter and return types ( #12158 )
2021-09-20 15:42:54 -07:00
David Sherret
7c0173df27
chore(tests): maybe fix flaky flock tests ( #12122 )
2021-09-17 14:17:01 -04:00
David Sherret
4c8ab33def
chore(tests): fix flaky fetchPostBodyTypedArray ( #12104 )
2021-09-17 09:02:44 -04:00
David Sherret
c8b43a0328
chore(tests): fix flaky flock tests ( #12099 )
2021-09-17 09:02:23 -04:00
Divy Srivastava
9270cad67c
fix(ext/crypto): don't use core.decode for encoding jwk keys ( #12088 )
2021-09-16 09:12:38 +02:00
Divy Srivastava
c41460ecc4
feat(ext/crypto): import RSA pkcs#8 keys ( #11891 )
2021-09-14 15:21:20 +02:00
Leo K
a655a0f3e4
feat(unstable): allow specifing gid and uid for subprocess ( #11586 )
2021-09-13 19:26:23 +02:00
Bartek Iwańczuk
274ff6c469
fix: change assertion in httpServerIncompleteMessage test ( #12052 )
2021-09-13 17:05:00 +02:00
Divy Srivastava
2199bdaf64
feat(ext/crypto): export RSA keys as pkcs#8 ( #11880 )
2021-09-13 11:33:28 +02:00
Nayeem Rahman
2cc1577d28
fix(ext/fetch): Properly cancel upload stream when aborting ( #11966 )
...
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-09-13 01:19:38 +02:00
Divy Srivastava
0520ae62dd
fix(ext/crypto): add HkdfParams and Pkdf2Params types ( #11991 )
2021-09-12 23:02:49 +02:00
Divy Srivastava
40c63d1255
feat(ext/crypto): verify ECDSA signatures ( #11739 )
2021-09-11 16:49:53 -04:00
Luca Casonato
e07f28d301
feat: add URLPattern API ( #11941 )
...
This adds support for the URLPattern API.
The API is added in --unstable only, as it has not yet shipped in any
browser. It is targeted for shipping in Chrome 95.
Spec: https://wicg.github.io/urlpattern/
Co-authored-by: crowlKats < crowlkats@toaxl.com >
2021-09-08 11:14:29 +02:00
Bartek Iwańczuk
2de5587547
fix(ext/http): resource leak if request body is not consumed ( #11955 )
2021-09-08 10:12:23 +02:00
David Sherret
e3a484ae44
fix: remove windows-only panic when calling Deno.kill
( #11948 )
2021-09-07 18:45:13 -04:00
Ryan Dahl
c132c8690b
BREAKING(unstable): Remove Deno.Signals enum, Deno.signals.* ( #11909 )
2021-09-06 10:05:33 -04:00
Craig Morten
930cb0afd8
chore(std/http): server module name migration ( #11890 )
2021-09-05 22:43:46 +02:00
Casper Beyer
ce79cb5797
refactor(testing): redirect console output via reporter ( #11911 )
...
This feeds console output to the reporter and handles silencing there
instead of in the JavaScript code.
2021-09-04 15:16:35 +02:00
Bartek Iwańczuk
c84532b6d5
chore: upgrade crates ( #11894 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2021-09-02 17:38:19 +02:00
Divy Srivastava
5ee2110179
feat(ext/crypto): support JWK export for HMAC ( #11864 )
2021-08-29 14:23:51 +02:00
Divy Srivastava
1f57cd2c0f
feat(ext/crypto): support JWK import for HMAC ( #11716 )
2021-08-27 13:19:41 +02:00
David Sherret
5d7d9d6443
chore(tests): improve unit tests using deferred
( #11842 )
2021-08-25 16:04:14 -04:00
Sean Michael Wykes
dccf4cbe36
feat(fetch): mTLS client certificates for fetch() ( #11721 )
...
This commit adds support for specifying client certificates when using fetch, by means of `Deno.createHttpClient`.
2021-08-25 14:25:12 +02:00
Dayan C. Galiazzi
873cce27b8
fix(ext/http): websocket upgrade header check ( #11830 )
2021-08-25 00:55:32 +02:00
Divy Srivastava
85a56e7144
feat(ext/crypto): implement encrypt, decrypt & generateKey for RSA-OAEP ( #11654 )
2021-08-24 21:59:02 +02:00
Nicolas Stucki
c4561ac969
feat(extensions/console): right align numeric columns in table ( #11748 )
2021-08-24 17:17:40 +02:00
Tilman Roeder
93d83a84db
feat(unstable): Add file locking APIs ( #11746 )
...
This commit adds following unstable APIs:
- Deno.flock()
- Deno.flockSync()
- Deno.funlock()
- Deno.funlockSync()
2021-08-24 15:21:31 +02:00
Luca Casonato
df084b9f14
fix(ext/ffi): don't panic on invalid enum values ( #11815 )
...
Co-authored-by: Feng Yu <f3n67u@gmail.com>
2021-08-23 18:31:19 +02:00
Bartek Iwańczuk
2187c11e5d
fix(ext/http): resource leak on HttpConn.close() ( #11805 )
...
This commit adds tracking of resources that are related
to "HttpConn" so they can be closed automatically
when closing the connection.
2021-08-23 16:15:59 +02:00
Feng Yu
cb8f34c325
doc(test): add --location to unit test command ( #11793 )
2021-08-21 14:32:05 +02:00
Feng Yu
4c1e56b2f0
tests: remove redundant type assertion ( #11794 )
2021-08-21 16:55:28 +10:00
Divy Srivastava
af97535b7c
fix(ext/crypto): exportKey() for HMAC ( #11737 )
...
Fixes typings and innerKey processing (WPT doesn't test
exportKey for HMAC so this wasn't caught earlier).
2021-08-17 11:29:32 +02:00
Ben Noordhuis
6ced7b0383
fix(ext/fetch): better error if no content-type
...
The streaming WASM support code inspects the Response object's
Content-Type header but if that was missing, it failed with a fairly
inscrutable "String.prototype.toLowerCase called on null or undefined"
exception. Now it raises a more legible "Invalid WebAssembly content
type" exception.
2021-08-16 19:45:37 +02:00
Ben Noordhuis
245987b2a7
chore(cli/tests): disable flaky test on macos ci ( #11726 )
...
Refs #11580 .
2021-08-16 16:15:00 +02:00
Bartek Iwańczuk
d1d2388d7f
test(ext/http): add test for incomplete HTTP message and fix resource leak ( #11717 )
...
This commit adds a test case for "Http: connection closed before
message completed" error as well as fixing an edge with resource
leak when the error is raised.
2021-08-16 13:43:43 +02:00
Divy Srivastava
370c5013c5
chore: move importKey tests to webcrypto_unit.ts ( #11706 )
2021-08-14 16:23:11 +02:00
Divy Srivastava
71f79097c6
fix(ext/crypto): importKey() SecurityError on non-extractable keys ( #11662 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-13 23:20:44 +02:00
Bartek Iwańczuk
2937f02f00
fix(ext/http): remove unwrap() when HTTP conn errors ( #11674 )
2021-08-13 12:07:05 +02:00
Divy Srivastava
c1f97056f4
fix(ext/crypto): take a copy of keyData bytes ( #11666 )
2021-08-13 11:27:56 +02:00
David Sherret
15a763152f
chore: move test files to testdata directory ( #11601 )
2021-08-11 10:20:47 -04:00
Kitson Kelly
465cf9a6fe
feat: add new esnext types ( #11627 )
2021-08-10 10:33:08 +02:00
Ryan Dahl
3ab50b3551
feat: support client certificates for connectTls ( #11598 )
...
Co-authored-by: Daniel Lamando <dan@danopia.net>
Co-authored-by: Erik Price <github@erikprice.net>
2021-08-09 15:55:00 +02:00
Leo K
f546f51698
fix(websocket): allow any close code for server ( #11614 )
2021-08-09 10:45:59 +02:00
Leo K
16ae4a0d57
feat(extensions/web): add structuredClone function ( #11572 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-09 10:39:00 +02:00
Elias Sjögreen
33c8d790c3
feat: ffi to replace plugins ( #11152 )
...
This commit removes implementation of "native plugins" and replaces
it with FFI API.
Effectively "Deno.openPlugin" API was replaced with "Deno.dlopen" API.
2021-08-06 23:28:10 +02:00
Bartek Iwańczuk
0d1a522a03
revert: allow URL for permissions ( #11600 )
...
Revert changes to "net" permissions in regards to handling URLs
introduced in 15b0e61de
.
2021-08-06 21:10:04 +02:00
Benjamin Gruenbaum
2b53602d3c
feat: support AbortSignal in writeFile ( #11568 )
2021-08-06 10:21:29 -07:00
Leo K
15b0e61de5
feat(runtime): allow URL for permissions ( #11578 )
2021-08-06 15:04:00 +02:00
Leo K
3f0cf9619f
refactor(cli/tests): remove unnecessary void return types ( #11577 )
2021-08-05 13:08:58 +02:00
David Sherret
fcaf8cd8e3
chore: refactor netHangsOnClose
test to not use deferred
( #11585 )
2021-08-04 19:45:10 -04:00
Leo K
2ac031d6fd
feat(unstable): clean environmental variables for subprocess ( #11571 )
...
This commit adds "Deno.RunOptions.clearEnv" option, that allows
to clear environmental variables from parent process before spawning
a subprocess.
2021-08-04 21:47:43 +02:00
Bartek Iwańczuk
505d253436
Revert "fix(extensions/fetch): Add Origin header to outgoing requests for fetch ( #11557 )" ( #11565 )
...
This reverts commit f87aa44d94
.
2021-08-02 15:56:52 +02:00
Feng Yu
f87aa44d94
fix(extensions/fetch): Add Origin header to outgoing requests for fetch ( #11557 )
2021-08-02 02:19:21 -07:00
David Sherret
ecb4c9492f
chore: fix failing netTcpListenCloseWhileIterating test on some machines ( #11552 )
2021-07-31 21:10:19 -04:00