Merge pull request #30765 from backstage/rugvip/noconfig

frontend-plugin-api: avoid forwarding ConfigurableExtensionDataRef
This commit is contained in:
Patrik Oldsberg
2025-08-05 15:40:51 +02:00
committed by GitHub
26 changed files with 381 additions and 620 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
---
Tweaked the return types from `createExtension` and `createExtensionBlueprint` to avoid the forwarding of `ConfigurableExtensionDataRef` into exported types.
@@ -4,7 +4,7 @@
```ts
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
@@ -26,9 +26,9 @@ const examplePlugin: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+30 -17
View File
@@ -41,6 +41,7 @@ import { ErrorApiErrorContext } from '@backstage/core-plugin-api';
import { errorApiRef } from '@backstage/core-plugin-api';
import { Expand } from '@backstage/types';
import { ExtensionBlueprint as ExtensionBlueprint_2 } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef as ExtensionDataRef_2 } from '@backstage/frontend-plugin-api';
import { FeatureFlag } from '@backstage/core-plugin-api';
import { FeatureFlagsApi } from '@backstage/core-plugin-api';
import { featureFlagsApiRef } from '@backstage/core-plugin-api';
@@ -146,7 +147,7 @@ export const AnalyticsImplementationBlueprint: ExtensionBlueprint<{
params: <TDeps extends { [name in string]: unknown }>(
params: AnalyticsImplementationFactory<TDeps>,
) => ExtensionBlueprintParams<AnalyticsImplementationFactory<{}>>;
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
AnalyticsImplementationFactory<{}>,
'core.analytics.factory',
{}
@@ -209,7 +210,7 @@ export const ApiBlueprint: ExtensionBlueprint<{
>(
params: ApiFactory<TApi, TImpl, TDeps>,
) => ExtensionBlueprintParams<AnyApiFactory>;
output: ConfigurableExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
config: {};
configInput: {};
@@ -276,7 +277,7 @@ export const AppRootElementBlueprint: ExtensionBlueprint<{
params: {
element: JSX.Element;
};
output: ConfigurableExtensionDataRef<JSX_3.Element, 'core.reactElement', {}>;
output: ExtensionDataRef<JSX_3.Element, 'core.reactElement', {}>;
inputs: {};
config: {};
configInput: {};
@@ -290,7 +291,7 @@ export const AppRootWrapperBlueprint: ExtensionBlueprint<{
Component?: [error: 'Use the `component` parameter instead'];
component: (props: { children: ReactNode }) => JSX.Element | null;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
(props: { children: ReactNode }) => JSX.Element | null,
'app.root.wrapper',
{}
@@ -444,7 +445,7 @@ export function createComponentExtension<TProps extends {}>(options: {
}): ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
ref: ComponentRef;
impl: ComponentType;
@@ -524,7 +525,13 @@ export function createExtension<
[key in keyof TConfigSchema]: ReturnType<TConfigSchema[key]>;
}>
>;
output: UOutput;
output: UOutput extends ExtensionDataRef<
infer IData,
infer IId,
infer IConfig
>
? ExtensionDataRef<IData, IId, IConfig>
: never;
inputs: TInputs;
params: never;
kind: string | undefined extends TKind ? undefined : TKind;
@@ -565,7 +572,13 @@ export function createExtensionBlueprint<
): ExtensionBlueprint<{
kind: TKind;
params: TParams;
output: UOutput;
output: UOutput extends ExtensionDataRef<
infer IData,
infer IId,
infer IConfig
>
? ExtensionDataRef<IData, IId, IConfig>
: never;
inputs: string extends keyof TInputs ? {} : TInputs;
config: string extends keyof TConfigSchema
? {}
@@ -1449,7 +1462,7 @@ export const IconBundleBlueprint: ExtensionBlueprint<{
params: {
icons: { [key in string]: IconComponent };
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
[x: string]: IconComponent;
},
@@ -1498,7 +1511,7 @@ export const NavContentBlueprint: ExtensionBlueprint_2<{
params: {
component: NavContentComponent;
};
output: ConfigurableExtensionDataRef_2<
output: ExtensionDataRef_2<
NavContentComponent,
'core.nav-content.component',
{}
@@ -1539,7 +1552,7 @@ export const NavItemBlueprint: ExtensionBlueprint<{
icon: IconComponent_3;
routeRef: RouteRef<undefined>;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent_3;
@@ -1592,9 +1605,9 @@ export const PageBlueprint: ExtensionBlueprint<{
routeRef?: RouteRef;
};
output:
| ConfigurableExtensionDataRef<JSX_3.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_3.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -1751,7 +1764,7 @@ export const RouterBlueprint: ExtensionBlueprint<{
Component?: [error: 'Use the `component` parameter instead'];
component: (props: { children: ReactNode }) => JSX.Element | null;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
(props: { children: ReactNode }) => JSX.Element | null,
'app.router.wrapper',
{}
@@ -1805,7 +1818,7 @@ export const SignInPageBlueprint: ExtensionBlueprint<{
params: {
loader: () => Promise<ComponentType<SignInPageProps>>;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
ComponentType<SignInPageProps>,
'core.sign-in-page.component',
{}
@@ -1846,7 +1859,7 @@ export const ThemeBlueprint: ExtensionBlueprint<{
params: {
theme: AppTheme;
};
output: ConfigurableExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
output: ExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
inputs: {};
config: {};
configInput: {};
@@ -1861,7 +1874,7 @@ export const TranslationBlueprint: ExtensionBlueprint<{
params: {
resource: TranslationResource | TranslationMessages;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
| TranslationResource<string>
| TranslationMessages<
string,
@@ -316,7 +316,14 @@ export function createExtension<
[key in keyof TConfigSchema]: ReturnType<TConfigSchema[key]>;
}>
>;
output: UOutput;
// This inference and remapping back to ExtensionDataRef eliminates any occurrences ConfigurationExtensionDataRef
output: UOutput extends ExtensionDataRef<
infer IData,
infer IId,
infer IConfig
>
? ExtensionDataRef<IData, IId, IConfig>
: never;
inputs: TInputs;
params: never;
kind: string | undefined extends TKind ? undefined : TKind;
@@ -435,7 +435,14 @@ export function createExtensionBlueprint<
): ExtensionBlueprint<{
kind: TKind;
params: TParams;
output: UOutput;
// This inference and remapping back to ExtensionDataRef eliminates any occurrences ConfigurationExtensionDataRef
output: UOutput extends ExtensionDataRef<
infer IData,
infer IId,
infer IConfig
>
? ExtensionDataRef<IData, IId, IConfig>
: never;
inputs: string extends keyof TInputs ? {} : TInputs;
config: string extends keyof TConfigSchema
? {}
@@ -492,7 +499,15 @@ export function createExtensionBlueprint<
const { node, config, inputs, apis } = ctx;
return args.factory(
(innerParams, innerContext) => {
return createExtensionDataContainer<UOutput>(
return createExtensionDataContainer<
UOutput extends ExtensionDataRef<
infer IData,
infer IId,
infer IConfig
>
? ExtensionDataRef<IData, IId, IConfig>
: never
>(
options.factory(
unwrapParams(innerParams, ctx, defineParams, options.kind),
{
@@ -522,7 +537,7 @@ export function createExtensionBlueprint<
} as ExtensionBlueprint<{
kind: TKind;
params: TParams;
output: UOutput;
output: any;
inputs: string extends keyof TInputs ? {} : TInputs;
config: string extends keyof TConfigSchema
? {}
+43 -56
View File
@@ -6,7 +6,6 @@
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { defaultEntityContentGroups } from '@backstage/plugin-catalog-react/alpha';
import { Entity } from '@backstage/catalog-model';
import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
@@ -69,11 +68,7 @@ const _default: FrontendPlugin<
name: 'config';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -95,22 +90,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -136,22 +131,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -177,22 +172,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -218,22 +213,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -259,22 +254,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -300,22 +295,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -345,35 +340,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -409,35 +400,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -462,7 +449,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -490,9 +477,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+5 -5
View File
@@ -4,7 +4,7 @@
```ts
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { IconComponent } from '@backstage/core-plugin-api';
@@ -21,7 +21,7 @@ const visualizerPlugin: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -47,9 +47,9 @@ const visualizerPlugin: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+38 -178
View File
@@ -34,11 +34,7 @@ const appPlugin: FrontendPlugin<
app: ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
root: ExtensionInput<
ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>,
@@ -55,11 +51,7 @@ const appPlugin: FrontendPlugin<
'app/layout': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
nav: ExtensionInput<
ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>,
@@ -83,11 +75,7 @@ const appPlugin: FrontendPlugin<
'app/nav': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
items: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -123,11 +111,7 @@ const appPlugin: FrontendPlugin<
'app/root': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
router: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -184,11 +168,7 @@ const appPlugin: FrontendPlugin<
'app/routes': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
routes: ExtensionInput<
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
@@ -215,11 +195,7 @@ const appPlugin: FrontendPlugin<
name: 'alert';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -232,11 +208,7 @@ const appPlugin: FrontendPlugin<
'api:app/analytics': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
implementations: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -265,11 +237,7 @@ const appPlugin: FrontendPlugin<
name: 'app-language';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -282,11 +250,7 @@ const appPlugin: FrontendPlugin<
'api:app/app-theme': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
themes: ExtensionInput<
ConfigurableExtensionDataRef<AppTheme, 'core.theme.theme', {}>,
@@ -311,11 +275,7 @@ const appPlugin: FrontendPlugin<
name: 'atlassian-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -330,11 +290,7 @@ const appPlugin: FrontendPlugin<
name: 'bitbucket-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -349,11 +305,7 @@ const appPlugin: FrontendPlugin<
name: 'bitbucket-server-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -366,11 +318,7 @@ const appPlugin: FrontendPlugin<
'api:app/components': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
components: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -402,11 +350,7 @@ const appPlugin: FrontendPlugin<
name: 'dialog';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -421,11 +365,7 @@ const appPlugin: FrontendPlugin<
name: 'discovery';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -440,11 +380,7 @@ const appPlugin: FrontendPlugin<
name: 'error';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -459,11 +395,7 @@ const appPlugin: FrontendPlugin<
name: 'feature-flags';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -478,11 +410,7 @@ const appPlugin: FrontendPlugin<
name: 'fetch';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -497,11 +425,7 @@ const appPlugin: FrontendPlugin<
name: 'github-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -516,11 +440,7 @@ const appPlugin: FrontendPlugin<
name: 'gitlab-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -535,11 +455,7 @@ const appPlugin: FrontendPlugin<
name: 'google-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -552,11 +468,7 @@ const appPlugin: FrontendPlugin<
'api:app/icons': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
icons: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -587,11 +499,7 @@ const appPlugin: FrontendPlugin<
name: 'microsoft-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -606,11 +514,7 @@ const appPlugin: FrontendPlugin<
name: 'oauth-request';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -625,11 +529,7 @@ const appPlugin: FrontendPlugin<
name: 'okta-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -644,11 +544,7 @@ const appPlugin: FrontendPlugin<
name: 'onelogin-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -663,11 +559,7 @@ const appPlugin: FrontendPlugin<
name: 'permission';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -682,11 +574,7 @@ const appPlugin: FrontendPlugin<
name: 'scm-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -701,11 +589,7 @@ const appPlugin: FrontendPlugin<
name: 'scm-integrations';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -720,11 +604,7 @@ const appPlugin: FrontendPlugin<
name: 'storage';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -737,11 +617,7 @@ const appPlugin: FrontendPlugin<
'api:app/translations': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
translations: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -777,11 +653,7 @@ const appPlugin: FrontendPlugin<
name: 'vmware-cloud-auth';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -808,11 +680,7 @@ const appPlugin: FrontendPlugin<
| undefined;
transientTimeoutMs?: number | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
[x: string]: ExtensionInput<
ExtensionDataRef,
@@ -831,11 +699,7 @@ const appPlugin: FrontendPlugin<
'app-root-element:app/dialog-display': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
[x: string]: ExtensionInput<
ExtensionDataRef,
@@ -856,11 +720,7 @@ const appPlugin: FrontendPlugin<
name: 'oauth-request-dialog';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
element: JSX.Element;
@@ -871,7 +731,7 @@ const appPlugin: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
ComponentType<SignInPageProps>,
'core.sign-in-page.component',
{}
@@ -886,7 +746,7 @@ const appPlugin: FrontendPlugin<
name: 'dark';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
output: ExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
inputs: {};
params: {
theme: AppTheme;
@@ -897,7 +757,7 @@ const appPlugin: FrontendPlugin<
name: 'light';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
output: ExtensionDataRef<AppTheme, 'core.theme.theme', {}>;
inputs: {};
params: {
theme: AppTheme;
+7 -8
View File
@@ -4,7 +4,6 @@
```ts
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Direction } from '@backstage/plugin-catalog-graph';
import { Entity } from '@backstage/catalog-model';
import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
@@ -93,22 +92,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -168,9 +167,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+5 -9
View File
@@ -6,8 +6,8 @@
import { AnyApiFactory } from '@backstage/core-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/core-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
@@ -99,11 +99,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -123,9 +119,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+24 -23
View File
@@ -8,6 +8,7 @@ import { ComponentType } from 'react';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { ExtensionBlueprint } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { IconLinkVerticalProps } from '@backstage/core-components';
import { JsonValue } from '@backstage/types';
@@ -23,7 +24,7 @@ export const CatalogFilterBlueprint: ExtensionBlueprint<{
params: {
loader: () => Promise<JSX.Element>;
};
output: ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
config: {};
configInput: {};
@@ -130,22 +131,22 @@ export const EntityCardBlueprint: ExtensionBlueprint<{
type?: EntityCardType;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -198,31 +199,31 @@ export const EntityContentBlueprint: ExtensionBlueprint<{
filter?: string | EntityPredicate | ((entity: Entity) => boolean);
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -274,21 +275,21 @@ export const EntityContentLayoutBlueprint: ExtensionBlueprint<{
loader: () => Promise<(props: EntityContentLayoutProps) => JSX_2.Element>;
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(props: EntityContentLayoutProps) => React.JSX.Element,
'catalog.entity-content-layout.component',
{}
@@ -335,8 +336,8 @@ export const EntityContextMenuItemBlueprint: ExtensionBlueprint<{
kind: 'entity-context-menu-item';
params: EntityContextMenuItemParams;
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
@@ -374,21 +375,21 @@ export const EntityHeaderBlueprint: ExtensionBlueprint<{
filter?: EntityPredicate | ((entity: Entity) => boolean);
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{
@@ -424,21 +425,21 @@ export const EntityIconLinkBlueprint: ExtensionBlueprint<{
filter?: EntityPredicate | ((entity: Entity) => boolean);
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
() => IconLinkVerticalProps,
'entity-icon-link-props',
{}
@@ -6,8 +6,8 @@
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { IconComponent } from '@backstage/core-plugin-api';
@@ -26,11 +26,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -45,7 +41,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -71,9 +67,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+75 -123
View File
@@ -142,11 +142,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -161,11 +157,7 @@ const _default: FrontendPlugin<
name: 'entity-presentation';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -180,11 +172,7 @@ const _default: FrontendPlugin<
name: 'starred-entities';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -201,11 +189,7 @@ const _default: FrontendPlugin<
configInput: {
initialFilter?: string | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
[x: string]: ExtensionInput<
ExtensionDataRef,
@@ -226,11 +210,7 @@ const _default: FrontendPlugin<
name: 'lifecycle';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
@@ -243,11 +223,7 @@ const _default: FrontendPlugin<
configInput: {
initialFilter?: 'all' | 'owned' | 'starred' | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
[x: string]: ExtensionInput<
ExtensionDataRef,
@@ -270,11 +246,7 @@ const _default: FrontendPlugin<
configInput: {
mode?: 'all' | 'owners-only' | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {
[x: string]: ExtensionInput<
ExtensionDataRef,
@@ -295,11 +267,7 @@ const _default: FrontendPlugin<
name: 'namespace';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
@@ -310,11 +278,7 @@ const _default: FrontendPlugin<
name: 'processing-status';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
@@ -325,11 +289,7 @@ const _default: FrontendPlugin<
name: 'tag';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
@@ -340,11 +300,7 @@ const _default: FrontendPlugin<
name: 'type';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
@@ -360,22 +316,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -429,22 +385,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -470,22 +426,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -511,22 +467,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -552,22 +508,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -593,22 +549,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -634,22 +590,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -675,22 +631,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -716,22 +672,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -757,22 +713,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -800,35 +756,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -914,8 +866,8 @@ const _default: FrontendPlugin<
filter?: EntityPredicate | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
@@ -935,8 +887,8 @@ const _default: FrontendPlugin<
filter?: EntityPredicate | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
@@ -956,8 +908,8 @@ const _default: FrontendPlugin<
filter?: EntityPredicate | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
@@ -981,21 +933,21 @@ const _default: FrontendPlugin<
title?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
() => IconLinkVerticalProps,
'entity-icon-link-props',
{}
@@ -1011,7 +963,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -1052,9 +1004,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -1105,9 +1057,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -1209,7 +1161,7 @@ const _default: FrontendPlugin<
configInput: {
noTrack?: boolean | undefined;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
predicate?: SearchResultItemExtensionPredicate;
component: SearchResultItemExtensionComponent;
+6 -10
View File
@@ -6,8 +6,8 @@
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { IconComponent } from '@backstage/core-plugin-api';
@@ -26,11 +26,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -45,7 +41,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -71,9 +67,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+6 -13
View File
@@ -8,6 +8,7 @@ import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
@@ -27,11 +28,7 @@ const _default: FrontendPlugin<
name: 'visits';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -46,11 +43,7 @@ const _default: FrontendPlugin<
name: 'visit-listener';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
element: JSX.Element;
@@ -64,9 +57,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+15 -35
View File
@@ -6,11 +6,11 @@
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { defaultEntityContentGroups } from '@backstage/plugin-catalog-react/alpha';
import { Entity } from '@backstage/catalog-model';
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
@@ -29,11 +29,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -48,11 +44,7 @@ const _default: FrontendPlugin<
name: 'auth-providers';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -67,11 +59,7 @@ const _default: FrontendPlugin<
name: 'cluster-link-formatter';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -86,11 +74,7 @@ const _default: FrontendPlugin<
name: 'proxy';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -116,35 +100,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -174,9 +154,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+5 -9
View File
@@ -6,8 +6,8 @@
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
@@ -25,11 +25,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -49,9 +45,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+16 -17
View File
@@ -3,7 +3,6 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
@@ -34,22 +33,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -75,22 +74,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -116,22 +115,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@@ -161,22 +160,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
+4 -3
View File
@@ -14,6 +14,7 @@ import { CustomFieldValidator } from '@backstage/plugin-scaffolder-react';
import { Dispatch } from 'react';
import { ExtensionBlueprint } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { FieldExtensionComponentProps } from '@backstage/plugin-scaffolder-react';
@@ -138,7 +139,7 @@ export const FormDecoratorBlueprint: ExtensionBlueprint<{
params: {
decorator: ScaffolderFormDecorator;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
ScaffolderFormDecorator,
'scaffolder.form-decorator-loader',
{}
@@ -167,7 +168,7 @@ export const FormFieldBlueprint: ExtensionBlueprint<{
params: {
field: () => Promise<FormField>;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
() => Promise<FormField>,
'scaffolder.form-field-loader',
{}
@@ -207,7 +208,7 @@ export type FormFieldExtensionData<
export const formFieldsApi: ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
formFields: ExtensionInput<
ConfigurableExtensionDataRef<
+13 -24
View File
@@ -12,6 +12,7 @@ import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { ExternalRouteRef } from '@backstage/frontend-plugin-api';
@@ -62,11 +63,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -79,11 +76,7 @@ const _default: FrontendPlugin<
'api:scaffolder/form-decorators': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
formDecorators: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -110,11 +103,7 @@ const _default: FrontendPlugin<
'api:scaffolder/form-fields': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
formFields: ExtensionInput<
ConfigurableExtensionDataRef<
@@ -152,21 +141,21 @@ const _default: FrontendPlugin<
title?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
() => IconLinkVerticalProps,
'entity-icon-link-props',
{}
@@ -182,7 +171,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -206,9 +195,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -242,7 +231,7 @@ const _default: FrontendPlugin<
name: 'repo-url-picker';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
() => Promise<FormField>,
'scaffolder.form-field-loader',
{}
@@ -272,7 +261,7 @@ export class DefaultScaffolderFormDecoratorsApi
export const formDecoratorsApi: ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {
formDecorators: ExtensionInput<
ConfigurableExtensionDataRef<
+4 -3
View File
@@ -5,6 +5,7 @@
```ts
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprint } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ListItemProps } from '@material-ui/core/ListItem';
import { SearchDocument } from '@backstage/plugin-search-common';
import { SearchResult } from '@backstage/plugin-search-common';
@@ -20,7 +21,7 @@ export type BaseSearchResultListItemProps<T = {}> = T & {
export const SearchFilterBlueprint: ExtensionBlueprint<{
kind: 'search-filter';
params: SearchFilterBlueprintParams;
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
component: SearchFilterExtensionComponent;
},
@@ -61,7 +62,7 @@ export type SearchFilterExtensionComponentProps = {
export const SearchFilterResultTypeBlueprint: ExtensionBlueprint<{
kind: 'search-filter-result-type';
params: SearchFilterResultTypeBlueprintParams;
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
value: string;
name: string;
@@ -127,7 +128,7 @@ export type SearchResultItemExtensionPredicate = (
export const SearchResultListItemBlueprint: ExtensionBlueprint<{
kind: 'search-result-list-item';
params: SearchResultListItemBlueprintParams;
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
predicate?: SearchResultItemExtensionPredicate;
component: SearchResultItemExtensionComponent;
+11 -14
View File
@@ -8,6 +8,7 @@ import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/core-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
@@ -31,11 +32,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -50,7 +47,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -78,9 +75,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -150,7 +147,7 @@ export const searchApi: ExtensionDefinition<{
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -167,7 +164,7 @@ export const searchNavItem: ExtensionDefinition<{
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -197,9 +194,9 @@ export const searchPage: ExtensionDefinition<{
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
+3 -11
View File
@@ -5,8 +5,8 @@
```ts
import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
@@ -21,11 +21,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -40,11 +36,7 @@ const _default: FrontendPlugin<
name: 'signals-display';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
params: {
element: JSX.Element;
+2 -5
View File
@@ -6,16 +6,13 @@
import { ComponentType } from 'react';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionBlueprint } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
// @alpha
export const AddonBlueprint: ExtensionBlueprint<{
kind: 'addon';
params: TechDocsAddonOptions;
output: ConfigurableExtensionDataRef<
TechDocsAddonOptions,
'techdocs.addon',
{}
>;
output: ExtensionDataRef<TechDocsAddonOptions, 'techdocs.addon', {}>;
inputs: {};
config: {};
configInput: {};
+22 -34
View File
@@ -42,11 +42,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -61,11 +57,7 @@ const _default: FrontendPlugin<
name: 'storage';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: <
TApi,
@@ -78,7 +70,7 @@ const _default: FrontendPlugin<
'empty-state:techdocs/entity-content': ExtensionDefinition<{
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{
@@ -112,35 +104,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@@ -201,21 +189,21 @@ const _default: FrontendPlugin<
title?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
() => IconLinkVerticalProps,
'entity-icon-link-props',
{}
@@ -231,7 +219,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -257,9 +245,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -282,9 +270,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -330,7 +318,7 @@ const _default: FrontendPlugin<
} & {
noTrack?: boolean | undefined;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
predicate?: SearchResultItemExtensionPredicate;
component: SearchResultItemExtensionComponent;
@@ -373,7 +361,7 @@ export const techDocsSearchResultListItemExtension: ExtensionDefinition<{
} & {
noTrack?: boolean | undefined;
};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
predicate?: SearchResultItemExtensionPredicate;
component: SearchResultItemExtensionComponent;
+6 -5
View File
@@ -5,6 +5,7 @@
```ts
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInput } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
@@ -25,7 +26,7 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;
@@ -49,9 +50,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@@ -86,7 +87,7 @@ export const settingsNavItem: ExtensionDefinition<{
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
output: ExtensionDataRef<
{
title: string;
icon: IconComponent;