Skip to content

[api-extractor] Unable to analyze the export "Seq" when bundling immutable v5 #5807

@miguelcalderon

Description

@miguelcalderon

Summary

@microsoft/api-extractor crashes with an internal error when immutable (v5) is listed in bundledPackages. The crash happens during analysis of the Seq export and is reproducible against an unmodified immutable@5.1.5 install.

This blocks distributing a self-contained .d.ts rollup for any consumer that re-exports types from immutable v5. The same project bundled immutable@4.x without issue, so the regression is on the Immutable v5 declaration shape.

Repro steps

  1. npm i immutable@5.1.5 @microsoft/api-extractor@7.58.7 typescript@5.7.3

  2. Create an entry .d.ts that re-exports something from immutable, e.g.:

    import type { List } from 'immutable'
    export declare function getList(): List<string>
  3. In api-extractor.json set "bundledPackages": ["immutable"].

  4. Run api-extractor run --local --diagnostics.

Expected result: API Extractor inlines Immutable's declarations into the rollup, as it does for immutable@4.x.

Actual result:

ERROR: Internal Error: Unable to analyze the export "Seq" in node_modules/immutable/dist/immutable.d.ts

You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.
Error: API Extractor failed with exit code 1

Details

The Immutable v5 declaration uses the same overall shape as v4 (declare namespace Immutable { … } export = Immutable; export as namespace Immutable;), but Seq and its nested namespaces (Seq.Keyed, Seq.Indexed, Seq.Set) are declared in a way that ExportAnalyzer._getExportOfAstModule can't resolve.

Workaround we ended up using: remove immutable from bundledPackages, let API Extractor emit import … from 'immutable', then post-process the rollup with a small script that inlines the namespace and rewrites the renamed imports (Immutable_2, Map_3, Set_2, …) to local aliases of the inlined namespace. Happy to share if it helps reproduce.

Related to (but distinct from) #2220, #1972, #5507, #5694. Those all surface the same generic "Unable to analyze the export" error from different triggers.

Standard questions

Question Answer
@microsoft/api-extractor version? 7.58.7
Operating system? macOS (also reproduces in Linux CI)
API Extractor scenario? rollups (.d.ts)
Would you consider contributing a PR? No (unfamiliar with ExportAnalyzer internals)
TypeScript compiler version? 5.7.3
Node.js version (node -v)? v24.13.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions