@backstage/core-app-api 0.2.0 → 0.4.0

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,62 @@
1
1
  # @backstage/core-app-api
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e2eb92c109: Removed previously deprecated `ApiRegistry` export.
8
+
9
+ ### Patch Changes
10
+
11
+ - 34442cd5cf: Fixed an issue where valid SAML and GitHub sessions would be considered invalid and not be stored.
12
+
13
+ Deprecated the `SamlSession` and `GithubSession` types.
14
+
15
+ - 784d8078ab: Removed direct and transitive MUI dependencies.
16
+ - Updated dependencies
17
+ - @backstage/config@0.1.12
18
+ - @backstage/core-plugin-api@0.5.0
19
+
20
+ ## 0.3.1
21
+
22
+ ### Patch Changes
23
+
24
+ - 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead.
25
+ - Updated dependencies
26
+ - @backstage/core-plugin-api@0.4.1
27
+ - @backstage/core-components@0.8.3
28
+
29
+ ## 0.3.0
30
+
31
+ ### Minor Changes
32
+
33
+ - a195284c7b: Updated `WebStorageApi` to reflect the `StorageApi` changes in `@backstage/core-plugin-api`.
34
+ - b3605da81c: - Removed deprecated definition `createApp` from `@backstage/core-app-api` which has been replaced by `@backstage/app-defaults#createApp`
35
+ - Removed deprecated type `BackstagePluginWithAnyOutput`
36
+ - Removed deprecated constructors for `GithubAuth`, `OAuth2`, and `SamlAuth` as the `create` method should be used instead
37
+ - 68f8b10ccd: - Removed deprecation configuration option `theme` from `AppTheme` of the `AppThemeApi`
38
+ - Removed reference to `theme` in the `app-defaults` default `AppTheme`
39
+ - Removed logic in `AppThemeProvider` that creates `ThemeProvider` from `appTheme.theme`
40
+
41
+ ### Patch Changes
42
+
43
+ - 7927005152: Add `FetchApi` and related `fetchApiRef` which implement fetch, with an added Backstage token header when available.
44
+ - 518ddc00bc: Schema-validate local storage cached session info on load
45
+ - Updated dependencies
46
+ - @backstage/app-defaults@0.1.3
47
+ - @backstage/core-plugin-api@0.4.0
48
+ - @backstage/core-components@0.8.2
49
+
50
+ ## 0.2.1
51
+
52
+ ### Patch Changes
53
+
54
+ - c11ce4f552: Deprecated `Auth0Auth`, pointing to using `OAuth2` directly instead.
55
+ - 9d6503e86c: Switched out usage of deprecated `OAuthRequestApi` types from `@backstage/core-plugin-api`.
56
+ - Updated dependencies
57
+ - @backstage/core-plugin-api@0.3.1
58
+ - @backstage/core-components@0.8.1
59
+
3
60
  ## 0.2.0
4
61
 
5
62
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
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, ErrorApiError, ErrorApiErrorContext, FeatureFlagsApi, FeatureFlag, FeatureFlagsSaveOptions, AuthRequesterOptions, AuthRequester, PendingAuthRequest, StorageApi, StorageValueChange, IdentityApi, BackstagePlugin, IconComponent, ExternalRouteRef, PluginOutput, AnyApiFactory, RouteRef, SubRouteRef } from '@backstage/core-plugin-api';
3
+ import { ApiHolder, ApiRef, ApiFactory, AnyApiRef, ProfileInfo, BackstageIdentity, OAuthRequestApi, DiscoveryApi, AuthProviderInfo, OAuthApi, SessionApi, SessionState, AuthRequestOptions, gitlabAuthApiRef, googleAuthApiRef, OpenIdConnectApi, ProfileInfoApi, BackstageIdentityApi, oktaAuthApiRef, auth0AuthApiRef, microsoftAuthApiRef, oneloginAuthApiRef, bitbucketAuthApiRef, atlassianAuthApiRef, AlertApi, AlertMessage, AnalyticsApi, AnalyticsEvent, AppThemeApi, AppTheme, ErrorApi, ErrorApiError, ErrorApiErrorContext, FeatureFlagsApi, FeatureFlag, FeatureFlagsSaveOptions, FetchApi, IdentityApi, OAuthRequesterOptions, OAuthRequester, PendingOAuthRequest, StorageApi, StorageValueSnapshot, BackstagePlugin, IconComponent, ExternalRouteRef, AnyApiFactory, RouteRef, SubRouteRef } from '@backstage/core-plugin-api';
4
4
  import * as _backstage_types from '@backstage/types';
