Kitson Kelly
345f0fbe5c
feat(cli): update to TypeScript 4.5 ( #12410 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-12-10 09:12:21 +11:00
Yoshiya Hinosawa
69ad5f0e78
feat(ext/timers): add refTimer, unrefTimer API ( #12953 )
2021-12-09 17:00:55 +09:00
Yoshiya Hinosawa
5c0636888c
fix(ext/timers): fix flakiness of httpConnAutoCloseDelayedOnUpgrade
test ( #13017 )
2021-12-08 02:50:35 +09:00
Andreu Botella
33da15ae5a
refactor(timers): refactor timers to use one async op per timer ( #12862 )
...
This change also makes the timers implementation closer to the spec, and
sets up the stage to implement AbortSignal.timeout() (whatwg/dom#1032).
Fixes #8965
Fixes #10974
Fixes #11398
2021-12-07 13:39:58 +01:00
Divy Srivastava
d31378726e
feat(ext/crypto): implement unwrapKey ( #12539 )
2021-12-05 04:55:11 +01:00
Michael Busby
6c09e02304
feat(ext/net): enable sending to broadcast address ( #12860 )
...
You can now send UDP datagrams to the broadcast address.
2021-11-29 11:14:46 +01:00
Yury Selivanov
1d3f734e18
feat(ext/net): ALPN support in Deno.connectTls()
( #12786 )
2021-11-26 19:59:53 +01:00
Andreu Botella
d763633781
feat(etc/fetch): Support WebAssembly.instantiateStreaming
for file fetches ( #12901 )
...
Fetching of local files, added in #12545 , returns a response with no
headers, including the `Content-Type` header. This currently makes it
not work with the WebAssembly streaming APIs, which require the response
to have a content type of `application/wasm`.
Since the only way to obtain a `Response` object with a non-empty `url`
field is via `fetch()`, this change changes the content type requirement
to only apply to responses whose url has the `file:` scheme.
2021-11-26 19:52:41 +11:00
Bartek Iwańczuk
1193d46485
tests: add 'await' to all invocations of 'assertRejects' ( #12893 )
2021-11-25 02:23:03 +01:00
Bartek Iwańczuk
bedb2adfb0
refactor: remove "unitTest" wrapper from cli/tests/unit ( #12750 )
2021-11-23 17:45:18 +01:00
Bartek Iwańczuk
d8afd56838
feat(test): Add more overloads for "Deno.test" ( #12749 )
...
This commit adds 4 more overloads to "Deno.test()" API.
```
// Deno.test(function testName() { });
export function test(fn: (t: TestContext) => void | Promise<void>): void;
// Deno.test("test name", { only: true }, function() { });
export function test(
name: string,
options: Omit<TestDefinition, "name">,
fn: (t: TestContext) => void | Promise<void>,
): void;
// Deno.test({ name: "test name" }, function() { });
export function test(
options: Omit<TestDefinition, "fn">,
fn: (t: TestContext) => void | Promise<void>,
): void;
// Deno.test({ only: true }, function testName() { });
export function test(
options: Omit<TestDefinition, "fn" | "name">,
fn: (t: TestContext) => void | Promise<void>,
): void;
```
2021-11-23 14:57:51 +01:00
Luca Casonato
71ceca0ffc
fix(ext/crypto): don't panic on decryption failure ( #12840 )
2021-11-22 23:58:21 +01:00
Luca Casonato
3cc724c9ba
fix(runtime): support reading /proc using readFile ( #12839 )
2021-11-22 16:53:58 +01:00
Luca Casonato
429c773a2e
tests: extend readFile file length during read ( #12835 )
...
This commit adds some tests that demonstrate that Deno.readFile reads
the entire file, even if the read file is extended during read.
2021-11-22 16:25:42 +01:00
Bert Belder
77c4c249ba
test(ext/http): DELETE requests should always have body ( #12798 )
...
Refs: #12741
Refs: #12746
2021-11-17 15:34:41 -08:00
Luca Casonato
08067b5e12
fix: add typings for AbortSignal.reason ( #12730 )
2021-11-11 10:28:06 +01:00
upendra1997
e00bfecf96
fix(crypto): handling large key length in HKDF ( #12692 )
2021-11-11 10:04:17 +01:00
Bert Belder
72a6231a61
refactor(ext/http): rewrite hyper integration and fix bug ( #12732 )
...
Fixes: #12193
Fixes: #12251
Closes: #12714
2021-11-10 14:51:43 -08:00
Luca Casonato
6af916c3f4
fix: non ascii buffer response in http server ( #12728 )
2021-11-10 16:48:46 +01:00
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