David Sherret
aad62f6422
refactor: make it easier to get closest package.json files ( #30420 )
2025-08-15 15:48:03 -04:00
David Sherret
4ade335fc8
fix: support cjs, cts, mjs, and mts for the --ext
flag ( #30398 )
2025-08-14 12:02:49 -04:00
林炳权
68297b5f10
chore: Rust 1.89.0 ( #30364 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Related PR: https://github.com/denoland/deno/pull/30354
2025-08-09 11:11:48 +00:00
David Sherret
4636737e88
refactor: remove usages of to_string_lossy().to_string() ( #30224 )
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-07-28 20:25:58 +00:00
David Sherret
7e6c827858
refactor: remove some allocations in op_require_x ops ( #30212 )
2025-07-28 15:44:21 +00:00
David Sherret
32baa286b7
refactor: update to deno_path_util 0.5.2 ( #30211 )
2025-07-27 08:44:29 -04:00
David Sherret
63e4ee54c9
fix: support package.json imports in a Deno workspace ( #30198 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-07-25 08:21:09 -04:00
David Sherret
2617b4ec6b
refactor(permissions): push down special file checking to permissions container ( #30005 )
2025-07-09 20:50:26 +00:00
David Sherret
90058d6732
refactor(emitter): ability to not transpile and specify a source map base ( #29996 )
ci / pre-build (push) Has been cancelled
ci / build libs (push) Has been cancelled
ci / test debug linux-aarch64 (push) Has been cancelled
ci / test release linux-aarch64 (push) Has been cancelled
ci / test debug macos-aarch64 (push) Has been cancelled
ci / test release macos-aarch64 (push) Has been cancelled
ci / bench release linux-x86_64 (push) Has been cancelled
ci / lint debug linux-x86_64 (push) Has been cancelled
ci / lint debug macos-x86_64 (push) Has been cancelled
ci / lint debug windows-x86_64 (push) Has been cancelled
ci / test debug linux-x86_64 (push) Has been cancelled
ci / test release linux-x86_64 (push) Has been cancelled
ci / test debug macos-x86_64 (push) Has been cancelled
ci / test release macos-x86_64 (push) Has been cancelled
ci / test debug windows-x86_64 (push) Has been cancelled
ci / test release windows-x86_64 (push) Has been cancelled
ci / publish canary (push) Has been cancelled
2025-07-04 12:51:17 -04:00
Nathan Whitaker
9379a74e08
chore: update to edition 2024 ( #29923 )
ci / publish canary (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
2025-07-02 17:59:39 -07:00
Bartek Iwańczuk
ccc30edcb5
fix(ext/node): make conditional exports work in require()
( #29640 )
...
This commit fixes passing conditional exports specified with
`--unstable-node-conditions` flag to `require()` calls.
Fixes scenario from
https://github.com/denoland/deno/issues/23757#issuecomment-2949344042
---------
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2025-06-10 02:09:46 +02:00
David Sherret
0d6fac61f0
fix(node): do not look up node_module paths when using global resolver ( #29398 )
...
It doesn't make sense for the global resolver to search for npm packages
because the structure of the folder there doesn't do node_resolution.
2025-05-21 13:52:23 -04:00
David Sherret
224908c39a
fix(node): do not require permission checks for require's node_modules stats ( #29397 )
...
This change specifically allows op_require_stat to stat node_module
directories without having to go through the permission system.
Closes https://github.com/denoland/deno/issues/20484
2025-05-20 15:50:41 +00:00
Leo Kettmeir
97b84669a8
fix(node): use JsErrorClass
for code
property on node resolver errors ( #29294 )
...
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Superseeds #26631
---------
Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2025-05-16 20:54:47 +02:00
David Sherret
61faa32920
perf: node resolution cache ( #27838 )
...
This adds a cache for node resolution, which makes repeat lookups about
15x faster.
2025-02-03 20:25:10 -05:00
David Sherret
679902a108
perf(node_resolver): reduce url to/from path conversions ( #27839 )
...
Extracted out of https://github.com/denoland/deno/pull/27838/files
Reduces some allocations by accepting either a pathbuf or url for the
referrer for resolution and returning either a pathbuf or url at the
end, which the caller can then convert into to their preferred state.
This is about 4% faster when still converting the final result to a url
and 6% faster when keeping the result as a path in a benchmark I ran.
2025-01-27 15:23:20 -05:00
Leo Kettmeir
054075730c
refactor: update deno_core and use more concrete errors ( #27620 )
...
waiting for https://github.com/denoland/deno_core/pull/1043
Fixes #27672
2025-01-17 09:41:52 -08:00
David Sherret
0b033140c0
refactor: move CliNpmResolver
to deno_resolver::npm::NpmResolver
( #27659 )
...
As title. After this PR all npm resolution will be out of the CLI crate.
2025-01-14 10:01:05 -05:00
Leo Kettmeir
ea30e188a8
refactor: update deno_core for error refactor ( #26867 )
...
Closes #26171
---------
Co-authored-by: David Sherret <dsherret@gmail.com>
2025-01-08 14:52:32 -08:00
Kenta Moriuchi
8fb073d7b4
chore: Happy New Year 2025 ( #27509 )
2024-12-31 19:12:39 +00:00
David Sherret
4638caa740
refactor: do not use deno_fs::FileSystem
everywhere ( #27508 )
...
This changes the cli to mostly use `std::fs` via `sys_traits` instead of
the implemention of `deno_fs::FileSystem`.
2024-12-31 11:29:07 -05:00
David Sherret
f863a623c9
fix: improve auto-imports for npm packages ( #27224 )
...
Improves auto-imports when using `"nodeModulesDir": "auto"`
2024-12-04 12:05:34 -05:00
David Sherret
f161adf19e
perf(compile): read embedded files as static references when UTF-8 and reading as strings ( #27033 )
2024-11-27 21:28:41 -05:00
David Sherret
115a306656
fix(node): correct resolution of dynamic import of esm from cjs ( #27071 )
...
Ensures a dynamic import in a CJS file will consider the referrer as an import for node resolution.
Also adds fixes (adds) support for `"resolution-mode"` in TypeScript.
2024-11-26 14:38:24 -05:00
Leo Kettmeir
cf49599359
feat: permission stack traces in ops ( #26938 )
...
This commit improves permission prompts by adding an option
to print a full trace of where the permissions is being requested.
Due to big performance hint of stack trace collection, this is only
enabled when `DENO_TRACE_PERMISSIONS` env var is present.
Closes https://github.com/denoland/deno/issues/20756
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-20 21:24:04 +00:00
David Sherret
48b94c0995
refactor: use boxed_error in some places ( #26887 )
2024-11-15 23:22:50 -05:00
David Sherret
617350e79c
refactor(resolver): move more resolution code into deno_resolver ( #26873 )
...
Follow-up to cjs refactor.
This moves most of the resolution code into the deno_resolver crate.
Still pending is the npm resolution code.
2024-11-14 15:24:25 -05:00
David Sherret
f091d1ad69
feat(node): stabilize detecting if CJS via "type": "commonjs"
in a package.json ( #26439 )
...
This will respect `"type": "commonjs"` in a package.json to determine if
`.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to
be ESM it will be loaded as ESM though.
2024-11-13 15:10:09 +00:00
David Sherret
826e42a5b5
fix: improved support for cjs and cts modules ( #26558 )
...
* cts support
* better cjs/cts type checking
* deno compile cjs/cts support
* More efficient detect cjs (going towards stabilization)
* Determination of whether .js, .ts, .jsx, or .tsx is cjs or esm is only
done after loading
* Support `import x = require(...);`
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-01 12:27:00 -04:00
Nathan Whitaker
6d44952d4d
fix(ext/node): resolve exports even if parent module filename isn't present ( #26553 )
...
Fixes https://github.com/denoland/deno/issues/26505
I'm not exactly sure how this case comes about (I tried to write tests
for it but couldn't manage to reproduce it), but what happens is the
parent filename ends up null, and we bail out of resolving the specifier
in package exports.
I've checked, and in node the parent filename is also null (so that's
not a bug on our part), but node continues to resolve even in that case.
So this PR should match node's behavior more closely than we currently
do.
2024-10-31 10:02:31 -07:00
David Sherret
a8846eb70f
fix: remove permission check in op_require_node_module_paths ( #26645 )
2024-10-30 20:43:22 +00:00
Leo Kettmeir
c71e020668
refactor(ext/node): use concrete error types ( #26419 )
2024-10-24 10:45:17 -07:00
Divy Srivastava
dfbf03eee7
perf: use fast calls for microtask ops ( #26236 )
...
Updates deno_core to 0.312.0
2024-10-14 12:31:51 +00:00
David Sherret
2de4faa483
refactor: improve node permission checks ( #26028 )
...
Does less work when requesting permissions with `-A`
2024-10-04 20:55:41 +01:00
David Sherret
fc739dc5eb
refactor: use deno_path_util ( #25918 )
2024-09-28 07:55:01 -04:00
snek
f9007d3386
feat: require(esm) ( #25501 )
...
implement require(esm) using `op_import_sync` from deno_core.
possible future changes:
- cts and mts
- replace Deno.core.evalContext to optimize esm syntax detection
Fixes: https://github.com/denoland/deno/issues/25487
2024-09-10 20:12:36 +00:00
Divy Srivastava
c4d088863e
fix(inspector): Fix panic when re-entering runtime ops ( #25537 )
...
Mark `op_require_break_on_next_statement` as reentrant and properly
release borrow on the `OpState`. This fixes `BorrowMut` assertions when
running with inspector + op metrics.
Fixes https://github.com/denoland/deno/issues/25515
2024-09-10 08:14:26 +05:30
David Sherret
d8dfe6dc97
perf(ext/node): reduce some allocations in require ( #25197 )
2024-08-26 11:13:39 -04:00
David Sherret
3bf147fe28
refactor: decouple node resolution from deno_core ( #24724 )
2024-07-25 19:08:14 -04:00
David Sherret
839caf6faf
refactor: use concrete error types for node resolution ( #24470 )
...
This will help clean up some of the code in the CLI because we'll be
able to tell how the resolution failed (not part of this PR).
2024-07-09 12:15:03 -04:00
David Sherret
0da01c0ca6
refactor: move PackageJson to deno_config ( #24348 )
2024-06-26 21:24:10 +00: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:
2598132540
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
386d5c8310
refactor: remove PermissionsContainer
in deno_runtime ( #24119 )
...
Also removes permissions being passed in for node resolution. It was
completely useless because we only checked it for reading package.json
files, but Deno reading package.json files for resolution is perfectly
fine.
My guess is this is also a perf improvement because Deno is doing less
work.
2024-06-06 23:37:53 -04:00
Matt Mastracci
472a370640
feat(runtime): Allow embedders to perform additional access checks on file open ( #23208 )
...
Embedders may have special requirements around file opening, so we add a
new `check_open` permission check that is called as part of the file
open process.
2024-04-19 18:12:03 -06:00
David Sherret
240b362c00
perf(node): put pkg json into an Rc
( #23156 )
...
Was doing a bit of debugging on why some stuff is not working in a
personal project and ran a quick debug profile and saw it cloning the
pkg json a lot. We should put this in an Rc.
2024-04-01 09:10:04 -04:00
David Sherret
c53b720656
fix(node): remove unwrap in op_require_node_module_paths ( #23114 )
...
Part of #22671
2024-03-28 17:51:41 -04:00
mash-graz
0d43a63636
fix(ext/node): worker_threads ESM handling ( #22841 )
...
Fixes #22840
Fixes #22964
2024-03-20 09:12:22 +05:30
David Sherret
5d3d4eba39
fix(node): require of pkg json imports was broken ( #22821 )
2024-03-09 10:21:31 -05:00
David Sherret
7e72f3af61
chore: update copyright to 2024 ( #21753 )
2024-01-01 19:58:21 +00:00