diff --git a/packages/frontend-plugin-api/api-report.md b/packages/frontend-plugin-api/api-report.md index e1ed76d82c..dcd2cbda4b 100644 --- a/packages/frontend-plugin-api/api-report.md +++ b/packages/frontend-plugin-api/api-report.md @@ -376,23 +376,18 @@ export type CoreProgressComponent = ComponentType>; export function createApiExtension< TConfig extends {}, TInputs extends AnyExtensionInputMap, ->( - options: ( - | { - api: AnyApiRef; - factory: (options: { - config: TConfig; - inputs: Expand>; - }) => AnyApiFactory; - } - | { - factory: AnyApiFactory; - } - ) & { - configSchema?: PortableSchema; - inputs?: TInputs; - }, -): Extension; +>(options: { + factory: + | AnyApiFactory + | ((options: { + config: TConfig; + inputs: Expand>; + }) => AnyApiFactory); + namespace?: string; + name?: string; + configSchema?: PortableSchema; + inputs?: TInputs; +}): ExtensionDefinition; export { createApiFactory }; @@ -430,7 +425,7 @@ export function createExtension< TConfig = never, >( options: CreateExtensionOptions, -): Extension; +): ExtensionDefinition; // @public (undocumented) export function createExtensionDataRef( @@ -477,10 +472,14 @@ export interface CreateExtensionOptions< inputs: Expand>; }): Expand>; // (undocumented) - id: string; - // (undocumented) inputs?: TInputs; // (undocumented) + kind?: string; + // (undocumented) + name?: string; + // (undocumented) + namespace?: string; + // (undocumented) output: TOutput; } @@ -516,11 +515,12 @@ export function createExternalRouteRef< // @public export function createNavItemExtension(options: { - id: string; + namespace?: string; + name?: string; routeRef: RouteRef; title: string; icon: IconComponent_2; -}): Extension<{ +}): ExtensionDefinition<{ title: string; }>; @@ -539,7 +539,8 @@ export function createPageExtension< configSchema: PortableSchema; } ) & { - id: string; + namespace?: string; + name?: string; attachTo?: { id: string; input: string; @@ -552,7 +553,7 @@ export function createPageExtension< inputs: Expand>; }) => Promise; }, -): Extension; +): ExtensionDefinition; // @public (undocumented) export function createPlugin< @@ -616,7 +617,9 @@ export function createSubRouteRef< }): MakeSubRouteRef, ParentParams>; // @public (undocumented) -export function createThemeExtension(theme: AppTheme): Extension; +export function createThemeExtension( + theme: AppTheme, +): ExtensionDefinition; export { DiscoveryApi }; @@ -703,6 +706,40 @@ export type ExtensionDataValues = { : never]?: TExtensionData[DataName]['T']; }; +// @public (undocumented) +export interface ExtensionDefinition { + // (undocumented) + $$type: '@backstage/ExtensionDefinition'; + // (undocumented) + attachTo: { + id: string; + input: string; + }; + // (undocumented) + configSchema?: PortableSchema; + // (undocumented) + disabled: boolean; + // (undocumented) + factory(options: { + node: AppNode; + config: TConfig; + inputs: Record< + string, + undefined | Record | Array> + >; + }): ExtensionDataValues; + // (undocumented) + inputs: AnyExtensionInputMap; + // (undocumented) + kind?: string; + // (undocumented) + name?: string; + // (undocumented) + namespace?: string; + // (undocumented) + output: AnyExtensionDataMap; +} + // @public (undocumented) export interface ExtensionInput< TExtensionData extends AnyExtensionDataMap, @@ -743,7 +780,7 @@ export interface ExtensionOverrides { // @public (undocumented) export interface ExtensionOverridesOptions { // (undocumented) - extensions: Extension[]; + extensions: ExtensionDefinition[]; // (undocumented) featureFlags?: FeatureFlagConfig[]; } @@ -841,7 +878,7 @@ export interface PluginOptions< ExternalRoutes extends AnyExternalRoutes, > { // (undocumented) - extensions?: Extension[]; + extensions?: ExtensionDefinition[]; // (undocumented) externalRoutes?: ExternalRoutes; // (undocumented) diff --git a/packages/frontend-test-utils/api-report.md b/packages/frontend-test-utils/api-report.md index 59f5696ddc..14e1c68c4c 100644 --- a/packages/frontend-test-utils/api-report.md +++ b/packages/frontend-test-utils/api-report.md @@ -4,7 +4,7 @@ ```ts import { ErrorWithContext } from '@backstage/test-utils'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { JsonObject } from '@backstage/types'; import { MockAnalyticsApi } from '@backstage/test-utils'; import { MockConfigApi } from '@backstage/test-utils'; @@ -24,7 +24,7 @@ import { withLogCollector } from '@backstage/test-utils'; // @public (undocumented) export function createExtensionTester( - subject: Extension, + subject: ExtensionDefinition, options?: { config?: TConfig; }, @@ -36,7 +36,7 @@ export { ErrorWithContext }; export class ExtensionTester { // (undocumented) add( - extension: Extension, + extension: ExtensionDefinition, options?: { config?: TConfig; }, diff --git a/plugins/adr/api-report-alpha.md b/plugins/adr/api-report-alpha.md index 3864c85697..4c9ac1d17e 100644 --- a/plugins/adr/api-report-alpha.md +++ b/plugins/adr/api-report-alpha.md @@ -4,11 +4,11 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { TranslationRef } from '@backstage/core-plugin-api/alpha'; // @alpha (undocumented) -export const AdrSearchResultListItemExtension: Extension<{ +export const AdrSearchResultListItemExtension: ExtensionDefinition<{ lineClamp: number; noTrack: boolean; }>; diff --git a/plugins/catalog-react/api-report-alpha.md b/plugins/catalog-react/api-report-alpha.md index 913055f8b0..1be108f695 100644 --- a/plugins/catalog-react/api-report-alpha.md +++ b/plugins/catalog-react/api-report-alpha.md @@ -8,7 +8,7 @@ import { AnyExtensionInputMap } from '@backstage/frontend-plugin-api'; import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; import { Entity } from '@backstage/catalog-model'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { ExtensionInputValues } from '@backstage/frontend-plugin-api'; import { ResourcePermission } from '@backstage/plugin-permission-common'; import { RouteRef } from '@backstage/frontend-plugin-api'; @@ -17,7 +17,8 @@ import { RouteRef } from '@backstage/frontend-plugin-api'; export function createEntityCardExtension< TInputs extends AnyExtensionInputMap, >(options: { - id: string; + namespace?: string; + name?: string; attachTo?: { id: string; input: string; @@ -30,7 +31,7 @@ export function createEntityCardExtension< loader: (options: { inputs: Expand>; }) => Promise; -}): Extension<{ +}): ExtensionDefinition<{ filter?: string | undefined; }>; @@ -38,7 +39,8 @@ export function createEntityCardExtension< export function createEntityContentExtension< TInputs extends AnyExtensionInputMap, >(options: { - id: string; + namespace?: string; + name?: string; attachTo?: { id: string; input: string; @@ -54,7 +56,7 @@ export function createEntityContentExtension< loader: (options: { inputs: Expand>; }) => Promise; -}): Extension<{ +}): ExtensionDefinition<{ title: string; path: string; filter?: string | undefined; diff --git a/plugins/catalog/api-report-alpha.md b/plugins/catalog/api-report-alpha.md index 52afb0894a..3226d10270 100644 --- a/plugins/catalog/api-report-alpha.md +++ b/plugins/catalog/api-report-alpha.md @@ -7,7 +7,7 @@ import { AnyExtensionInputMap } from '@backstage/frontend-plugin-api'; import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { ExternalRouteRef } from '@backstage/frontend-plugin-api'; import { PortableSchema } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; @@ -17,11 +17,12 @@ export function createCatalogFilterExtension< TInputs extends AnyExtensionInputMap, TConfig = never, >(options: { - id: string; + namespace?: string; + name?: string; inputs?: TInputs; configSchema?: PortableSchema; loader: (options: { config: TConfig }) => Promise; -}): Extension; +}): ExtensionDefinition; // @alpha (undocumented) const _default: BackstagePlugin< diff --git a/plugins/explore/api-report-alpha.md b/plugins/explore/api-report-alpha.md index 8670338f3e..4d1afa89bf 100644 --- a/plugins/explore/api-report-alpha.md +++ b/plugins/explore/api-report-alpha.md @@ -4,14 +4,14 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) const _default: BackstagePlugin<{}, {}>; export default _default; // @alpha (undocumented) -export const ExploreSearchResultListItemExtension: Extension<{ +export const ExploreSearchResultListItemExtension: ExtensionDefinition<{ noTrack?: boolean | undefined; }>; diff --git a/plugins/graphiql/api-report-alpha.md b/plugins/graphiql/api-report-alpha.md index 3362cf0a59..c5895067df 100644 --- a/plugins/graphiql/api-report-alpha.md +++ b/plugins/graphiql/api-report-alpha.md @@ -4,20 +4,21 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { GraphQLEndpoint } from '@backstage/plugin-graphiql'; import { PortableSchema } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) -export function createEndpointExtension(options: { - id: string; +export function createGraphiQLEndpointExtension(options: { + namespace?: string; + name?: string; configSchema?: PortableSchema; disabled?: boolean; factory: (options: { config: TConfig }) => { endpoint: GraphQLEndpoint; }; -}): Extension; +}): ExtensionDefinition; // @alpha (undocumented) const _default: BackstagePlugin< @@ -29,15 +30,15 @@ const _default: BackstagePlugin< export default _default; // @alpha (undocumented) -export const graphiqlBrowseApi: Extension<{}>; +export const graphiqlBrowseApi: ExtensionDefinition<{}>; // @alpha (undocumented) -export const GraphiqlPage: Extension<{ +export const GraphiqlPage: ExtensionDefinition<{ path: string; }>; // @alpha (undocumented) -export const graphiqlPageSidebarItem: Extension<{ +export const graphiqlPageSidebarItem: ExtensionDefinition<{ title: string; }>; diff --git a/plugins/search-react/api-report-alpha.md b/plugins/search-react/api-report-alpha.md index 9c1248b536..285f1232c2 100644 --- a/plugins/search-react/api-report-alpha.md +++ b/plugins/search-react/api-report-alpha.md @@ -6,7 +6,7 @@ /// import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { ListItemProps } from '@material-ui/core'; import { PortableSchema } from '@backstage/frontend-plugin-api'; import { SearchDocument } from '@backstage/plugin-search-common'; @@ -23,7 +23,9 @@ export function createSearchResultListItemExtension< TConfig extends { noTrack?: boolean; }, ->(options: SearchResultItemExtensionOptions): Extension; +>( + options: SearchResultItemExtensionOptions, +): ExtensionDefinition; // @alpha (undocumented) export type SearchResultItemExtensionComponent = < @@ -47,7 +49,8 @@ export type SearchResultItemExtensionOptions< noTrack?: boolean; }, > = { - id: string; + namespace?: string; + name?: string; attachTo?: { id: string; input: string; diff --git a/plugins/search/api-report-alpha.md b/plugins/search/api-report-alpha.md index 99f3d07b57..533734f8e9 100644 --- a/plugins/search/api-report-alpha.md +++ b/plugins/search/api-report-alpha.md @@ -4,7 +4,7 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) @@ -17,15 +17,15 @@ const _default: BackstagePlugin< export default _default; // @alpha (undocumented) -export const SearchApi: Extension<{}>; +export const SearchApi: ExtensionDefinition<{}>; // @alpha (undocumented) -export const SearchNavItem: Extension<{ +export const SearchNavItem: ExtensionDefinition<{ title: string; }>; // @alpha (undocumented) -export const SearchPage: Extension<{ +export const SearchPage: ExtensionDefinition<{ path: string; noTrack: boolean; }>; diff --git a/plugins/tech-radar/api-report-alpha.md b/plugins/tech-radar/api-report-alpha.md index da8f12cf0e..bcc9142223 100644 --- a/plugins/tech-radar/api-report-alpha.md +++ b/plugins/tech-radar/api-report-alpha.md @@ -4,7 +4,7 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) @@ -17,7 +17,10 @@ const _default: BackstagePlugin< export default _default; // @alpha (undocumented) -export const TechRadarPage: Extension<{ +export const sampleTechRadarApi: ExtensionDefinition<{}>; + +// @alpha (undocumented) +export const TechRadarPage: ExtensionDefinition<{ height: number; width: number; title: string; diff --git a/plugins/tech-radar/src/alpha.tsx b/plugins/tech-radar/src/alpha.tsx index 295d084a9a..9920c767cd 100644 --- a/plugins/tech-radar/src/alpha.tsx +++ b/plugins/tech-radar/src/alpha.tsx @@ -47,6 +47,7 @@ export const TechRadarPage = createPageExtension({ import('./components').then(m => ), }); +/** @alpha */ export const sampleTechRadarApi = createApiExtension({ factory() { return createApiFactory(techRadarApiRef, new SampleTechRadarApi()); diff --git a/plugins/techdocs/api-report-alpha.md b/plugins/techdocs/api-report-alpha.md index 2b63d6e691..afc3202a43 100644 --- a/plugins/techdocs/api-report-alpha.md +++ b/plugins/techdocs/api-report-alpha.md @@ -4,7 +4,7 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { Extension } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) @@ -23,7 +23,7 @@ const _default: BackstagePlugin< export default _default; // @alpha (undocumented) -export const TechDocsSearchResultListItemExtension: Extension<{ +export const TechDocsSearchResultListItemExtension: ExtensionDefinition<{ lineClamp: number; noTrack: boolean; asListItem: boolean;