@backstage/core-app-api 0.1.20 → 0.1.24

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 CHANGED
@@ -1,5 +1,121 @@
1
1
  # @backstage/core-app-api
2
2
 
3
+ ## 0.1.24
4
+
5
+ ### Patch Changes
6
+
7
+ - 0e7f256034: Fixed a bug where `useRouteRef` would fail in situations where relative navigation was needed and the app was is mounted on a sub-path. This would typically show up as a failure to navigate to a tab on an entity page.
8
+ - Updated dependencies
9
+ - @backstage/core-components@0.7.6
10
+ - @backstage/theme@0.2.14
11
+ - @backstage/core-plugin-api@0.2.2
12
+
13
+ ## 0.1.23
14
+
15
+ ### Patch Changes
16
+
17
+ - bab752e2b3: Change default port of backend from 7000 to 7007.
18
+
19
+ This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
20
+
21
+ You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
22
+
23
+ ```
24
+ backend:
25
+ listen: 0.0.0.0:7123
26
+ baseUrl: http://localhost:7123
27
+ ```
28
+
29
+ More information can be found here: https://backstage.io/docs/conf/writing
30
+
31
+ - 000190de69: The `ApiRegistry` from `@backstage/core-app-api` class has been deprecated and will be removed in a future release. To replace it, we have introduced two new helpers that are exported from `@backstage/test-utils`, namely `TestApiProvider` and `TestApiRegistry`.
32
+
33
+ These two new helpers are more tailored for writing tests and development setups, as they allow for partial implementations of each of the APIs.
34
+
35
+ When migrating existing code it is typically best to prefer usage of `TestApiProvider` when possible, so for example the following code:
36
+
37
+ ```tsx
38
+ render(
39
+ <ApiProvider
40
+ apis={ApiRegistry.from([
41
+ [identityApiRef, mockIdentityApi as unknown as IdentityApi]
42
+ ])}
43
+ >
44
+ {...}
45
+ </ApiProvider>
46
+ )
47
+ ```
48
+
49
+ Would be migrated to this:
50
+
51
+ ```tsx
52
+ render(
53
+ <TestApiProvider apis={[[identityApiRef, mockIdentityApi]]}>
54
+ {...}
55
+ </TestApiProvider>
56
+ )
57
+ ```
58
+
59
+ In cases where the `ApiProvider` is used in a more standalone way, for example to reuse a set of APIs across multiple tests, the `TestApiRegistry` can be used instead. Note that the `TestApiRegistry` only has a single static factory method, `.from()`, and it is slightly different from the existing `.from()` method on `ApiRegistry` in that it doesn't require the API pairs to be wrapped in an outer array.
60
+
61
+ Usage that looks like this:
62
+
63
+ ```ts
64
+ const apis = ApiRegistry.with(
65
+ identityApiRef,
66
+ mockIdentityApi as unknown as IdentityApi,
67
+ ).with(configApiRef, new ConfigReader({}));
68
+ ```
69
+
70
+ OR like this:
71
+
72
+ ```ts
73
+ const apis = ApiRegistry.from([
74
+ [identityApiRef, mockIdentityApi as unknown as IdentityApi],
75
+ [configApiRef, new ConfigReader({})],
76
+ ]);
77
+ ```
78
+
79
+ Would be migrated to this:
80
+
81
+ ```ts
82
+ const apis = TestApiRegistry.from(
83
+ [identityApiRef, mockIdentityApi],
84
+ [configApiRef, new ConfigReader({})],
85
+ );
86
+ ```
87
+
88
+ If your app is still using the `ApiRegistry` to construct the `apis` for `createApp`, we recommend that you move over to use the new method of supplying API factories instead, using `createApiFactory`.
89
+
90
+ - Updated dependencies
91
+ - @backstage/core-plugin-api@0.2.1
92
+ - @backstage/core-components@0.7.5
93
+
94
+ ## 0.1.22
95
+
96
+ ### Patch Changes
97
+
98
+ - Reverted the `createApp` TypeScript type to match the one before version `0.1.21`, as it was an accidental breaking change.
99
+
100
+ ## 0.1.21
101
+
102
+ ### Patch Changes
103
+
104
+ - 0b1de52732: Migrated to using new `ErrorApiError` and `ErrorApiErrorContext` names.
105
+ - ecd1fcb80a: Deprecated the `BackstagePluginWithAnyOutput` type.
106
+ - 32bfbafb0f: Start exporting and marking several types as public to address errors in the API report.
107
+ - 014cbf8cb9: The `createApp` function from `@backstage/core-app-api` has been deprecated, with two new options being provided as a replacement.
108
+
109
+ The first and most commonly used one is `createApp` from the new `@backstage/app-defaults` package, which behaves just like the existing `createApp`. In the future this method is likely to be expanded to add more APIs and other pieces into the default setup, for example the Utility APIs from `@backstage/integration-react`.
110
+
111
+ The other option that we now provide is to use `createSpecializedApp` from `@backstage/core-app-api`. This is a more low-level API where you need to provide a full set of options, including your own `components`, `icons`, `defaultApis`, and `themes`. The `createSpecializedApp` way of creating an app is particularly useful if you are not using `@backstage/core-components` or MUI, as it allows you to avoid those dependencies completely.
112
+
113
+ - 475edb5bc5: move the BehaviorSubject init into the constructor
114
+ - Updated dependencies
115
+ - @backstage/core-components@0.7.4
116
+ - @backstage/core-plugin-api@0.2.0
117
+ - @backstage/app-defaults@0.1.1
118
+
3
119
  ## 0.1.20