5
- import { Observable } from '@backstage/types';
6
- import { AppConfig } from '@backstage/config';
5
+ import { Observable, JsonValue } from '@backstage/types';
6
+ import { Config, AppConfig } from '@backstage/config';
7
7
  export { ConfigReader } from '@backstage/config';
8
- import { createApp as createApp$1 } from '@backstage/app-defaults';
9
8
 
10
9
  /**
11
10
  * Prop types for the ApiProvider component.
@@ -31,45 +30,6 @@ declare const ApiProvider: {
31
30
  };
32
31
  };
33
32
 
34
- declare type ApiImpl<T = unknown> = readonly [ApiRef<T>, T];
35
- declare class ApiRegistryBuilder {
36
- private apis;
37
- add<T, I extends T>(api: ApiRef<T>, impl: I): I;
38
- build(): ApiRegistry;
39
- }
40
- /**
41
- * A registry for utility APIs.
42
- *
43
- * @public
44
- * @deprecated Will be removed, use {@link @backstage/test-utils#TestApiProvider} or {@link @backstage/test-utils#TestApiRegistry} instead.
45
- */
46
- declare class ApiRegistry implements ApiHolder {
47
- private readonly apis;
48
- static builder(): ApiRegistryBuilder;
49
- /**
50
- * Creates a new ApiRegistry with a list of API implementations.
51
- *
52
- * @param apis - A list of pairs mapping an ApiRef to its respective implementation
53
- */
54
- static from(apis: ApiImpl[]): ApiRegistry;
55
- /**
56
- * Creates a new ApiRegistry with a single API implementation.
57
- *
58
- * @param api - ApiRef for the API to add
59
- * @param impl - Implementation of the API to add
60
- */
61
- static with<T>(api: ApiRef<T>, impl: T): ApiRegistry;
62
- constructor(apis: Map<string, unknown>);
63
- /**
64
- * Returns a new ApiRegistry with the provided API added to the existing ones.
65
- *
66
- * @param api - ApiRef for the API to add
67
- * @param impl - Implementation of the API to add
68
- */
69
- with<T>(api: ApiRef<T>, impl: T): ApiRegistry;
70
- get<T>(api: ApiRef<T>): T | undefined;
71
- }
72
-
73
33
  /**
74
34
  * @public
75
35
  */
