@backstage/core-app-api 0.1.19 → 0.1.23

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,122 @@
1
1
  # @backstage/core-app-api
2
2
 
3
+ ## 0.1.23
4
+
5
+ ### Patch Changes
6
+
7
+ - bab752e2b3: Change default port of backend from 7000 to 7007.
8
+
9
+ This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
10
+
11
+ You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
12
+
13
+ ```
14
+ backend:
15
+ listen: 0.0.0.0:7123
16
+ baseUrl: http://localhost:7123
17
+ ```
18
+
19
+ More information can be found here: https://backstage.io/docs/conf/writing
20
+
21
+ - 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`.
22
+
23
+ These two new helpers are more tailored for writing tests and development setups, as they allow for partial implementations of each of the APIs.
24
+
25
+ When migrating existing code it is typically best to prefer usage of `TestApiProvider` when possible, so for example the following code:
26
+
27
+ ```tsx
28
+ render(
29
+ <ApiProvider
30
+ apis={ApiRegistry.from([
31
+ [identityApiRef, mockIdentityApi as unknown as IdentityApi]
32
+ ])}
33
+ >
34
+ {...}
35
+ </ApiProvider>
36
+ )
37
+ ```
38
+
39
+ Would be migrated to this:
40
+
41
+ ```tsx
42
+ render(
43
+ <TestApiProvider apis={[[identityApiRef, mockIdentityApi]]}>
44
+ {...}
45
+ </TestApiProvider>
46
+ )
47
+ ```
48
+
49
+ 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.
50
+
51
+ Usage that looks like this:
52
+
53
+ ```ts
54
+ const apis = ApiRegistry.with(
55
+ identityApiRef,
56
+ mockIdentityApi as unknown as IdentityApi,
57
+ ).with(configApiRef, new ConfigReader({}));
58
+ ```
59
+
60
+ OR like this:
61
+
62
+ ```ts
63
+ const apis = ApiRegistry.from([
64
+ [identityApiRef, mockIdentityApi as unknown as IdentityApi],
65
+ [configApiRef, new ConfigReader({})],
66
+ ]);
67
+ ```
68
+
69
+ Would be migrated to this:
70
+
71
+ ```ts
72
+ const apis = TestApiRegistry.from(
73
+ [identityApiRef, mockIdentityApi],
74
+ [configApiRef, new ConfigReader({})],
75
+ );
76
+ ```
77
+
78
+ 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`.
79
+
80
+ - Updated dependencies
81
+ - @backstage/core-plugin-api@0.2.1
82
+ - @backstage/core-components@0.7.5
83
+
84
+ ## 0.1.22
85
+
86
+ ### Patch Changes
87
+
88
+ - Reverted the `createApp` TypeScript type to match the one before version `0.1.21`, as it was an accidental breaking change.
89
+
90
+ ## 0.1.21
91
+
92
+ ### Patch Changes
93
+
94
+ - 0b1de52732: Migrated to using new `ErrorApiError` and `ErrorApiErrorContext` names.
95
+ - ecd1fcb80a: Deprecated the `BackstagePluginWithAnyOutput` type.
96
+ - 32bfbafb0f: Start exporting and marking several types as public to address errors in the API report.
97
+ - 014cbf8cb9: The `createApp` function from `@backstage/core-app-api` has been deprecated, with two new options being provided as a replacement.
98
+
99
+ 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`.
100
+
101
+ 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.
102
+
103
+ - 475edb5bc5: move the BehaviorSubject init into the constructor
104
+ - Updated dependencies
105
+ - @backstage/core-components@0.7.4
106
+ - @backstage/core-plugin-api@0.2.0
107
+ - @backstage/app-defaults@0.1.1
108
+
109
+ ## 0.1.20
110
+
111
+ ### Patch Changes
112
+
113
+ - 78c512ce8f: I have added default icons for the catalog, scaffolder, techdocs, and search.
114
+ - 8b4284cd5c: Improve API documentation for @backstage/core-plugin-api
115
+ - Updated dependencies
116
+ - @backstage/core-components@0.7.3
117
+ - @backstage/theme@0.2.13
118
+ - @backstage/core-plugin-api@0.1.13
119
+
3
120
  ## 0.1.19
4
121
 
5
122
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,11 +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 { 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';
4
4
  import * as _backstage_types from '@backstage/types';
5
5
  import { Observable } from '@backstage/types';
6
6
  import { AppConfig } from '@backstage/config';
7
7
  export { ConfigReader } from '@backstage/config';
8
+ import { createApp as createApp$1 } from '@backstage/app-defaults';
8
9
 
10
+ /**
11
+ * Prop types for the ApiProvider component.
12
+ * @public
13
+ */
9
14
  declare type ApiProviderProps = {
10
15
  apis: ApiHolder;
11
16
  children: ReactNode;
@@ -36,6 +41,7 @@ declare class ApiRegistryBuilder {
36
41
  * A registry for utility APIs.
37
42
  *
38
43
  * @public
44
+ * @deprecated Will be removed, use {@link @backstage/test-utils#TestApiProvider} or {@link @backstage/test-utils#TestApiRegistry} instead.
39
45
  */
40
46
  declare class ApiRegistry implements ApiHolder {
41
47
  private readonly apis;
@@ -93,6 +99,10 @@ declare class ApiResolver implements ApiHolder {
93
99
  private loadDeps;
94
100
  }
95
101
 
102
+ /**
103
+ * Scope type when registering API factories.
104
+ * @public
105
+ */
96
106
  declare type ApiFactoryScope = 'default' | 'app' | 'static';
97
107
  /**
98
108
  * ApiFactoryRegistry is an ApiFactoryHolder implementation that enables
@@ -152,10 +162,18 @@ declare type SessionManager<T> = {
152
162
  sessionState$(): Observable<SessionState>;
153
163
  };
154
164
 
165
+ /**
166
+ * Create options for OAuth APIs.
167
+ * @public
168
+ */
155
169
  declare type OAuthApiCreateOptions = AuthApiCreateOptions & {
156
170
  oauthRequestApi: OAuthRequestApi;
157
171
  defaultScopes?: string[];
158
172
  };
173
+ /**
174
+ * Generic create options for auth APIs.
175
+ * @public
176
+ */
159
177
  declare type AuthApiCreateOptions = {
160
178
  discoveryApi: DiscoveryApi;
161
179
  environment?: string;
@@ -172,6 +190,9 @@ declare type AuthApiCreateOptions = {
172
190
  declare class GithubAuth implements OAuthApi, SessionApi {
173
191
  private readonly sessionManager;
174
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
+ */
175
196
  constructor(sessionManager: SessionManager<GithubSession>);
176
197
  signIn(): Promise<void>;
177
198
  signOut(): Promise<void>;
@@ -216,7 +237,11 @@ declare type OAuth2Session = {
216
237
  backstageIdentity: BackstageIdentity;
217
238
  };
218
239
 
219
- declare type CreateOptions$1 = OAuthApiCreateOptions & {
240
+ /**
241
+ * OAuth2 create options.
242
+ * @public
243
+ */
244
+ declare type OAuth2CreateOptions = OAuthApiCreateOptions & {
220
245
  scopeTransform?: (scopes: string[]) => string[];
221
246
  };
222
247
  /**
@@ -225,9 +250,12 @@ declare type CreateOptions$1 = OAuthApiCreateOptions & {
225
250
  * @public
226
251
  */
227
252
  declare class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, BackstageIdentityApi, SessionApi {
228
- static create({ discoveryApi, environment, provider, oauthRequestApi, defaultScopes, scopeTransform, }: CreateOptions$1): OAuth2;
253
+ static create({ discoveryApi, environment, provider, oauthRequestApi, defaultScopes, scopeTransform, }: OAuth2CreateOptions): OAuth2;
229
254
  private readonly sessionManager;
230
255
  private readonly scopeTransform;
256
+ /**
257
+ * @deprecated will be made private in the future. Use create method instead.
258
+ */
231
259
  constructor(options: {
232
260
  sessionManager: SessionManager<OAuth2Session>;
233
261
  scopeTransform: (scopes: string[]) => string[];
@@ -271,6 +299,9 @@ declare class SamlAuth implements ProfileInfoApi, BackstageIdentityApi, SessionA
271
299
  private readonly sessionManager;
272
300
  static create({ discoveryApi, environment, provider, }: AuthApiCreateOptions): SamlAuth;
273
301
  sessionState$(): Observable<SessionState>;
302
+ /**
303
+ * @deprecated will be made private in the future. Use create method instead.
304
+ */
274
305
  constructor(sessionManager: SessionManager<SamlSession>);
275
306
  signIn(): Promise<void>;
276
307
  signOut(): Promise<void>;
@@ -296,7 +327,11 @@ declare class MicrosoftAuth {
296
327
  static create({ environment, provider, oauthRequestApi, discoveryApi, defaultScopes, }: OAuthApiCreateOptions): typeof microsoftAuthApiRef.T;
297
328
  }
298
329
 
299
- declare type CreateOptions = {
330
+ /**
331
+ * OneLogin auth provider create options.
332
+ * @public
333
+ */
334
+ declare type OneLoginAuthCreateOptions = {
300
335
  discoveryApi: DiscoveryApi;
301
336
  oauthRequestApi: OAuthRequestApi;
302
337
  environment?: string;
@@ -310,7 +345,7 @@ declare type CreateOptions = {
310
345
  * @public
311
346
  */
312
347
  declare class OneLoginAuth {
313
- static create({ discoveryApi, environment, provider, oauthRequestApi, }: CreateOptions): typeof oneloginAuthApiRef.T;
348
+ static create({ discoveryApi, environment, provider, oauthRequestApi, }: OneLoginAuthCreateOptions): typeof oneloginAuthApiRef.T;
314
349
  }
315
350
 
316
351
  /**
@@ -397,7 +432,7 @@ declare class UrlPatternDiscovery implements DiscoveryApi {
397
432
  * interpolation done for the template is to replace instances of `{{pluginId}}`
398
433
  * with the ID of the plugin being requested.
399
434
  *
400
- * Example pattern: `http://localhost:7000/api/{{ pluginId }}`
435
+ * Example pattern: `http://localhost:7007/api/{{ pluginId }}`
401
436
  */
