🎉 This release contains work from new contributors! 🎉
Thanks for all your work!
❤️ Alex (@alexchexes)
❤️ Valentyne Stigloher (@pixunil)
❤️ Cal (@CalLavicka)
❤️ James Vaughan (@jamesbvaughan)
❤️ Orta Therox (@orta)
❤️ Sam Sudar (@srsudar)
❤️ Aaron Madlon-Kay (@amake)
❤️ Arya Emami (@aryaemami59)
❤️ Julian Bez (@webjunkie)
❤️ Neal Granger (@10xjs)
🚀 Enhancement
- feat: node:test #2413 (@arthurfiorette)
- feat: update deps #2417 (@domoritz)
- feat: simplify parsing variadic arg (and support -t X Y and -t X -t Y patterns) #2416 (@domoritz)
- feat: add
NewExpressionparser #2346 (@jamesbvaughan) - feat: Add --full-description option to include full comment in schema #2224 (@alexchexes)
- feat(parser): support SpreadElement in array literals #2269 (@alexchexes)
🐛 Bug Fix
- fix: error "has multiple definitions" with discriminate unions #1836 (@webjunkie)
- fix: remove
removeCommentsfromtsconfig.json#2443 (@aryaemami59) - fix: generic index access constraint case (#542) #2421 (@10xjs @amake)
- follow up for node:test pr #2419 (@arthurfiorette)
- narrow AnyType to StringType in mapped types #2412 (@srsudar)
- fix: mapped number types in Record syntax (#2418) #2418 (@srsudar)
- add support for BinaryExpression node #2411 (@srsudar)
- add support for a types array #2410 (@srsudar @domoritz)
- Allow node VFS based programmatic usage #2392 (@orta)
- chore: update deps #2306 (@domoritz)
- Fix: crashes and incomplete schema generation when mapped/intersection helpers are used with
--additional-propertiesoption #2305 (@alexchexes) - Fix promise with generic type arguments #2291 (@CalLavicka)
- Fix: prune unreachable definitions when
--type "*"is used with multiple exports #2284 (@alexchexes @arthurfiorette) - Fix: crash when a union includes
symbol#2282 (@alexchexes) - fix: correctly generate anyOf on unions with string and boolean constant #2208 (@pixunil)
- fix: fully unwrap union aliases in mapped keys to avoid generating incorrect additionalProperties #2232 (@alexchexes)
- fix: avoid incorrect additionalProperties for Pick<..., AliasLiteralUnion> #2230 (@alexchexes)
🔩 Dependency Updates
- chore(deps): bump commander from 14.0.2 to 14.0.3 #2455 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.53.1 to 8.54.0 #2456 (@dependabot[bot])
- chore(deps-dev): bump globals from 17.1.0 to 17.3.0 #2457 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.53.0 to 8.53.1 #2452 (@dependabot[bot])
- chore(deps-dev): bump globals from 17.0.0 to 17.1.0 #2453 (@dependabot[bot])
- chore(deps-dev): bump prettier from 3.8.0 to 3.8.1 #2454 (@dependabot[bot])
- chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 #2451 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.52.0 to 8.53.0 #2446 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.10.7 to 24.10.9 #2447 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.4.1 to 6.4.2 #2448 (@dependabot[bot])
- chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 #2449 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 #2450 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.51.0 to 8.52.0 #2444 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.10.4 to 24.10.7 #2445 (@dependabot[bot])
- chore(deps): bump vega-selections from 6.1.0 to 6.1.2 #2440 (@dependabot[bot])
- chore(deps): bump vega-functions from 6.1.0 to 6.1.1 #2441 (@dependabot[bot])
- chore(deps-dev): bump globals from 16.5.0 to 17.0.0 #2438 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.50.1 to 8.51.0 #2439 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.50.0 to 8.50.1 #2437 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.10.1 to 24.10.4 #2435 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.49.0 to 8.50.0 #2436 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.39.1 to 9.39.2 #2429 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.39.1 to 9.39.2 #2428 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.48.1 to 8.49.0 #2427 (@dependabot[bot])
- chore(deps-dev): bump try from 1.0.1 to 1.0.3 #2431 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.48.0 to 8.48.1 #2422 (@dependabot[bot])
- chore(deps-dev): bump prettier from 3.7.3 to 3.7.4 #2423 (@dependabot[bot])
- chore(deps-dev): bump prettier from 3.6.2 to 3.7.3 #2414 (@dependabot[bot])
- chore(deps): bump glob from 11.1.0 to 13.0.0 #2407 (@dependabot[bot])
- chore(deps-dev): bump @auto-it/first-time-contributor from 11.3.0 to 11.3.6 #2408 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.46.4 to 8.47.0 #2409 (@dependabot[bot])
- chore(deps): bump actions/checkout from 5 to 6 #2406 (@dependabot[bot])
- chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 #2405 (@dependabot[bot])
- chore(deps): bump glob #2404 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1 #2398 (@dependabot[bot])
- chore(deps-dev): bump @auto-it/conventional-commits from 11.3.0 to 11.3.6 #2399 (@dependabot[bot])
- chore(deps-dev): bump auto from 11.3.0 to 11.3.6 #2400 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.46.3 to 8.46.4 #2401 (@dependabot[bot])
- chore(deps-dev): bump chai from 6.2.0 to 6.2.1 #2402 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 #2394 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.39.0 to 9.39.1 #2395 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.9.2 to 24.10.0 #2396 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.46.2 to 8.46.3 #2393 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 #2387 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-env from 7.28.3 to 7.28.5 #2388 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 #2389 (@dependabot[bot])
- chore(deps-dev): bump globals from 16.4.0 to 16.5.0 #2390 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.38.0 to 9.39.0 #2391 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-typescript from 7.27.1 to 7.28.5 #2382 (@dependabot[bot])
- chore(deps): bump commander from 14.0.1 to 14.0.2 #2383 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.8.1 to 24.9.1 #2384 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.46.1 to 8.46.2 #2385 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.28.4 to 7.28.5 #2386 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.7.2 to 24.8.1 #2378 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.37.0 to 9.38.0 #2379 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.46.0 to 8.46.1 #2381 (@dependabot[bot])
- chore(deps): bump actions/setup-node from 5 to 6 #2377 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.45.0 to 8.46.0 #2373 (@dependabot[bot])
- chore(deps): bump typescript from 5.9.2 to 5.9.3 #2374 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.6.2 to 24.7.2 #2375 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.36.0 to 9.37.0 #2376 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.44.1 to 8.45.0 #2368 (@dependabot[bot])
- chore(deps-dev): bump jest from 30.1.3 to 30.2.0 #2369 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.36.0 to 9.37.0 #2370 (@dependabot[bot])
- chore(deps-dev): bump cross-env from 10.0.0 to 10.1.0 #2371 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.5.2 to 24.6.2 #2372 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.44.0 to 8.44.1 #2363 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.3.3 to 24.5.2 #2364 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.4.0 to 6.4.1 #2365 (@dependabot[bot])
- chore(deps-dev): bump chai from 6.0.1 to 6.2.0 #2366 (@dependabot[bot])
- chore(deps-dev): bump tsx from 4.20.5 to 4.20.6 #2367 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.3.1 to 6.4.0 #2358 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.35.0 to 9.36.0 #2359 (@dependabot[bot])
- chore(deps-dev): bump vega from 6.1.2 to 6.2.0 #2360 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.43.0 to 8.44.0 #2361 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.35.0 to 9.36.0 #2362 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.3.0 to 24.3.3 #2353 (@dependabot[bot])
- chore(deps-dev): bump globals from 16.3.0 to 16.4.0 #2354 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.3.0 to 6.3.1 #2355 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.41.0 to 8.43.0 #2356 (@dependabot[bot])
- chore(deps): bump commander from 14.0.0 to 14.0.1 #2357 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.28.3 to 7.28.4 #2347 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.2.0 to 6.3.0 #2348 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.34.0 to 9.35.0 #2349 (@dependabot[bot])
- chore(deps-dev): bump jest from 30.1.1 to 30.1.3 #2350 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.34.0 to 9.35.0 #2351 (@dependabot[bot])
- chore(deps): bump actions/setup-node from 4 to 5 #2345 (@dependabot[bot])
- chore(deps-dev): bump jest from 30.0.5 to 30.1.1 #2343 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.40.0 to 8.41.0 #2344 (@dependabot[bot])
- chore(deps-dev): bump chai from 5.2.1 to 6.0.1 #2341 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.33.0 to 9.34.0 #2337 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.33.0 to 9.34.0 #2338 (@dependabot[bot])
- chore(deps-dev): bump tsx from 4.20.4 to 4.20.5 #2339 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.39.1 to 8.40.0 #2340 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-env from 7.28.0 to 7.28.3 #2331 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.2.1 to 24.3.0 #2332 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.39.0 to 8.39.1 #2333 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.28.0 to 7.28.3 #2334 (@dependabot[bot])
- chore(deps-dev): bump tsx from 4.20.3 to 4.20.4 #2335 (@dependabot[bot])
- chore(deps): bump actions/checkout from 4 to 5 #2330 (@dependabot[bot])
- chore(deps): bump typescript from 5.8.3 to 5.9.2 #2325 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.38.0 to 8.39.0 #2329 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.32.0 to 9.33.0 #2326 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.5.3 to 5.5.4 #2327 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.1.0 to 24.2.1 #2328 (@dependabot[bot])
- chore(deps-dev): bump cross-env from 7.0.3 to 10.0.0 #2324 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.0.15 to 24.1.0 #2318 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.37.0 to 8.38.0 #2320 (@dependabot[bot])
- chore(deps-dev): bump jest from 30.0.4 to 30.0.5 #2321 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.31.0 to 9.32.0 #2322 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.0.13 to 24.0.15 #2313 (@dependabot[bot])
- chore(deps-dev): bump eslint-config-prettier from 10.1.5 to 10.1.8 #2314 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.36.0 to 8.37.0 #2315 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.5.1 to 5.5.3 #2316 (@dependabot[bot])
- chore(deps-dev): bump chai from 5.2.0 to 5.2.1 #2308 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.0.10 to 24.0.13 #2309 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.35.1 to 8.36.0 #2310 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.30.1 to 9.31.0 #2311 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 24.0.7 to 24.0.10 #2301 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.27.4 to 7.28.0 #2302 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.5.0 to 5.5.1 #2304 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.30.0 to 9.30.1 #2300 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.30 to 24.0.7 #2296 (@dependabot[bot])
- chore(deps-dev): bump vega-lite from 6.1.0 to 6.2.0 #2295 (@dependabot[bot])
- chore(deps-dev): bump prettier from 3.5.3 to 3.6.2 #2297 (@dependabot[bot])
- chore(deps-dev): bump jest from 30.0.2 to 30.0.3 #2298 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.29.0 to 9.30.0 #2299 (@dependabot[bot])
- chore(deps-dev): bump jest and @types/jest #2287 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.33.1 to 8.34.1 #2289 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.4.1 to 5.5.0 #2290 (@dependabot[bot])
- chore(deps-dev): bump tsx from 4.19.4 to 4.20.3 #2276 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.28.0 to 9.29.0 #2277 (@dependabot[bot])
- chore(deps): bump glob from 11.0.2 to 11.0.3 #2279 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.28.0 to 9.29.0 #2280 (@dependabot[bot])
- chore(deps): bump brace-expansion #2274 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.32.1 to 8.33.1 #2270 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.29 to 22.15.30 #2271 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.27.0 to 9.28.0 #2264 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.27.1 to 7.27.4 #2265 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.27.0 to 9.28.0 #2266 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.4.0 to 5.4.1 #2267 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.21 to 22.15.29 #2268 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.18 to 22.15.21 #2262 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-env from 7.27.1 to 7.27.2 #2263 (@dependabot[bot])
- chore(deps): bump commander from 13.1.0 to 14.0.0 #2255 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.32.0 to 8.32.1 #2254 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.26.0 to 9.27.0 #2256 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.26.0 to 9.27.0 #2257 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.3 to 22.15.18 #2258 (@dependabot[bot])
- chore(deps-dev): bump eslint-config-prettier from 10.1.2 to 10.1.5 #2249 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.31.0 to 8.32.0 #2250 (@dependabot[bot])
- chore(deps-dev): bump tsx from 4.19.3 to 4.19.4 #2251 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.25.1 to 9.26.0 #2252 (@dependabot[bot])
- chore(deps-dev): bump eslint-plugin-prettier from 5.2.6 to 5.4.0 #2253 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-typescript from 7.27.0 to 7.27.1 #2244 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.25.1 to 9.26.0 #2245 (@dependabot[bot])
- chore(deps-dev): bump @babel/preset-env from 7.26.9 to 7.27.1 #2246 (@dependabot[bot])
- chore(deps-dev): bump @babel/core from 7.26.10 to 7.27.1 #2247 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.15.2 to 22.15.3 #2248 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.14.1 to 22.15.2 #2239 (@dependabot[bot])
- chore(deps): bump glob from 11.0.1 to 11.0.2 #2240 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.25.0 to 9.25.1 #2242 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.30.1 to 8.31.0 #2243 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.29.1 to 8.30.1 #2235 (@dependabot[bot])
- chore(deps-dev): bump @eslint/js from 9.24.0 to 9.25.0 #2236 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.24.0 to 9.25.0 #2237 (@dependabot[bot])
- chore(deps-dev): bump @types/node from 22.14.0 to 22.14.1 #2225 (@dependabot[bot])
- chore(deps-dev): bump typescript-eslint from 8.29.0 to 8.29.1 #2226 (@dependabot[bot])
- chore(deps-dev): bump eslint-config-prettier from 10.1.1 to 10.1.2 #2227 (@dependabot[bot])
- chore(deps-dev): bump eslint from 9.23.0 to 9.24.0 #2228 (@dependabot[bot])
Authors: 13
- @dependabot[bot]
- Aaron Madlon-Kay (@amake)
- Alex (@alexchexes)
- Arthur Fiorette (@arthurfiorette)
- Arya Emami (@aryaemami59)
- Cal (@CalLavicka)
- Dominik Moritz (@domoritz)
- James Vaughan (@jamesbvaughan)
- Julian Bez (@webjunkie)
- Neal Granger (@10xjs)
- Orta Therox (@orta)
- Sam Sudar (@srsudar)
- Valentyne Stigloher (@pixunil)