4
120
 
5
121
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
- import { PropsWithChildren, ReactNode, ComponentType } from 'react';
1
+ import { ReactNode, PropsWithChildren, ComponentType } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
4
- import { ApiHolder, ApiRef, ApiFactory, AnyApiRef, ProfileInfo, BackstageIdentity, SessionState, OAuthRequestApi, DiscoveryApi, AuthProvider, OAuthApi, SessionApi, AuthRequestOptions, gitlabAuthApiRef, googleAuthApiRef, OpenIdConnectApi, ProfileInfoApi, BackstageIdentityApi, oktaAuthApiRef, auth0AuthApiRef, microsoftAuthApiRef, oneloginAuthApiRef, bitbucketAuthApiRef, atlassianAuthApiRef, AlertApi, AlertMessage, AnalyticsApi, AnalyticsEvent, AppThemeApi, AppTheme, ErrorApi, ErrorContext, FeatureFlagsApi, FeatureFlag, FeatureFlagsSaveOptions, AuthRequesterOptions, AuthRequester, PendingAuthRequest, StorageApi, StorageValueChange, IconComponent, BackstagePlugin, ExternalRouteRef, PluginOutput, AnyApiFactory, RouteRef, SubRouteRef } from '@backstage/core-plugin-api';
3
+ import { ApiHolder, ApiRef, ApiFactory, AnyApiRef, ProfileInfo, BackstageIdentity, SessionState, OAuthRequestApi, DiscoveryApi, AuthProvider, OAuthApi, SessionApi, AuthRequestOptions, gitlabAuthApiRef, googleAuthApiRef, OpenIdConnectApi, ProfileInfoApi, BackstageIdentityApi, oktaAuthApiRef, auth0AuthApiRef, microsoftAuthApiRef, oneloginAuthApiRef, bitbucketAuthApiRef, atlassianAuthApiRef, AlertApi, AlertMessage, AnalyticsApi, AnalyticsEvent, AppThemeApi, AppTheme, ErrorApi, ErrorApiError, ErrorApiErrorContext, FeatureFlagsApi, FeatureFlag, FeatureFlagsSaveOptions, AuthRequesterOptions, AuthRequester, PendingAuthRequest, StorageApi, StorageValueChange, BackstagePlugin, IconComponent, ExternalRouteRef, PluginOutput, AnyApiFactory, RouteRef, SubRouteRef } from '@backstage/core-plugin-api';
5
4
  import * as _backstage_types from '@backstage/types';
6
5
  import { Observable } from '@backstage/types';
7
6
  import { AppConfig } from '@backstage/config';