402
437
  static compile(pattern: string): UrlPatternDiscovery;
403
438
  private constructor();
@@ -414,14 +449,10 @@ declare class ErrorAlerter implements ErrorApi {
414
449
  private readonly alertApi;
415
450
  private readonly errorApi;
416
451
  constructor(alertApi: AlertApi, errorApi: ErrorApi);
417
- post(error: Error, context?: ErrorContext): void;
452
+ post(error: ErrorApiError, context?: ErrorApiErrorContext): void;
418
453
  error$(): _backstage_types.Observable<{
419
- error: {
420
- name: string;
421
- message: string;
422
- stack?: string | undefined;
423
- };
424
- context?: ErrorContext | undefined;
454
+ error: ErrorApiError;
455
+ context?: ErrorApiErrorContext | undefined;
425
456
  }>;
426
457
  }
427
458
 
@@ -432,10 +463,10 @@ declare class ErrorAlerter implements ErrorApi {
432
463
  */
433
464
  declare class ErrorApiForwarder implements ErrorApi {
434
465
  private readonly subject;
435
- post(error: Error, context?: ErrorContext): void;
466
+ post(error: ErrorApiError, context?: ErrorApiErrorContext): void;
436
467
  error$(): Observable<{
437
468
  error: Error;
438
- context?: ErrorContext;
469
+ context?: ErrorApiErrorContext;
439
470
  }>;
440
471
  }
441
472
 
@@ -448,7 +479,7 @@ declare class UnhandledErrorForwarder {
448
479
  /**
449
480
  * Add event listener, such that unhandled errors can be forwarded using an given `ErrorApi` instance
450
481
  */
451
- static forward(errorApi: ErrorApi, errorContext: ErrorContext): void;
482
+ static forward(errorApi: ErrorApi, errorContext: ErrorApiErrorContext): void;
452
483
  }
453
484
 
454
485
  /**
@@ -509,11 +540,6 @@ declare class WebStorage implements StorageApi {
509
540
  private readonly observable;
510
541
  }
511
542
 
512
- declare type AppIconsKey = 'brokenImage' | 'catalog' | 'chat' | 'dashboard' | 'docs' | 'email' | 'github' | 'group' | 'help' | 'kind:api' | 'kind:component' | 'kind:domain' | 'kind:group' | 'kind:location' | 'kind:system' | 'kind:user' | 'user' | 'warning';
513
- declare type AppIcons = {
514
- [key in AppIconsKey]: IconComponent;
515
- };
516
-
517
543
  /**
518
544
  * Props for the `BootErrorPage` component of {@link AppComponents}.
519
545
  *
@@ -575,7 +601,7 @@ declare type AppComponents = {
575
601
  Progress: ComponentType<{}>;
576
602
  Router: ComponentType<{}>;
577
603
  ErrorBoundaryFallback: ComponentType<ErrorBoundaryFallbackProps>;
578
- ThemeProvider: ComponentType<{}>;
604
+ ThemeProvider?: ComponentType<{}>;
579
605
  /**
580
606
  * An optional sign-in page that will be rendered instead of the AppRouter at startup.
581
607
  *
@@ -587,6 +613,34 @@ declare type AppComponents = {
587
613
  */
588
614
  SignInPage?: ComponentType<SignInPageProps>;
589
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
+ };
590
644
  /**
591
645
  * A function that loads in the App config that will be accessible via the ConfigApi.
592
646
  *
@@ -598,6 +652,8 @@ declare type AppComponents = {
598
652
  declare type AppConfigLoader = () => Promise<AppConfig[]>;
599
653
  /**
600
654
  * Extracts a union of the keys in a map whose value extends the given type
655
+ *
656
+ * @ignore
601
657
  */
