From 8330f1319ab5b3c53ac3d0dc20931e5924ccb118 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 Apr 2026 12:52:59 +0200 Subject: [PATCH] frontend-plugin-api: restore @ignore on internal utility types Route createExtension overloads through CreateExtensionOptions so that ResolvedExtensionInputs, VerifyExtensionFactoryOutput, VerifyExtensionAttachTo, and RequiredExtensionIds can remain @ignore without ae-forgotten-export warnings. Signed-off-by: Patrik Oldsberg Made-with: Cursor --- .../frontend-plugin-api/report-alpha.api.md | 47 -------- packages/frontend-plugin-api/report.api.md | 113 ++++-------------- packages/frontend-plugin-api/src/alpha.ts | 4 - .../src/wiring/createExtension.ts | 74 ++++-------- .../frontend-plugin-api/src/wiring/index.ts | 4 - 5 files changed, 46 insertions(+), 196 deletions(-) diff --git a/packages/frontend-plugin-api/report-alpha.api.md b/packages/frontend-plugin-api/report-alpha.api.md index bf71434082..61cf25fb21 100644 --- a/packages/frontend-plugin-api/report-alpha.api.md +++ b/packages/frontend-plugin-api/report-alpha.api.md @@ -829,27 +829,6 @@ export type PortableSchema = { }; }; -// @public (undocumented) -export type RequiredExtensionIds = - UExtensionData extends any - ? UExtensionData['config']['optional'] extends true - ? never - : UExtensionData['id'] - : never; - -// @public -export type ResolvedExtensionInputs< - TInputs extends { - [name in string]: ExtensionInput; - }, -> = { - [InputName in keyof TInputs]: false extends TInputs[InputName]['config']['singleton'] - ? Array>> - : false extends TInputs[InputName]['config']['optional'] - ? Expand> - : Expand | undefined>; -}; - // @public export interface RouteRef< TParams extends AnyRouteRefParams = AnyRouteRefParams, @@ -874,31 +853,5 @@ export interface SubRouteRef< readonly T: TParams; } -// @public (undocumented) -export type VerifyExtensionAttachTo< - UOutput extends ExtensionDataRef, - UParentInput extends ExtensionDataRef, -> = ExtensionDataRef extends UParentInput - ? {} - : [RequiredExtensionIds] extends [RequiredExtensionIds] - ? {} - : `Error: This parent extension input requires the following extension data, but it is not declared as guaranteed output of this extension: ${JoinStringUnion< - Exclude, RequiredExtensionIds> - >}`; - -// @public (undocumented) -export type VerifyExtensionFactoryOutput< - UDeclaredOutput extends ExtensionDataRef, - UFactoryOutput extends ExtensionDataValue, -> = [RequiredExtensionIds] extends [UFactoryOutput['id']] - ? [UFactoryOutput['id']] extends [UDeclaredOutput['id']] - ? {} - : `Error: The extension factory has undeclared output(s): ${JoinStringUnion< - Exclude - >}` - : `Error: The extension factory is missing the following output(s): ${JoinStringUnion< - Exclude, UFactoryOutput['id']> - >}`; - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/frontend-plugin-api/report.api.md b/packages/frontend-plugin-api/report.api.md index 49e4d24bd7..4b54486fd9 100644 --- a/packages/frontend-plugin-api/report.api.md +++ b/packages/frontend-plugin-api/report.api.md @@ -472,28 +472,18 @@ export function createExtension< [key: string]: StandardSchemaV1; } = {}, >( - options: { - kind?: TKind; - name?: TName; - attachTo: ExtensionDefinitionAttachTo & - VerifyExtensionAttachTo; - disabled?: boolean; - if?: FilterPredicate; - inputs?: TInputs; - output: Array; + options: CreateExtensionOptions< + TKind, + TName, + UOutput, + TInputs, + {}, + UFactoryOutput, + UParentInputs, + TNewConfigSchema + > & { config?: never; - configSchema?: TNewConfigSchema; - factory(context: { - node: AppNode; - apis: ApiHolder; - config: { - [key in keyof TNewConfigSchema]: NonNullable< - TNewConfigSchema[key]['~standard']['types'] - >['output']; - }; - inputs: Expand>; - }): Iterable; - } & VerifyExtensionFactoryOutput, + }, ): OverridableExtensionDefinition<{ config: { [key in keyof TNewConfigSchema]: NonNullable< @@ -532,30 +522,18 @@ export function createExtension< const TName extends string | undefined = undefined, UParentInputs extends ExtensionDataRef = ExtensionDataRef, >( - options: { - kind?: TKind; - name?: TName; - attachTo: ExtensionDefinitionAttachTo & - VerifyExtensionAttachTo; - disabled?: boolean; - if?: FilterPredicate; - inputs?: TInputs; - output: Array; + options: CreateExtensionOptions< + TKind, + TName, + UOutput, + TInputs, + TConfigSchema, + UFactoryOutput, + UParentInputs, + {} + > & { configSchema?: never; - config?: { - schema: TConfigSchema; - }; - factory(context: { - node: AppNode; - apis: ApiHolder; - config: { - [key in keyof TConfigSchema]: z.infer< - ReturnType<((...args: any[]) => any) & TConfigSchema[key]> - >; - }; - inputs: Expand>; - }): Iterable; - } & VerifyExtensionFactoryOutput, + }, ): OverridableExtensionDefinition<{ config: string extends keyof TConfigSchema ? {} @@ -2449,27 +2427,6 @@ export const Progress: { // @public (undocumented) export type ProgressProps = {}; -// @public (undocumented) -export type RequiredExtensionIds = - UExtensionData extends any - ? UExtensionData['config']['optional'] extends true - ? never - : UExtensionData['id'] - : never; - -// @public -export type ResolvedExtensionInputs< - TInputs extends { - [name in string]: ExtensionInput; - }, -> = { - [InputName in keyof TInputs]: false extends TInputs[InputName]['config']['singleton'] - ? Array>> - : false extends TInputs[InputName]['config']['optional'] - ? Expand> - : Expand | undefined>; -}; - // @public export type RouteFunc = ( ...input: TParams extends undefined ? readonly [] : readonly [params: TParams] @@ -2882,32 +2839,6 @@ export const useTranslationRef: ( t: TranslationFunction; }; -// @public (undocumented) -export type VerifyExtensionAttachTo< - UOutput extends ExtensionDataRef, - UParentInput extends ExtensionDataRef, -> = ExtensionDataRef extends UParentInput - ? {} - : [RequiredExtensionIds] extends [RequiredExtensionIds] - ? {} - : `Error: This parent extension input requires the following extension data, but it is not declared as guaranteed output of this extension: ${JoinStringUnion< - Exclude, RequiredExtensionIds> - >}`; - -// @public (undocumented) -export type VerifyExtensionFactoryOutput< - UDeclaredOutput extends ExtensionDataRef, - UFactoryOutput extends ExtensionDataValue, -> = [RequiredExtensionIds] extends [UFactoryOutput['id']] - ? [UFactoryOutput['id']] extends [UDeclaredOutput['id']] - ? {} - : `Error: The extension factory has undeclared output(s): ${JoinStringUnion< - Exclude - >}` - : `Error: The extension factory is missing the following output(s): ${JoinStringUnion< - Exclude, UFactoryOutput['id']> - >}`; - // @public export const vmwareCloudAuthApiRef: ApiRef_2< OAuthApi & diff --git a/packages/frontend-plugin-api/src/alpha.ts b/packages/frontend-plugin-api/src/alpha.ts index f622efe4f2..d2118994fb 100644 --- a/packages/frontend-plugin-api/src/alpha.ts +++ b/packages/frontend-plugin-api/src/alpha.ts @@ -37,10 +37,6 @@ export type { ExtensionInput, FrontendPlugin, OverridableExtensionDefinition, - ResolvedExtensionInputs, - RequiredExtensionIds, - VerifyExtensionFactoryOutput, - VerifyExtensionAttachTo, } from './wiring'; export type { ApiHolder, diff --git a/packages/frontend-plugin-api/src/wiring/createExtension.ts b/packages/frontend-plugin-api/src/wiring/createExtension.ts index 643b4dac1d..33f3bca158 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtension.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtension.ts @@ -60,7 +60,7 @@ type ResolvedExtensionInput = /** * Converts an extension input map into a matching collection of resolved inputs. * - * @public + * @ignore */ export type ResolvedExtensionInputs< TInputs extends { @@ -97,7 +97,7 @@ type JoinStringUnion< : JoinStringUnion : TResult; -/** @public */ +/** @ignore */ export type RequiredExtensionIds = UExtensionData extends any ? UExtensionData['config']['optional'] extends true @@ -105,7 +105,7 @@ export type RequiredExtensionIds = : UExtensionData['id'] : never; -/** @public */ +/** @ignore */ export type VerifyExtensionFactoryOutput< UDeclaredOutput extends ExtensionDataRef, UFactoryOutput extends ExtensionDataValue, @@ -119,7 +119,7 @@ export type VerifyExtensionFactoryOutput< Exclude, UFactoryOutput['id']> >}`; -/** @public */ +/** @ignore */ export type VerifyExtensionAttachTo< UOutput extends ExtensionDataRef, UParentInput extends ExtensionDataRef, @@ -527,28 +527,16 @@ export function createExtension< UParentInputs extends ExtensionDataRef = ExtensionDataRef, TNewConfigSchema extends { [key: string]: StandardSchemaV1 } = {}, >( - options: { - kind?: TKind; - name?: TName; - attachTo: ExtensionDefinitionAttachTo & - VerifyExtensionAttachTo; - disabled?: boolean; - if?: FilterPredicate; - inputs?: TInputs; - output: Array; - config?: never; - configSchema?: TNewConfigSchema; - factory(context: { - node: AppNode; - apis: ApiHolder; - config: { - [key in keyof TNewConfigSchema]: NonNullable< - TNewConfigSchema[key]['~standard']['types'] - >['output']; - }; - inputs: Expand>; - }): Iterable; - } & VerifyExtensionFactoryOutput, + options: CreateExtensionOptions< + TKind, + TName, + UOutput, + TInputs, + {}, + UFactoryOutput, + UParentInputs, + TNewConfigSchema + > & { config?: never }, ): OverridableExtensionDefinition<{ config: { [key in keyof TNewConfigSchema]: NonNullable< @@ -586,30 +574,16 @@ export function createExtension< const TName extends string | undefined = undefined, UParentInputs extends ExtensionDataRef = ExtensionDataRef, >( - options: { - kind?: TKind; - name?: TName; - attachTo: ExtensionDefinitionAttachTo & - VerifyExtensionAttachTo; - disabled?: boolean; - if?: FilterPredicate; - inputs?: TInputs; - output: Array; - configSchema?: never; - config?: { - schema: TConfigSchema; - }; - factory(context: { - node: AppNode; - apis: ApiHolder; - config: { - [key in keyof TConfigSchema]: z.infer< - ReturnType<((...args: any[]) => any) & TConfigSchema[key]> - >; - }; - inputs: Expand>; - }): Iterable; - } & VerifyExtensionFactoryOutput, + options: CreateExtensionOptions< + TKind, + TName, + UOutput, + TInputs, + TConfigSchema, + UFactoryOutput, + UParentInputs, + {} + > & { configSchema?: never }, ): OverridableExtensionDefinition<{ config: string extends keyof TConfigSchema ? {} diff --git a/packages/frontend-plugin-api/src/wiring/index.ts b/packages/frontend-plugin-api/src/wiring/index.ts index 676f5982ec..f3a39cc60d 100644 --- a/packages/frontend-plugin-api/src/wiring/index.ts +++ b/packages/frontend-plugin-api/src/wiring/index.ts @@ -22,10 +22,6 @@ export { type ExtensionDefinitionParameters, type CreateExtensionOptions, type OverridableExtensionDefinition, - type ResolvedExtensionInputs, - type RequiredExtensionIds, - type VerifyExtensionFactoryOutput, - type VerifyExtensionAttachTo, } from './createExtension'; export { createExtensionInput,