diff --git a/packages/frontend-app-api/src/wiring/parameters.test.ts b/packages/frontend-app-api/src/wiring/parameters.test.ts index 036de02252..eeb0df8530 100644 --- a/packages/frontend-app-api/src/wiring/parameters.test.ts +++ b/packages/frontend-app-api/src/wiring/parameters.test.ts @@ -211,7 +211,7 @@ describe('readAppExtensionParameters', () => { }), ), ).toThrow( - "Invalid extension configuration at app.extensions[0], extension ID must only contain letters, numbers, dashes, and dots, got 'core.router/routes'", + "Invalid extension configuration at app.extensions[0], extension ID must only contain letters, numbers, and dots; got 'core.router/routes'", ); }); }); @@ -260,10 +260,10 @@ describe('expandShorthandExtensionParameters', () => { disabled: false, }); expect(() => run('')).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1], extension ID must only contain letters, numbers, dashes, and dots, got ''"`, + `"Invalid extension configuration at app.extensions[1], extension ID must only contain letters, numbers, and dots; got ''"`, ); expect(() => run('core.router/routes')).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1], extension ID must only contain letters, numbers, dashes, and dots, got 'core.router/routes'"`, + `"Invalid extension configuration at app.extensions[1], extension ID must only contain letters, numbers, and dots; got 'core.router/routes'"`, ); }); diff --git a/packages/frontend-app-api/src/wiring/parameters.ts b/packages/frontend-app-api/src/wiring/parameters.ts index 1b6173fca0..60de094aee 100644 --- a/packages/frontend-app-api/src/wiring/parameters.ts +++ b/packages/frontend-app-api/src/wiring/parameters.ts @@ -61,10 +61,10 @@ export function expandShorthandExtensionParameters( } function assertValidId(id: string) { - if (!id.match(/^[\.a-zA-Z0-9-]+$/)) { + if (!id.match(/^[\.a-zA-Z0-9]+$/)) { throw new Error( errorMsg( - `extension ID must only contain letters, numbers, dashes, and dots, got '${id}'`, + `extension ID must only contain letters, numbers, and dots; got '${id}'`, ), ); } diff --git a/packages/frontend-plugin-api/api-report.md b/packages/frontend-plugin-api/api-report.md index 34ca6fdb5a..3068b25437 100644 --- a/packages/frontend-plugin-api/api-report.md +++ b/packages/frontend-plugin-api/api-report.md @@ -19,7 +19,7 @@ export interface BackstagePlugin { // (undocumented) $$type: 'backstage-plugin'; // (undocumented) - defaultExtensionInstances: ExtensionInstanceParameters[]; + defaultExtensions: Extension[]; // (undocumented) id: string; } @@ -27,7 +27,7 @@ export interface BackstagePlugin { // @public (undocumented) export interface BackstagePluginOptions { // (undocumented) - defaultExtensionInstances?: ExtensionInstanceParameters[]; + defaultExtensions?: Extension[]; // (undocumented) id: string; } @@ -61,9 +61,13 @@ export interface CreateExtensionOptions< >, TConfig, > { + // (undocumented) + at: string; // (undocumented) configSchema?: PortableSchema; // (undocumented) + disabled?: boolean; + // (undocumented) factory(options: { bind: ExtensionDataBind; config: TConfig; @@ -74,6 +78,8 @@ export interface CreateExtensionOptions< }; }): void; // (undocumented) + id: string; + // (undocumented) inputs?: TPoint; // (undocumented) output: TData; @@ -99,6 +105,9 @@ export function createPageExtension< configSchema: PortableSchema; } ) & { + id: string; + at?: string; + disabled?: boolean; inputs?: TInputs; component: (props: { config: TConfig; @@ -124,14 +133,20 @@ export interface Extension { // (undocumented) $$type: 'extension'; // (undocumented) + at: string; + // (undocumented) configSchema?: PortableSchema; // (undocumented) + disabled: boolean; + // (undocumented) factory(options: { bind: ExtensionDataBind; config: TConfig; inputs: Record>>; }): void; // (undocumented) + id: string; + // (undocumented) inputs: Record< string, { @@ -159,20 +174,6 @@ export type ExtensionDataValue = { [K in keyof TData]: TData[K]['T']; }; -// @public (undocumented) -export interface ExtensionInstanceParameters { - // (undocumented) - at: string; - // (undocumented) - config?: unknown; - // (undocumented) - disabled?: boolean; - // (undocumented) - extension: Extension; - // (undocumented) - id: string; -} - // @public (undocumented) export type PortableSchema = { parse: (input: unknown) => TOutput;