summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-28fix(ext/node): implement crypto.Sign (RSA/PEM/SHA{224,256,384,512}) (#18471)Yoshiya Hinosawa
2023-03-28Reland "refactor: remove Deno[Deno.internal].nodeUnstable namespace" (#18475)Bartek Iwańczuk
This reverts commit 357bcfcf79fee92195e37bb3f05e247908f207c5.
2023-03-28feat(ext/node): add `crypto.checkPrime` API (#18465)Divy Srivastava
Towards #18455 This commit implements `checkPrimeSync` and `checkPrime` in node:crypto using the Miller-Rabin primality test (fun fact: it actually is a test for composite numbers) It first compares the candidate against many known small primes and if not, proceeds to run the Miller-Rabin primality test. http://nickle.org/examples/miller-rabin.5c used as reference implementation.
2023-03-28chore(ext/node): port pbkdf2 to Rust (#18470)Divy Srivastava
Towards #18455
2023-03-28chore: add test for Linux shared libraries (#18461)Andrew Nester
Closes #18266
2023-03-28refactor(runtime): manual serialization of bootstrap data (#18448)Bartek Iwańczuk
This commit changes how data required to bootstrap main and worker runtime is serialized. Instead of relying on serde_v8 and using JSON object, we're doing manual serialization to a "v8::Array". This limits number of V8 strings that need to be serialized by 16. It also made it clear that some data could be obtained during snapshotting instead of during bootstrap.
2023-03-27feat(core): initialize SQLite off-main-thread (#18401)Matt Mastracci
This gets SQLite off the flamegraph and reduces initialization time by somewhere between 0.2ms and 0.5ms. In addition, I took the opportunity to move all the cache management code to a single place and reduce duplication. While the PR has a net gain of lines, much of that is just being a bit more deliberate with how we're recovering from errors. The existing caches had various policies for dealing with cache corruption, so I've unified them and tried to isolate the decisions we make for recovery in a single place (see `open_connection` in `CacheDB`). The policy I chose was: 1. Retry twice to open on-disk caches 2. If that fails, try to delete the file and recreate it on-disk 3. If we fail to delete the file or re-create a new cache, use a fallback strategy that can be chosen per-cache: InMemory (temporary cache for the process run), BlackHole (ignore writes, return empty reads), or Error (fail on every operation). The caches all use the same general code now, and share the cache failure recovery policy. In addition, it cleans up a TODO in the `NodeAnalysisCache`.
2023-03-27fix(ext/node): add missing _preloadModules hook (#18447)Marvin Hagemeister
This internal node hook is used by libraries such as `ts-node` when used as a require hook `node -r ts-node/register`. That combination is often used with test frameworks like `mocha` or `jasmine`. We had a reference to `Module._preloadModules` in our code, but the implementation was missing. While fixing this I also noticed that the `fakeParent` module that we create internally always threw because of the `pathDirname` check on the module id in the constructor of `Mdoule`. So this code path was probably broken for a while. ```txt ✖ ERROR: Error: Empty filepath. at pathDirname (ext:deno_node/01_require.js:245:11) at new Module (ext:deno_node/01_require.js:446:15) at Function.Module._resolveFilename (ext:deno_node/01_require.js:754:28) at Function.resolve (ext:deno_node/01_require.js:1015:19) ```
2023-03-27refactor(cli): remove Lazy<String> and fix help outputs (#18462)Bartek Iwańczuk
This `Lazy<String>` calls were showing up on flamegraph and there's really no point in using them.
2023-03-27feat: port node:zlib to rust (#18291)Divy Srivastava
2023-03-27fix(cli/bench): look for clone3 syscalls for thread count (#18456)Divy Srivastava
2023-03-27Revert "refactor: remove Deno[Deno.internal].nodeUnstable namespace (… ↵Bartek Iwańczuk
(#18458) …#18449)" This reverts commit d1a9c4cd7ce0c19ddf9c7c52c0d35d6124a7677d. Appears this made CI very flaky on macOS, but I can't repeat it locally yet
2023-03-27fix(streams): add support `Float64Array` to `ReadableStreamByobReader` (#18188)Kenta Moriuchi
2023-03-27refactor: remove Deno[Deno.internal].nodeUnstable namespace (#18449)Bartek Iwańczuk
Since we can preserve ops in the snapshot these days, we no longer need to have "Deno[Deno.internal].nodeUnstable" namespace. Instead, various built-in Node.js modules can use appropriate APIs directly.
2023-03-27fix(cli): add colors to "Module not found" error frame (#18437)Marvin Hagemeister
2023-03-26feat(bench): add `--no-run` flag (#18433)Geert-Jan Zwiers
2023-03-26test(ext/node): Port crypto tests from std/node (#18382)Max Dahlgren
2023-03-26fix(cli): don't store blob and data urls in the module cache (#18261)Nayeem Rahman
2023-03-26chore: document Node.js compat test setup script (#18381)Yoshiya Hinosawa
2023-03-26chore: Improving FS Error Message for op_realpath_sync and op_realpath_async ↵Mike Mulchrone
(#18404) #17526
2023-03-26fix(cli): deno upgrade file permission (#18427)滑威
2023-03-26refactor: use default implementation of BootstrapOptions (#18439)Bartek Iwańczuk
Drive-by cleanup while I was looking into serialization of BootstrapOptions. There's no need to use non-default implementation in these places.
2023-03-26chore: upgrade clap to v4 (#17333)Leo Kettmeir
2023-03-25feat(test): print pending tests on sigint (#18246)Nayeem Rahman
2023-03-25refactor: include mitata (#18426)Leo Kettmeir
2023-03-25chore(tests): enable `single_compile_with_reload` again (#18196)Geert-Jan Zwiers
2023-03-25chore(ext/kv): add limits (#18415)Heyang Zhou
2023-03-25test(ext/ffi): Increase timeout value in event loop integration test ↵Aapo Alasuutari
callback (#18394)
2023-03-25fix(ext/node): add aes-128-ecb algorithm support (#18412)Yoshiya Hinosawa
2023-03-25chore: update wpt again (#18384)Kenta Moriuchi
This reverts commit 4c2269d64a7dda1397d49bd235e5546470a683ea. > This update introduced more flakiness to the tests on CI, we are going > to investigate and reland this update after Deno 1.32.0 is released.
2023-03-24ci: fix main (#18420)David Sherret
2023-03-24chore: fix located_script_name test (#18418)David Sherret
Closes #18417
2023-03-24chore(types): fix type checking errors in 99_main_compiler.js (#18403)David Sherret
2023-03-24feat(ext/node): implement crypto.createSecretKey (#18413)Divy Srivastava
This commit adds the `crypto.createSecretKey` API. Key management: This follows the same approach as our WebCrypto CryptoKey impl where we use WeakMap for storing key material and a handle is passed around, such that (only internal) JS can access the key material and we don't have to explicitly close a Rust resource. As a result, `createHmac` now accepts a secret KeyObject. Closes https://github.com/denoland/deno/issues/17844
2023-03-24fix(ext/node): make cipher/decipher transform stream (#18408)Yoshiya Hinosawa
2023-03-24fix(ext/kv): add missing `getMany` method (#18410)Heyang Zhou
The `getMany` method was missing from the implementation of the `Deno.Kv` class. This patch fixes it.
2023-03-23refactor: make version and user_agent &'static str (#18400)Bartek Iwańczuk
These caused a bunch of unnecessary allocations on each startup.
2023-03-23fix(core): located_script_name macro was using format syntax (#18388)Matt Mastracci
2023-03-23fix(core): panic at build time if extension code contains anything other ↵Matt Mastracci
than 7-bit ASCII (#18372) This will improve diagnostics and catch any non-ASCII extension code early. This will use `debug_assert!` rather than `assert!` to avoid runtime costs, and ensures (in debug_assert mode only) that all extension source files are ASCII as we load them.
2023-03-23chore: forward v1.32.1 release commit to main (#18399)denobot
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-03-23core: disable resizable ArrayBuffer and growable SharedArrayBuffer (#18395)Bartek Iwańczuk
2023-03-23fix(cli): restore `deno run -` to handle stdin as typescript (#18391)Cre3per
Bug reported here shortly after merging `--ext` changes https://github.com/denoland/deno/pull/17172#issuecomment-1480898098 Also found a missing `--check` in integration tests for `--ext` that would have missed a bug if there was one. Fixes #18392
2023-03-23fix(inspect): ensure non-compact output when object literal has newline in ↵David Sherret
entry text (#18366) Fixes `Deno.inspect` to make an object literal non-compact when an entry has multiple lines in it.
2023-03-23refactor(lsp): add `LspClientUrl` (#18376)David Sherret
This will make it a bit harder to accidentally use a client url in the wrong place. I don't fully understand why we do this mapping, but this will help prevent bugs like #18373 Closes #18374
2023-03-23refactor(ext/node): Use Deno.inspect (#17960)Ryan Dahl
No need for two almost identical implementations of the same thing --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com> Co-authored-by: Aapo Alasuutari <aapo.alasuutari@gmail.com>
2023-03-23refactor(core): move setting up snapshot context to JsRuntime::snapshot (#18383)Bartek Iwańczuk
2023-03-23refactor(init): remove CURRENT_STD_URL (#18375)Bartek Iwańczuk
There's no point in having `Lazy<Url>`, since the only use case is string substitution in the "deno init" subcommand.
2023-03-23fix(lsp): ensure `enablePaths` works when clients do not provide a trailing ↵David Sherret
slash for workspace dir (#18373) Closes https://github.com/denoland/vscode_deno/issues/827
2023-03-22chore: update ext/ code to only use ASCII (#18371)Matt Mastracci
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-03-23chore(ext/kv): create basic README.md (#18370)Matt Mastracci