Bartek Iwańczuk
7d919f6fd9
refactor(jupyter): move ZeroMQ server to a separate thread ( #24373 )
...
Moves the ZeroMQ messaging server to a separate thread.
This will allow to run blocking JS code and maintain communication
with the notebook frontend.
Towards https://github.com/denoland/deno/pull/23592
Towards https://github.com/denoland/deno/pull/24250
Closes https://github.com/denoland/deno/issues/23617
2024-07-03 00:37:54 +02:00
Nathan Whitaker
c13b6d1413
feat(cli): Add --frozen
flag to error out if lockfile is out of date ( #24355 )
...
Closes #18296 .
Adds a `--frozen` (alias `--frozen-lockfile`) flag that errors out if
the lockfile is out of date. This is useful for running in CI (where an
out of date lockfile is usually a mistake) or to prevent accidental
changes in dependencies.
![Screenshot 2024-06-26 at 7 11
13 PM](https://github.com/denoland/deno/assets/17734409/538404b8-b422-4f05-89e8-4c9b1c248576 )
2024-07-02 15:00:16 -07:00
Kenta Moriuchi
f78a60e882
feat(ext/web): add Blob.prototype.bytes()
( #24148 )
2024-07-02 16:04:08 +02:00
Bartek Iwańczuk
8db420d552
chore: upgrade to reqwest 0.12.4 and rustls 0.22 ( #24388 )
...
Reland of https://github.com/denoland/deno/pull/24056 that doesn't
suffer from the problem that was discovered in
https://github.com/denoland/deno/pull/24261 .
It uses upgraded `hyper` and `hyper-util` that fixed the previous
problem in https://github.com/hyperium/hyper/pull/3691 .
2024-07-02 02:09:47 +02:00
Heyang Zhou
9c1f741112
fix(compile): atomically write compile output ( #24378 )
...
Atomically write `deno compile` output file so we won't get a partially
written ELF/PE file, and prevents corrupting running processes.
2024-07-02 06:54:17 +08:00
David Sherret
6f30ef88a2
fix(windows): check USERPROFILE env var for finding home directory ( #24384 )
2024-07-01 18:17:17 -04:00
Bartek Iwańczuk
b0cd43b5f3
fix(lsp): use CliLockfile ( #24387 )
...
The build broke in https://github.com/denoland/deno/pull/24365 .
2024-07-01 22:14:17 +00:00
Nayeem Rahman
38a6be2e8e
fix(lsp): respect lockfile redirects entries for resolution ( #24365 )
2024-07-01 22:08:32 +01:00
Divy Srivastava
cd4a0072dc
BREAKING(unstable/ffi): remove callback reentrant flag ( #24367 )
...
Closes https://github.com/denoland/deno/issues/22947
This option is no longer needed as fast calls are now allowed to
re-enter the isolate
2024-07-01 09:36:33 +05:30
Nathan Whitaker
bc8a0e6e68
refactor(cli): Create wrapper around deno_lockfile::Lockfile
( #24366 )
...
As suggested in
https://github.com/denoland/deno/pull/24355#discussion_r1657875422 .
I wasn't able to hide the mutex stuff as much as I'd like (ended up just
adding an escape hatch `inner()` method that locks the inner mutex),
because you can't return references to the inner fields through a mutex.
This is mostly motivated by the frozen lockfile changes
2024-06-28 17:18:21 -07:00
Nayeem Rahman
2ddae872f9
fix(lsp): don't use global cache paths for scope allocation ( #24353 )
2024-06-28 18:18:21 +01:00
Leo Kettmeir
ec9963570b
chore: update deno_doc ( #24308 )
2024-06-28 05:03:51 -07:00
Nayeem Rahman
67dcd6db51
feat(lsp): ts language service scopes ( #24345 )
2024-06-26 23:47:01 +01:00
Bartek Iwańczuk
2a2ff96be1
fix(ext/node): discover .npmrc in user's homedir ( #24021 )
...
This commit adds discovery of `.npmrc` files in user's homedir.
This is not a perfect fix as it doesn't merge multiple `.npmrc` files
together as per https://github.com/denoland/deno/issues/23954
but allows to fallback if no `.npmrc` file is discovered in the project
root.
2024-06-27 00:17:00 +02:00
David Sherret
0da01c0ca6
refactor: move PackageJson to deno_config ( #24348 )
2024-06-26 21:24:10 +00:00
David Sherret
eb283c43f5
refactor: bump deno_graph to 0.79 ( #24337 )
...
No fixes in this to my knowledge. Just an upgrade. The functionality
here will be used in a different PR.
2024-06-26 01:42:18 +00:00
Asher Gomez
c012c202af
docs(cli): remove trailing slash from import.meta.dirname
expected output ( #24295 )
2024-06-21 15:52:46 +10:00
David Sherret
b62534dbf1
fix(task): do not propagate env changes outside subshells ( #24279 )
...
* https://github.com/denoland/deno_task_shell/pull/120
2024-06-20 00:57:53 +00:00
snek
293a36f98d
fix: more node-api fixes ( #24220 )
...
- add fallback impls of external string apis which always copy. after
upstream changes to rusty_v8 we can support non-copying api as well.
- `napi_get_buffer_data` needs to work on all TypedArray instances.
- Fixes: https://github.com/denoland/deno/issues/24209
- `target_defaults.default_configuration` is used by some modules to
find the corresponding node file from node-gyp
- `node_api_get_module_filename` expects the filename to be a `file:`
url.
2024-06-19 11:33:46 -07:00
denobot
6c6ee02dfd
chore: forward v1.44.4 release commit to main ( #24271 )
...
This is the release commit being forwarded back to main for 1.44.4
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-06-19 20:29:53 +02:00
Bartek Iwańczuk
b94707af7d
Revert "chore: upgrade to reqwest 0.12.4 and rustls 0.22 ( #24056 )" ( #24262 )
...
This reverts commit fb31eaa9ca
.
Reverting because users reported spurious errors when downloading
dependencies - https://github.com/denoland/deno/issues/24260 .
Closes https://github.com/denoland/deno/issues/24260
2024-06-19 16:09:17 +02:00
Divy Srivastava
8dd7beb7c6
fix(ext/node): Add SIGPOLL and SIGUNUSED signals ( #24259 )
2024-06-19 13:41:09 +05:30
Divy Srivastava
209b286813
fix(ext/node): Add Dirent.path and Dirent.parentPath ( #24257 )
2024-06-19 12:51:01 +05:30
denobot
1d6b775f81
chore: forward v1.44.3 release commit to main ( #24256 )
...
This is the release commit being forwarded back to main for 1.44.3
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-06-19 03:17:32 +02:00
Nayeem Rahman
810474d8b7
fix(lsp): use import map from workspace root ( #24246 )
...
Follow up to #24206 which broke deno_std intellisense.
2024-06-19 00:00:17 +02:00
safaa-mojahed
4b83ce8aca
fix(repl): prevent panic when deleting globalThis.closed property ( #24014 )
2024-06-17 21:34:25 -04:00
Nayeem Rahman
5dec3fd4b7
feat(lsp): multi deno.json resolver scopes ( #24206 )
2024-06-17 21:54:23 +01:00
Leo Kettmeir
341913319c
fix(docs): correctly resolve href for built-ins ( #24228 )
2024-06-17 16:06:05 +02:00
Satya Rohith
0f48313565
chore: upgrade to rust 1.79 ( #24207 )
2024-06-14 17:10:57 +05:30
Nathan Whitaker
368eb9073b
fix(napi): Read reference ownership before calling finalizer to avoid crash ( #24203 )
...
Fixes #23493 .
What was happening here was that napi-rs was freeing the napi reference
([here](19e3488efc/crates/napi/src/bindgen_runtime/mod.rs (L62)
))
during its finalize callback (which we call
[here](fb31eaa9ca/cli/napi/js_native_api.rs (L132)
)).
We then were [reading the `ownership`
field](fb31eaa9ca/cli/napi/js_native_api.rs (L136)
)
of that freed reference.
For some reason on arm macs the freed memory gets zeroed, so the value
of `ownership` was `0` when we read it (i.e. it was
`ReferenceOwnership::Runtime`). We then freed it again (since we thought
we owned it), causing the segfault.
2024-06-13 22:31:42 +00:00
David Sherret
4ec9250c40
fix(npm): use more relaxed package.json version constraint parsing ( #24202 )
2024-06-13 18:29:27 -04:00
Bartek Iwańczuk
fb31eaa9ca
chore: upgrade to reqwest 0.12.4 and rustls 0.22 ( #24056 )
...
This commit updates Deno to use `reqwest` at 0.12.4
and `rustls` at 0.22. Other related crates were updated
as well to match versions accepted by `reqwest` and `rustls`.
Note: we are not using the latest available `rustls` yet,
but this upgrade was non-trivial already, so a bump to
0.23 for `rustls` will be done in a separate commit.
Closes #23370
---------
Signed-off-by: Ryan Dahl <ry@tinyclouds.org>
Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-06-13 22:41:26 +02:00
Nayeem Rahman
518e4d3b3a
perf(lsp): store settings in Arc ( #24191 )
2024-06-13 20:57:14 +01:00
snek
8ad25e86da
fix: node-api get_value_string_utf8 should use utf8_length ( #24193 )
...
whoops. also did a drive-by cleanup of `isolate` usage since i noticed
it while using `utf8_length(isolate)`
2024-06-12 21:39:20 -07:00
denobot
efb2085b61
chore: forward v1.44.2 release commit to main ( #24194 )
...
Co-authored-by: nathanwhit <nathanwhit@users.noreply.github.com>
2024-06-13 01:57:22 +00:00
Nathan Whitaker
a7531361ef
fix(cli): Explicitly cache NPM packages during deno install
( #24190 )
...
Fixes a regression introduced in
https://github.com/denoland/deno/pull/24170 , where we wouldn't actually
set up the node modules dir on `deno install` if there was an up to date
deno lockfile present.
Previously we were relying on the fact that resolving pending module
resolution called `cache_packages` (which sets up the node modules dir).
When pending resolutions were removed, and the `resolve_pending`
function with it, we also removed the `cache_packages` call needed to
set up node modules.
2024-06-12 16:06:41 -07:00
Nayeem Rahman
b30e5c0985
fix(lsp): strip .js before probing for valid import fix ( #24188 )
2024-06-12 22:22:57 +01:00
Nayeem Rahman
85e9a790c9
feat(lsp): respect editor indentation options ( #24181 )
2024-06-12 17:41:01 +01:00
Divy Srivastava
05ec50672d
chore: remove dead code ( #24185 )
2024-06-12 10:13:03 -04:00
snek
3765e6b3a6
fix: clean up some node-api details ( #24178 )
...
- fix a few napi_* types
- clean up env hooks
- implement blocking queue in tsfn
- reduce transmutes
- use new `DataView::new` api from rusty_v8
2024-06-11 17:40:44 -07:00
Nayeem Rahman
3b9eeba02c
fix(lsp): don't sort workspace files ( #24180 )
2024-06-11 21:06:43 +01:00
Nayeem Rahman
0c199acb88
refactor(lsp): collect npm reqs by scope ( #24172 )
2024-06-11 18:14:36 +01:00
David Sherret
4bc96c5d2a
fix(npm): resolve dynamic npm imports individually ( #24170 )
...
* https://github.com/denoland/deno_npm/pull/57
* https://github.com/denoland/deno_graph/pull/498
Closes https://github.com/denoland/deno/issues/17802
2024-06-11 08:55:12 -04:00
David Sherret
d74be0842a
FUTURE: support deno install <alias>@npm:<package>
( #24156 )
...
Closes #23144
2024-06-10 23:56:43 +00:00
Nathan Whitaker
7996c0df92
fix(jupyter): Avoid panicking when DEBUG
env var is set ( #24168 )
...
Fixes #22050 .
It seems very unlikely that a user would be intending to enable deno's
internal debug logs by setting the DEBUG env var. If they really want
that, they can set `RUST_LOG=debug` instead.
2024-06-10 22:36:39 +00:00
snek
e3b2ee183b
fix: Rewrite Node-API ( #24101 )
...
Phase 1 node-api rewrite
2024-06-10 16:20:44 +00:00
Nayeem Rahman
7c5dbd5d54
feat(lsp): workspace jsr resolution ( #24121 )
2024-06-10 17:03:17 +01:00
David Sherret
31154ff958
fix(check): attempt to resolve types from pkg before @types
pkg ( #24152 )
...
I've been meaning to fix this for ages, but I finally ran into it here:
https://github.com/dsherret/ts-ast-viewer/actions/runs/9432038675/job/25981325408
We need to resolve the `@types` package as a fallback instead of eagerly
resolving it.
2024-06-08 20:05:28 -04:00
Luca Casonato
c1f23c5788
fix(ext/node): lossy UTF-8 read node_modules files ( #24140 )
...
Previously various reads of files in `node_modules` would error on
invalid UTF-8. These were cases involving:
- reading package.json from Rust
- reading package.json from JS
- reading CommonJS files from JS
- reading CommonJS files from Rust (for ESM translation)
- reading ESM files from Rust
2024-06-08 18:36:13 +02:00
David Sherret
ed20102713
fix: make writing to the deps cache more reliable ( #24135 )
...
I was able to reproduce this locally.
```
[error] Failed to execute snippet:
import { validate } from "@std/uuid";
import { assert, assertFalse } from "@std/assert";
assert(validate("6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b"));
assertFalse(validate("not a UUID"));
Download https://jsr.io/@std/uuid/meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1_meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/common.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/constants.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v1.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v3.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v4.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v5.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/_common.ts
error: Access is denied. (os error 5) (for 'V:\.cache\deno\deps\https\jsr.io\2ae5bb614c7526d0876be0b76da1372fd51304ae27d6202ee94df720b3523d08')
at file:///V:/deno_std/uuid/common.ts:43
[error] Failed to execute snippet:
import { v5, NAMESPACE_DNS, NIL_UUID } from "@std/uuid";
import { assert, assertFalse } from "@std/assert";
const data = new TextEncoder().encode("deno.land");
const uuid = await v5.generate(NAMESPACE_DNS, data);
assert(v5.validate(uuid));
assertFalse(v5.validate(NIL_UUID));
Download https://jsr.io/@std/uuid/meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1_meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/common.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/constants.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v1.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v3.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v4.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v5.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/_common.ts
error: Access is denied. (os error 5) (for 'V:\.cache\deno\deps\https\jsr.io\63dd818c5fc1ac39c04df9b42bd9dd4bbc07f7d1b174e405d003731125778da1')
at https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts:30:15
at file:///V:/deno_std/uuid/mod.ts:4
[error] Failed to execute snippet:
import { isNil } from "@std/uuid";
import { assert, assertFalse } from "@std/assert";
assert(isNil("00000000-0000-0000-0000-000000000000"));
assertFalse(isNil(crypto.randomUUID()));
Download https://jsr.io/@std/uuid/meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1_meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/common.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/constants.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v1.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v3.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v4.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v5.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/_common.ts
error: Access is denied. (os error 5) (for 'V:\.cache\deno\deps\https\jsr.io\fd3a12fc091d16ee29f10fa7a05eeeb8bd6c3cc014642e72478c757f00e7261e')
at https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts:34:40
at file:///V:/deno_std/uuid/common.ts:23
[error] Failed to execute snippet:
import { version } from "@std/uuid";
import { assertEquals } from "@std/assert/assert-equals";
assertEquals(version("d9428888-122b-11e1-b85c-61cd3cbb3210"), 1);
assertEquals(version("6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b"), 4);
Download https://jsr.io/@std/uuid/meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1_meta.json
Download https://jsr.io/@std/uuid/1.0.0-rc.1/mod.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/common.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/constants.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v1.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v3.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v4.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/v5.ts
Download https://jsr.io/@std/uuid/1.0.0-rc.1/_common.ts
error: Access is denied. (os error 5) (for 'V:\.cache\deno\deps\https\jsr.io\2ae5bb614c7526d0876be0b76da1372fd51304ae27d6202ee94df720b3523d08')
at file:///V:/deno_std/uuid/common.ts:66
4 errors found
```
It occurs when many Deno processes are writing to the deps cache at the
same time. Fix is to use `atomic_write_with_retries` which is much more
reliable (and the function that helped make the ecosystem tests more
reliable too). After this change I no longer have this issue.
Closes https://github.com/denoland/deno/issues/24073
2024-06-07 13:06:17 -04:00