summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2024-03-12refactor: add `deno_permissions` crate (#22236)Divy Srivastava
Issue https://github.com/denoland/deno/issues/22222 ![image](https://github.com/denoland/deno/assets/34997667/2af8474b-b919-4519-98ce-9d29bc7829f2) This PR moves `runtime/permissions` code to a upstream crate called `deno_permissions`. The `deno_permissions::PermissionsContainer` is put into the OpState and can be used instead of the current trait-based permissions system. For this PR, I've migrated `deno_fetch` to the new crate but kept the rest of the trait-based system as a wrapper of `deno_permissions` crate. Doing the migration all at once is error prone and hard to review. Comparing incremental compile times for `ext/fetch` on Mac M1: | profile | `cargo build --bin deno` | `cargo plonk build --bin deno` | | --------- | ------------- | ------------------- | | `debug` | 20 s | 0.8s | | `release` | 4 mins 12 s | 1.4s |
2024-03-12fix(ext/node): flush brotli decompression stream (#22856)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22259 The decompressed input size was not restored because of improper flushing of the CBrotliDecompressStream state.
2024-03-11chore: enable clippy unused_async rule (#22834)David Sherret
2024-03-11fix(ext/node): Match punycode module behavior to node (#22847)Nathan Whitaker
Fixes #19214. We were using the `idna` crate to implement our polyfill for `punycode.toASCII` and `punycode.toUnicode`. The `idna` crate is correct, and adheres to the IDNA2003/2008 spec, but it turns out `node`'s implementations don't really follow any spec! Instead, node splits the domain by `'.'` and punycode encodes/decodes each part. This means that node's implementations will happily work on codepoints that are disallowed by the IDNA specs, causing the error in #19214. While fixing this, I went ahead and matched the node behavior on all of the punycode functions and enabled node's punycode test in our `node_compat` suite.
2024-03-11fix(ext/node): make worker setup synchronous (#22815)Bartek Iwańczuk
This commit fixes race condition in "node:worker_threads" module were the first message did a setup of "threadId", "workerData" and "environmentData". Now this data is passed explicitly during workers creation and is set up before any user code is executed. Closes https://github.com/denoland/deno/issues/22783 Closes https://github.com/denoland/deno/issues/22672 --------- Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-03-11fix(ext/node): worker_threads.parentPort is updated on startup (#20794)Bartek Iwańczuk
This addresses https://github.com/denoland/deno/issues/20613#issuecomment-1739962483.
2024-03-11fix(ext/node) implement receiveMessageOnPort for node:worker_threads (#22766)mash-graz
Implementation of `receiveMessageOnPort` for `node:worker_threads` Fixes: #22702
2024-03-10fix(node:http) Export `validateHeaderName` and `validateHeaderValue` ↵mash-graz
functions (#22616) Modify `_http_outgoing.ts` to support the extended signature of `validateHeaderName()` used since node v19.5.0/v18.14.0 by adding the `label` parameter. (see: https://nodejs.org/api/http.html#httpvalidateheadernamename-label) Making both validation functions accessible as public exports of `node:http` Fixes: #22614
2024-03-10chore: replace 'call' to 'execute' in error messages (#22579)Kenta Moriuchi
Since both "call" and "execute" were used in error messages, I replaced them with "execute," which is more used.
2024-03-09fix(node): require of pkg json imports was broken (#22821)David Sherret
2024-03-09fix(ext/websocket): do not continue reading if socket rid closes (#21849)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/21379
2024-03-09fix(ext/node): support junction symlinks on Windows (#22762)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20609 Vitepress support! `vitepress dev` and `vitepress build` via BYONM
2024-03-08fix(ext/node): Implement `isBuiltin` in `node:module` (#22817)Nathan Whitaker
Fixes #22502 Implements the [`isBuiltin`](https://nodejs.org/api/module.html#moduleisbuiltinmodulename) function in `node:module`. I had to update the version of `@types/node` in the test registry in order to get the test I added to typecheck.
2024-03-08fix(ext/node): Add Immediate class to mirror NodeJS.Immediate (#22808)Nathan Whitaker
Fixes #21660 Adds a basic `Immediate` class to mirror `NodeJS.Immediate`, and changes `setImmediate` and `clearImmediate` to return and accept (respectively) `Immediate` objects. Note that for now {ref,unref,hasRef} are effectively stubs, as deno_core doesn't really natively support immediates (they're currently modeled as timers with delay of 0). Eventually we probably want to actually implement these properly.
2024-03-08fix(node): resolve .css files in npm packages when type checking (#22804)David Sherret
When type checking, we should just resolve css files in npm packages and not surface a type checking error on the specifier.
2024-03-08refactor(ext/node): worker_threads.isMainThread setup (#22785)Bartek Iwańczuk
This commit changes how we figure out if we're running on main thread in `node:worker_threads` module. Instead of relying on quirky "magic variable" for a name to check if we're on main thread, we are now explicitly passing this information during bootstrapping of the runtime. As a side effect, `WorkerOptions.name` is more useful and matches what Node.js does more closely (though not fully). Towards https://github.com/denoland/deno/issues/22783
2024-03-08refactor(ext/node): use worker ops directly in worker_threads (#22794)Satya Rohith
2024-03-08chore: forward v1.41.2 release commit to main (#22793)denobot
This is the release commit being forwarded back to main for 1.41.2 Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-07feat(ext/node): ref/unref on workers (#22778)Matt Mastracci
Implements ref/unref on worker to fix part of #22629
2024-03-07fix(publish): make include and exclude work (#22720)David Sherret
1. Stops `deno publish` using some custom include/exclude behaviour from other sub commands 2. Takes ancestor directories into account when resolving gitignore 3. Backards compatible change that adds ability to unexclude an exclude by using a negated glob at a more specific level for all sub commands (see https://github.com/denoland/deno_config/pull/44).
2024-03-07perf(cli): use faster_hex (#22761)Matt Mastracci
`cli::util::checksum` was showing up on flame graphs because it was concatenating allocated strings. We can use `faster-hex` to improve it.
2024-03-07fix(ext/node): http2.createServer (#22708)Satya Rohith
2024-03-07feat(node/util): styleText (#22758)Leo Kettmeir
Implements https://github.com/nodejs/node/pull/51850
2024-03-06chore: upgrade deno_core (#22725)Nathan Whitaker
<!-- Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. -->
2024-03-06fix(ext/node): add default methods to fs.StatsBase (#22750)Divy Srivastava
2024-03-06fix(ext/node): strip `--enable-source-maps` from argv (#22743)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/21750
2024-03-06fix(node): stat/statSync returns instance of fs.Stats (#22294)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22291 --------- Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-06chore: remove debug console table log in node/http2 (#22741)Divy Srivastava
2024-03-06fix(node): implement ALS enterWith (#22740)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/18127 https://github.com/denoland/deno/issues/17248 SvelteKit works now! ``` $ deno run -A npm:create-svelte@latest my-app create-svelte version 6.0.9 ┌ Welcome to SvelteKit! │ ◇ Which Svelte app template? │ SvelteKit demo app │ ◇ Add type checking with TypeScript? │ Yes, using JavaScript with JSDoc comments │ ◇ Select additional options (use arrow keys/space bar) │ none │ └ Your project is ready! ✔ Type-checked JavaScript https://www.typescriptlang.org/tsconfig#checkJs Install community-maintained integrations: https://github.com/svelte-add/svelte-add Next steps: 1: cd my-app 2: npm install 3: git init && git add -A && git commit -m "Initial commit" (optional) 4: npm run dev -- --open To close the dev server, hit Ctrl-C Stuck? Visit us at https://svelte.dev/chat $ cd my-app/ $ deno task dev Task dev vite dev VITE v5.1.4 ready in 1632 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ➜ press h + enter to show help ```
2024-03-06fix(cli): improve logging on failed named pipe (#22726)Matt Mastracci
2024-03-05fix: update node process version to latest node LTS (#22709)Marvin Hagemeister
<!-- Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. --> The issue seems to be already fixed since we upped to a newer 18.x version string in [another PR](https://github.com/denoland/deno/pull/20366). Updating to latest node LTS version can't hurt though. Fixes https://github.com/denoland/deno/issues/21515
2024-03-05chore: upgrade deno_core (#22699)Bartek Iwańczuk
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-03-04fix(node): errno property when command missing (#22691)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22604 `remix dev` with Node adapter works: ``` $ ~/gh/littledivy/deno/target/debug/deno task dev Task dev remix dev --manual 💿 remix dev info building... info built (619ms) [remix-serve] http://localhost:3000 (http://192.168.1.24:3000) GET / 200 - - 3.090 ms ```
2024-03-04chore: fix typos (#22677)cui fliter
2024-03-01perf(cli): use new deno_core timers (#22569)Matt Mastracci
Improves #19100 Fixes #20356 Replaces #20428 Changes made in deno_core to support this: - [x] Errors must be handled in setTimeout callbacks - [x] Microtask ordering is not-quite-right - [x] Timer cancellation must be checked right before dispatch - [x] Timer sanitizer - [x] Move high-res timer to deno_core - [x] Timers need opcall tracing
2024-02-29chore: forward v1.41.1 release commit to main (#22643)denobot
Co-authored-by: dsherret <dsherret@users.noreply.github.com>
2024-02-29fix(ext/node) add node http methods (#22630)Igor Zinkovsky
fixes #22627 This PR fixes a node compat issue that is preventing `serverless-http` and `serverless-express` npm modules from working with Deno. These modules are useful for running apps on AWS Lambda (and other serverless infra). --------- Signed-off-by: Igor Zinkovsky <igor@deno.com>
2024-02-29fix(ext/crypto): align the return type of `crypto.randomUUID` to ↵Nano Miratus
`cli/tsc/dts/lib.dom.d.ts` (#22465)
2024-02-26fix(io): create_named_pipe parallelism (#22597)Matt Mastracci
Investigating https://github.com/denoland/deno/issues/22574 Unable to reproduce with a unit test, but assuming that it's a name collision or create pipe/open pipe race, and adding some additional diagnostics.
2024-02-23refactor(cli): clean up test runner channels (#22422)Matt Mastracci
Gets us closer to solving #20707. Rewrites the `TestEventSender`: - Allow for explicit creation of multiple streams. This will allow for one-std{out,err}-per-worker - All test events are received along with a worker ID, allowing for eventual, proper parallel threading of test events. In theory this should open up proper interleaving of test output, however that is left for a future PR. I had some plans for a better performing synchronization primitive, but the inter-thread communication is tricky. This does, however, speed up the processing of large numbers of tests 15-25% (possibly even more on 100,000+). Before ``` ok | 1000 passed | 0 failed (32ms) ok | 10000 passed | 0 failed (276ms) ``` After ``` ok | 1000 passed | 0 failed (25ms) ok | 10000 passed | 0 failed (230ms) ```
2024-02-23fix(ext/node): set correct process.argv0 (#22555)Satya Rohith
2024-02-23fix(ext/node): init arch, pid, platform at startup (#22561)Satya Rohith
2024-02-221.41.0 (#22524)denobot
Bumped versions for 1.41.0 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-02-22chore(io): Add a cross-platform unidirectional pipe implementation (#22522)Matt Mastracci
Currently useful for `deno test` and internal tests, but could potentially be exposed at a later time as a `Deno` API.
2024-02-21fix(ext/fs): make errors in tempfile creation clearer (#22498)Matt Mastracci
When using a prefix or suffix containing an invalid filename character, it's not entirely clear where the errors come from. We make these errors more consistent across platforms. In addition, all permission prompts for tempfile and tempdir were printing the same API name. We also take the opportunity to make the tempfile random space larger by 2x (using a base32-encoded u64 rather than a hex-encoded u32).
2024-02-21fix(ext/node): pass alpnProtocols to Deno.startTls (#22512)Satya Rohith
2024-02-20fix(node/test): disable Deno test sanitizers (#22480)David Sherret
Closes #22473
2024-02-21Revert "fix(console): support NO_COLOR and colors option in all scena… ↵Bartek Iwańczuk
(#22507) …rios (#21910)" This reverts commit bd1358efab8ba7339a8e70034315fa7da840292e. This change caused https://github.com/denoland/deno/issues/22496 and https://github.com/denoland/deno/issues/22445
2024-02-20fix(ext/node): permission prompt for missing `process.env` permissions (#22487)Asher Gomez
Closes #18665 Closes #20213
2024-02-20fix(ext/node): unimplemented code when not IPC child_process (#22488)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22299