@oxc-project/types
- 0.154.0 is the latest, published 13 October 2026.
- No known security advisory.
- 0.x: 148 releases since 25 October 2024, 14 in the last 90 days.
Releases in the last 90 days
Feed of releases and advisoriesEvery stable release, newest first. Notes are quoted as the maintainers published them.
0.154.0
13 October 2026ast: Refactor comment attachment storage
Breaking changes
- breaking
ast: Refactor comment attachment storage
- breaking
ast: Add comment attachment storage
- breaking
parser: Assign node IDs during parsing
Features
minifier: Add folding of delete expression
Bug Fixes
codegen, packages/codegen: Remove extraneous space before
RestElementinArrayPatternpackages/codegen: Support printing
V8IntrinsicExpressionsminifier: Preserve parameter writes through mapped arguments
semantic: Stop arguments resolution at ordinary functions
transformer_plugins: Preserve optional chains through non-null assertions
crates/oxc_semantic: Decline to evaluate unary ops on strings in enum initializers
parser: Apply no-side-effects annotations after export
minifier: Preserve delete semantic when folding non-finite numbers
minifier: Eliminate unused IIFE calls with constant arguments
transformer: Avoid synthetic private fields for static blocks
semantic: Mark delete of optional members as MemberWriteTarget
codegen: Avoid extra indent before empty do-while bodies
codegen: Fix printing negative
BigIntLiteralafter-packages/codegen: Fix printing negative
BigIntLiteralafter-packages/codegen: Fix debug assert fail printing
TSJSDocNonNullableTypesemantic: Visit
TSMethodSignaturecomputed method keys in enclosing scope
Performance
packages/codegen: Remove all
printSpaceBeforeIdentifiercallspackages/codegen: Skip redundant
printSpaceBeforeIdentifiercallpackages/codegen: Remove branches from loops printing arrays
packages/codegen: Remove branch printing
RestElementinArrayPatternpackages/codegen: Reduce branches in
printArgumentspackages/codegen: Remove unnecessary
printSpaceBeforeIdentifiercalls
- breaking
0.153.0
5 October 2026minifier: Fold undefined argument in non delegating yield
Features
minifier: Fold undefined argument in non delegating yield
ast: Tie
debug_namereturn lifetime to the underlying AST nodeminifier: Merge import statements against the same module
minifier: Merge import and export statements against the same module
minifier: Minimize bitwise binary expressions
minifier: Merge statements after terminating if block branches
minifier: Merge adjucent if stmt with the same content
Bug Fixes
parser: Report abstract private field error on modifier
parser: Include generator marker in overload diagnostic span
parser: Reject TypeScript class modifiers in JavaScript
minifier: Correct indopedency when processing nested sequences
parser: Remove type-dependent tuple rest diagnostics
parser: Validate TypeScript type member separators
parser: Reject module syntax in script
parser: Report
TS1243for abstract async methodsparser: Report
TS1242for interfaces withabstractmodifierparser: Avoid duplicate index signature modifier diagnostic
regex: Decode escaped capturing group names
minifier: Fold conditional expressions with long sequences
isolated-declarations: Allow adding undefined to keyof parameter types
isolated-declarations: Support readonly parameter types
transformer/explicit-resource-management: Transform classic for loop using declarations
minifier: Preserve sibling declarations in arguments copy rewrite
transformer/explicit-resource-management: Lower using in catch and finally
Performance
minifier: Small performance improvement when merging imports
codegen: Pre-allocate sourcemap builder vectors
minifier: Update expressions in place in
merge_import_export
0.152.0
28 September 2026str: Add JSStr, JSChar and JSStrBuilder types
Features
str: Add
JSStr,JSCharandJSStrBuildertypesregular_expression: Support buffer boundary assertions
transform-react: Add
reportDiagnosticsoption to expose recoverable React Compiler diagnosticsnapi: Add threadless WASI builds
Bug Fixes
minifier: Preserve iife with directives
str: Correct clippy reason
formatter/jsdoc: More alignment with original plugin
parser: Handle HTML comment values
parser: Reject module export names containing a lone surrogate
codegen: Remove redundant dollar escapes in minified templates
Performance
minifier: Fold logical expressions in place
minifier: Avoid creation of empty block when folding try finally
minifier: Update boolean context expressions in place
minifier: Take return argument directly when converting arrow fn
minifier: Reduce allocations when minimizing assignments
minifier: Use ident hashes for catch var and arguments
minifier: Use ident hashes in label comparison
0.151.0
21 September 2026coverage: Support new TypeScript fixture layout
Features
coverage: Support new TypeScript fixture layout
Bug Fixes
minifier: Add missing negation for boolean literal
transformer: Skip enum reverse mappings for syntactic string initializers
parser: Preserve reparsed
awaittokenstransformer: Skip recovered using loop patterns
parser: Recover await using object binding patterns
parser: Reject invalid modifiers on import aliases
Performance
minifier: Preallocate stmts vec size to avoid excesive reallocs
semantic: Reuse identifier hashes in enum member lookups
minifier: Reduce allocations when processing if statements
0.150.0
14 September 2026ecma: Define math constants as known globals and resolve their types
Features
ecma: Define math constants as known globals and resolve their types
codegen: Add
ascii_onlyoptionminifier: Negate binary comparison for
typeof x < 'u'
Bug Fixes
parser: Reject
accessormodifiers on methodsparser: Reject
readonlymodifier on constructorsparser: Handle escaped let in for loops
parser: Recognize annotated empty arrows in conditionals
parser: Classify Unicode line breaks in block comments
transformer: Preserve receivers in private optional chains
parser: Reject escaped import-phase keywords
parser: Recognize contextual binding names in type lookaheads
parser: Require arrow separator in TypeScript function types
parser: Disambiguate await using in for initializers
parser: Allow parenthesized JSX comma expressions with preserve_parens=false
parser: Reject return types on constructor overloads
parser: Validate await context for await using declarations
parser: Disallow in expressions in using for-loop initializers
parser: Allow escaped type names in import and export specifiers
parser: Reject async modifiers on class fields
parser: Require comma after TypeScript this parameter
codegen: Preserve instantiation expression precedence
parser: Allow
inexpressions in class static blockspackages/codegen: Preserve private-in right operand precedence
packages/codegen: Preserve in restriction through yield arguments
parser: Validate TS named tuple rest elements
codegen: Preserve in restriction through yield arguments
codegen: Preserve private-in right operand precedence
parser: Allow escaped type default import bindings
0.149.0
7 September 2026parser: Rename panicked to fatal_error in ParserReturn
Breaking changes
- breaking
parser: Rename
panickedtofatal_errorinParserReturn - breaking
parser: Reduce
MAX_LENto 256 bytes belowu32::MAX
Features
allocator: Construct
ArenaHashSetwith anyDefaulthasherminifier: Process of return/throw in non last position and fix async * inlining
parser: Distinguish unapplied no-side-effects comments
ast: Add
GetNodeIdtrait
Bug Fixes
codegen: Order accessibility before abstract on accessors
transformer/class-properties: Keep private methods in class-expression scope
parser: Require a string source after
export ... fromcodegen: Print matching quoted import names as identifiers
codegen: Preserve private-in left operand precedence
parser: Correctly round large nondecimal literals
transformer: Gate async-only rewrites by owning transform
transformer: Limit arguments capture to lowered async functions
transformer: Gate this capture by owning async transform
minifier: Mangle class private members in Node API
semantic: Detect duplicate private class elements
semantic: Reject await and yield in rest parameter defaults
semantic: Reject jumps across arrow functions
parser: Do not omit
<token opening type argument listast_visit: Add the trimmed prefix length to translation table offsets
parser: Do not re-lex template substitution tail after fatal error
parser: Fix debug assert failure when lexer error with tokens enabled
allocator: Gate
Allocator::data_end_ptrbehind fixed_size featureecmascript: Avoid
charAtpanic on 32-bitruntime: Remove stale regenerator exports
Performance
- breaking
0.148.0
1 September 2026allocator: Make Allocator::cursor_ptr and data_end_ptr private
Breaking changes
- breaking
allocator: Make
Allocator::cursor_ptranddata_end_ptrprivate
Features
minifier: Drop cases whose condition is statically false
minifier: Invert
!0and!1in place for boolean context to1and0minifier: Expand fold leading assignments into the var decl
minifier: Expand de morgan's optimization to allow move of
!parser: Attach all comments to nodes
Bug Fixes
semantic: Skip body bindings in type parameters and
thisparamsemantic: Validate chained continue labels
ecmascript:
Math.roundonly exact half tiesminifier: Coerce omitted
indexOfsearch argumentecmascript: Trim trailing whitespace in string to number
transformer/object-rest: Lower multiple declarators correctly
parser: Avoid panic on escaped string export names
linter: Clamp invalid JS plugin locations
semantic: Skip function body bindings in parameters
transform-react: Match Babel diagnostic reporting
parser: Correctly classify unapplied pure annotations
linter/plugins: Alter method for obtaining mutable
Programwhen sending AST to JS pluginsregular_expression: Allow oversized decimal escape for Annex B
regular_expression: Reject oversized backreferences
Performance
diagnostics: Use fixed ANSI styles
packages/codegen: Flatten output in chunks
packages/codegen: Faster string flattening
packages/codegen: Ensure indent strings are flattened
packages/codegen: Store mapping positions in an
Int32Array
- breaking
0.147.0
24 August 2026minifier: Fold switch stmt whose parent is not block stmt
Features
minifier: Fold switch stmt whose parent is not block stmt
Bug Fixes
codegen: Require sourcemap for example
estree: Include decorators in
FormalParameterRestspansminifier: Avoid merging
iftoforin sloppy mode when containing function declarationrust: Address nightly deprecations
codegen: Only add mapping names for
PrivateIdentifiers which have changedparser: Track irregular line terminators in trivia
minifier: Avoid merging
iftoforwhen the body contains a function declarationcodegen: Print
#before private identifier in TS signature keyminifier: Keep unary
+when the other operand has side effects
Performance
packages/codegen: Remove
nodeparam fromwriteandmarkMapfunctions in sourcemap buildspackages/codegen: Pass
startandendtowriteandmarkfunctionspackages/codegen: Replace
writecalls withwriteIdentpackages/codegen: Remove
lastparam fromwriteWithMapNamedpackages/codegen: Eagerly initialize
mapNamespackages/codegen: Split recording mappings into multiple functions
packages/codegen: Reduce property lookups
packages/codegen: Combine condition checks
packages/codegen: Add functions for writing/marking unnamed mappings
codegen: Avoid allocations for single comment anchors
minifier: Do not rebuild expression when substituting void to null
packages/codegen: Merge
markandwritecalls inprintImportAttributespackages/codegen: Remove
nodeparam fromprintStringandprintNonNegativeFloatpackages/codegen:
printNonNegativeFloatwrite mapping directlyminifier: Avoid creation of unnecessary conditional expressions
packages/codegen: Remove
lastWasPostfixClose
0.146.0
19 August 2026minifier: Improve negation of expressions in boolean context
Features
minifier: Improve negation of expressions in boolean context
Bug Fixes
codegen: Narrow printSync input type
isolated-declarations: Preserve unresolved parameter types
codegen: Remove deprecated test APIs
codegen: Align enum template sourcemaps
Performance
packages/codegen: Check
sourceTextonly onceminifier: Unwrap all unary exprs without creating dummy expressions
packages/codegen: Remove loop from
growMappingBufferpackages/codegen: Remove redundant branch
packages/sourcemap: Make
locationpassed torecordSourceMappingalways a numberpackages/codegen: Take named-mapping only code off hot path in
recordSourceMappingpackages/codegen: Remove redundant setting of
lastinprintImportAttributesandprintIfpackages/codegen: Combine 2 writes in
printJSXElementpackages/codegen: Remove redundant mapping from
printParams
0.145.0
18 August 2026packages/codegen: printSync return an object
Breaking changes
- breaking
packages/codegen:
printSyncreturn an object
Features
packages/codegen: Alter capitalization of
sourceFilenameoptionpackages/codegen: Add full source map support
napi/minify: Expose property name mangling options
minifier: Add property name mangling
mangler: Deduplicate private accessor names
napi: Add Relay transform plugin
codegen: Add
oxc-codegenpackage
Bug Fixes
codegen: Validate sourcemap options
react_compiler: Skip node_modules by default
minifier: Drop side-effect-free additions
napi/minify: Accept RegExp for property filters
codegen: Reject invalid indent options
isolated-declarations: Preserve undefined for defaulted any
codegen: Preserve property key annotations
minifier: Model uninitialized module vars as undefined
ecmascript: Fold
**withNumber::exponentiate, not IEEEpowisolated-declarations: Handle ambient expando properties
react-compiler: Standardize diagnostics
parser: Reject initialized lexical declarations in for-in
parser: Forbid type parameters on quoted constructors
react-compiler: Use Babel v1 validation defaults
napi: Disable reuseWorker in browser bindings
react_compiler: Preserve JSX import source pragmas
semantic: Respect shadowed
InfinityandNaNin enum evaluationminifier: Keep variable declaration initilized with class when keepNames is enabled
minifier: Keep side effects when rotating bitwise operands
- breaking
Show 4 earlier releases
0.144.0
10 August 2026ast: Group class heritage into ClassHeritage
Breaking changes
- breaking
ast: Group class heritage into
ClassHeritage - breaking
ast: Narrow
TSInterfaceHeritage::expressionto TSTypeName - breaking
ast: Remove duplicated
VariableDeclarator::kind - breaking
ast: Split TS external modules & Namespace Declarations
Features
napi: Restructure React transform options
allocator: Add
ArenaVec::push_mut
Bug Fixes
codegen: Wrap string literal in parens after directives
codegen: Preserve cast parentheses in conditional tests
codegen: Preserve satisfies parentheses before bitwise operators
minifier: Avoid unsafe return removal in labeled blocks
parser: Preserve terminal license comments
transform_react: Downgrade nonfatal compiler diagnostics
react_compiler: Disable exhaustive memo validation by default
parser: Reject comma expressions in class fields
react_compiler: Preserve hook spans for React Refresh
parser: Reset auto-accessor initializer context
parser: Reject trailing tokens in
Parser::parse_expressionminifier: Preserve Annex B labeled-function bindings in implicit-return rewrite
parser: Report TS1035 for quoted module names
semantic: Report module declaration diagnostics
napi: Omit parser header from WASI declarations
Performance
semantic: Avoid allocation in class overload check
parser: Optimize trailing comma tracking
minifier: Short-circuit scope check when alternate already determines result
- breaking
0.143.0
3 August 2026semantic: Return borrowed JSDoc so the parse cache works
Breaking changes
- breaking
semantic: Return borrowed JSDoc so the parse cache works
- breaking
allocator: Remove
ArenaBox::danglingmethod - breaking
ast: Store single parameter in
TSIndexSignature::parameter - breaking
ast: Change
TSIndexSignatureName::nametoIdent - breaking
ast: Introduce
ExportDeclaration,ExportFromDeclaration - breaking
ast: Introduce
ArrowFunctionBodyenum - breaking
ast: Remove conversion to
Boxfrom AST builder methods
Features
allocator: Make
BoxSend+Syncwhen the type it contains isast: Derive
GetSpanforCommentast_tools: Generate minifier scope collector
ecmascript: Skip transparent TS expressions
napi: Add React Compiler transform binding
minifier: Fold safe integer exponentiation
minifier: Enable termination statement optimization for do while
minifier: Fold safe integer division and remainder
Bug Fixes
minifier: Preserve if-chain idempotency and correct side effects when alternate should not be moved
ecmascript: Do not treat lone-surrogate strings as constants
isolated-declarations: Strip re-export attributes
parser: Report export imports in namespaces
react_compiler: Preserve nonfatal diagnostics
react_compiler: Match eslint suppression gating
react_compiler: Track catch block declarations
minifier: Fold typeof comparisons with known object strings
minifier: Keep
typeof foo == ['object']as-isast: Custom AST builder methods take
IntoIn<ArenaBox>where child method doesminifier: Respect targets when folding RegExp source
Performance
- breaking
0.142.0
27 July 2026ast: Tighten bound on AstBuild trait
Breaking changes
- breaking
ast: Tighten bound on
AstBuildtrait
Features
minifier: Fold parenthesized boolean ternary tests
minifier: Fold sequence branches in boolean ternaries
ast_visit: Add VisitJsMut visitor
minifier: Add new IsTerminated trait and use it in exit-point optimization
minifier: Shorten integer zero comparisons
minifier: Convert switch with one case to if statement
str: Add
static_str!macroparser: Emit error for type args in JS files
ast: Re-export
Identfromoxc_astcrateoxc: Re-export
oxc_strtypes fromoxccrateast_visit: Add
Utf8ToUtf16::convert_program_and_comments
Bug Fixes
minifier: Optimize termination statements in labeled statements
minifier: Avoid longer numeric constant folds
minifier: Keep side effects in typeof comparisons
minifier: Keep side effects when compressing
== trueto== 1minifier: Keep side effects values in template literals
minifier: Keep side effects when folding
Numbercallreact-compiler: Preserve warning bailouts
codegen: Preserve orphaned file coverage comments
parser: Clarify return in class static blocks
str: Fix hygiene of
format_ident!andformat_str!macrosecmascript: Keep side effects in parent of
toStringcallsecmascript: Detect side effects in unused arguments to
charCodeAtparser: Use specific for-await diagnostic
parser: Report for-await in non-async functions
minifier: Avoid reordering this in nested class keys
- breaking
0.141.0
21 July 2026str: Move IdentBuildHasher to oxc_str crate
Breaking changes
- breaking
str: Move
IdentBuildHashertooxc_strcrate - breaking
ast: Split
MetaPropertyintoImportMetaandNewTarget
Features
minifier: Merge combined assign expression in conditional expression
minifier: Merge assign expression against member expression in conditional expression
allocator: Add
Vec::from_raw_parts_insemantic: Add context notes for strict assignments
data_structures: Add
implements!macrodata_structures: Add
const_str_eqfunctionsemantic: Add context notes for reserved keyword diagnostic
parser: More friendly error for spread element in dynamic imports
minfier: Drop last break from last switch case
minifier: Remove unreachable recursive functions
ast: Allow
NONEto be passed to AST builder methods whereOption<ArenaVec>is expectedast: Accept arrays for
ArenaVecparams of AST builder methodsallocator: Implement
FromInfor array toVecconversiontrack-memory-allocations: Track heap deallocs, alloc bytes, and peak growth
syntax,transformer: Move JSX entity decoder to
oxc_syntaxstr: Export
StrasArenaStrminifier: Expand switch optimiation to remove empty cases
parser: Improve diagnostics for unparenthesized LHS on exponential expr
minifier: Fold arithmetic over undefined and null operands
minifier: Drop empty switch statements
ast_visit: Generate VisitJs visitor that skips TypeScript type-space
parser: Add
ParseOptions::enable_ident_hashes
Bug Fixes
minifier: Avoid reordering this before super
minifier: Preserve RegExp feature detection
semantic: Allow arguments in ambient declarations
- breaking
Quality and security signals
What npm and deps.dev say about the latest release. Signals, not a verdict.
Reading npm and deps.devโฆ
Registry facts last checked 15 October 2026. Releases and advisories last read 15 October 2026.
Know when your own dependencies move
Inlinr tracks your coding time automatically. Switch dependency tracking on for a project and it reads that repository's manifest to show what is behind and what has been deprecated โ off by default, one project at a time.