NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4998 most downloaded on npm
Parse in reverse
Last release 8 days ago
26 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
63 releases · first in 2023
One column per quarter.
52599f8 : feat: add a tokens option to print . Pass the parser's tokens (e.g. Acorn's onToken array, or ast.tokens from typescript-eslint) and punctua
tokens option to print. Pass the parser's tokens (e.g. Acorn's onToken array, or ast.tokens from typescript-eslint) and punctuation and keywords written by visitors — brackets, parentheses, braces, else, extends, as and so on — are mapped to their location in the sourceabf8872 : fix: support the canonical TSImportType source field with an argument fallback
9edf6ef : fix: preserve empty type-only imports without introducing runtime side effects
88c6da5 : fix: add sourcemap mappings for switch cases, catch clauses, for head declarations and parameter decorators
for head declarations and parameter decoratorsin expressions in for loop heads6027cc6 : fix: restore missing import, prevent private types leaking into public types
ff809ba : fix: remove estimated sourcemap locations
cc1e996 : fix: remove duplicate sourcemap mappings
4a0bb7f : fix: add trailing commas to single type parameter declarations in the TSX printer so generic arrow functions remain valid TSX
17f34a4 : fix: print a semicolon after body-less class methods (abstract methods and overload signatures)
@type comments re-anchored to parameter defaults or named function ids as type casts=> or closing parenthesis in placea46e8a2 : fix: preserve type arguments on tagged templates, array pattern annotations, and template literal type quasis
51da035 : fix: re-introduce JSDoc type cast support, but don't treat JSDoc @type comments on binding identifiers (variable declarator ids, function pa
@type comments on binding identifiers (variable declarator ids, function parameters, catch params) as type castse51f38f : fix: revert jsdoc type cast support (for now)
3cbb677 : fix: preserve parantheses of jsdoc type casts
d58be54 : fix: preserve definite assignment assertions on variable declarations
indent is an empty stringdeclare on ambient function declarationsdeclare on ambient interfaces and type aliases9f349d1 : fix: preserve JavaScript grammar and module semantics, along with TypeScript modifiers and generic arguments
b7e623d : Add a boundaryTokens language option that anchors structural tokens (array/object brackets and braces, preserved parentheses, unary operator
boundaryTokens language option that anchors structural tokens (array/object brackets and braces, preserved parentheses, unary operators, and the closing tokens of calls and computed member access) with one-character source locations, so node-boundary positions resolve through the source map instead of being attributed to the previous token. Off by default; output is byte-identical either way9b35c04 : fix: preserve required parentheses in three more cases that changed meaning or produced invalid output
needs_parens precedence checks from the precedence table instead of hard-coded numbersasserts predicates, qualified namespaces, and computed signature keys6aef4e0 : fix: preserve ? on optional identifiers (e.g. optional parameters)
16e353d : fix: keep required parentheses for mixed && / || logical expressions
&&/|| logical expressions&&/|| logical expressions8fa143f: fix: keep => on same line when return type annotation wraps onto multiple lines
=> on same line when return type annotation wraps onto multiple linesas/satisfies expressions inside unary and **/binary operandsaa3078c: fix: keep braces for concise arrow functions with as/satifies type suffix
as/satifies type suffix6e22ff0: fix: emit valid TS for aliased inline-type import specifiers
6e22ff0: fix: emit valid TS for aliased inline-type import specifiers
ImportSpecifier with both importKind: 'type' and an alias (e.g.
import { type Foo as Bar } from '...') was being printed as
Foo as type Bar, which is not valid TypeScript. The type keyword now
precedes the imported identifier instead of the local.
5d382df: fix: print type parameters and return type of arrow functions, and default of type parameters
038a3d2: fix: print declare module and mapped types
declare module and mapped typesfe96f0f: fix: make @typescript-eslint/types an optional peer dependency
fe96f0f: fix: make @typescript-eslint/types an optional peer dependency
print() is also used in non-TypeScript contexts (e.g. with @types/estree nodes), where @typescript-eslint/types as a regular dependency can cause type conflicts. Now optional, so ts()/tsx() visitors work with any node type.
d22f488: fix: add @typescript-eslint/types as a dependency since some types are exported
@typescript-eslint/types as a dependency since some types are exported4994752: fix: print function accessibility
superTypeParametersfc7edf6: fix: context.multiline now bubbles up through child-contexts
context.multiline now bubbles up through child-contexts4b2b920: fix: loosen types for getLeadingComments and getTrailingComments
getLeadingComments and getTrailingCommentsda2f84d: feat: add getLeadingComments & getTrailingComments option for programmatic comment insertion
getLeadingComments & getTrailingComments option for programmatic comment insertion9bf2740: fix: support export class with decorators
53b485d: fix: support typescript class decorator
9a7693e: fix: support more typescript nodes
3c9abb3: feat: add context.space() method
context.space() method922292a: fix: support implements with an empty array and with more than 1
implements with an empty array and with more than 1a5f91d5: breaking: add support for custom printers
print(...) only accepts a node, not an array of nodesbd045a3: fix: support function return type
61c9902: fix: only push with clause if attributes length is gt 0
with clause if attributes length is gt 0bab0228: fix: support import attributes
1caf836: fix: add missing spaces in interfaces
TSModuleBlock6a6eed9: fix: support TSImportType
TSImportTypeb683171: fix: support TSModuleDeclaration
TSModuleDeclaration030c3ec: fix: correctly escape \r
\rfaa865e: fix: including sourcemap mappings for block statement brackets
10c6156: fix: escape newlines when quoting strings
d97e56f: feat: add option for quote and indentation styles
4c784f6: fix: move @changesets/cli to dev dependencies
333b32c: chore: verify changesets setup, again
- Transfer repo to sveltejs
sveltejs- Support export * as (#16) - Support indexed access types
- Loosen types
- Fix types
- Support TypeScript nodes
Wrap object expression statements in parentheses
Correctly handle arrow functions where body includes an object expression
Support default and namespace import in same declaration
- Rewrite for better performance
Actually add the changes that were supposed to go in 1.1.0
- Tweak output
- Fix typo
Your coding agent can read these notes before it upgrades. Set up the MCP server →