@backstage/frontend-plugin-api 0.6.7 → 0.6.8-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +137 -0
- package/dist/apis/definitions/AppTreeApi.esm.js.map +1 -1
- package/dist/components/ExtensionBoundary.esm.js +7 -1
- package/dist/components/ExtensionBoundary.esm.js.map +1 -1
- package/dist/extensions/IconBundleBlueprint.esm.js +28 -0
- package/dist/extensions/IconBundleBlueprint.esm.js.map +1 -0
- package/dist/extensions/createApiExtension.esm.js +5 -2
- package/dist/extensions/createApiExtension.esm.js.map +1 -1
- package/dist/extensions/createAppRootWrapperExtension.esm.js +1 -3
- package/dist/extensions/createAppRootWrapperExtension.esm.js.map +1 -1
- package/dist/extensions/createComponentExtension.esm.js +3 -2
- package/dist/extensions/createComponentExtension.esm.js.map +1 -1
- package/dist/extensions/createNavItemExtension.esm.js +3 -2
- package/dist/extensions/createNavItemExtension.esm.js.map +1 -1
- package/dist/extensions/createNavLogoExtension.esm.js +3 -2
- package/dist/extensions/createNavLogoExtension.esm.js.map +1 -1
- package/dist/extensions/createPageExtension.esm.js +1 -1
- package/dist/extensions/createPageExtension.esm.js.map +1 -1
- package/dist/extensions/createRouterExtension.esm.js +1 -3
- package/dist/extensions/createRouterExtension.esm.js.map +1 -1
- package/dist/extensions/createSignInPageExtension.esm.js +3 -2
- package/dist/extensions/createSignInPageExtension.esm.js.map +1 -1
- package/dist/extensions/createThemeExtension.esm.js +5 -2
- package/dist/extensions/createThemeExtension.esm.js.map +1 -1
- package/dist/extensions/createTranslationExtension.esm.js +3 -2
- package/dist/extensions/createTranslationExtension.esm.js.map +1 -1
- package/dist/index.d.ts +336 -60
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/schema/createSchemaFromZod.esm.js.map +1 -1
- package/dist/wiring/coreExtensionData.esm.js +5 -3
- package/dist/wiring/coreExtensionData.esm.js.map +1 -1
- package/dist/wiring/createExtension.esm.js +19 -10
- package/dist/wiring/createExtension.esm.js.map +1 -1
- package/dist/wiring/createExtensionBlueprint.esm.js +56 -0
- package/dist/wiring/createExtensionBlueprint.esm.js.map +1 -0
- package/dist/wiring/createExtensionDataRef.esm.js +27 -12
- package/dist/wiring/createExtensionDataRef.esm.js.map +1 -1
- package/dist/wiring/createExtensionInput.esm.js +20 -0
- package/dist/wiring/createExtensionInput.esm.js.map +1 -1
- package/dist/wiring/createExtensionOverrides.esm.js.map +1 -1
- package/dist/wiring/createPlugin.esm.js.map +1 -1
- package/dist/wiring/resolveExtensionDefinition.esm.js +1 -1
- package/dist/wiring/resolveExtensionDefinition.esm.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTranslationExtension.esm.js","sources":["../../src/extensions/createTranslationExtension.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TranslationMessages, TranslationResource } from '../translation';\nimport { createExtension, createExtensionDataRef } from '../wiring';\n\n/** @public */\nexport function createTranslationExtension(options: {\n name?: string;\n resource: TranslationResource | TranslationMessages;\n}) {\n return createExtension({\n kind: 'translation',\n namespace: options.resource.id,\n name: options.name,\n attachTo: { id: 'app', input: 'translations' },\n output: {\n resource: createTranslationExtension.translationDataRef,\n },\n factory: () => ({ resource: options.resource }),\n });\n}\n\n/** @public */\nexport namespace createTranslationExtension {\n export const translationDataRef = createExtensionDataRef<\n TranslationResource | TranslationMessages\n >('core.translation.translation');\n}\n"],"names":["createTranslationExtension"],"mappings":"
|
|
1
|
+
{"version":3,"file":"createTranslationExtension.esm.js","sources":["../../src/extensions/createTranslationExtension.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TranslationMessages, TranslationResource } from '../translation';\nimport { createExtension, createExtensionDataRef } from '../wiring';\n\n/** @public */\nexport function createTranslationExtension(options: {\n name?: string;\n resource: TranslationResource | TranslationMessages;\n}) {\n return createExtension({\n kind: 'translation',\n namespace: options.resource.id,\n name: options.name,\n attachTo: { id: 'app', input: 'translations' },\n output: {\n resource: createTranslationExtension.translationDataRef,\n },\n factory: () => ({ resource: options.resource }),\n });\n}\n\n/** @public */\nexport namespace createTranslationExtension {\n export const translationDataRef = createExtensionDataRef<\n TranslationResource | TranslationMessages\n >().with({ id: 'core.translation.translation' });\n}\n"],"names":["createTranslationExtension"],"mappings":";;;;AAoBO,SAAS,2BAA2B,OAGxC,EAAA;AACD,EAAA,OAAO,eAAgB,CAAA;AAAA,IACrB,IAAM,EAAA,aAAA;AAAA,IACN,SAAA,EAAW,QAAQ,QAAS,CAAA,EAAA;AAAA,IAC5B,MAAM,OAAQ,CAAA,IAAA;AAAA,IACd,QAAU,EAAA,EAAE,EAAI,EAAA,KAAA,EAAO,OAAO,cAAe,EAAA;AAAA,IAC7C,MAAQ,EAAA;AAAA,MACN,UAAU,0BAA2B,CAAA,kBAAA;AAAA,KACvC;AAAA,IACA,OAAS,EAAA,OAAO,EAAE,QAAA,EAAU,QAAQ,QAAS,EAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AACH,CAAA;AAAA,CAGO,CAAUA,2BAAV,KAAA;AACE,EAAMA,2BAAAA,CAAA,qBAAqB,sBAEhC,EAAA,CAAE,KAAK,EAAE,EAAA,EAAI,gCAAgC,CAAA,CAAA;AAAA,CAHhC,EAAA,0BAAA,KAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
|
4
4
|
import { ApiRef, AnyApiRef, AnyApiFactory, IconComponent as IconComponent$1, SignInPageProps, AppTheme } from '@backstage/core-plugin-api';
|
|
5
5
|
export { AlertApi, AlertMessage, AnyApiFactory, AnyApiRef, ApiFactory, ApiHolder, ApiRef, ApiRefConfig, AppTheme, AppThemeApi, AuthProviderInfo, AuthRequestOptions, BackstageIdentityApi, BackstageIdentityResponse, BackstageUserIdentity, ConfigApi, DiscoveryApi, ErrorApi, ErrorApiError, ErrorApiErrorContext, FeatureFlag, FeatureFlagState, FeatureFlagsApi, FeatureFlagsSaveOptions, FetchApi, IdentityApi, OAuthApi, OAuthRequestApi, OAuthRequester, OAuthRequesterOptions, OAuthScope, OpenIdConnectApi, PendingOAuthRequest, ProfileInfo, ProfileInfoApi, SessionApi, SessionState, StorageApi, StorageValueSnapshot, TypesToApiRefs, alertApiRef, appThemeApiRef, atlassianAuthApiRef, bitbucketAuthApiRef, bitbucketServerAuthApiRef, configApiRef, createApiFactory, createApiRef, discoveryApiRef, errorApiRef, featureFlagsApiRef, fetchApiRef, githubAuthApiRef, gitlabAuthApiRef, googleAuthApiRef, identityApiRef, microsoftAuthApiRef, oauthRequestApiRef, oktaAuthApiRef, oneloginAuthApiRef, storageApiRef, useApi, useApiHolder, vmwareCloudAuthApiRef, withApis } from '@backstage/core-plugin-api';
|
|
6
6
|
import { JsonObject } from '@backstage/types';
|
|
7
|
+
import { z, ZodSchema, ZodTypeDef } from 'zod';
|
|
7
8
|
import { TranslationResource, TranslationMessages } from '@backstage/core-plugin-api/alpha';
|
|
8
9
|
export { TranslationMessages, TranslationMessagesOptions, TranslationRef, TranslationRefOptions, TranslationResource, TranslationResourceOptions, createTranslationMessages, createTranslationRef, createTranslationResource, useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
9
|
-
import { z, ZodSchema, ZodTypeDef } from 'zod';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Common analytics context attributes.
|
|
@@ -233,40 +233,65 @@ declare function useRouteRef<TParams extends AnyRouteRefParams>(routeRef: RouteR
|
|
|
233
233
|
declare function useRouteRefParams<Params extends AnyRouteRefParams>(_routeRef: RouteRef<Params> | SubRouteRef<Params>): Params;
|
|
234
234
|
|
|
235
235
|
/** @public */
|
|
236
|
-
type
|
|
236
|
+
type ExtensionDataValue<TData, TId extends string> = {
|
|
237
|
+
readonly $$type: '@backstage/ExtensionDataValue';
|
|
238
|
+
readonly id: TId;
|
|
239
|
+
readonly value: TData;
|
|
240
|
+
};
|
|
241
|
+
/** @public */
|
|
242
|
+
type ExtensionDataRef<TData, TId extends string = string, TConfig extends {
|
|
237
243
|
optional?: true;
|
|
238
244
|
} = {}> = {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
245
|
+
readonly $$type: '@backstage/ExtensionDataRef';
|
|
246
|
+
readonly id: TId;
|
|
247
|
+
readonly T: TData;
|
|
248
|
+
readonly config: TConfig;
|
|
243
249
|
};
|
|
244
250
|
/** @public */
|
|
245
|
-
|
|
251
|
+
type ExtensionDataRefToValue<TDataRef extends AnyExtensionDataRef> = TDataRef extends ExtensionDataRef<infer IData, infer IId, any> ? ExtensionDataValue<IData, IId> : never;
|
|
252
|
+
/** @public */
|
|
253
|
+
type AnyExtensionDataRef = ExtensionDataRef<unknown, string, {
|
|
246
254
|
optional?: true;
|
|
247
|
-
}
|
|
248
|
-
|
|
255
|
+
}>;
|
|
256
|
+
/** @public */
|
|
257
|
+
interface ConfigurableExtensionDataRef<TData, TId extends string, TConfig extends {
|
|
258
|
+
optional?: true;
|
|
259
|
+
} = {}> extends ExtensionDataRef<TData, TId, TConfig> {
|
|
260
|
+
optional(): ConfigurableExtensionDataRef<TData, TId, TData & {
|
|
249
261
|
optional: true;
|
|
250
262
|
}>;
|
|
263
|
+
(t: TData): ExtensionDataValue<TData, TId>;
|
|
251
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* @public
|
|
267
|
+
* @deprecated Use the following form instead: `createExtensionDataRef<Type>().with({ id: 'core.foo' })`
|
|
268
|
+
*/
|
|
269
|
+
declare function createExtensionDataRef<TData>(id: string): ConfigurableExtensionDataRef<TData, string>;
|
|
252
270
|
/** @public */
|
|
253
|
-
declare function createExtensionDataRef<TData>(
|
|
271
|
+
declare function createExtensionDataRef<TData>(): {
|
|
272
|
+
with<TId extends string>(options: {
|
|
273
|
+
id: TId;
|
|
274
|
+
}): ConfigurableExtensionDataRef<TData, TId>;
|
|
275
|
+
};
|
|
254
276
|
|
|
255
277
|
/** @public */
|
|
256
278
|
declare const coreExtensionData: {
|
|
257
|
-
reactElement: ConfigurableExtensionDataRef<JSX$1.Element, {}>;
|
|
258
|
-
routePath: ConfigurableExtensionDataRef<string, {}>;
|
|
259
|
-
routeRef: ConfigurableExtensionDataRef<RouteRef<AnyRouteRefParams>, {}>;
|
|
279
|
+
reactElement: ConfigurableExtensionDataRef<JSX$1.Element, "core.reactElement", {}>;
|
|
280
|
+
routePath: ConfigurableExtensionDataRef<string, "core.routing.path", {}>;
|
|
281
|
+
routeRef: ConfigurableExtensionDataRef<RouteRef<AnyRouteRefParams>, "core.routing.ref", {}>;
|
|
260
282
|
};
|
|
261
283
|
|
|
262
284
|
/** @public */
|
|
263
|
-
type PortableSchema<TOutput> = {
|
|
264
|
-
parse: (input:
|
|
285
|
+
type PortableSchema<TOutput, TInput = TOutput> = {
|
|
286
|
+
parse: (input: TInput) => TOutput;
|
|
265
287
|
schema: JsonObject;
|
|
266
288
|
};
|
|
267
289
|
|
|
268
|
-
/**
|
|
269
|
-
|
|
290
|
+
/**
|
|
291
|
+
* @public
|
|
292
|
+
* @deprecated Use the `config.schema` option of `createExtension` instead, or use `createExtensionBlueprint`.
|
|
293
|
+
*/
|
|
294
|
+
declare function createSchemaFromZod<TOutput, TInput>(schemaCreator: (zImpl: typeof z) => ZodSchema<TOutput, ZodTypeDef, TInput>): PortableSchema<TOutput, TInput>;
|
|
270
295
|
|
|
271
296
|
/**
|
|
272
297
|
* Utility type to expand type aliases into their equivalent type.
|
|
@@ -289,32 +314,63 @@ type CoreErrorBoundaryFallbackProps = {
|
|
|
289
314
|
};
|
|
290
315
|
|
|
291
316
|
/** @public */
|
|
292
|
-
interface ExtensionInput<TExtensionData extends
|
|
317
|
+
interface ExtensionInput<TExtensionData extends ExtensionDataRef<unknown, string, {
|
|
318
|
+
optional?: true;
|
|
319
|
+
}>, TConfig extends {
|
|
320
|
+
singleton: boolean;
|
|
321
|
+
optional: boolean;
|
|
322
|
+
}> {
|
|
323
|
+
$$type: '@backstage/ExtensionInput';
|
|
324
|
+
extensionData: Array<TExtensionData>;
|
|
325
|
+
config: TConfig;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* @public
|
|
329
|
+
* @deprecated This type will be removed. Use `ExtensionInput` instead.
|
|
330
|
+
*/
|
|
331
|
+
interface LegacyExtensionInput<TExtensionDataMap extends AnyExtensionDataMap, TConfig extends {
|
|
293
332
|
singleton: boolean;
|
|
294
333
|
optional: boolean;
|
|
295
334
|
}> {
|
|
296
335
|
$$type: '@backstage/ExtensionInput';
|
|
297
|
-
extensionData:
|
|
336
|
+
extensionData: TExtensionDataMap;
|
|
298
337
|
config: TConfig;
|
|
299
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* @public
|
|
341
|
+
* @deprecated Use the following form instead: `createExtensionInput([dataRef1, dataRef2])`
|
|
342
|
+
*/
|
|
343
|
+
declare function createExtensionInput<TExtensionDataMap extends AnyExtensionDataMap, TConfig extends {
|
|
344
|
+
singleton?: boolean;
|
|
345
|
+
optional?: boolean;
|
|
346
|
+
}>(extensionData: TExtensionDataMap, config?: TConfig): LegacyExtensionInput<TExtensionDataMap, {
|
|
347
|
+
singleton: TConfig['singleton'] extends true ? true : false;
|
|
348
|
+
optional: TConfig['optional'] extends true ? true : false;
|
|
349
|
+
}>;
|
|
300
350
|
/** @public */
|
|
301
|
-
declare function createExtensionInput<
|
|
351
|
+
declare function createExtensionInput<UExtensionData extends ExtensionDataRef<unknown, string, {
|
|
352
|
+
optional?: true;
|
|
353
|
+
}>, TConfig extends {
|
|
302
354
|
singleton?: boolean;
|
|
303
355
|
optional?: boolean;
|
|
304
|
-
}>(extensionData:
|
|
356
|
+
}>(extensionData: Array<UExtensionData>, config?: TConfig): ExtensionInput<UExtensionData, {
|
|
305
357
|
singleton: TConfig['singleton'] extends true ? true : false;
|
|
306
358
|
optional: TConfig['optional'] extends true ? true : false;
|
|
307
359
|
}>;
|
|
308
360
|
|
|
309
|
-
/**
|
|
361
|
+
/**
|
|
362
|
+
* @public
|
|
363
|
+
* @deprecated Extension data maps will be removed.
|
|
364
|
+
*/
|
|
310
365
|
type AnyExtensionDataMap = {
|
|
311
|
-
[name in string]:
|
|
312
|
-
optional?: true;
|
|
313
|
-
}>;
|
|
366
|
+
[name in string]: AnyExtensionDataRef;
|
|
314
367
|
};
|
|
315
|
-
/**
|
|
368
|
+
/**
|
|
369
|
+
* @public
|
|
370
|
+
* @deprecated This type will be removed.
|
|
371
|
+
*/
|
|
316
372
|
type AnyExtensionInputMap = {
|
|
317
|
-
[inputName in string]:
|
|
373
|
+
[inputName in string]: LegacyExtensionInput<AnyExtensionDataMap, {
|
|
318
374
|
optional: boolean;
|
|
319
375
|
singleton: boolean;
|
|
320
376
|
}>;
|
|
@@ -322,6 +378,7 @@ type AnyExtensionInputMap = {
|
|
|
322
378
|
/**
|
|
323
379
|
* Converts an extension data map into the matching concrete data values type.
|
|
324
380
|
* @public
|
|
381
|
+
* @deprecated Extension data maps will be removed.
|
|
325
382
|
*/
|
|
326
383
|
type ExtensionDataValues<TExtensionData extends AnyExtensionDataMap> = {
|
|
327
384
|
[DataName in keyof TExtensionData as TExtensionData[DataName]['config'] extends {
|
|
@@ -332,25 +389,36 @@ type ExtensionDataValues<TExtensionData extends AnyExtensionDataMap> = {
|
|
|
332
389
|
optional: true;
|
|
333
390
|
} ? DataName : never]?: TExtensionData[DataName]['T'];
|
|
334
391
|
};
|
|
392
|
+
/** @public */
|
|
393
|
+
type ExtensionDataContainer<UExtensionData extends AnyExtensionDataRef> = {
|
|
394
|
+
get<TId extends UExtensionData['id']>(ref: ExtensionDataRef<any, TId, any>): UExtensionData extends ExtensionDataRef<infer IData, TId, infer IConfig> ? IConfig['optional'] extends true ? IData | undefined : IData : never;
|
|
395
|
+
};
|
|
335
396
|
/**
|
|
336
397
|
* Convert a single extension input into a matching resolved input.
|
|
337
398
|
* @public
|
|
338
399
|
*/
|
|
339
|
-
type ResolvedExtensionInput<
|
|
400
|
+
type ResolvedExtensionInput<TExtensionInput extends ExtensionInput<any, any>> = TExtensionInput['extensionData'] extends Array<AnyExtensionDataRef> ? {
|
|
340
401
|
node: AppNode;
|
|
341
|
-
|
|
342
|
-
|
|
402
|
+
} & ExtensionDataContainer<TExtensionInput['extensionData'][number]> : TExtensionInput['extensionData'] extends AnyExtensionDataMap ? {
|
|
403
|
+
node: AppNode;
|
|
404
|
+
output: ExtensionDataValues<TExtensionInput['extensionData']>;
|
|
405
|
+
} : never;
|
|
343
406
|
/**
|
|
344
407
|
* Converts an extension input map into a matching collection of resolved inputs.
|
|
345
408
|
* @public
|
|
346
409
|
*/
|
|
347
410
|
type ResolvedExtensionInputs<TInputs extends {
|
|
348
|
-
[name in string]: ExtensionInput<any, any>;
|
|
411
|
+
[name in string]: ExtensionInput<any, any> | LegacyExtensionInput<any, any>;
|
|
349
412
|
}> = {
|
|
350
|
-
[InputName in keyof TInputs]: false extends TInputs[InputName]['config']['singleton'] ? Array<Expand<ResolvedExtensionInput<TInputs[InputName]
|
|
413
|
+
[InputName in keyof TInputs]: false extends TInputs[InputName]['config']['singleton'] ? Array<Expand<ResolvedExtensionInput<TInputs[InputName]>>> : false extends TInputs[InputName]['config']['optional'] ? Expand<ResolvedExtensionInput<TInputs[InputName]>> : Expand<ResolvedExtensionInput<TInputs[InputName]> | undefined>;
|
|
351
414
|
};
|
|
352
|
-
/**
|
|
353
|
-
|
|
415
|
+
/**
|
|
416
|
+
* @public
|
|
417
|
+
* @deprecated This way of structuring the options is deprecated, this type will be removed in the future
|
|
418
|
+
*/
|
|
419
|
+
interface LegacyCreateExtensionOptions<TOutput extends AnyExtensionDataMap, TInputs extends AnyExtensionInputMap, TConfig, TConfigInput, TConfigSchema extends {
|
|
420
|
+
[key: string]: (zImpl: typeof z) => z.ZodType;
|
|
421
|
+
}> {
|
|
354
422
|
kind?: string;
|
|
355
423
|
namespace?: string;
|
|
356
424
|
name?: string;
|
|
@@ -361,15 +429,57 @@ interface CreateExtensionOptions<TOutput extends AnyExtensionDataMap, TInputs ex
|
|
|
361
429
|
disabled?: boolean;
|
|
362
430
|
inputs?: TInputs;
|
|
363
431
|
output: TOutput;
|
|
364
|
-
|
|
365
|
-
|
|
432
|
+
/** @deprecated - use `config.schema` instead */
|
|
433
|
+
configSchema?: PortableSchema<TConfig, TConfigInput>;
|
|
434
|
+
config?: {
|
|
435
|
+
schema: TConfigSchema;
|
|
436
|
+
};
|
|
437
|
+
factory(context: {
|
|
366
438
|
node: AppNode;
|
|
367
|
-
config: TConfig
|
|
439
|
+
config: TConfig & (string extends keyof TConfigSchema ? {} : {
|
|
440
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
441
|
+
});
|
|
368
442
|
inputs: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
369
443
|
}): Expand<ExtensionDataValues<TOutput>>;
|
|
370
444
|
}
|
|
445
|
+
/** @ignore */
|
|
446
|
+
type VerifyExtensionFactoryOutput<UDeclaredOutput extends AnyExtensionDataRef, UFactoryOutput extends ExtensionDataValue<any, any>> = (UDeclaredOutput extends any ? UDeclaredOutput['config']['optional'] extends true ? never : UDeclaredOutput['id'] : never) extends infer IRequiredOutputIds ? [IRequiredOutputIds] extends [UFactoryOutput['id']] ? {} : {
|
|
447
|
+
'Error: The extension factory is missing the following outputs': Exclude<IRequiredOutputIds, UFactoryOutput['id']>;
|
|
448
|
+
} : never;
|
|
449
|
+
/** @public */
|
|
450
|
+
type CreateExtensionOptions<UOutput extends AnyExtensionDataRef, TInputs extends {
|
|
451
|
+
[inputName in string]: ExtensionInput<AnyExtensionDataRef, {
|
|
452
|
+
optional: boolean;
|
|
453
|
+
singleton: boolean;
|
|
454
|
+
}>;
|
|
455
|
+
}, TConfig, TConfigInput, TConfigSchema extends {
|
|
456
|
+
[key: string]: (zImpl: typeof z) => z.ZodType;
|
|
457
|
+
}, UFactoryOutput extends ExtensionDataValue<any, any>> = {
|
|
458
|
+
kind?: string;
|
|
459
|
+
namespace?: string;
|
|
460
|
+
name?: string;
|
|
461
|
+
attachTo: {
|
|
462
|
+
id: string;
|
|
463
|
+
input: string;
|
|
464
|
+
};
|
|
465
|
+
disabled?: boolean;
|
|
466
|
+
inputs?: TInputs;
|
|
467
|
+
output: Array<UOutput>;
|
|
468
|
+
/** @deprecated - use `config.schema` instead */
|
|
469
|
+
configSchema?: PortableSchema<TConfig, TConfigInput>;
|
|
470
|
+
config?: {
|
|
471
|
+
schema: TConfigSchema;
|
|
472
|
+
};
|
|
473
|
+
factory(context: {
|
|
474
|
+
node: AppNode;
|
|
475
|
+
config: TConfig & (string extends keyof TConfigSchema ? {} : {
|
|
476
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
477
|
+
});
|
|
478
|
+
inputs: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
479
|
+
}): Iterable<UFactoryOutput>;
|
|
480
|
+
} & VerifyExtensionFactoryOutput<UOutput, UFactoryOutput>;
|
|
371
481
|
/** @public */
|
|
372
|
-
interface ExtensionDefinition<TConfig> {
|
|
482
|
+
interface ExtensionDefinition<TConfig, TConfigInput = TConfig> {
|
|
373
483
|
$$type: '@backstage/ExtensionDefinition';
|
|
374
484
|
readonly kind?: string;
|
|
375
485
|
readonly namespace?: string;
|
|
@@ -379,13 +489,35 @@ interface ExtensionDefinition<TConfig> {
|
|
|
379
489
|
input: string;
|
|
380
490
|
};
|
|
381
491
|
readonly disabled: boolean;
|
|
382
|
-
readonly configSchema?: PortableSchema<TConfig>;
|
|
492
|
+
readonly configSchema?: PortableSchema<TConfig, TConfigInput>;
|
|
383
493
|
}
|
|
384
494
|
/** @public */
|
|
385
|
-
declare function createExtension<
|
|
495
|
+
declare function createExtension<UOutput extends AnyExtensionDataRef, TInputs extends {
|
|
496
|
+
[inputName in string]: ExtensionInput<AnyExtensionDataRef, {
|
|
497
|
+
optional: boolean;
|
|
498
|
+
singleton: boolean;
|
|
499
|
+
}>;
|
|
500
|
+
}, TConfig, TConfigInput, TConfigSchema extends {
|
|
501
|
+
[key: string]: (zImpl: typeof z) => z.ZodType;
|
|
502
|
+
}, UFactoryOutput extends ExtensionDataValue<any, any>>(options: CreateExtensionOptions<UOutput, TInputs, TConfig, TConfigInput, TConfigSchema, UFactoryOutput>): ExtensionDefinition<TConfig & (string extends keyof TConfigSchema ? {} : {
|
|
503
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
504
|
+
}), TConfigInput & (string extends keyof TConfigSchema ? {} : z.input<z.ZodObject<{
|
|
505
|
+
[key in keyof TConfigSchema]: ReturnType<TConfigSchema[key]>;
|
|
506
|
+
}>>)>;
|
|
507
|
+
/**
|
|
508
|
+
* @public
|
|
509
|
+
* @deprecated - use the array format of `output` instead, see TODO-doc-link
|
|
510
|
+
*/
|
|
511
|
+
declare function createExtension<TOutput extends AnyExtensionDataMap, TInputs extends AnyExtensionInputMap, TConfig, TConfigInput, TConfigSchema extends {
|
|
512
|
+
[key: string]: (zImpl: typeof z) => z.ZodType;
|
|
513
|
+
}>(options: LegacyCreateExtensionOptions<TOutput, TInputs, TConfig, TConfigInput, TConfigSchema>): ExtensionDefinition<TConfig & (string extends keyof TConfigSchema ? {} : {
|
|
514
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
515
|
+
}), TConfigInput & (string extends keyof TConfigSchema ? {} : z.input<z.ZodObject<{
|
|
516
|
+
[key in keyof TConfigSchema]: ReturnType<TConfigSchema[key]>;
|
|
517
|
+
}>>)>;
|
|
386
518
|
|
|
387
519
|
/** @public */
|
|
388
|
-
interface Extension<TConfig> {
|
|
520
|
+
interface Extension<TConfig, TConfigInput = TConfig> {
|
|
389
521
|
$$type: '@backstage/Extension';
|
|
390
522
|
readonly id: string;
|
|
391
523
|
readonly attachTo: {
|
|
@@ -393,7 +525,7 @@ interface Extension<TConfig> {
|
|
|
393
525
|
input: string;
|
|
394
526
|
};
|
|
395
527
|
readonly disabled: boolean;
|
|
396
|
-
readonly configSchema?: PortableSchema<TConfig>;
|
|
528
|
+
readonly configSchema?: PortableSchema<TConfig, TConfigInput>;
|
|
397
529
|
}
|
|
398
530
|
|
|
399
531
|
/**
|
|
@@ -432,7 +564,7 @@ interface PluginOptions<Routes extends AnyRoutes, ExternalRoutes extends AnyExte
|
|
|
432
564
|
id: string;
|
|
433
565
|
routes?: Routes;
|
|
434
566
|
externalRoutes?: ExternalRoutes;
|
|
435
|
-
extensions?: ExtensionDefinition<
|
|
567
|
+
extensions?: ExtensionDefinition<any, any>[];
|
|
436
568
|
featureFlags?: FeatureFlagConfig[];
|
|
437
569
|
}
|
|
438
570
|
/** @public */
|
|
@@ -440,12 +572,125 @@ declare function createPlugin<Routes extends AnyRoutes = {}, ExternalRoutes exte
|
|
|
440
572
|
|
|
441
573
|
/** @public */
|
|
442
574
|
interface ExtensionOverridesOptions {
|
|
443
|
-
extensions: ExtensionDefinition<
|
|
575
|
+
extensions: ExtensionDefinition<any, any>[];
|
|
444
576
|
featureFlags?: FeatureFlagConfig[];
|
|
445
577
|
}
|
|
446
578
|
/** @public */
|
|
447
579
|
declare function createExtensionOverrides(options: ExtensionOverridesOptions): ExtensionOverrides;
|
|
448
580
|
|
|
581
|
+
/**
|
|
582
|
+
* @public
|
|
583
|
+
*/
|
|
584
|
+
type CreateExtensionBlueprintOptions<TParams, UOutput extends AnyExtensionDataRef, TInputs extends {
|
|
585
|
+
[inputName in string]: ExtensionInput<AnyExtensionDataRef, {
|
|
586
|
+
optional: boolean;
|
|
587
|
+
singleton: boolean;
|
|
588
|
+
}>;
|
|
589
|
+
}, TConfigSchema extends {
|
|
590
|
+
[key in string]: (zImpl: typeof z) => z.ZodType;
|
|
591
|
+
}, UFactoryOutput extends ExtensionDataValue<any, any>, TDataRefs extends {
|
|
592
|
+
[name in string]: AnyExtensionDataRef;
|
|
593
|
+
}> = {
|
|
594
|
+
kind: string;
|
|
595
|
+
namespace?: string;
|
|
596
|
+
attachTo: {
|
|
597
|
+
id: string;
|
|
598
|
+
input: string;
|
|
599
|
+
};
|
|
600
|
+
disabled?: boolean;
|
|
601
|
+
inputs?: TInputs;
|
|
602
|
+
output: Array<UOutput>;
|
|
603
|
+
config?: {
|
|
604
|
+
schema: TConfigSchema;
|
|
605
|
+
};
|
|
606
|
+
factory(params: TParams, context: {
|
|
607
|
+
node: AppNode;
|
|
608
|
+
config: {
|
|
609
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
610
|
+
};
|
|
611
|
+
inputs: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
612
|
+
}): Iterable<UFactoryOutput>;
|
|
613
|
+
dataRefs?: TDataRefs;
|
|
614
|
+
} & VerifyExtensionFactoryOutput<UOutput, UFactoryOutput>;
|
|
615
|
+
/**
|
|
616
|
+
* @public
|
|
617
|
+
*/
|
|
618
|
+
interface ExtensionBlueprint<TParams, UOutput extends AnyExtensionDataRef, TInputs extends {
|
|
619
|
+
[inputName in string]: ExtensionInput<AnyExtensionDataRef, {
|
|
620
|
+
optional: boolean;
|
|
621
|
+
singleton: boolean;
|
|
622
|
+
}>;
|
|
623
|
+
}, UExtraOutput extends AnyExtensionDataRef, TConfig extends {
|
|
624
|
+
[key in string]: unknown;
|
|
625
|
+
}, TConfigInput extends {
|
|
626
|
+
[key in string]: unknown;
|
|
627
|
+
}, TDataRefs extends {
|
|
628
|
+
[name in string]: AnyExtensionDataRef;
|
|
629
|
+
}> {
|
|
630
|
+
dataRefs: TDataRefs;
|
|
631
|
+
/**
|
|
632
|
+
* Creates a new extension from the blueprint.
|
|
633
|
+
*
|
|
634
|
+
* You must either pass `params` directly, or define a `factory` that can
|
|
635
|
+
* optionally call the original factory with the same params.
|
|
636
|
+
*/
|
|
637
|
+
make<TExtensionConfigSchema extends {
|
|
638
|
+
[key in string]: (zImpl: typeof z) => z.ZodType;
|
|
639
|
+
}, UFactoryOutput extends ExtensionDataValue<any, any>>(args: {
|
|
640
|
+
namespace?: string;
|
|
641
|
+
name?: string;
|
|
642
|
+
attachTo?: {
|
|
643
|
+
id: string;
|
|
644
|
+
input: string;
|
|
645
|
+
};
|
|
646
|
+
disabled?: boolean;
|
|
647
|
+
inputs?: TInputs;
|
|
648
|
+
output?: Array<UExtraOutput>;
|
|
649
|
+
config?: {
|
|
650
|
+
schema: TExtensionConfigSchema & {
|
|
651
|
+
[KName in keyof TConfig]?: `Error: Config key '${KName & string}' is already defined in parent schema`;
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
} & (({
|
|
655
|
+
factory(originalFactory: (params: TParams, context?: {
|
|
656
|
+
config?: TConfig;
|
|
657
|
+
inputs?: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
658
|
+
}) => Iterable<ExtensionDataRefToValue<UOutput>>, context: {
|
|
659
|
+
node: AppNode;
|
|
660
|
+
config: TConfig & {
|
|
661
|
+
[key in keyof TExtensionConfigSchema]: z.infer<ReturnType<TExtensionConfigSchema[key]>>;
|
|
662
|
+
};
|
|
663
|
+
inputs: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
664
|
+
}): Iterable<UFactoryOutput>;
|
|
665
|
+
} & VerifyExtensionFactoryOutput<UOutput & UExtraOutput, UFactoryOutput>) | {
|
|
666
|
+
params: TParams;
|
|
667
|
+
})): ExtensionDefinition<{
|
|
668
|
+
[key in keyof TExtensionConfigSchema]: z.infer<ReturnType<TExtensionConfigSchema[key]>>;
|
|
669
|
+
} & TConfig, z.input<z.ZodObject<{
|
|
670
|
+
[key in keyof TExtensionConfigSchema]: ReturnType<TExtensionConfigSchema[key]>;
|
|
671
|
+
}>> & TConfigInput>;
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* A simpler replacement for wrapping up `createExtension` inside a kind or type. This allows for a cleaner API for creating
|
|
675
|
+
* types and instances of those types.
|
|
676
|
+
*
|
|
677
|
+
* @public
|
|
678
|
+
*/
|
|
679
|
+
declare function createExtensionBlueprint<TParams, UOutput extends AnyExtensionDataRef, TInputs extends {
|
|
680
|
+
[inputName in string]: ExtensionInput<AnyExtensionDataRef, {
|
|
681
|
+
optional: boolean;
|
|
682
|
+
singleton: boolean;
|
|
683
|
+
}>;
|
|
684
|
+
}, UExtraOutput extends AnyExtensionDataRef, TConfigSchema extends {
|
|
685
|
+
[key in string]: (zImpl: typeof z) => z.ZodType;
|
|
686
|
+
}, UFactoryOutput extends ExtensionDataValue<any, any>, TDataRefs extends {
|
|
687
|
+
[name in string]: AnyExtensionDataRef;
|
|
688
|
+
} = never>(options: CreateExtensionBlueprintOptions<TParams, UOutput, TInputs, TConfigSchema, UFactoryOutput, TDataRefs>): ExtensionBlueprint<TParams, UOutput, TInputs, UExtraOutput, string extends keyof TConfigSchema ? {} : {
|
|
689
|
+
[key in keyof TConfigSchema]: z.infer<ReturnType<TConfigSchema[key]>>;
|
|
690
|
+
}, string extends keyof TConfigSchema ? {} : z.input<z.ZodObject<{
|
|
691
|
+
[key in keyof TConfigSchema]: ReturnType<TConfigSchema[key]>;
|
|
692
|
+
}>>, TDataRefs>;
|
|
693
|
+
|
|
449
694
|
/**
|
|
450
695
|
* The specification for this {@link AppNode} in the {@link AppTree}.
|
|
451
696
|
*
|
|
@@ -461,7 +706,7 @@ interface AppNodeSpec {
|
|
|
461
706
|
id: string;
|
|
462
707
|
input: string;
|
|
463
708
|
};
|
|
464
|
-
readonly extension: Extension<unknown>;
|
|
709
|
+
readonly extension: Extension<unknown, unknown>;
|
|
465
710
|
readonly disabled: boolean;
|
|
466
711
|
readonly config?: unknown;
|
|
467
712
|
readonly source?: BackstagePlugin;
|
|
@@ -547,6 +792,11 @@ declare const appTreeApiRef: _backstage_core_plugin_api.ApiRef<AppTreeApi>;
|
|
|
547
792
|
/** @public */
|
|
548
793
|
interface ExtensionBoundaryProps {
|
|
549
794
|
node: AppNode;
|
|
795
|
+
/**
|
|
796
|
+
* This explicitly marks the extension as routable for the purpose of
|
|
797
|
+
* capturing analytics events. If not provided, the extension boundary will be
|
|
798
|
+
* marked as routable if it outputs a routePath.
|
|
799
|
+
*/
|
|
550
800
|
routable?: boolean;
|
|
551
801
|
children: ReactNode;
|
|
552
802
|
}
|
|
@@ -783,10 +1033,10 @@ declare function createApiExtension<TConfig extends {}, TInputs extends AnyExten
|
|
|
783
1033
|
}) & {
|
|
784
1034
|
configSchema?: PortableSchema<TConfig>;
|
|
785
1035
|
inputs?: TInputs;
|
|
786
|
-
}): ExtensionDefinition<TConfig>;
|
|
1036
|
+
}): ExtensionDefinition<TConfig & {}, TConfig & {}>;
|
|
787
1037
|
/** @public */
|
|
788
1038
|
declare namespace createApiExtension {
|
|
789
|
-
const factoryDataRef: ConfigurableExtensionDataRef<AnyApiFactory, {}>;
|
|
1039
|
+
const factoryDataRef: ConfigurableExtensionDataRef<AnyApiFactory, "core.api.factory", {}>;
|
|
790
1040
|
}
|
|
791
1041
|
|
|
792
1042
|
/**
|
|
@@ -837,7 +1087,7 @@ declare function createAppRootWrapperExtension<TConfig extends {}, TInputs exten
|
|
|
837
1087
|
declare namespace createAppRootWrapperExtension {
|
|
838
1088
|
const componentDataRef: ConfigurableExtensionDataRef<React.ComponentType<{
|
|
839
1089
|
children?: React.ReactNode;
|
|
840
|
-
}>, {}>;
|
|
1090
|
+
}>, "app.root.wrapper", {}>;
|
|
841
1091
|
}
|
|
842
1092
|
|
|
843
1093
|
/**
|
|
@@ -866,7 +1116,7 @@ declare function createRouterExtension<TConfig extends {}, TInputs extends AnyEx
|
|
|
866
1116
|
declare namespace createRouterExtension {
|
|
867
1117
|
const componentDataRef: ConfigurableExtensionDataRef<React.ComponentType<{
|
|
868
1118
|
children?: React.ReactNode;
|
|
869
|
-
}>, {}>;
|
|
1119
|
+
}>, "app.router.wrapper", {}>;
|
|
870
1120
|
}
|
|
871
1121
|
|
|
872
1122
|
/**
|
|
@@ -908,6 +1158,8 @@ declare function createNavItemExtension(options: {
|
|
|
908
1158
|
icon: IconComponent$1;
|
|
909
1159
|
}): ExtensionDefinition<{
|
|
910
1160
|
title: string;
|
|
1161
|
+
}, {
|
|
1162
|
+
title?: string | undefined;
|
|
911
1163
|
}>;
|
|
912
1164
|
/** @public */
|
|
913
1165
|
declare namespace createNavItemExtension {
|
|
@@ -915,7 +1167,7 @@ declare namespace createNavItemExtension {
|
|
|
915
1167
|
title: string;
|
|
916
1168
|
icon: IconComponent$1;
|
|
917
1169
|
routeRef: RouteRef<undefined>;
|
|
918
|
-
}, {}>;
|
|
1170
|
+
}, "core.nav-item.target", {}>;
|
|
919
1171
|
}
|
|
920
1172
|
|
|
921
1173
|
/**
|
|
@@ -927,13 +1179,13 @@ declare function createNavLogoExtension(options: {
|
|
|
927
1179
|
namespace?: string;
|
|
928
1180
|
logoIcon: JSX.Element;
|
|
929
1181
|
logoFull: JSX.Element;
|
|
930
|
-
}): ExtensionDefinition<
|
|
1182
|
+
}): ExtensionDefinition<{}, {}>;
|
|
931
1183
|
/** @public */
|
|
932
1184
|
declare namespace createNavLogoExtension {
|
|
933
1185
|
const logoElementsDataRef: ConfigurableExtensionDataRef<{
|
|
934
1186
|
logoIcon?: JSX.Element | undefined;
|
|
935
1187
|
logoFull?: JSX.Element | undefined;
|
|
936
|
-
}, {}>;
|
|
1188
|
+
}, "core.nav-logo.logo-elements", {}>;
|
|
937
1189
|
}
|
|
938
1190
|
|
|
939
1191
|
/**
|
|
@@ -957,14 +1209,14 @@ declare function createSignInPageExtension<TConfig extends {}, TInputs extends A
|
|
|
957
1209
|
}): ExtensionDefinition<TConfig>;
|
|
958
1210
|
/** @public */
|
|
959
1211
|
declare namespace createSignInPageExtension {
|
|
960
|
-
const componentDataRef: ConfigurableExtensionDataRef<React.ComponentType<SignInPageProps>, {}>;
|
|
1212
|
+
const componentDataRef: ConfigurableExtensionDataRef<React.ComponentType<SignInPageProps>, "core.sign-in-page.component", {}>;
|
|
961
1213
|
}
|
|
962
1214
|
|
|
963
1215
|
/** @public */
|
|
964
|
-
declare function createThemeExtension(theme: AppTheme): ExtensionDefinition<
|
|
1216
|
+
declare function createThemeExtension(theme: AppTheme): ExtensionDefinition<{}, {}>;
|
|
965
1217
|
/** @public */
|
|
966
1218
|
declare namespace createThemeExtension {
|
|
967
|
-
const themeDataRef: ConfigurableExtensionDataRef<AppTheme, {}>;
|
|
1219
|
+
const themeDataRef: ConfigurableExtensionDataRef<AppTheme, "core.theme.theme", {}>;
|
|
968
1220
|
}
|
|
969
1221
|
|
|
970
1222
|
/** @public */
|
|
@@ -985,25 +1237,49 @@ declare function createComponentExtension<TProps extends {}, TConfig extends {},
|
|
|
985
1237
|
inputs: Expand<ResolvedExtensionInputs<TInputs>>;
|
|
986
1238
|
}) => ComponentType<TProps>;
|
|
987
1239
|
};
|
|
988
|
-
}): ExtensionDefinition<TConfig>;
|
|
1240
|
+
}): ExtensionDefinition<TConfig & {}, TConfig & {}>;
|
|
989
1241
|
/** @public */
|
|
990
1242
|
declare namespace createComponentExtension {
|
|
991
1243
|
const componentDataRef: ConfigurableExtensionDataRef<{
|
|
992
1244
|
ref: ComponentRef;
|
|
993
1245
|
impl: ComponentType;
|
|
994
|
-
}, {}>;
|
|
1246
|
+
}, "core.component.component", {}>;
|
|
995
1247
|
}
|
|
996
1248
|
|
|
997
1249
|
/** @public */
|
|
998
1250
|
declare function createTranslationExtension(options: {
|
|
999
1251
|
name?: string;
|
|
1000
1252
|
resource: TranslationResource | TranslationMessages;
|
|
1001
|
-
}): ExtensionDefinition<
|
|
1253
|
+
}): ExtensionDefinition<{}, {}>;
|
|
1002
1254
|
/** @public */
|
|
1003
1255
|
declare namespace createTranslationExtension {
|
|
1004
1256
|
const translationDataRef: ConfigurableExtensionDataRef<TranslationResource<string> | TranslationMessages<string, {
|
|
1005
1257
|
[x: string]: string;
|
|
1006
|
-
}, boolean>, {}>;
|
|
1258
|
+
}, boolean>, "core.translation.translation", {}>;
|
|
1007
1259
|
}
|
|
1008
1260
|
|
|
1009
|
-
|
|
1261
|
+
/** @public */
|
|
1262
|
+
declare const IconBundleBlueprint: ExtensionBlueprint<{
|
|
1263
|
+
icons: {
|
|
1264
|
+
[x: string]: IconComponent;
|
|
1265
|
+
};
|
|
1266
|
+
}, ConfigurableExtensionDataRef<{
|
|
1267
|
+
[x: string]: IconComponent;
|
|
1268
|
+
}, "core.icons", {}>, {
|
|
1269
|
+
[x: string]: ExtensionInput<AnyExtensionDataRef, {
|
|
1270
|
+
optional: boolean;
|
|
1271
|
+
singleton: boolean;
|
|
1272
|
+
}>;
|
|
1273
|
+
}, AnyExtensionDataRef, {
|
|
1274
|
+
icons: string;
|
|
1275
|
+
test: string;
|
|
1276
|
+
}, {
|
|
1277
|
+
test: string;
|
|
1278
|
+
icons?: string | undefined;
|
|
1279
|
+
}, {
|
|
1280
|
+
icons: ConfigurableExtensionDataRef<{
|
|
1281
|
+
[x: string]: IconComponent;
|
|
1282
|
+
}, "core.icons", {}>;
|
|
1283
|
+
}>;
|
|
1284
|
+
|
|
1285
|
+
export { type AnalyticsApi, AnalyticsContext, type AnalyticsContextValue, type AnalyticsEvent, type AnalyticsEventAttributes, type AnalyticsTracker, type AnyExtensionDataMap, type AnyExtensionDataRef, type AnyExtensionInputMap, type AnyExternalRoutes, type AnyRouteRefParams, type AnyRoutes, type AppNode, type AppNodeEdges, type AppNodeInstance, type AppNodeSpec, type AppTree, type AppTreeApi, type BackstagePlugin, type CommonAnalyticsContext, type ComponentRef, type ComponentsApi, type ConfigurableExtensionDataRef, type CoreErrorBoundaryFallbackProps, type CoreNotFoundErrorPageProps, type CoreProgressProps, type CreateExtensionBlueprintOptions, type CreateExtensionOptions, type Extension, type ExtensionBlueprint, ExtensionBoundary, type ExtensionBoundaryProps, type ExtensionDataContainer, type ExtensionDataRef, type ExtensionDataRefToValue, type ExtensionDataValue, type ExtensionDataValues, type ExtensionDefinition, type ExtensionInput, type ExtensionOverrides, type ExtensionOverridesOptions, type ExternalRouteRef, type FeatureFlagConfig, type FrontendFeature, IconBundleBlueprint, type IconComponent, type IconsApi, type LegacyCreateExtensionOptions, type LegacyExtensionInput, type PluginOptions, type PortableSchema, type ResolvedExtensionInput, type ResolvedExtensionInputs, type RouteFunc, type RouteRef, type RouteResolutionApi, type RouteResolutionApiResolveOptions, type SubRouteRef, analyticsApiRef, appTreeApiRef, componentsApiRef, coreComponentRefs, coreExtensionData, createApiExtension, createAppRootElementExtension, createAppRootWrapperExtension, createComponentExtension, createComponentRef, createExtension, createExtensionBlueprint, createExtensionDataRef, createExtensionInput, createExtensionOverrides, createExternalRouteRef, createNavItemExtension, createNavLogoExtension, createPageExtension, createPlugin, createRouteRef, createRouterExtension, createSchemaFromZod, createSignInPageExtension, createSubRouteRef, createThemeExtension, createTranslationExtension, iconsApiRef, routeResolutionApiRef, useAnalytics, useComponentRef, useRouteRef, useRouteRefParams };
|
package/dist/index.esm.js
CHANGED
|
@@ -20,6 +20,7 @@ export { createSignInPageExtension } from './extensions/createSignInPageExtensio
|
|
|
20
20
|
export { createThemeExtension } from './extensions/createThemeExtension.esm.js';
|
|
21
21
|
export { createComponentExtension } from './extensions/createComponentExtension.esm.js';
|
|
22
22
|
export { createTranslationExtension } from './extensions/createTranslationExtension.esm.js';
|
|
23
|
+
export { IconBundleBlueprint } from './extensions/IconBundleBlueprint.esm.js';
|
|
23
24
|
export { createRouteRef } from './routing/RouteRef.esm.js';
|
|
24
25
|
export { createSubRouteRef } from './routing/SubRouteRef.esm.js';
|
|
25
26
|
export { createExternalRouteRef } from './routing/ExternalRouteRef.esm.js';
|
|
@@ -33,4 +34,5 @@ export { createExtensionInput } from './wiring/createExtensionInput.esm.js';
|
|
|
33
34
|
export { createExtensionDataRef } from './wiring/createExtensionDataRef.esm.js';
|
|
34
35
|
export { createPlugin } from './wiring/createPlugin.esm.js';
|
|
35
36
|
export { createExtensionOverrides } from './wiring/createExtensionOverrides.esm.js';
|
|
37
|
+
export { createExtensionBlueprint } from './wiring/createExtensionBlueprint.esm.js';
|
|
36
38
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|