build(client): remove remaining Node10 package properties - #28056
build(client): remove remaining Node10 package properties#28056Jason Hartman (jason-ha) wants to merge 5 commits into
Conversation
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (295 lines, 109 files), I've queued these reviewers:
How this works
|
There was a problem hiding this comment.
Pull request overview
This PR completes the removal of legacy Node10-era package entrypoint properties by deleting main / types fields across a broad set of client, tool, test, example, and experimental packages, relying on modern exports-based entrypoints (as introduced in the earlier follow-up work).
Changes:
- Removed
mainand/ortypesfields from manypackage.jsonfiles to eliminate remaining legacy Node10 module-resolution compatibility surface. - Standardized package entrypoint declaration to flow through
exports(where present), including per-condition typing/runtime mappings.
Reviewed changes
Copilot reviewed 109 out of 109 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/utils/tool-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/utils/telemetry-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/utils/odsp-doclib-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/replay-tool/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/fluid-runner/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/devtools/devtools/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/devtools/devtools-view/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/devtools/devtools-core/package.json | Removes legacy main/types fields in favor of exports. |
| packages/tools/changelog-generator-wrapper/package.json | Removes main from a tool package (needs a valid module entrypoint to remain loadable). |
| packages/test/test-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/test/test-pairwise-generator/package.json | Removes legacy main/types fields in favor of exports. |
| packages/test/test-drivers/package.json | Removes legacy main/types fields in favor of exports. |
| packages/test/test-driver-definitions/package.json | Removes legacy main/types fields (package uses exports-based typing entrypoint). |
| packages/test/stochastic-test-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/service-clients/tinylicious-client/package.json | Removes legacy main/types fields in favor of exports. |
| packages/service-clients/odsp-client/package.json | Removes legacy main/types fields in favor of exports. |
| packages/service-clients/azure-client/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/test-runtime-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/runtime-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/runtime-definitions/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/id-compressor/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/datastore/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/datastore-definitions/package.json | Removes legacy main/types fields (definitions package). |
| packages/runtime/container-runtime/package.json | Removes legacy main/types fields in favor of exports. |
| packages/runtime/container-runtime-definitions/package.json | Removes legacy main/types fields (definitions package). |
| packages/loader/test-loader-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/loader/driver-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/loader/container-loader/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/undo-redo/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/type-factory/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/tree-agent/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/tree-agent-ses/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/tree-agent-langchain/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/synthesize/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/request-handler/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/react/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/quill-react/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/oldest-client-observer/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/fluid-static/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/fluid-framework/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/dds-interceptions/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/client-logger/fluid-telemetry/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/client-logger/app-insights-logger/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/attributor/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/aqueduct/package.json | Removes legacy main/types fields in favor of exports. |
| packages/framework/agent-scheduler/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/tinylicious-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/routerlicious-urlResolver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/routerlicious-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/replay-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/odsp-urlResolver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/odsp-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/odsp-driver-definitions/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/local-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/file-driver/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/driver-web-cache/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/driver-base/package.json | Removes legacy main/types fields in favor of exports. |
| packages/drivers/debugger/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/tree/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/test-dds-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/task-manager/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/shared-summary-block/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/shared-object-base/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/sequence/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/register-collection/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/pact-map/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/ordered-collection/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/merge-tree/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/matrix/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/map/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/legacy-dds/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/ink/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/counter/package.json | Removes legacy main/types fields in favor of exports. |
| packages/dds/claims/package.json | Removes legacy types field in favor of exports typing entrypoint. |
| packages/dds/cell/package.json | Removes legacy main/types fields in favor of exports. |
| packages/common/driver-definitions/package.json | Removes legacy main/types fields in favor of exports. |
| packages/common/core-utils/package.json | Removes legacy main/types fields in favor of exports. |
| packages/common/core-interfaces/package.json | Removes legacy main/types fields in favor of exports. |
| packages/common/container-definitions/package.json | Removes legacy main/types fields in favor of exports. |
| packages/common/client-utils/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/PropertyDDS/packages/property-dds/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/PropertyDDS/packages/property-changeset/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/framework/last-edited/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/framework/data-objects/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/dds/tree/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/dds/sequence-deprecated/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/dds/ot/sharejs/json1/package.json | Removes legacy main/types fields in favor of exports. |
| experimental/dds/ot/ot/package.json | Removes legacy main/types fields in favor of exports. |
| examples/utils/webpack-fluid-loader/package.json | Removes legacy main/types fields in favor of exports/workspace usage. |
| examples/utils/example-webpack-integration/package.json | Removes legacy main/types fields in favor of exports/workspace usage. |
| examples/utils/example-utils/package.json | Removes legacy main/types fields in favor of exports/workspace usage. |
| examples/utils/example-driver/package.json | Removes legacy main/types fields in favor of exports. |
| examples/data-objects/table-document/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/prosemirror/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/triangle-view/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/slider-coordinate-view/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/plot-coordinate-view/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/interface/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/coordinate-model/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/constellation-view/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/multiview/constellation-model/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/codemirror/package.json | Removes legacy main/types fields (example package). |
| examples/data-objects/clicker/package.json | Removes legacy main/types fields (example package). |
| examples/benchmarks/bubblebench/shared-tree/package.json | Removes legacy main/types fields (benchmark package). |
| examples/benchmarks/bubblebench/common/package.json | Removes legacy main/types fields (benchmark package). |
| examples/apps/task-selection/package.json | Removes legacy main/types fields (example app package). |
| examples/apps/collaborative-textarea/package.json | Removes legacy main/types fields (example app package). |
| examples/apps/blobs/package.json | Removes legacy main/types fields (example app package). |
| azure/packages/azure-service-utils/package.json | Removes legacy main/types fields in favor of exports. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- revert to main for changelog-generator-wrapper - add exports for blobs and task-selection examples that limit import to supported case (ESM only as packages have top-level `await`s)
Reports may vary if the metadata file is not present and discovered by `tsdocMetadata` in package.json and without a `exports["."].types` entry api-extractor looks to `types`, `typings`, and `main`, and finally the package root. Ensure that metadata file is always generated. And for the current issue with fluid-framework exporting merge-tree type via sequence, add `tsdocMetadata` to merge-tree.
Bundle size comparisonBase commit: Notable changesNo bundles changed by ≥ 500 bytes parsed. Per-bundle deltas
|
Follow-up to #27970 completes #27457.
This introduces a workaround for api-extractor expectation that a package has:
tsdocMetadataexports["."].typestypestypingsmaintsdoc-metadata.jsonin package root.Build task deps were updated to ensure that metadata file is always generated before needed. Ordering that has been lucky for a long-time.
And for the current issue with
fluid-frameworkexportingmerge-treetype viasequence, addtsdocMetadatatomerge-tree.Future: just check-in
tsdoc-metadata.jsonto all packages (even private without report generation) and update when versioning changes.