602
658
  declare type KeysWithType<Obj extends {
603
659
  [key in string]: any;
@@ -606,12 +662,16 @@ declare type KeysWithType<Obj extends {
606
662
  }[keyof Obj];
607
663
  /**
608
664
  * Takes a map Map required values and makes all keys matching Keys optional
665
+ *
666
+ * @ignore
609
667
  */
610
668
  declare type PartialKeys<Map extends {
611
669
  [name in string]: any;
612
670
  }, Keys extends keyof Map> = Partial<Pick<Map, Keys>> & Required<Omit<Map, Keys>>;
613
671
  /**
614
672
  * Creates a map of target routes with matching parameters based on a map of external routes.
673
+ *
674
+ * @ignore
615
675
  */
616
676
  declare type TargetRouteMap<ExternalRoutes extends {
617
677
  [name: string]: ExternalRouteRef;
@@ -632,6 +692,7 @@ declare type AppRouteBinder = <ExternalRoutes extends {
632
692
  *
633
693
  * @public
634
694
  * @remarks
695
+ * @deprecated Will be removed
635
696
  *
636
697
  * The `type: string` type is there to handle output from newer or older plugin
637
698
  * API versions that might not be supported by this version of the app API, but
@@ -655,23 +716,35 @@ declare type BackstagePluginWithAnyOutput = Omit<BackstagePlugin<any, any>, 'out
655
716
  declare type AppOptions = {
656
717
  /**
657
718
  * A collection of ApiFactories to register in the application to either
658
- * 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.
659
720
  */
660
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>;
661
730
  /**
662
731
  * Supply icons to override the default ones.
663
732
  */
664
- icons?: Partial<AppIcons> & {
733
+ icons: AppIcons & {
665
734
  [key in string]: IconComponent;
666
735
  };
667
736
  /**
668
737
  * A list of all plugins to include in the app.
669
738
  */
670
- plugins?: BackstagePluginWithAnyOutput[];
739
+ plugins?: (Omit<BackstagePlugin<any, any>, 'output'> & {
740
+ output(): (PluginOutput | {
741
+ type: string;
742
+ })[];
743
+ })[];
671
744
  /**
672
745
  * Supply components to the app to override the default ones.
673
746
  */
674
- components?: Partial<AppComponents>;
747
+ components: AppComponents;
675
748
  /**
676
749
  * Themes provided as a part of the app. By default two themes are included, one
677
750
  * light variant of the default backstage theme, and one dark.
@@ -683,18 +756,26 @@ declare type AppOptions = {
683
756
  * id: 'light',
684
757
  * title: 'Light Theme',
685
758
  * variant: 'light',
686
- * theme: lightTheme,
687
759
  * icon: <LightIcon />,
760
+ * Provider: ({ children }) => (
761
+ * <ThemeProvider theme={lightTheme}>
762
+ * <CssBaseline>{children}</CssBaseline>
763
+ * </ThemeProvider>
764
+ * ),
688
765
  * }, {
689
766
  * id: 'dark',
690
767
  * title: 'Dark Theme',
691
768
  * variant: 'dark',
692
- * theme: darkTheme,
693
769
  * icon: <DarkIcon />,
770
+ * Provider: ({ children }) => (
771
+ * <ThemeProvider theme={darkTheme}>
772
+ * <CssBaseline>{children}</CssBaseline>
773
+ * </ThemeProvider>
774
+ * ),
694
775
  * }]
695
776
  * ```
696
777
  */
697
- themes?: AppTheme[];
778
+ themes: (Partial<AppTheme> & Omit<AppTheme, 'theme'>)[];
698
779
  /**
699
780
  * A function that loads in App configuration that will be accessible via
700
781
  * the ConfigApi.
@@ -773,38 +854,23 @@ declare type AppContext = {
773
854
  getComponents(): AppComponents;
774
855
  };
775
856
 
776
- declare type FullAppOptions = {
777
- apis: Iterable<AnyApiFactory>;
778
- icons: NonNullable<AppOptions['icons']>;
779
- plugins: BackstagePlugin<any, any>[];
780
- components: AppComponents;
781
- themes: AppTheme[];
782
- configLoader?: AppConfigLoader;
783
- defaultApis: Iterable<AnyApiFactory>;
784
- bindRoutes?: AppOptions['bindRoutes'];
785
- };
786
- declare class PrivateAppImpl implements BackstageApp {
787
- private apiHolder?;
788
- private configApi?;
789
- private readonly apis;
790
- private readonly icons;
791
- private readonly plugins;
792
- private readonly components;
793
- private readonly themes;
794
- private readonly configLoader?;
795
- private readonly defaultApis;
796
- private readonly bindRoutes;
797
- private readonly identityApi;
798
- private readonly apiFactoryRegistry;
799
- constructor(options: FullAppOptions);
800
- getPlugins(): BackstagePlugin<any, any>[];
801
- getSystemIcon(key: string): IconComponent | undefined;
802
- getComponents(): AppComponents;
803
- getProvider(): ComponentType<{}>;
804
- getRouter(): ComponentType<{}>;
805
- private getApiHolder;
806
- private verifyPlugins;
807
- }
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;
808
874
 
809
875
  /**
810
876
  * The default config loader, which expects that config is available at compile-time
@@ -819,12 +885,6 @@ declare class PrivateAppImpl implements BackstageApp {
819
885
  * @public
820
886
  */
821
887
  declare const defaultConfigLoader: AppConfigLoader;
822
- /**
823
- * Creates a new Backstage App.
824
- *
825
- * @public
826
- */
827
- declare function createApp(options?: AppOptions): PrivateAppImpl;
828
888
 
829
889
  /**
830
890
  * Props for the {@link FlatRoutes} component.
@@ -867,4 +927,4 @@ declare type FeatureFlaggedProps = {
867
927
  */
868
928
  declare const FeatureFlagged: (props: FeatureFlaggedProps) => JSX.Element;
869
929
 
870
- 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 };