frontend-plugin-api, frontend-app-api: API review cleanup

Remove @backstage/core-plugin-api leakage from the
@backstage/frontend-app-api public API surface. Rename PluginOptions
to CreateFrontendPluginOptions with a deprecated alias. Remove
ResolvedExtensionInputs from the main @backstage/frontend-plugin-api
entry point.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
This commit is contained in:
Patrik Oldsberg
2026-03-17 11:37:13 +01:00
parent bf41231deb
commit 5fd78ba82f
12 changed files with 95 additions and 60 deletions
+3 -4
View File
@@ -3,11 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { ApiHolder } from '@backstage/core-plugin-api';
import { ApiHolder as ApiHolder_2 } from '@backstage/frontend-plugin-api';
import { ApiHolder } from '@backstage/frontend-plugin-api';
import { AppNode } from '@backstage/frontend-plugin-api';
import { AppTree } from '@backstage/frontend-plugin-api';
import { ConfigApi } from '@backstage/core-plugin-api';
import { ConfigApi } from '@backstage/frontend-plugin-api';
import { ExtensionDataContainer } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDataValue } from '@backstage/frontend-plugin-api';
@@ -186,7 +185,7 @@ export type ExtensionFactoryMiddleware = (
}) => ExtensionDataContainer<ExtensionDataRef>,
context: {
node: AppNode;
apis: ApiHolder_2;
apis: ApiHolder;
config?: JsonObject;
},
) => Iterable<ExtensionDataValue<any, any>>;
@@ -19,8 +19,9 @@ import {
ExtensionDataContainer,
ExtensionDataRef,
ExtensionInput,
ResolvedExtensionInputs,
} from '@backstage/frontend-plugin-api';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { ResolvedExtensionInputs } from '../../../frontend-plugin-api/src/wiring/createExtension';
import { ExtensionFactoryMiddleware } from '../wiring/types';
import mapValues from 'lodash/mapValues';
import { AppNode, AppNodeInstance } from '@backstage/frontend-plugin-api';
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { ConfigApi } from '@backstage/core-plugin-api';
import { ConfigApi } from '@backstage/frontend-plugin-api';
import {
FrontendFeature,
FrontendPluginInfo,
@@ -28,12 +28,13 @@ import {
createExtensionInput,
useRouteRef,
analyticsApiRef,
configApiRef,
createExtensionDataRef,
featureFlagsApiRef,
} from '@backstage/frontend-plugin-api';
import { screen, render } from '@testing-library/react';
import { createSpecializedApp } from './createSpecializedApp';
import { mockApis, TestApiRegistry } from '@backstage/test-utils';
import { configApiRef, featureFlagsApiRef } from '@backstage/core-plugin-api';
import { MemoryRouter } from 'react-router-dom';
import { ApiProvider, ConfigReader } from '@backstage/core-app-api';
import { Fragment } from 'react';
@@ -16,30 +16,28 @@
import { ConfigReader } from '@backstage/config';
import {
AnyApiFactory,
ApiBlueprint,
ApiHolder,
AppNode,
AppTree,
AppTreeApi,
appTreeApiRef,
RouteRef,
ExternalRouteRef,
SubRouteRef,
AnyRouteRefParams,
RouteFunc,
RouteResolutionApi,
createApiFactory,
routeResolutionApiRef,
AppNode,
FrontendFeature,
} from '@backstage/frontend-plugin-api';
import { ExtensionFactoryMiddleware } from './types';
import {
AnyApiFactory,
ApiHolder,
ConfigApi,
configApiRef,
createApiFactory,
ExternalRouteRef,
featureFlagsApiRef,
FrontendFeature,
identityApiRef,
} from '@backstage/core-plugin-api';
RouteFunc,
RouteRef,
RouteResolutionApi,
routeResolutionApiRef,
SubRouteRef,
} from '@backstage/frontend-plugin-api';
import { ExtensionFactoryMiddleware } from './types';
import { ApiFactoryRegistry, ApiResolver } from '@backstage/core-app-api';
import {
createExtensionDataContainer,