Skip to content

[api-extractor] Internal Error: "Unable to analyze the export \"default\"" when re-exporting default from .d.cts module that uses export = #5694

@phobetron

Description

@phobetron

Summary

I am trying to run API Extractor on declarations that include a re-export of default from a .d.cts file that uses export =.
API Extractor throws an internal error instead of analyzing the export.

The failure is reproducible in a minimal project with only two declaration files.

Repro steps

  1. Create a clean repro folder and files:
mkdir api-extractor-export-equals-repro
cd api-extractor-export-equals-repro

package.json

{
  "name": "api-extractor-export-equals-repro",
  "version": "0.0.0",
  "private": true,
  "devDependencies": {
    "@microsoft/api-extractor": "7.57.6",
    "typescript": "5.9.3"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "strict": true,
    "skipLibCheck": true
  },
  "include": ["./**/*"]
}

api-extractor.json

{
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
  "mainEntryPointFilePath": "<projectFolder>/index.d.ts",
  "bundledPackages": [],
  "compiler": {
    "tsconfigFilePath": "<projectFolder>/tsconfig.json"
  },
  "apiReport": {
    "enabled": false,
    "reportFolder": "<projectFolder>/etc"
  },
  "docModel": {
    "enabled": false
  },
  "dtsRollup": {
    "enabled": false
  },
  "tsdocMetadata": {
    "enabled": false
  },
  "messages": {
    "compilerMessageReporting": {
      "default": { "logLevel": "warning" }
    },
    "extractorMessageReporting": {
      "default": { "logLevel": "warning" }
    },
    "tsdocMessageReporting": {
      "default": { "logLevel": "warning" }
    }
  }
}

index.d.ts

export { default as ar } from "./ar.cjs";

ar.d.cts

import type * as errors from "./errors.cjs";
declare function _default(): { localeError: errors.Error };
export = _default;

errors.d.cts

export interface Error {
  code: string;
}
  1. Install and run:
npm install
npx api-extractor run --diagnostics --local --config ./api-extractor.json

Expected result: API Extractor should analyze the export successfully (or emit a normal diagnostic if unsupported), but should not crash with an internal error.

Actual result: API Extractor throws:

ERROR: Internal Error: Unable to analyze the export "default" in
.../ar.d.cts

You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.

(Also prints: Analysis will use the bundled TypeScript version 5.9.3.)

Details

This looks like a default re-export resolution bug for .d.cts modules that use export =.

In this repro:

  • index.d.ts uses export { default as ar } from "./ar.cjs"
  • target declaration ar.d.cts uses export = _default

TypeScript models export = differently from default, and API Extractor appears to throw while resolving this path instead of mapping/handling it.

I also observed the same failure with @microsoft/api-extractor@7.57.7.

Standard questions

Please answer these questions to help us investigate your issue more quickly:

Question Answer
@microsoft/api-extractor version? 7.57.6 (also reproducible on 7.57.7)
Operating system? Mac (Darwin)
API Extractor scenario? rollups (.d.ts)
Would you consider contributing a PR? Yes
TypeScript compiler version? 5.9.3 (bundled by API Extractor in diagnostics output)
Node.js version (node -v)? v24.13.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions