Releases: denoland/deno
Releases Β· denoland/deno
v2.6.1
2.6.1 / 2025.12.15
- feat(unstable): deploy config allow app to be optional (#31567)
- fix(add): include type-only imports when building graph (#31552)
- fix(cli): add streams as transferable types (#31586)
- fix(compile): intel mac compile fix (#31575)
- fix(compile): sentinal conflict with strtab on intel mac (#31587)
- fix(ext/node):
DatabaseSynccompatibility (#31515) - fix(x): correct alias deno command location for Windows (#31573)
- fix(x): fix executing native binary on windows + some cleanup (#31551)
- fix: --preload and --require flags only available in runtime subcommands
(#31614) - fix: adjust deno_cache version (#31553)
- fix: source map file names to non-existent paths (#31564)
v2.6.0
2.6.0 / 2025.12.10
Read more: http://deno.com/blog/v2.6
- feat(BREAKING/install): require
--for script arg indeno install -gand
support installing multiple packages (#31292) - feat(cli): add approve-scripts AKA "approve-builds" subcommand (#31472)
- feat(cli): filter out common internal frames that add noise, dim and grey
internal frames in stack traces (#31247) - feat(cli): print working dir in grey in stack traces, relative paths in
check + compile output (#31194) - feat(config): allow storing npm constraints to allow running lifecycle scripts
for (#31075) - feat(coverage): add dark-mode toggle for html output (#31140)
- feat(ext/node): implement FileHandle.appendFile(data[, options]) (#31301)
- feat(ext/web): add
ImageDataFloat16Arraysupport (#31394) - feat(ext/web): stabilize
BroadcastChannel(#30770) - feat(ext/web): transferable {Readable,Writable,Transform}Stream (#31126)
- feat(init/npm): add --yes flag to bypass prompt (#31499)
- feat(install): add
--lockfile-onlyflag (#31376) - feat(lint): plugin API has env and read access (#31327)
- feat(node): allow subpath imports that start with '#/' (#31520)
- feat(permissions): allow
Deno.env.toObject()for partial env permission
(#31267) - feat(permissions): allow flags should override deny when more specific
(#31224) - feat(process): support integer signals in Deno.kill and child.kill (#31153)
- feat(unstable): add socket.dev integration for
deno audit(#31106) - feat(unstable): support authenticated socket.dev audit reports (#31370)
- feat(upgrade): ability to show additional message on upgrade (#31170)
- feat: V8 14.2 (#31178)
- feat:
--ignore-read(#31363) - feat:
deno init --empty(#31516) - feat: add --require run arg to support commonJS (#31201)
- feat: add Float16Array support (#31410)
- feat: add
--ignore-env=...(#31187) - feat: add
deno x(aliasdx) for conveniently running binaries from
packages (#31138) - feat: add native source maps support (#31268)
- feat: include
@types/nodetype declarations out of the box (#31502) - feat: support
publish: falseindeno.json(#30852) - feat: use Node.js timers by default (#31272)
- feat: wasm source phase imports (#31486)
- fix(audit): remove unwrap in favor of log, don't print empty reports (#31479)
- fix(bundle): Deno.bundle work in Worker (#31316)
- fix(bundle): avoid name clash in hack (#31409)
- fix(bundle): do not error on failing to clean up esbuild dir (#31408)
- fix(bundle): don't use createRequire when targeting browser in Deno.bundle
(#31534) - fix(bundle): fix import.meta.main transform with jsr entrypoint (#31415)
- fix(bundle): support android (#31521)
- fix(bundle): treat bun specifiers as external by default (#31411)
- fix(check): ensure
@types/nodeis cached when already in resolution (#31235) - fix(check): fix nil deref with
--unstable-tsgo(#31416) - fix(check): move types not found error to tsc diagnostic (#31509)
- fix(check): move unknown builtin node: module errors to tsc diagnostics
(#31449) - fix(cli): make --eval-file flag work without equals sign (#31151)
- fix(cli): put tasks first in zsh dynamic completions (#31350)
- fix(compile): support --preload flag in deno compile (#31152)
- fix(config): support UTF-16 surrogate pairs in unicode escape sequences in
json config (#31264) - fix(deps): use windows-sys for all windows targets (#31308)
- fix(ext/napi): suppress deprecated Buffer warnings (#31245)
- fix(ext/net): support IPv6 zone indices in Deno.connect() (#31123)
- fix(ext/node): Add sqlite
setAllowUnknownNamedParametersoption (#31202) - fix(ext/node): FileHandle compatibility (#31164)
- fix(ext/node):
StatementSync.iterate()should resetis_iter_finishedflag
on every call (#31361) - fix(ext/node):
url.domainToASCIIreturns empty string for invalid domains
(#31219) - fix(ext/node): autopadding behavior on
crypto.Cipheriv(#31389) - fix(ext/node): define process.versions.sqlite (#31277)
- fix(ext/node): ensure 'exit' event is fired only once for
worker_threads
(#31231) - fix(ext/node): export ppid (#31137)
- fix(ext/node): fix sqlite extension used for testing; ensure related tests are
actually meaningful (#31455) - fix(ext/node): implement
DatabaseSync.aggregate()(#31461) - fix(ext/node): implement
DatabaseSync.function()and better error details
(#31386) - fix(ext/node): implement
dns.lookupService(#31310) - fix(ext/node): implement
process.setegid()(#31155) - fix(ext/node): implement
process.setgid()andprocess.setuid()(#31162) - fix(ext/node): implement
process:seteuid()(#31160) - fix(ext/node): implement performance.timerify() (#31238)
- fix(ext/node): implement util.getSystemErrorMessage() (#31147)
- fix(ext/node): prevent cipher operations after finalize (#31533)
- fix(ext/node): reimplement
setImmediateAPI (#30328) - fix(ext/node): respect abort signal option on
FileHandle.readFile(#31462) - fix(ext/node): respects
flagoption onfs.readfileandfs.readfilesync
(#31129) - fix(ext/node): segfault on calling
StatementSyncmethods after connection
has closed (#31331) - fix(ext/node): sqlite
setAllowUnknownNamedParameterserror message (#31319) - fix(ext/node): sqlite.DatabaseSync explicit resource management compatibility
(#31311) - fix(ext/node): truncate first non-hex value on Buffer.from (#31227)
- fix(ext/signals): don't run exit hooks at non-exit times (#31269)
- fix(ext/web): Event dispatch should continue after reporting exception
(#31297) - fix(ext/web): console.dir respects indent level (#31412)
- fix(install): report installed npm packages when not using node_modules, fix
double counting (#31536) - fix(install): rewrite node_modules .bin shim generation for windows to be like
npm (#31494) - fix(lsp):
organizeImportswithout resolving specifiers (#31230) - fix(lsp): don't provide organizeImports action when client provides it
(#31530) - fix(lsp): lint-ignore directives follow leading comments (#31200)
- fix(lsp): set lockfile_skip_write unconditionally (#31191)
- fix(lsp): store assigned compiler options for cache files (#31377)
- fix(node): ensure process.argv is an array of strings (#31322)
- fix(node): missing
statfsexport fromnode:fs/promises(#31528) - fix(node): stub missing process.sourceMapsEnabled (#31358)
- fix(node): support advanced serialization in IPC (#31380)
- fix(node/assert): deepStrictEqual now correctly handles Number objects
(#31233) - fix(node/crypto): respect authTagLength in createCipheriv for GCM cipβ¦
(#31253) - fix(node/net): return string
familyinserver.address()(#31465) - fix(node/process): make
process.stdin.isTTYwritable (#31464) - fix(node/timers): ensure active timers entry is deleted on
Timeout.prototype.refresh(#31436) - fix(node:console): ensure that the node:console implementation has an
implementation foremitWarningin scope (#31263) - fix(resolver): fall back to execution if can't resolve types (#31507)
- fix(schema): add bundle to unstable field schema (#31395)
- fix(test): Remove ANSI Escape Codes for Junit Reports (#30854)
- fix(tsgo): do not error out on non js/ts imports from npm packages (#31478)
- fix(tunnel): misc fixes (#30968)
- fix(types): add Symbol.iterator to NodeListOf (fixes #31382) (#31384)
- fix(unstable): don't panic on invalid reported lint range (#31261)
- fix:
is_elfpanic in sui (#31388) - fix: change errors message suggesting to run approve-scripts (#31493)
- fix: clippy::derivable_impls (#31460)
- fix: fetch fd leak (#31375)
- fix: fix npx running in test, make approve-scripts test less flaky (#31501)
- fix: make '@types' package resolution more consistent (#31512)
- fix: skip doing npm resolution in more cases (#31305)
- fix: update JSDoc for Deno.cwd() API (#31256)
- fix: update deno_error to 0.7.1 (#31450)
- fix: update permission-broker-response.v1.json (#31328)
- fix: upgrade denokv_* to 0.13 and rusqlite to 0.27 (#31374)
- fix: upgrade to swc_ecma_parser 27 (#31427)
- fix: wpt assert expectation correctly even if the filter has a layer (#30574)
- perf(node): implement getOwnNonIndexProperties in native code (#31393)
- perf(node): optimize Buffer compare (#31425)
v2.5.6
v2.5.5
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 auditsubcommand (#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.resolve6compatibility (#30974) - fix(ext/node):
fs.read/fs.readSyncandfs.write/fs.writeSynccompatibility
(#31013) - fix(ext/node):
path.matchesGlobcompatibility (#30976) - fix(ext/node): checking
Symbolinenvshould 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
kReinitializeHandlework for TLS wrap (#31079) - fix(ext/node): process.moduleLoadList as undefined (#31022)
- fix(ext/node): support option object parameter on
fs.writeand
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_infoinCallbackInfo(#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
Eventto 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
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.cpandfs.cpSynccompatibility (#30502) - fix(ext/node):
fs.statandfs.statSynccompatibility (#30866) - fix(ext/node): avoid stack overflow in
node:zlib'sgunzip(#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
smifromzlib.crc32op 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
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
--connectedto--tunneland better handleDENO_DEPLOY_TOKENenv 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
v2.1.14
v2.5.2
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
Uint8Arraybase64/hex methods (#30686) - fix(dts): update stream type declarations to use
Promise<void>(#30820) - fix(ext/node):
fs.readFile,fs.readFileSyncassert encoding (#30830) - fix(ext/node):
fs.statfsSyncandfs.statfscompatibility (#30662) - fix(ext/node): accept ArrayBuffer on crypto.timingSafeEqual (#30773)
- fix(ext/node): crypto
CipherivandDecipherivbase64 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
.batand.cmddirectly 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
2.5.1 / 2025.09.16
- feat(unstable): support
Deno.HttpClientinWebSocket(#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
fchmodon windows (#30704) - fix(ext/node): make
fs.globacceptsURLcwd (#30705) - fix(ext/node): set default callback for
fs.close(#30720) - fix(ext/node): validate
fs.closecallback 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 --npmstopped 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)