Each *.api.md file in this folder is a committed snapshot of one published
entrypoint's exported type surface, generated by
API Extractor. They act as a semver safety net:
CI fails when a build's exported surface drifts from the committed baseline,
so any change to the public API has to be reviewed and committed deliberately.
| Baseline | Entrypoint |
|---|---|
dynamic-forms.api.md |
@ng-forge/dynamic-forms |
dynamic-forms-integration.api.md |
@ng-forge/dynamic-forms/integration |
dynamic-forms-material.api.md |
@ng-forge/dynamic-forms-material |
dynamic-forms-bootstrap.api.md |
@ng-forge/dynamic-forms-bootstrap |
dynamic-forms-primeng.api.md |
@ng-forge/dynamic-forms-primeng |
dynamic-forms-ionic.api.md |
@ng-forge/dynamic-forms-ionic |
dynamic-form-mcp.api.md |
@ng-forge/dynamic-form-mcp |
The @ng-forge/dynamic-forms/internal and @ng-forge/dynamic-forms/testing
surfaces are intentionally unguarded: they carry no semver guarantee.
If you intentionally add, remove, or rename an export, the api-check target
will go red until you update the matching baseline:
# Regenerate one package's baseline(s)
nx run dynamic-forms-material:api-update
# Or regenerate everything
nx run-many -t api-update -p dynamic-forms dynamic-forms-material \
dynamic-forms-bootstrap dynamic-forms-primeng dynamic-forms-ionic dynamic-form-mcpapi-update rebuilds the package, regenerates the report, and writes it back
to this folder. Commit the resulting *.api.md diff alongside your change so
the reviewer can see exactly how the public surface moved.
To verify a baseline without modifying it (the CI behaviour), use
nx run <project>:api-check.
Config lives in config/api-extractor.base.json (shared) and
packages/<pkg>/api-extractor.json (per entrypoint).
- Reports are a pure type-surface snapshot. All API Extractor message
annotations are kept out of the report (
addToApiReportFile: falseforae-forgotten-export,ae-internal-missing-underscore, andae-unresolved-link). This is deliberate: the "Warnings were encountered during analysis" block embeds the absolute build path of the.d.ts, which differs between a contributor's machine and CI (/home/runner/...) and would make the check drift across platforms. Stripping the annotations makes the baselines byte-identical everywhere. - Narrow trade-off: because
ae-forgotten-exportis no longer written to the report, the guard will not specifically flag the "a public type references a symbol that isn't itself exported" case. The resulting signature change is still caught (the declaration line still changes), so real surface drift is not missed; only that meta-warning is lost. /schemais currently unguarded. It is a published entrypoint but was outside the original guard scope. Add apackages/dynamic-forms/api-extractor.schema.jsonconfig and a baseline if full coverage is wanted.- TS version skew (latent): API Extractor 7.58.7 bundles TypeScript 5.9.3
while the libraries emit
.d.tswith a newer TypeScript (a*** newer than the bundled compiler enginewarning prints during extraction). Harmless today; if a future TypeScript emits.d.tssyntax the bundled parser cannot read, bump@microsoft/api-extractor.