Skip to content

Releases: denoland/deno

v2.5.6

30 Oct 04:46
1b5f311

Choose a tag to compare

2.5.6 / 2025.10.29

  • Revert "chore: update urlpattern (#31054)" (#31117)
  • fix(ext/node): implement StatementSync#columns() method (#31119)
  • fix(windows): re-allow spawning bat and cmd files (#31118)
  • fix(windows): strip periods and trailing slashes when normalizing paths
    (#31131)

v2.5.5

28 Oct 20:12
367ecdd

Choose a tag to compare

2.5.5 / 2025.10.28

  • feat(unstable): ability to exclude packages from minimum dependency age
    constraint (#31031)
  • feat(unstable): ability to only install dependencies older than a certain date
    (#30752)
  • feat(unstable): ability to specify minimum dependency age in deno.json file
    (#31007)
  • feat(unstable): add deno audit subcommand (#30966)
  • feat(unstable): add process id to permission broker messages (#31050)
  • feat(unstable): dynamic command-line completions for deno task (#30670)
  • feat(unstable): typescript-go integration for deno check (#30920)
  • fix(audit): handle 'review' actions (#31100)
  • fix(check): error when type checking after deduping packages (#31049)
  • fix(check): fall back to copying tsgo binary if rename fails (#31074)
  • fix(check): respect "compilerOptions.skipLibCheck" for graph errors (#30989)
  • fix(check): support isolatedDeclarations (#31061)
  • fix(check): support text and bytes imports with --unstable-tsgo (#31084)
  • fix(cli/args): empty permissions in config should not require -P (#31063)
  • fix(coverage): don't process coverage for blob: urls (#31035)
  • fix(docs): Deno.args example doesn't work (#30969)
  • fix(docs): documented allowed subdomain should be gist and not user for
    githubusercontent.com (#30913)
  • fix(ext/http): display localhost url once on windows (#31088)
  • fix(ext/http): make websocket response headers mutable (#31000)
  • fix(ext/node): dns.resolve6 compatibility (#30974)
  • fix(ext/node): fs.read/fs.readSync and fs.write/fs.writeSync compatibility
    (#31013)
  • fix(ext/node): path.matchesGlob compatibility (#30976)
  • fix(ext/node): checking Symbol in env should not ask for permission
    (#30965)
  • fix(ext/node): cpus() should not error when there's no cpu info (#31097)
  • fix(ext/node): false deprecation warning on crypto.createHmac (#31025)
  • fix(ext/node): handle empty writes in chunked HTTP requests (#31066)
  • fix(ext/node): handle multiple calls in inspector.Session.post() (#31067)
  • fix(ext/node): impl sqlite 'backup' capability (#29842)
  • fix(ext/node): implement FileHandle.readLines() (#31107)
  • fix(ext/node): inconsistent error message thrown by AssertionError (#31089)
  • fix(ext/node): make kReinitializeHandle work for TLS wrap (#31079)
  • fix(ext/node): process.moduleLoadList as undefined (#31022)
  • fix(ext/node): support option object parameter on fs.write and
    fs.writeSync (#30999)
  • fix(ext/web): fix promise chain leak of ReadableStream (#30871)
  • fix(fmt/json): support hexadecimal numbers, plus sign on numbers, and words
    with underscores (#31057)
  • fix(kv): do not error when creating kv db with relative path and -A (#31021)
  • fix(lockfile): purged package reqs should be removed from the jsr deps when
    changing workspace config (#30998)
  • fix(lsp): add support for source.organizeImports (#31016)
  • fix(lsp): refresh configuration when tsconfig.json is changed (#30993)
  • fix(napi): Fix misused napi_callback_info in CallbackInfo (#30983)
  • fix(npm): add a deduplication pass and reduce lockfile diffs (#30973)
  • fix(npm): handle deno run/install of npm package with only directories.bin
    (#30919)
  • fix(npm): occasional panic when upgrading npm package constraints (#31006)
  • fix(npm): regression resolving npm bin for default when only one entry
    (#31055)
  • fix(process): case insenstive check for disallowing .bat and .cmd (#30967)
  • fix(rt): prevent Event to be overwritten on bootstrap (#30971)
  • fix(unstable): read npm lazy caching from unstable config in deno.json as well
    (#31026)
  • fix: Deno.serve correctly passes tcpBacklog option (#30748)
  • fix: debug log for package.json being found was incorrect (#31062)
  • fix: regex pattern syntax in config-file.v1.json (#31038)
  • fix: show referrer range in deno_core loader errors (#30981)

v2.5.4

09 Oct 12:49
6fbce91

Choose a tag to compare

2.5.4 / 2025.10.09

  • fix(cache): don't try to set up node_modules with node_modules_dir manual in
    deno cache (#30957)
  • fix(cli): jsx pragma-related swc panics (#30935)
  • fix(ext/node): fs.cp and fs.cpSync compatibility (#30502)
  • fix(ext/node): fs.stat and fs.statSync compatibility (#30866)
  • fix(ext/node): avoid stack overflow in node:zlib's gunzip (#30865)
  • fix(ext/node): fs.realpath buffer encoding (#30885)
  • fix(ext/node): inspect X509Certificate class (#30882)
  • fix(ext/node): map BadResource error to the corresponding node error (#30926)
  • fix(ext/node): omit smi from zlib.crc32 op function (#30907)
  • fix(tunnel): prevent auth subprocess loop with tasks (#30896)
  • fix(tunnel): unhide --tunnel flag (#30940)
  • fix(update): preserve tilde in version range (#30946)
  • fix(webgpu): crash after isolate disposal (#30909)
  • fix: use ArrayIsArray primordial (#30927)

v2.5.3

03 Oct 04:39
1c3d04c

Choose a tag to compare

2.5.3 / 2025.10.02

  • feat(unstable): add permission broker (#30826)
  • feat(unstable): permission broker - support custom error messages (#30902)
  • feat(unstable): support named pipes on Windows for the permission broker (#30894)
  • fix(check): do not error for unsupported URL schemes (#30904)
  • fix(clean): do not panic on failure to get local cache path in clean --except (#30895)
  • fix(cli/util): terminate watch file with sigint (#30635)
  • fix(dts): update some GPU types to not cause errors in upcoming DOM type declarations (#30893)
  • fix(ext/node): allow ATTACH DATABASE with --allow-all (#30763)
  • fix(ext/node): setTimeout promisified to handle abort signal (#30855)
  • fix(fs): improve file stat checks (#30876)
  • fix(fs): improve file utime checks (#30872)
  • fix(npm): do not error when packument version contains both bundleDependencies and bundledDependencies (#30875)
  • fix(unstable/tunnel): rename --connected to --tunnel and better handle DENO_DEPLOY_TOKEN env variable (#30786)
  • fix: add support for passing v8 flags on deno check (#30868)
  • fix: do not purge lockfile when linking and the linked package's reqs have not changed (#30877)
  • fix: show --permission-set help only once (#30844)

v2.2.15

01 Oct 13:59
5f6b132

Choose a tag to compare

2.2.15 LTS / 2025.09.30

  • fix: reject running .bat and .cmd directly on windows (#30818)
  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix(fs): improve file stat checks (#30876)
  • fix(fs): improve file utime checks (#30872)

v2.1.14

29 Sep 23:11
b8ae132

Choose a tag to compare

2.1.14 / 2025.05.13

  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix: reject running .bat and .cmd directly on windows (#30818)

v2.5.2

24 Sep 22:21
0278715

Choose a tag to compare

2.5.2 / 2025.09.24

  • feat(lsp): describe/it test editor support (#30802)
  • fix(bundle): reload html entrypoints with --watch (#30790)
  • fix(check): support "compilerOptions.paths" (#30766)
  • fix(cli/bundle): respect --frozen flag deno bundle command (#30825)
  • fix(coverage): collect coverage data for workers (#30807)
  • fix(dts): add Uint8Array base64/hex methods (#30686)
  • fix(dts): update stream type declarations to use Promise<void> (#30820)
  • fix(ext/node): fs.readFile, fs.readFileSync assert encoding (#30830)
  • fix(ext/node): fs.statfsSync and fs.statfs compatibility (#30662)
  • fix(ext/node): accept ArrayBuffer on crypto.timingSafeEqual (#30773)
  • fix(ext/node): crypto Cipheriv and Decipheriv base64 encoding (#30806)
  • fix(ext/ws): send User-Agent header in WS handshake (#30758)
  • fix(fetch): handle proxied urls correctly and add test (#30794)
  • fix(lint): skip module graph validation (#30815)
  • fix(tunnel): make auth more robust (#30731)
  • fix: add top level permissions key to config file schema (#30765)
  • fix: reject running .bat and .cmd directly on windows (#30818)
  • fix: restore Windows debug info (#30778)
  • perf(lsp): don't watch node_modules files (#30768)
  • perf: stack allocated v8 scopes (#30827)
  • perf: support negative caching of package.json (#30792)

v2.5.1

17 Sep 07:22
4c1cdfc

Choose a tag to compare

2.5.1 / 2025.09.16

  • feat(unstable): support Deno.HttpClient in WebSocket (#30692)
  • feat(unstable): tcp proxy for Deno.HttpClient (#30700)
  • fix(bundle): set the type of the outputFile in the deno bundle to Uint8Array<ArrayBuffer> (#30716)
  • fix(check): filter resolution errors for bare ambient modules (#30690)
  • fix(ext/fetch): mark unix and vsock proxy conns as proxy (#30699)
  • fix(ext/node): handle falsy values enumerability in process.env (#30708)
  • fix(ext/node): implement fchmod on windows (#30704)
  • fix(ext/node): make fs.glob accepts URL cwd (#30705)
  • fix(ext/node): set default callback for fs.close (#30720)
  • fix(ext/node): validate fs.close callback function (#30679)
  • fix(ext/node): validate fs.read on empty buffer (#30706)
  • fix(ext/node): validate readlink arguments (#30691)
  • fix(ffi): check that fast calls are taken (#30658)
  • fix(http): duplicate listener should inherit onError and signal (#30680)
  • fix(init): regression where deno init --npm stopped working on mac (#30730)
  • fix(lsp): don't write lockfile during cache-on-save (#30733)
  • fix(node): reduce chance of module not found error due to missing copy package (#30744)
  • fix(permissions): point to correct config file in error message in workspace containing permissions at root (#30742)
  • fix: Add info/hint for unstable Deno.bundle API (#30682)

v2.5.0

10 Sep 07:24
c6adba1

Choose a tag to compare

2.5.0 / 2025.09.10

  • feat(BREAKING/fmt): prompt or require deno fmt . when providing no files and
    no config files discovered (#30623)
  • feat(bundle): runtime API for deno bundle (#29949)
  • feat(bundle): support html entrypoint (#29856)
  • feat(cli): reload environment variables with --watch and --env-file
    (#30197)
  • feat(ext/fetch): Parse unix socket and vsock proxies from env var (#30377)
  • feat(ext/node): add sqlite-type symbol for DatabaseSync (#30511)
  • feat(ext/process): add collector utilities to ChildProcess.stdout &
    ChildProcess.stderr (#30552)
  • feat(fmt): apply object spacing to import/export lines (#30371)
  • feat(install): refresh install report (#30615)
  • feat(install): update warning for npm package build scripts (#30527)
  • feat(lint): no-import-prefix workspace rule (#30598)
  • feat(lint): no-unversioned-import rule (#30609)
  • feat(node): implement async hooks for nextTick TickObject tracking (#30578)
  • feat(npm): support bundleDependencies in npm dependencies (#30521)
  • feat(test): Add setup and teardown APIs to Deno.test API (#30504)
  • feat(unstable): WebSocket headers field (#30321)
  • feat(unstable): use Node.js setTimeout and setInterval (#29993)
  • feat: TypeScript 5.9.2 (#30601)
  • feat: V8 14.0.0 (#30629)
  • feat: deno run with no arguments prints list of available tasks (#30592)
  • feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541)
  • feat: allow disable hostname verification in TLS (#30409)
  • feat: permission audit log (#30575)
  • feat: permissions in the config file (#30330)
  • fix(bundle): avoid cloning parsed source, restore owned transpile assertion
    (#30624)
  • fix(bundle): do not error on fallible dynamic imports/requires (#30522)
  • fix(bundle): don't error when using npm package without bin as entrypoint
    (#30523)
  • fix(bundle): properly display error on invalid config in watch mode (#30621)
  • fix(cache): cache and uninstall are package manager subcommands (#30613)
  • fix(check): don't ignore ambient declarations for existent files (#30591)
  • fix(check): support "compilerOptions.rootDirs" in tsconfig (#30495)
  • fix(check): support "moduleResolution": "bundler" in compiler options (#30603)
  • fix(cli): support data urls in preload by not splitting on comma. (#30544)
  • fix(cli/run): resolve conflict when dir has same name as a task (#29538)
  • fix(dts): align crypto.getRandomValues in lib.deno_crypto.d.ts with
    lib.dom.d.ts and lib.webworker.d.ts (#30647)
  • fix(dts): specify the underlying buffer type in more places (#30640)
  • fix(ext/fetch): only uppercase known methods (#30290)
  • fix(ext/node): Readable adapter cancel semantics (#30526)
  • fix(ext/node): crypto.hkdfSync returns wrong result for non-Uint8Array
    TypedArray inputs (#30463)
  • fix(ext/node): fs.exists and fs.existsSync compatibility (#30507)
  • fix(ext/node): fs.mkdtemp and fs.mkdtempSync compatibility (#30602)
  • fix(ext/node): fs.path' makelong and resolve compatibility (#30503)
  • fix(ext/node): fix hang induced by maxSockets bounds (#30622)
  • fix(ext/node): fs.symlink and fs.symlinkSync compatibility (#30555)
  • fix(ext/node): handle null keypair in tls connect (#30516)
  • fix(ext/node): http.server.listen to handle signal option (#30515)
  • fix(ext/node): ignore Node.js' --experimental-* flags when spawning child
    process (#26351)
  • fix(ext/node): implement http.res.setHeaders (#30586)
  • fix(ext/node): path.normalize compatibility (#30537)
  • fix(ext/node): path.relative compatibility (#30566)
  • fix(ext/node): readline line separators (#30630)
  • fix(ext/node): set socket.authorized to true for https request (#30641)
  • fix(ext/node): support JS underlying stream in TLS (#30465)
  • fix(ext/webgpu): add illegal constructor errors (#30500)
  • fix(init): eliminate flickering progress bar (#30496)
  • fix(init): use temp node_modules folders for deno init --npm ... (#30492)
  • fix(install): don't try to re-symlink binaries in node_modules if the symlink
    is correct (#30546)
  • fix(install): force refresh if cannot find version (#30483)
  • fix(install): print install report on add, cache, and all install
    variants, move scripts and deprecation warnings after the report (#30549)
  • fix(install/cache): better discovery for config file based on entrypoint
    (#30608)
  • fix(lsp): auto-import dep entries from workspace member import maps (#30667)
  • fix(lsp): goto-type-definition for builtin on startup (#30499)
  • fix(lsp): import rewrites in moved file (#30628)
  • fix(napi): buffer finalizer is nullable (#30514)
  • fix(node): improve directory import error suggestion (#30619)
  • fix(node): regression where Node fs APIs required elevated permissions on
    Windows (#30535)
  • fix(node_resolver): incorrect resolution of require("..") (#30524)
  • fix(npm): do not error on failure to write warned script file (#30479)
  • fix(publish): unfurl import.meta.resolve calls (#30663)
  • fix(tests): Switch from --nocapture to --no-capture (#30638)
  • fix(types): specify ArrayBuffer as a backing buffer type for Response.body
    and Response.bytes (#30435)
  • fix(types): specify ArrayBuffer as a backing buffer type for
    TextEncoder.encode() (#30434)
  • fix(unstable): make QuicListener yield QuicIncoming (#30150)
  • fix(unstable): support unstable-raw-imports when prewarmed (#30530)
  • fix: add another space after warning symbol (#30482)
  • fix: do not have duplicate progress bars for post install scripts (#30489)
  • fix: pass npm process state when spawning script in npm package via Node APIs
    (#30490)
  • fix: upgrade to swc_ecma_parser 23 (#30564)

v2.4.5

21 Aug 14:44
b7061b0

Choose a tag to compare

2.4.5 / 2025.08.21

  • feat(lsp): pull-based diagnostics (#30325)
  • feat(unstable/install): DENO_INSTALL_ARCH env var (#30473)
  • feat(unstable/install): more informative deno install output (#30387)
  • fix(bundle): allow json imports without attribute in deno bundle, support
    require of json (#30413)
  • fix(cache): cache excluded modules explicitly provided on the command line
    (#30442)
  • fix(ext/node): TLS emit close event on parent socket (#30451)
  • fix(ext/node): os.setPriority and os.getPriority compatibility (#30383)
  • fix(ext/node): bad compression caused by invalid brotli params (#30437)
  • fix(ext/node): export promises from stream (#30427)
  • fix(ext/node): mTLS support for node:tls (#30426)
  • fix(ext/node): tls upgrades for used sockets (#30418)
  • fix(ext/node): validate callback on fs.mkdtemp and fs.stat (#30454)
  • fix(fmt): do not remove parens for jsdoc with @satisfies (#30453)
  • fix(lsp): fix import specifiers in file rename changes (#30458)
  • fix(lsp): silence tsc debug failures for inlay hints (#30456)
  • fix(node/fs): cp should not create subfolder when both source and target are
    directories (#30408)
  • fix(outdated): use version tagged as latest if it satisfies the version req
    (#30412)
  • fix(publish): handle precompile in jsx publishing (#30466)
  • fix(resolver): update "with --unstable-sloppy-imports" message to use
    "--sloppy-imports" (#30421)
  • fix(std/fs): implement chmod on windows (#30436)
  • fix(test): set cwd when running node compatibility tests (#30422)
  • fix(unstable): fix json repl bugs (#30415)
  • fix(unstable): parsing regex in selector with character class (#30462)
  • fix: add missing cargo feature to 'deno_npm_cache' crate (#30397)
  • fix: enable keyring features and dont clear token when config is missing
    (#30468)
  • fix: support cjs, cts, mjs, and mts for the --ext flag (#30398)
  • perf(ext/net): change the default TCP backlog to 512 (#30471)