@@ -135,6 +95,7 @@ declare class ApiFactoryRegistry implements ApiFactoryHolder {
135
95
  * Session information for GitHub auth.
136
96
  *
137
97
  * @public
98
+ * @deprecated This type is internal and will be removed
138
99
  */
139
100
  declare type GithubSession = {
140
101
  providerInfo: {
@@ -146,22 +107,6 @@ declare type GithubSession = {
146
107
  backstageIdentity: BackstageIdentity;
147
108
  };
148
109
 
149
- declare type GetSessionOptions = {
150
- optional?: boolean;
151
- instantPopup?: boolean;
152
- scopes?: Set<string>;
153
- };
154
- /**
155
- * A sessions manager keeps track of the current session and makes sure that
156
- * multiple simultaneous requests for sessions with different scope are handled
157
- * in a correct way.
158
- */
159
- declare type SessionManager<T> = {
160
- getSession(options: GetSessionOptions): Promise<T | undefined>;
161
- removeSession(): Promise<void>;
162
- sessionState$(): Observable<SessionState>;
163
- };
164
-
165
110
  /**
166
111
  * Create options for OAuth APIs.
167
112
  * @public
@@ -177,9 +122,7 @@ declare type OAuthApiCreateOptions = AuthApiCreateOptions & {
177
122
  declare type AuthApiCreateOptions = {
178
123
  discoveryApi: DiscoveryApi;
179
124
  environment?: string;
180
- provider?: AuthProvider & {
181
- id: string;
182
- };
125
+ provider?: AuthProviderInfo;
183
126
  };
184
127
 
185
128
  /**
@@ -190,10 +133,7 @@ declare type AuthApiCreateOptions = {
190
133
  declare class GithubAuth implements OAuthApi, SessionApi {
191
134
  private readonly sessionManager;
192
135
  static create(options: OAuthApiCreateOptions): GithubAuth;
193
- /**
194
- * @deprecated will be made private in the future. Use create method instead.
195
- */
196
- constructor(sessionManager: SessionManager<GithubSession>);
136
+ private constructor();
197
137
  signIn(): Promise<void>;
198
138
  signOut(): Promise<void>;
199
139
  sessionState$(): Observable<SessionState>;
@@ -221,22 +161,6 @@ declare class GoogleAuth {
221
161
  static create(options: OAuthApiCreateOptions): typeof googleAuthApiRef.T;
222
162
  }
223
163
 
224
- /**
225
- * Session information for generic OAuth2 auth.
226
- *
227
- * @public
228
- */
229
- declare type OAuth2Session = {
230
- providerInfo: {
231
- idToken: string;
232
- accessToken: string;
233
- scopes: Set<string>;
234
- expiresAt: Date;
235
- };
236
- profile: ProfileInfo;
237
- backstageIdentity: BackstageIdentity;
238
- };
239
-
240
164
  /**
241
165
  * OAuth2 create options.
242
166
  * @public
@@ -253,13 +177,7 @@ declare class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, Back
253
177
  static create(options: OAuth2CreateOptions): OAuth2;
254
178
  private readonly sessionManager;
255
179
  private readonly scopeTransform;
256
- /**
257
- * @deprecated will be made private in the future. Use create method instead.
258
- */
259
- constructor(options: {
260
- sessionManager: SessionManager<OAuth2Session>;
261
- scopeTransform: (scopes: string[]) => string[];
262
- });
180
+ private constructor();
263
181
  signIn(): Promise<void>;
264
182
  signOut(): Promise<void>;
265
183
  sessionState$(): Observable<SessionState>;
@@ -271,24 +189,29 @@ declare class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, Back
271
189
  }
272
190
 
273
191
  /**
274
- * Implements the OAuth flow to Okta products.
192
+ * Session information for generic OAuth2 auth.
275
193
  *
276
194
  * @public
277
195
  */
278
- declare class OktaAuth {
279
- static create(options: OAuthApiCreateOptions): typeof oktaAuthApiRef.T;
280
- }
196
+ declare type OAuth2Session = {
197
+ providerInfo: {
198
+ idToken: string;
199
+ accessToken: string;
200
+ scopes: Set<string>;
201
+ expiresAt: Date;
202
+ };
203
+ profile: ProfileInfo;
204
+ backstageIdentity: BackstageIdentity;
205
+ };
281
206
 
282
207
  /**
283
- * Session information for SAML auth.
208
+ * Implements the OAuth flow to Okta products.
284
209
  *
285
210
  * @public
286
211
  */
287
- declare type SamlSession = {
288
- userId: string;
289
- profile: ProfileInfo;
290
- backstageIdentity: BackstageIdentity;
291
- };
212
+ declare class OktaAuth {
213
+ static create(options: OAuthApiCreateOptions): typeof oktaAuthApiRef.T;
214
+ }
292
215
 
293
216
  /**
294
217
  * Implements a general SAML based auth flow.
@@ -299,20 +222,46 @@ declare class SamlAuth implements ProfileInfoApi, BackstageIdentityApi, SessionA
299
222
  private readonly sessionManager;
300
223
  static create(options: AuthApiCreateOptions): SamlAuth;
301
224
  sessionState$(): Observable<SessionState>;
302
- /**
303
- * @deprecated will be made private in the future. Use create method instead.
304
- */
305
- constructor(sessionManager: SessionManager<SamlSession>);
225
+ private constructor();
306
226
  signIn(): Promise<void>;
307
227
  signOut(): Promise<void>;
308
228
  getBackstageIdentity(options?: AuthRequestOptions): Promise<BackstageIdentity | undefined>;
309
229
  getProfile(options?: AuthRequestOptions): Promise<ProfileInfo | undefined>;
310
230
  }
311
231
 
232
+ /**
233
+ * Session information for SAML auth.
234
+ *
235
+ * @public
236
+ * @deprecated This type is internal and will be removed
237
+ */
238
+ declare type ExportedSamlSession = {
239
+ userId: string;
240
+ profile: ProfileInfo;
241
+ backstageIdentity: BackstageIdentity;
242
+ };
243
+
312
244
  /**
313
245
  * Implements the OAuth flow to Auth0 products.
314
246
  *
315
247
  * @public
248
+ * @deprecated Use {@link OAuth2} instead
249
+ *
250
+ * @example
251
+ *
252
+ * ```ts
253
+ * OAuth2.create({
254
+ * discoveryApi,
255
+ * oauthRequestApi,
256
+ * provider: {
257
+ * id: 'auth0',
258
+ * title: 'Auth0',
259
+ * icon: () => null,
260
+ * },
261
+ * defaultScopes: ['openid', 'email', 'profile'],
262
+ * environment: configApi.getOptionalString('auth.environment'),
263
+ * })
264
+ * ```
316
265
  */
317
266
  declare class Auth0Auth {
318
267
  static create(options: OAuthApiCreateOptions): typeof auth0AuthApiRef.T;
@@ -335,9 +284,7 @@ declare type OneLoginAuthCreateOptions = {
335
284
  discoveryApi: DiscoveryApi;
336
285
  oauthRequestApi: OAuthRequestApi;
337
286
  environment?: string;
338
- provider?: AuthProvider & {
339
- id: string;
340
- };
287
+ provider?: AuthProviderInfo;
341
288
  };
342
289
  /**
343
290
  * Implements a OneLogin OAuth flow.
@@ -498,6 +445,87 @@ declare class LocalStorageFeatureFlags implements FeatureFlagsApi {
498
445
  private load;
499
446
  }
500
447
 
448
+ /**
449
+ * A middleware that modifies the behavior of an ongoing fetch.
450
+ *
451
+ * @public
452
+ */
453
+ interface FetchMiddleware {
454
+ /**
455
+ * Applies this middleware to an inner implementation.
456
+ *
457
+ * @param next - The next, inner, implementation, that this middleware shall
458
+ * call out to as part of the request cycle.
459
+ */
460
+ apply(next: typeof fetch): typeof fetch;
461
+ }
462
+
463
+ /**
464
+ * Builds a fetch API, based on the builtin fetch wrapped by a set of optional
465
+ * middleware implementations that add behaviors.
466
+ *
467
+ * @remarks
468
+ *
469
+ * The middleware are applied in reverse order, i.e. the last one will be
470
+ * "closest" to the base implementation. Passing in `[M1, M2, M3]` effectively
471
+ * leads to `M1(M2(M3(baseImplementation)))`.
472
+ *
473
+ * @public
474
+ */
475
+ declare function createFetchApi(options: {
476
+ baseImplementation?: typeof fetch | undefined;
477
+ middleware?: FetchMiddleware | FetchMiddleware[] | undefined;
478
+ }): FetchApi;
479
+
480
+ /**
481
+ * A collection of common middlewares for the FetchApi.
482
+ *
483
+ * @public
484
+ */
485
+ declare class FetchMiddlewares {
486
+ /**
487
+ * Handles translation from `plugin://` URLs to concrete http(s) URLs based on
488
+ * the discovery API.
489
+ *
490
+ * @remarks
491
+ *
492
+ * If the request is for `plugin://catalog/entities?filter=x=y`, the discovery
493
+ * API will be queried for `'catalog'`. If it returned
494
+ * `https://backstage.example.net/api/catalog`, the resulting query would be
495
+ * `https://backstage.example.net/api/catalog/entities?filter=x=y`.
496
+ *
497
+ * If the incoming URL protocol was not `plugin`, the request is just passed
498
+ * through verbatim to the underlying implementation.
499
+ */
500
+ static resolvePluginProtocol(options: {
501
+ discoveryApi: DiscoveryApi;
502
+ }): FetchMiddleware;
503
+ /**
504
+ * Injects a Backstage token header when the user is signed in.
505
+ *
506
+ * @remarks
507
+ *
508
+ * Per default, an `Authorization: Bearer <token>` is generated. This can be
509
+ * customized using the `header` option.
510
+ *
511
+ * The header injection only happens on allowlisted URLs. Per default, if the
512
+ * `config` option is passed in, the `backend.baseUrl` is allowlisted, unless
513
+ * the `urlPrefixAllowlist` option is passed in, in which case it takes
514
+ * precedence. If you pass in neither config nor an allowlist, the middleware
515
+ * will have no effect.
516
+ */
517
+ static injectIdentityAuth(options: {
518
+ identityApi: IdentityApi;
519
+ config?: Config;
520
+ urlPrefixAllowlist?: string[];
521
+ header?: {
522
+ name: string;
523
+ value: (backstageToken: string) => string;
524
+ };
525
+ }): FetchMiddleware;
526
+ private constructor();
527
+ }
528
+
501
529
  /**
502
530
  * The OAuthRequestManager is an implementation of the OAuthRequestApi.
503
531
  *
@@ -511,9 +539,9 @@ declare class OAuthRequestManager implements OAuthRequestApi {
511
539
  private readonly subject;
512
540
  private currentRequests;
513
541
  private handlerCount;
514
- createAuthRequester<T>(options: AuthRequesterOptions<T>): AuthRequester<T>;
542
+ createAuthRequester<T>(options: OAuthRequesterOptions<T>): OAuthRequester<T>;
515
543
  private makeAuthRequest;
516
- authRequest$(): Observable<PendingAuthRequest[]>;
544
+ authRequest$(): Observable<PendingOAuthRequest[]>;
517
545
  }
518
546
 
519
547
  /**
@@ -530,10 +558,11 @@ declare class WebStorage implements StorageApi {
530
558
  namespace?: string;
531
559
  }): WebStorage;
532
560
  get<T>(key: string): T | undefined;
561
+ snapshot<T extends JsonValue>(key: string): StorageValueSnapshot<T>;
533
562
  forBucket(name: string): WebStorage;
534
563
  set<T>(key: string, data: T): Promise<void>;
535
564
  remove(key: string): Promise<void>;
536
- observe$<T>(key: string): Observable<StorageValueChange<T>>;
565
+ observe$<T>(key: string): Observable<StorageValueSnapshot<T>>;
537
566
  private getKeyName;
538
567
  private notifyChanges;
539
568
  private subscribers;
@@ -681,7 +710,7 @@ declare type TargetRouteMap<ExternalRoutes extends {
681
710
  };
682
711
  /**
683
712
  * A function that can bind from external routes of a given plugin, to concrete
684
- * routes of other plugins. See {@link createApp}.
713
+ * routes of other plugins. See {@link createSpecializedApp}.
685
714
  *
686
715
  * @public
687
716
  */
@@ -689,28 +718,7 @@ declare type AppRouteBinder = <ExternalRoutes extends {
689
718
  [name: string]: ExternalRouteRef;
690
719
  }>(externalRoutes: ExternalRoutes, targetRoutes: PartialKeys<TargetRouteMap<ExternalRoutes>, KeysWithType<ExternalRoutes, ExternalRouteRef<any, true>>>) => void;
691
720
  /**
692
- * Internal helper type that represents a plugin with any type of output.
693
- *
694
- * @public
695
- * @remarks
696
- * @deprecated Will be removed
697
- *
698
- * The `type: string` type is there to handle output from newer or older plugin
699
- * API versions that might not be supported by this version of the app API, but
700
- * we don't want to break at the type checking level. We only use this more
701
- * permissive type for the `createApp` options, as we otherwise want to stick
702
- * to using the type for the outputs that we know about in this version of the
703
- * app api.
704
- *
705
- * TODO(freben): This should be marked internal but that's not supported by the api report generation tools yet
706
- */
707
- declare type BackstagePluginWithAnyOutput = Omit<BackstagePlugin<any, any>, 'output'> & {
708
- output(): (PluginOutput | {
709
- type: string;
710
- })[];
711
- };
712
- /**
713
- * The options accepted by {@link createApp}.
721
+ * The options accepted by {@link createSpecializedApp}.
714
722
  *
715
723
  * @public
716
724
  */
@@ -737,11 +745,14 @@ declare type AppOptions = {
737
745
  /**
738
746
  * A list of all plugins to include in the app.
739
747
  */
740
- plugins?: (Omit<BackstagePlugin<any, any>, 'output'> & {
741
- output(): (PluginOutput | {
748
+ plugins?: Array<BackstagePlugin<any, any> & {
749
+ output?(): Array<{
750
+ type: 'feature-flag';
751
+ name: string;
752
+ } | {
742
753
  type: string;
743
- })[];
744
- })[];
754
+ }>;
755
+ }>;
745
756
  /**
746
757
  * Supply components to the app to override the default ones.
747
758
  */
@@ -810,7 +821,7 @@ declare type AppOptions = {
810
821
  }): void;
811
822
  };
812
823
  /**
813
- * The public API of the output of {@link createApp}.
824
+ * The public API of the output of {@link createSpecializedApp}.
814
825
  *
815
826
  * @public
816
827
  */
@@ -855,21 +866,19 @@ declare type AppContext = {
855
866
  getComponents(): AppComponents;
856
867
  };
857
868
 
858
- /**
859
- * Creates a new Backstage App.
860
- *
861
- * @deprecated Use {@link @backstage/app-defaults#createApp} from `@backstage/app-defaults` instead
862
- * @param options - A set of options for creating the app
863
- * @public
864
- */
865
- declare function createApp(options?: Parameters<typeof createApp$1>[0]): BackstageApp & AppContext;
866
-
867
869
  /**
868
870
  * Creates a new Backstage App where the full set of options are required.
869
871
  *
870
872
  * @public
871
873
  * @param options - A set of options for creating the app
872
874
  * @returns
875
+ * @remarks
876
+ *
877
+ * You will most likely want to use {@link @backstage/app-defaults#createApp},
878
+ * however, this low-level API allows you to provide a full set of options,
879
+ * including your own `components`, `icons`, `defaultApis`, and `themes`. This
880
+ * is particularly useful if you are not using `@backstage/core-components` or
881
+ * MUI, as it allows you to avoid those dependencies completely.
873
882
  */
874
883
  declare function createSpecializedApp(options: AppOptions): BackstageApp;
875
884
 
@@ -928,4 +937,4 @@ declare type FeatureFlaggedProps = {
928
937
  */
929
938
  declare const FeatureFlagged: (props: FeatureFlaggedProps) => JSX.Element;
930
939
 
931
- 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 };
940
+ export { AlertApiForwarder, ApiFactoryHolder, ApiFactoryRegistry, ApiFactoryScope, ApiProvider, ApiProviderProps, ApiResolver, AppComponents, AppConfigLoader, AppContext, AppIcons, AppOptions, AppRouteBinder, AppThemeSelector, AtlassianAuth, Auth0Auth, AuthApiCreateOptions, BackstageApp, BitbucketAuth, BitbucketSession, BootErrorPageProps, ErrorAlerter, ErrorApiForwarder, ErrorBoundaryFallbackProps, FeatureFlagged, FeatureFlaggedProps, FetchMiddleware, FetchMiddlewares, FlatRoutes, FlatRoutesProps, GithubAuth, GithubSession, GitlabAuth, GoogleAuth, LocalStorageFeatureFlags, MicrosoftAuth, NoOpAnalyticsApi, OAuth2, OAuth2CreateOptions, OAuth2Session, OAuthApiCreateOptions, OAuthRequestManager, OktaAuth, OneLoginAuth, OneLoginAuthCreateOptions, SamlAuth, ExportedSamlSession as SamlSession, SignInPageProps, SignInResult, UnhandledErrorForwarder, UrlPatternDiscovery, WebStorage, createFetchApi, createSpecializedApp, defaultConfigLoader };