8
7
  export { ConfigReader } from '@backstage/config';
8
+ import { createApp as createApp$1 } from '@backstage/app-defaults';
9
9
 
10
+ /**
11
+ * Prop types for the ApiProvider component.
12
+ * @public
13
+ */
10
14
  declare type ApiProviderProps = {
11
15
  apis: ApiHolder;
12
16
  children: ReactNode;
@@ -37,6 +41,7 @@ declare class ApiRegistryBuilder {
37
41
  * A registry for utility APIs.
38
42
  *
39
43
  * @public
44
+ * @deprecated Will be removed, use {@link @backstage/test-utils#TestApiProvider} or {@link @backstage/test-utils#TestApiRegistry} instead.
40
45
  */
41
46
  declare class ApiRegistry implements ApiHolder {
42
47
  private readonly apis;
@@ -94,6 +99,10 @@ declare class ApiResolver implements ApiHolder {
94
99
  private loadDeps;
95
100
  }
96
101
 
102
+ /**
103
+ * Scope type when registering API factories.
104
+ * @public
105
+ */
97
106
  declare type ApiFactoryScope = 'default' | 'app' | 'static';
98
107
  /**
99
108
  * ApiFactoryRegistry is an ApiFactoryHolder implementation that enables
@@ -153,10 +162,18 @@ declare type SessionManager<T> = {
153
162
  sessionState$(): Observable<SessionState>;
154
163
  };
155
164
 
165
+ /**
166
+ * Create options for OAuth APIs.
167
+ * @public
168
+ */
156
169
  declare type OAuthApiCreateOptions = AuthApiCreateOptions & {
157
170
  oauthRequestApi: OAuthRequestApi;
158
171
  defaultScopes?: string[];
159
172
  };
173
+ /**
174
+ * Generic create options for auth APIs.
175
+ * @public
176
+ */
160
177
  declare type AuthApiCreateOptions = {
161
178
  discoveryApi: DiscoveryApi;
162
179
  environment?: string;
@@ -173,6 +190,9 @@ declare type AuthApiCreateOptions = {
173
190
  declare class GithubAuth implements OAuthApi, SessionApi {
174
191
  private readonly sessionManager;
175
192
  static create({ discoveryApi, environment, provider, oauthRequestApi, defaultScopes, }: OAuthApiCreateOptions): GithubAuth;
193
+ /**
194
+ * @deprecated will be made private in the future. Use create method instead.
195
+ */
176
196
  constructor(sessionManager: SessionManager<GithubSession>);
177
197
  signIn(): Promise<void>;
178
198
  signOut(): Promise<void>;
@@ -217,7 +237,11 @@ declare type OAuth2Session = {
217
237
  backstageIdentity: BackstageIdentity;
218
238
  };
219
239
 
220
- declare type CreateOptions$1 = OAuthApiCreateOptions & {
240
+ /**
241
+ * OAuth2 create options.
242
+ * @public
243
+ */
244
+ declare type OAuth2CreateOptions = OAuthApiCreateOptions & {
221
245
  scopeTransform?: (scopes: string[]) => string[];
222
246
  };
223
247
  /**
@@ -226,9 +250,12 @@ declare type CreateOptions$1 = OAuthApiCreateOptions & {
226
250
  * @public
227
251
  */
228
252
  declare class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, BackstageIdentityApi, SessionApi {
229
- static create({ discoveryApi, environment, provider, oauthRequestApi, defaultScopes, scopeTransform, }: CreateOptions$1): OAuth2;
253
+ static create({ discoveryApi, environment, provider, oauthRequestApi, defaultScopes, scopeTransform, }: OAuth2CreateOptions): OAuth2;
230
254
  private readonly sessionManager;
231
255
  private readonly scopeTransform;
256
+ /**
257
+ * @deprecated will be made private in the future. Use create method instead.
258
+ */
232
259
  constructor(options: {
233
260
  sessionManager: SessionManager<OAuth2Session>;
234
261
  scopeTransform: (scopes: string[]) => string[];
@@ -272,6 +299,9 @@ declare class SamlAuth implements ProfileInfoApi, BackstageIdentityApi, SessionA
272
299
  private readonly sessionManager;
273
300
  static create({ discoveryApi, environment, provider, }: AuthApiCreateOptions): SamlAuth;
274
301
  sessionState$(): Observable<SessionState>;
302
+ /**
303
+ * @deprecated will be made private in the future. Use create method instead.
304
+ */
275
305
  constructor(sessionManager: SessionManager<SamlSession>);
276
306
  signIn(): Promise<void>;
277
307
  signOut(): Promise<void>;
@@ -297,7 +327,11 @@ declare class MicrosoftAuth {
297
327
  static create({ environment, provider, oauthRequestApi, discoveryApi, defaultScopes, }: OAuthApiCreateOptions): typeof microsoftAuthApiRef.T;
298
328
  }
299
329
 
300
- declare type CreateOptions = {
330
+ /**
331
+ * OneLogin auth provider create options.
332
+ * @public
333
+ */
334
+ declare type OneLoginAuthCreateOptions = {
301
335
  discoveryApi: DiscoveryApi;
302
336
  oauthRequestApi: OAuthRequestApi;
303
337
  environment?: string;
@@ -311,7 +345,7 @@ declare type CreateOptions = {
311
345
  * @public
312
346
  */
313
347
  declare class OneLoginAuth {
314
- static create({ discoveryApi, environment, provider, oauthRequestApi, }: CreateOptions): typeof oneloginAuthApiRef.T;
348
+ static create({ discoveryApi, environment, provider, oauthRequestApi, }: OneLoginAuthCreateOptions): typeof oneloginAuthApiRef.T;
315
349
  }
316
350
 
317
351
  /**
@@ -398,7 +432,7 @@ declare class UrlPatternDiscovery implements DiscoveryApi {
398
432
  * interpolation done for the template is to replace instances of `{{pluginId}}`
399
433
  * with the ID of the plugin being requested.
400
434
  *
401
- * Example pattern: `http://localhost:7000/api/{{ pluginId }}`
435
+ * Example pattern: `http://localhost:7007/api/{{ pluginId }}`
402
436
  */
403
437
  static compile(pattern: string): UrlPatternDiscovery;
404
438
  private constructor();
@@ -415,10 +449,10 @@ declare class ErrorAlerter implements ErrorApi {
415
449
  private readonly alertApi;
416
450
  private readonly errorApi;
417
451
  constructor(alertApi: AlertApi, errorApi: ErrorApi);
418
- post(error: Error, context?: ErrorContext): void;
452
+ post(error: ErrorApiError, context?: ErrorApiErrorContext): void;
419
453
  error$(): _backstage_types.Observable<{
420
- error: _backstage_core_plugin_api.Error;
421
- context?: ErrorContext | undefined;
454
+ error: ErrorApiError;
455
+ context?: ErrorApiErrorContext | undefined;
422
456
  }>;
423
457
  }
424
458
 
@@ -429,10 +463,10 @@ declare class ErrorAlerter implements ErrorApi {
429
463
  */
430
464
  declare class ErrorApiForwarder implements ErrorApi {
431
465
  private readonly subject;
432
- post(error: Error, context?: ErrorContext): void;
466
+ post(error: ErrorApiError, context?: ErrorApiErrorContext): void;
433
467
  error$(): Observable<{
434
468
  error: Error;
435
- context?: ErrorContext;
469
+ context?: ErrorApiErrorContext;
436
470
  }>;
437
471
  }
438
472
 
@@ -445,7 +479,7 @@ declare class UnhandledErrorForwarder {
445
479
  /**
446
480
  * Add event listener, such that unhandled errors can be forwarded using an given `ErrorApi` instance
447
481
  */
448
- static forward(errorApi: ErrorApi, errorContext: ErrorContext): void;
482
+ static forward(errorApi: ErrorApi, errorContext: ErrorApiErrorContext): void;
449
483
  }
450
484
 
451
485
  /**
@@ -506,11 +540,6 @@ declare class WebStorage implements StorageApi {
506
540
  private readonly observable;
507
541
  }
508
542
 
509
- declare type AppIconsKey = 'brokenImage' | 'catalog' | 'scaffolder' | 'techdocs' | 'search' | 'chat' | 'dashboard' | 'docs' | 'email' | 'github' | 'group' | 'help' | 'kind:api' | 'kind:component' | 'kind:domain' | 'kind:group' | 'kind:location' | 'kind:system' | 'kind:user' | 'user' | 'warning';
510
- declare type AppIcons = {
511
- [key in AppIconsKey]: IconComponent;
512
- };
513
-
514
543
  /**
515
544
  * Props for the `BootErrorPage` component of {@link AppComponents}.
516
545
  *
@@ -572,7 +601,7 @@ declare type AppComponents = {
572
601
  Progress: ComponentType<{}>;
573
602
  Router: ComponentType<{}>;
574
603
  ErrorBoundaryFallback: ComponentType<ErrorBoundaryFallbackProps>;
575
- ThemeProvider: ComponentType<{}>;
604
+ ThemeProvider?: ComponentType<{}>;
576
605
  /**
577
606
  * An optional sign-in page that will be rendered instead of the AppRouter at startup.
578
607
  *
@@ -584,6 +613,34 @@ declare type AppComponents = {
584
613
  */
585
614
  SignInPage?: ComponentType<SignInPageProps>;
586
615
  };
616
+ /**
617
+ * A set of well-known icons that should be available within an app.
618
+ *
619
+ * @public
620
+ */
621
+ declare type AppIcons = {
622
+ 'kind:api': IconComponent;
623
+ 'kind:component': IconComponent;
624
+ 'kind:domain': IconComponent;
625
+ 'kind:group': IconComponent;
626
+ 'kind:location': IconComponent;
627
+ 'kind:system': IconComponent;
628
+ 'kind:user': IconComponent;
629
+ brokenImage: IconComponent;
630
+ catalog: IconComponent;
631
+ chat: IconComponent;
632
+ dashboard: IconComponent;
633
+ docs: IconComponent;
634
+ email: IconComponent;
635
+ github: IconComponent;
636
+ group: IconComponent;
637
+ help: IconComponent;
638
+ scaffolder: IconComponent;
639
+ search: IconComponent;
640
+ techdocs: IconComponent;
641
+ user: IconComponent;
642
+ warning: IconComponent;
643
+ };
587
644
  /**
588
645
  * A function that loads in the App config that will be accessible via the ConfigApi.
589
646
  *
@@ -595,6 +652,8 @@ declare type AppComponents = {
595
652
  declare type AppConfigLoader = () => Promise<AppConfig[]>;
596
653
  /**
597
654
  * Extracts a union of the keys in a map whose value extends the given type
655
+ *
656
+ * @ignore
598
657
  */
599
658
  declare type KeysWithType<Obj extends {
600
659
  [key in string]: any;
@@ -603,12 +662,16 @@ declare type KeysWithType<Obj extends {
603
662
  }[keyof Obj];
604
663
  /**
605
664
  * Takes a map Map required values and makes all keys matching Keys optional
665
+ *
666
+ * @ignore
606
667
  */
607
668
  declare type PartialKeys<Map extends {
608
669
  [name in string]: any;
609
670
  }, Keys extends keyof Map> = Partial<Pick<Map, Keys>> & Required<Omit<Map, Keys>>;
610
671
  /**
611
672
  * Creates a map of target routes with matching parameters based on a map of external routes.
673
+ *
674
+ * @ignore
612
675
  */
613
676
  declare type TargetRouteMap<ExternalRoutes extends {
614
677
  [name: string]: ExternalRouteRef;
@@ -629,6 +692,7 @@ declare type AppRouteBinder = <ExternalRoutes extends {
629
692
  *
630
693
  * @public
631
694
  * @remarks
695
+ * @deprecated Will be removed
632
696
  *
633
697
  * The `type: string` type is there to handle output from newer or older plugin
634
698
  * API versions that might not be supported by this version of the app API, but
@@ -652,23 +716,35 @@ declare type BackstagePluginWithAnyOutput = Omit<BackstagePlugin<any, any>, 'out
652
716
  declare type AppOptions = {
653
717
  /**
654
718
  * A collection of ApiFactories to register in the application to either
655
- * add add new ones, or override factories provided by default or by plugins.
719
+ * add new ones, or override factories provided by default or by plugins.
656
720
  */
657
721
  apis?: Iterable<AnyApiFactory>;
722
+ /**
723
+ * A collection of ApiFactories to register in the application as default APIs.
724
+ * Theses APIs can not be overridden by plugin factories, but can be overridden
725
+ * by plugin APIs provided through the
726
+ * A collection of ApiFactories to register in the application to either
727
+ * add new ones, or override factories provided by default or by plugins.
728
+ */
729
+ defaultApis?: Iterable<AnyApiFactory>;
658
730
  /**
659
731
  * Supply icons to override the default ones.
660
732
  */
661
- icons?: Partial<AppIcons> & {
733
+ icons: AppIcons & {
662
734
  [key in string]: IconComponent;
663
735
  };
664
736
  /**
665
737
  * A list of all plugins to include in the app.
666
738
  */
667
- plugins?: BackstagePluginWithAnyOutput[];
739
+ plugins?: (Omit<BackstagePlugin<any, any>, 'output'> & {
740
+ output(): (PluginOutput | {
741
+ type: string;
742
+ })[];
743
+ })[];
668
744
  /**
669
745
  * Supply components to the app to override the default ones.
670
746
  */
671
- components?: Partial<AppComponents>;
747
+ components: AppComponents;
672
748
  /**
673
749
  * Themes provided as a part of the app. By default two themes are included, one
674
750
  * light variant of the default backstage theme, and one dark.
@@ -680,18 +756,26 @@ declare type AppOptions = {
680
756
  * id: 'light',
681
757
  * title: 'Light Theme',
682
758
  * variant: 'light',
683
- * theme: lightTheme,
684
759
  * icon: <LightIcon />,
760
+ * Provider: ({ children }) => (
761
+ * <ThemeProvider theme={lightTheme}>
762
+ * <CssBaseline>{children}</CssBaseline>
763
+ * </ThemeProvider>
764
+ * ),
685
765
  * }, {
686
766
  * id: 'dark',
687
767
  * title: 'Dark Theme',
688
768
  * variant: 'dark',
689
- * theme: darkTheme,
690
769
  * icon: <DarkIcon />,
770
+ * Provider: ({ children }) => (
771
+ * <ThemeProvider theme={darkTheme}>
772
+ * <CssBaseline>{children}</CssBaseline>
773
+ * </ThemeProvider>
774
+ * ),
691
775
  * }]
692
776
  * ```
693
777
  */
694
- themes?: AppTheme[];
778
+ themes: (Partial<AppTheme> & Omit<AppTheme, 'theme'>)[];
695
779
  /**
696
780
  * A function that loads in App configuration that will be accessible via
697
781
  * the ConfigApi.
@@ -770,38 +854,23 @@ declare type AppContext = {
770
854
  getComponents(): AppComponents;
771
855
  };
772
856
 
773
- declare type FullAppOptions = {
774
- apis: Iterable<AnyApiFactory>;
775
- icons: NonNullable<AppOptions['icons']>;
776
- plugins: BackstagePlugin<any, any>[];
777
- components: AppComponents;
778
- themes: AppTheme[];
779
- configLoader?: AppConfigLoader;
780
- defaultApis: Iterable<AnyApiFactory>;
781
- bindRoutes?: AppOptions['bindRoutes'];
782
- };
783
- declare class PrivateAppImpl implements BackstageApp {
784
- private apiHolder?;
785
- private configApi?;
786
- private readonly apis;
787
- private readonly icons;
788
- private readonly plugins;
789
- private readonly components;
790
- private readonly themes;
791
- private readonly configLoader?;
792
- private readonly defaultApis;
793
- private readonly bindRoutes;
794
- private readonly identityApi;
795
- private readonly apiFactoryRegistry;
796
- constructor(options: FullAppOptions);
797
- getPlugins(): BackstagePlugin<any, any>[];
798
- getSystemIcon(key: string): IconComponent | undefined;
799
- getComponents(): AppComponents;
800
- getProvider(): ComponentType<{}>;
801
- getRouter(): ComponentType<{}>;
802
- private getApiHolder;
803
- private verifyPlugins;
804
- }
857
+ /**
858
+ * Creates a new Backstage App.
859
+ *
860
+ * @deprecated Use {@link @backstage/app-defaults#createApp} from `@backstage/app-defaults` instead
861
+ * @param options - A set of options for creating the app
862
+ * @public
863
+ */
864
+ declare function createApp(options?: Parameters<typeof createApp$1>[0]): BackstageApp & AppContext;
865
+
866
+ /**
867
+ * Creates a new Backstage App where the full set of options are required.
868
+ *
869
+ * @public
870
+ * @param options - A set of options for creating the app
871
+ * @returns
872
+ */
873
+ declare function createSpecializedApp(options: AppOptions): BackstageApp;
805
874
 
806
875
  /**
807
876
  * The default config loader, which expects that config is available at compile-time
@@ -816,12 +885,6 @@ declare class PrivateAppImpl implements BackstageApp {
816
885
  * @public
817
886
  */
818
887
  declare const defaultConfigLoader: AppConfigLoader;
819
- /**
820
- * Creates a new Backstage App.
821
- *
822
- * @public
823
- */
824
- declare function createApp(options?: AppOptions): PrivateAppImpl;
825
888
 
826
889
  /**
827
890
  * Props for the {@link FlatRoutes} component.
@@ -864,4 +927,4 @@ declare type FeatureFlaggedProps = {
864
927
  */
865
928
  declare const FeatureFlagged: (props: FeatureFlaggedProps) => JSX.Element;
866
929
 
867
- export { AlertApiForwarder, ApiFactoryHolder, ApiFactoryRegistry, ApiProvider, ApiRegistry, ApiResolver, AppComponents, AppConfigLoader, AppContext, AppOptions, AppRouteBinder, AppThemeSelector, AtlassianAuth, Auth0Auth, BackstageApp, BackstagePluginWithAnyOutput, BitbucketAuth, BitbucketSession, BootErrorPageProps, ErrorAlerter, ErrorApiForwarder, ErrorBoundaryFallbackProps, FeatureFlagged, FeatureFlaggedProps, FlatRoutes, FlatRoutesProps, GithubAuth, GithubSession, GitlabAuth, GoogleAuth, LocalStorageFeatureFlags, MicrosoftAuth, NoOpAnalyticsApi, OAuth2, OAuth2Session, OAuthRequestManager, OktaAuth, OneLoginAuth, SamlAuth, SignInPageProps, SignInResult, UnhandledErrorForwarder, UrlPatternDiscovery, WebStorage, createApp, defaultConfigLoader };
930
+ export { AlertApiForwarder, ApiFactoryHolder, ApiFactoryRegistry, ApiFactoryScope, ApiProvider, ApiProviderProps, ApiRegistry, ApiResolver, AppComponents, AppConfigLoader, AppContext, AppIcons, AppOptions, AppRouteBinder, AppThemeSelector, AtlassianAuth, Auth0Auth, AuthApiCreateOptions, BackstageApp, BackstagePluginWithAnyOutput, BitbucketAuth, BitbucketSession, BootErrorPageProps, ErrorAlerter, ErrorApiForwarder, ErrorBoundaryFallbackProps, FeatureFlagged, FeatureFlaggedProps, FlatRoutes, FlatRoutesProps, GithubAuth, GithubSession, GitlabAuth, GoogleAuth, LocalStorageFeatureFlags, MicrosoftAuth, NoOpAnalyticsApi, OAuth2, OAuth2CreateOptions, OAuth2Session, OAuthApiCreateOptions, OAuthRequestManager, OktaAuth, OneLoginAuth, OneLoginAuthCreateOptions, SamlAuth, SamlSession, SignInPageProps, SignInResult, UnhandledErrorForwarder, UrlPatternDiscovery, WebStorage, createApp, createSpecializedApp, defaultConfigLoader };