@backstage/plugin-app 0.4.7-next.0 → 0.5.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,36 @@
1
1
  # @backstage/plugin-app
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6e5fca3: **BREAKING** Changed the default discovery API implementation to use `FrontendHostDiscovery`, which supports the `discovery.endpoints` configuration for per-plugin endpoint overrides. Note that this will start honoring `discovery.endpoints` (including string `target` values), so if you currently use internal-only targets there, update them to the object form and move the internal URL to `target.internal`, omitting `target.external` (or setting it to a browser-reachable URL) to avoid routing the frontend to internal URLs.
8
+
9
+ ### Patch Changes
10
+
11
+ - 33d03ed: fix: make Toast text content selectable
12
+ - Updated dependencies
13
+ - @backstage/core-components@0.18.11
14
+ - @backstage/frontend-plugin-api@0.17.2
15
+ - @backstage/ui@0.16.0
16
+ - @backstage/core-plugin-api@1.12.7
17
+ - @backstage/integration-react@1.2.19
18
+ - @backstage/plugin-app-react@0.2.4
19
+ - @backstage/plugin-permission-react@0.5.2
20
+
21
+ ## 0.4.7-next.1
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies
26
+ - @backstage/frontend-plugin-api@0.17.2-next.0
27
+ - @backstage/core-components@0.18.11-next.1
28
+ - @backstage/ui@0.15.1-next.0
29
+ - @backstage/core-plugin-api@1.12.7-next.0
30
+ - @backstage/plugin-app-react@0.2.4-next.0
31
+ - @backstage/integration-react@1.2.19-next.1
32
+ - @backstage/plugin-permission-react@0.5.2-next.0
33
+
3
34
  ## 0.4.7-next.0
4
35
 
5
36
  ### Patch Changes
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = "/*\n * Copyright 2025 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\n/* Toast Container - Container for all toasts (bottom center) */\n.Toast_container__de4a119ac3 {\n position: fixed;\n bottom: 1rem;\n left: 50%;\n transform: translateX(-50%);\n z-index: 100050;\n width: 300px;\n outline: none;\n}\n\n@media (min-width: 500px) {\n .Toast_container__de4a119ac3 {\n width: 350px;\n bottom: 2rem;\n }\n}\n\n/* Individual Toast */\n.Toast_toast__de4a119ac3 {\n /* CSS Variables */\n --toast-peek: 0.75rem;\n --toast-scale: calc(max(0, 1 - (var(--toast-index) * 0.05)));\n\n /* Layout */\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0 auto;\n box-sizing: border-box;\n\n outline: none;\n cursor: default;\n user-select: none;\n /* All toasts need pointer-events to trigger hover expansion */\n pointer-events: auto;\n\n /* Stacking */\n z-index: calc(1000 - var(--toast-index));\n transform-origin: bottom center;\n}\n\n.Toast_surface__de4a119ac3 {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n padding: var(--bui-space-4);\n gap: var(--bui-space-3);\n border-radius: var(--bui-radius-3);\n font-size: var(--bui-font-size-3);\n background-color: var(--bui-bg-app);\n border: 1px solid var(--bui-border-1);\n color: var(--bui-fg-primary);\n box-shadow: var(--bui-shadow);\n}\n\n.Toast_toast__de4a119ac3:focus-visible {\n outline: 2px solid var(--bui-ring);\n outline-offset: 2px;\n}\n\n/* Extend hover area above each toast to fill gaps when expanded */\n/* This prevents the stack from collapsing when hovering between toasts */\n.Toast_toast__de4a119ac3::before {\n content: '';\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n /* Height matches the expanded gap to ensure continuous hover */\n height: 12px;\n pointer-events: auto;\n}\n\n/* Status variants - color icon and title */\n.Toast_toast__de4a119ac3[data-status='neutral'] .Toast_title__de4a119ac3 {\n color: var(--bui-fg-primary);\n}\n\n.Toast_toast__de4a119ac3[data-status='info'] .Toast_icon__de4a119ac3,\n.Toast_toast__de4a119ac3[data-status='info'] .Toast_title__de4a119ac3 {\n color: var(--bui-fg-info);\n}\n\n.Toast_toast__de4a119ac3[data-status='success'] .Toast_icon__de4a119ac3,\n.Toast_toast__de4a119ac3[data-status='success'] .Toast_title__de4a119ac3 {\n color: var(--bui-fg-success);\n}\n\n.Toast_toast__de4a119ac3[data-status='warning'] .Toast_icon__de4a119ac3,\n.Toast_toast__de4a119ac3[data-status='warning'] .Toast_title__de4a119ac3 {\n color: var(--bui-fg-warning);\n}\n\n.Toast_toast__de4a119ac3[data-status='danger'] .Toast_icon__de4a119ac3,\n.Toast_toast__de4a119ac3[data-status='danger'] .Toast_title__de4a119ac3 {\n color: var(--bui-fg-danger);\n}\n\n.Toast_wrapper__de4a119ac3 {\n display: flex;\n align-items: flex-start;\n gap: var(--bui-space-3);\n flex: 1;\n min-width: 0;\n}\n\n.Toast_content__de4a119ac3 {\n display: flex;\n flex-direction: column;\n gap: var(--bui-space-1);\n}\n\n/* Icon */\n.Toast_icon__de4a119ac3 {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: var(--bui-space-0_5);\n}\n\n.Toast_icon__de4a119ac3 svg {\n width: 1rem;\n height: 1rem;\n}\n\n/* Title */\n.Toast_title__de4a119ac3 {\n font-weight: var(--bui-font-weight-bold);\n font-size: var(--bui-font-size-3);\n word-wrap: break-word;\n margin-top: var(--bui-space-0_5);\n}\n\n/* Description */\n.Toast_description__de4a119ac3 {\n color: var(--bui-fg-secondary);\n font-size: var(--bui-font-size-3);\n opacity: 0.9;\n word-wrap: break-word;\n}\n\n/* Links */\n.Toast_links__de4a119ac3 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bui-space-3);\n margin-top: var(--bui-space-1);\n}\n\n.Toast_links__de4a119ac3 a {\n font-family: var(--bui-font-regular);\n padding: 0;\n margin: 0;\n cursor: pointer;\n display: inline-block;\n\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-thickness: min(2px, max(1px, 0.05em));\n text-underline-offset: calc(0.025em + 2px);\n text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);\n}\n\n.Toast_links__de4a119ac3 a:hover {\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-thickness: min(2px, max(1px, 0.05em));\n text-underline-offset: calc(0.025em + 2px);\n text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);\n}\n\n/* Close Button */\n.Toast_closeButton__de4a119ac3 {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n margin: -0.25rem -0.25rem 0 0;\n padding: 0;\n border: none;\n border-radius: var(--bui-radius-2);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: background-color 0.15s ease;\n color: var(--bui-fg-primary);\n}\n\n.Toast_closeButton__de4a119ac3 svg {\n width: 1rem;\n height: 1rem;\n}\n\n.Toast_closeButton__de4a119ac3:hover {\n background-color: var(--bui-bg-neutral-1-hover);\n}\n\n.Toast_closeButton__de4a119ac3:focus-visible {\n outline: 2px solid var(--bui-ring);\n outline-offset: 1px;\n}\n\n.Toast_closeButton__de4a119ac3:active {\n background-color: var(--bui-bg-neutral-1-pressed);\n}\n";
4
- var styles = {"container":"Toast_container__de4a119ac3","toast":"Toast_toast__de4a119ac3","surface":"Toast_surface__de4a119ac3","title":"Toast_title__de4a119ac3","icon":"Toast_icon__de4a119ac3","wrapper":"Toast_wrapper__de4a119ac3","content":"Toast_content__de4a119ac3","description":"Toast_description__de4a119ac3","links":"Toast_links__de4a119ac3","closeButton":"Toast_closeButton__de4a119ac3"};
3
+ var css_248z = "/*\n * Copyright 2025 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\n/* Toast Container - Container for all toasts (bottom center) */\n.Toast_container__3899d80147 {\n position: fixed;\n bottom: 1rem;\n left: 50%;\n transform: translateX(-50%);\n z-index: 100050;\n width: 300px;\n outline: none;\n}\n\n@media (min-width: 500px) {\n .Toast_container__3899d80147 {\n width: 350px;\n bottom: 2rem;\n }\n}\n\n/* Individual Toast */\n.Toast_toast__3899d80147 {\n /* CSS Variables */\n --toast-peek: 0.75rem;\n --toast-scale: calc(max(0, 1 - (var(--toast-index) * 0.05)));\n\n /* Layout */\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0 auto;\n box-sizing: border-box;\n\n outline: none;\n cursor: default;\n user-select: none;\n /* All toasts need pointer-events to trigger hover expansion */\n pointer-events: auto;\n\n /* Stacking */\n z-index: calc(1000 - var(--toast-index));\n transform-origin: bottom center;\n}\n\n.Toast_surface__3899d80147 {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n padding: var(--bui-space-4);\n gap: var(--bui-space-3);\n border-radius: var(--bui-radius-3);\n font-size: var(--bui-font-size-3);\n background-color: var(--bui-bg-app);\n border: 1px solid var(--bui-border-1);\n color: var(--bui-fg-primary);\n box-shadow: var(--bui-shadow);\n user-select: text;\n}\n.Toast_toast__3899d80147:focus-visible {\n outline: 2px solid var(--bui-ring);\n outline-offset: 2px;\n}\n\n/* Extend hover area above each toast to fill gaps when expanded */\n/* This prevents the stack from collapsing when hovering between toasts */\n.Toast_toast__3899d80147::before {\n content: '';\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n /* Height matches the expanded gap to ensure continuous hover */\n height: 12px;\n pointer-events: auto;\n}\n\n/* Status variants - color icon and title */\n.Toast_toast__3899d80147[data-status='neutral'] .Toast_title__3899d80147 {\n color: var(--bui-fg-primary);\n}\n\n.Toast_toast__3899d80147[data-status='info'] .Toast_icon__3899d80147,\n.Toast_toast__3899d80147[data-status='info'] .Toast_title__3899d80147 {\n color: var(--bui-fg-info);\n}\n\n.Toast_toast__3899d80147[data-status='success'] .Toast_icon__3899d80147,\n.Toast_toast__3899d80147[data-status='success'] .Toast_title__3899d80147 {\n color: var(--bui-fg-success);\n}\n\n.Toast_toast__3899d80147[data-status='warning'] .Toast_icon__3899d80147,\n.Toast_toast__3899d80147[data-status='warning'] .Toast_title__3899d80147 {\n color: var(--bui-fg-warning);\n}\n\n.Toast_toast__3899d80147[data-status='danger'] .Toast_icon__3899d80147,\n.Toast_toast__3899d80147[data-status='danger'] .Toast_title__3899d80147 {\n color: var(--bui-fg-danger);\n}\n\n.Toast_wrapper__3899d80147 {\n display: flex;\n align-items: flex-start;\n gap: var(--bui-space-3);\n flex: 1;\n min-width: 0;\n}\n\n.Toast_content__3899d80147 {\n display: flex;\n flex-direction: column;\n gap: var(--bui-space-1);\n}\n\n/* Icon */\n.Toast_icon__3899d80147 {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: var(--bui-space-0_5);\n}\n\n.Toast_icon__3899d80147 svg {\n width: 1rem;\n height: 1rem;\n}\n\n/* Title */\n.Toast_title__3899d80147 {\n font-weight: var(--bui-font-weight-bold);\n font-size: var(--bui-font-size-3);\n word-wrap: break-word;\n margin-top: var(--bui-space-0_5);\n}\n\n/* Description */\n.Toast_description__3899d80147 {\n color: var(--bui-fg-secondary);\n font-size: var(--bui-font-size-3);\n opacity: 0.9;\n word-wrap: break-word;\n}\n\n/* Links */\n.Toast_links__3899d80147 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bui-space-3);\n margin-top: var(--bui-space-1);\n}\n\n.Toast_links__3899d80147 a {\n font-family: var(--bui-font-regular);\n padding: 0;\n margin: 0;\n cursor: pointer;\n display: inline-block;\n\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-thickness: min(2px, max(1px, 0.05em));\n text-underline-offset: calc(0.025em + 2px);\n text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);\n}\n\n.Toast_links__3899d80147 a:hover {\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-thickness: min(2px, max(1px, 0.05em));\n text-underline-offset: calc(0.025em + 2px);\n text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);\n}\n\n/* Close Button */\n.Toast_closeButton__3899d80147 {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n margin: -0.25rem -0.25rem 0 0;\n padding: 0;\n border: none;\n border-radius: var(--bui-radius-2);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: background-color 0.15s ease;\n color: var(--bui-fg-primary);\n}\n\n.Toast_closeButton__3899d80147 svg {\n width: 1rem;\n height: 1rem;\n}\n\n.Toast_closeButton__3899d80147:hover {\n background-color: var(--bui-bg-neutral-1-hover);\n}\n\n.Toast_closeButton__3899d80147:focus-visible {\n outline: 2px solid var(--bui-ring);\n outline-offset: 1px;\n}\n\n.Toast_closeButton__3899d80147:active {\n background-color: var(--bui-bg-neutral-1-pressed);\n}\n";
4
+ var styles = {"container":"Toast_container__3899d80147","toast":"Toast_toast__3899d80147","surface":"Toast_surface__3899d80147","title":"Toast_title__3899d80147","icon":"Toast_icon__3899d80147","wrapper":"Toast_wrapper__3899d80147","content":"Toast_content__3899d80147","description":"Toast_description__3899d80147","links":"Toast_links__3899d80147","closeButton":"Toast_closeButton__3899d80147"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -14,7 +14,7 @@ import VMwareCloudAuth from './packages/core-app-api/src/apis/implementations/au
14
14
  import OpenShiftAuth from './packages/core-app-api/src/apis/implementations/auth/openshift/OpenShiftAuth.esm.js';
15
15
  import { AlertApiForwarder } from './packages/core-app-api/src/apis/implementations/AlertApi/AlertApiForwarder.esm.js';
16
16
  import '@backstage/config';
17
- import { UrlPatternDiscovery } from './packages/core-app-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.esm.js';
17
+ import { FrontendHostDiscovery } from './packages/core-app-api/src/apis/implementations/DiscoveryApi/FrontendHostDiscovery.esm.js';
18
18
  import { ErrorAlerter } from './packages/core-app-api/src/apis/implementations/ErrorApi/ErrorAlerter.esm.js';
19
19
  import { ErrorApiForwarder } from './packages/core-app-api/src/apis/implementations/ErrorApi/ErrorApiForwarder.esm.js';
20
20
  import { UnhandledErrorForwarder } from './packages/core-app-api/src/apis/implementations/ErrorApi/UnhandledErrorForwarder.esm.js';
@@ -44,9 +44,7 @@ const apis = [
44
44
  params: (defineParams) => defineParams({
45
45
  api: discoveryApiRef,
46
46
  deps: { configApi: configApiRef },
47
- factory: ({ configApi }) => UrlPatternDiscovery.compile(
48
- `${configApi.getString("backend.baseUrl")}/api/{{ pluginId }}`
49
- )
47
+ factory: ({ configApi }) => FrontendHostDiscovery.fromConfig(configApi)
50
48
  })
51
49
  }),
52
50
  ApiBlueprint.make({
@@ -1 +1 @@
1
- {"version":3,"file":"defaultApis.esm.js","sources":["../src/defaultApis.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n// eslint-disable-next-line @backstage/no-relative-monorepo-imports\nimport {\n AlertApiForwarder,\n ErrorApiForwarder,\n ErrorAlerter,\n GoogleAuth,\n GithubAuth,\n OktaAuth,\n GitlabAuth,\n MicrosoftAuth,\n BitbucketAuth,\n BitbucketServerAuth,\n OAuthRequestManager,\n WebStorage,\n UrlPatternDiscovery,\n OneLoginAuth,\n UnhandledErrorForwarder,\n AtlassianAuth,\n createFetchApi,\n FetchMiddlewares,\n VMwareCloudAuth,\n OpenShiftAuth,\n} from '../../../packages/core-app-api/src/apis/implementations';\nimport { ToastApiForwarder, toastApiForwarderRef } from './apis';\n\nimport {\n alertApiRef,\n errorApiRef,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n oauthRequestApiRef,\n googleAuthApiRef,\n githubAuthApiRef,\n oktaAuthApiRef,\n gitlabAuthApiRef,\n microsoftAuthApiRef,\n storageApiRef,\n configApiRef,\n oneloginAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n atlassianAuthApiRef,\n vmwareCloudAuthApiRef,\n openshiftAuthApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n ApiBlueprint,\n dialogApiRef,\n toastApiRef,\n} from '@backstage/frontend-plugin-api';\nimport {\n ScmAuth,\n ScmIntegrationsApi,\n scmIntegrationsApiRef,\n} from '@backstage/integration-react';\nimport {\n permissionApiRef,\n IdentityPermissionApi,\n} from '@backstage/plugin-permission-react';\nimport { DefaultDialogApi } from './apis/DefaultDialogApi';\nimport { analyticsApi } from './extensions/AnalyticsApi';\n\nexport const apis = [\n ApiBlueprint.make({\n name: 'dialog',\n params: defineParams =>\n defineParams({\n api: dialogApiRef,\n deps: {},\n factory: () => new DefaultDialogApi(),\n }),\n }),\n ApiBlueprint.make({\n name: 'discovery',\n params: defineParams =>\n defineParams({\n api: discoveryApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) =>\n UrlPatternDiscovery.compile(\n `${configApi.getString('backend.baseUrl')}/api/{{ pluginId }}`,\n ),\n }),\n }),\n ApiBlueprint.make({\n name: 'alert',\n params: defineParams =>\n defineParams({\n api: alertApiRef,\n deps: {},\n factory: () => new AlertApiForwarder(),\n }),\n }),\n ApiBlueprint.make({\n name: 'toast-forwarder',\n params: defineParams =>\n defineParams({\n api: toastApiForwarderRef,\n deps: {},\n factory: () => new ToastApiForwarder(),\n }),\n }),\n ApiBlueprint.make({\n name: 'toast',\n params: defineParams =>\n defineParams({\n api: toastApiRef,\n deps: { forwarder: toastApiForwarderRef },\n factory: ({ forwarder }) => forwarder,\n }),\n }),\n analyticsApi,\n ApiBlueprint.make({\n name: 'error',\n params: defineParams =>\n defineParams({\n api: errorApiRef,\n deps: { alertApi: alertApiRef },\n factory: ({ alertApi }) => {\n const errorApi = new ErrorAlerter(alertApi, new ErrorApiForwarder());\n UnhandledErrorForwarder.forward(errorApi, { hidden: false });\n return errorApi;\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'storage',\n params: defineParams =>\n defineParams({\n api: storageApiRef,\n deps: { errorApi: errorApiRef },\n factory: ({ errorApi }) => WebStorage.create({ errorApi }),\n }),\n }),\n ApiBlueprint.make({\n name: 'fetch',\n params: defineParams =>\n defineParams({\n api: fetchApiRef,\n deps: {\n configApi: configApiRef,\n identityApi: identityApiRef,\n discoveryApi: discoveryApiRef,\n },\n factory: ({ configApi, identityApi, discoveryApi }) => {\n return createFetchApi({\n middleware: [\n FetchMiddlewares.resolvePluginProtocol({\n discoveryApi,\n }),\n FetchMiddlewares.injectIdentityAuth({\n identityApi,\n config: configApi,\n }),\n ],\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'oauth-request',\n params: defineParams =>\n defineParams({\n api: oauthRequestApiRef,\n deps: {},\n factory: () => new OAuthRequestManager(),\n }),\n }),\n ApiBlueprint.make({\n name: 'google-auth',\n params: defineParams =>\n defineParams({\n api: googleAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GoogleAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'microsoft-auth',\n params: defineParams =>\n defineParams({\n api: microsoftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n MicrosoftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'github-auth',\n params: defineParams =>\n defineParams({\n api: githubAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GithubAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['read:user'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'okta-auth',\n params: defineParams =>\n defineParams({\n api: oktaAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OktaAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'gitlab-auth',\n params: defineParams =>\n defineParams({\n api: gitlabAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GitlabAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'onelogin-auth',\n params: defineParams =>\n defineParams({\n api: oneloginAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OneLoginAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'bitbucket-auth',\n params: defineParams =>\n defineParams({\n api: bitbucketAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['account'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'bitbucket-server-auth',\n params: defineParams =>\n defineParams({\n api: bitbucketServerAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketServerAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['REPO_READ'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'atlassian-auth',\n params: defineParams =>\n defineParams({\n api: atlassianAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return AtlassianAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'vmware-cloud-auth',\n params: defineParams =>\n defineParams({\n api: vmwareCloudAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return VMwareCloudAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'openshift-auth',\n params: defineParams =>\n defineParams({\n api: openshiftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return OpenShiftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'permission',\n params: defineParams =>\n defineParams({\n api: permissionApiRef,\n deps: {\n discovery: discoveryApiRef,\n identity: identityApiRef,\n config: configApiRef,\n },\n factory: ({ config, discovery, identity }) =>\n IdentityPermissionApi.create({ config, discovery, identity }),\n }),\n }),\n ApiBlueprint.make({\n name: 'scm-auth',\n params: defineParams => defineParams(ScmAuth.createDefaultApiFactory()),\n }),\n ApiBlueprint.make({\n name: 'scm-integrations',\n params: defineParams =>\n defineParams({\n api: scmIntegrationsApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) => ScmIntegrationsApi.fromConfig(configApi),\n }),\n }),\n] as const;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaultApis.esm.js","sources":["../src/defaultApis.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n// eslint-disable-next-line @backstage/no-relative-monorepo-imports\nimport {\n AlertApiForwarder,\n ErrorApiForwarder,\n ErrorAlerter,\n FrontendHostDiscovery,\n GoogleAuth,\n GithubAuth,\n OktaAuth,\n GitlabAuth,\n MicrosoftAuth,\n BitbucketAuth,\n BitbucketServerAuth,\n OAuthRequestManager,\n WebStorage,\n OneLoginAuth,\n UnhandledErrorForwarder,\n AtlassianAuth,\n createFetchApi,\n FetchMiddlewares,\n VMwareCloudAuth,\n OpenShiftAuth,\n} from '../../../packages/core-app-api/src/apis/implementations';\nimport { ToastApiForwarder, toastApiForwarderRef } from './apis';\n\nimport {\n alertApiRef,\n errorApiRef,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n oauthRequestApiRef,\n googleAuthApiRef,\n githubAuthApiRef,\n oktaAuthApiRef,\n gitlabAuthApiRef,\n microsoftAuthApiRef,\n storageApiRef,\n configApiRef,\n oneloginAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n atlassianAuthApiRef,\n vmwareCloudAuthApiRef,\n openshiftAuthApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n ApiBlueprint,\n dialogApiRef,\n toastApiRef,\n} from '@backstage/frontend-plugin-api';\nimport {\n ScmAuth,\n ScmIntegrationsApi,\n scmIntegrationsApiRef,\n} from '@backstage/integration-react';\nimport {\n permissionApiRef,\n IdentityPermissionApi,\n} from '@backstage/plugin-permission-react';\nimport { DefaultDialogApi } from './apis/DefaultDialogApi';\nimport { analyticsApi } from './extensions/AnalyticsApi';\n\nexport const apis = [\n ApiBlueprint.make({\n name: 'dialog',\n params: defineParams =>\n defineParams({\n api: dialogApiRef,\n deps: {},\n factory: () => new DefaultDialogApi(),\n }),\n }),\n ApiBlueprint.make({\n name: 'discovery',\n params: defineParams =>\n defineParams({\n api: discoveryApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) => FrontendHostDiscovery.fromConfig(configApi),\n }),\n }),\n ApiBlueprint.make({\n name: 'alert',\n params: defineParams =>\n defineParams({\n api: alertApiRef,\n deps: {},\n factory: () => new AlertApiForwarder(),\n }),\n }),\n ApiBlueprint.make({\n name: 'toast-forwarder',\n params: defineParams =>\n defineParams({\n api: toastApiForwarderRef,\n deps: {},\n factory: () => new ToastApiForwarder(),\n }),\n }),\n ApiBlueprint.make({\n name: 'toast',\n params: defineParams =>\n defineParams({\n api: toastApiRef,\n deps: { forwarder: toastApiForwarderRef },\n factory: ({ forwarder }) => forwarder,\n }),\n }),\n analyticsApi,\n ApiBlueprint.make({\n name: 'error',\n params: defineParams =>\n defineParams({\n api: errorApiRef,\n deps: { alertApi: alertApiRef },\n factory: ({ alertApi }) => {\n const errorApi = new ErrorAlerter(alertApi, new ErrorApiForwarder());\n UnhandledErrorForwarder.forward(errorApi, { hidden: false });\n return errorApi;\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'storage',\n params: defineParams =>\n defineParams({\n api: storageApiRef,\n deps: { errorApi: errorApiRef },\n factory: ({ errorApi }) => WebStorage.create({ errorApi }),\n }),\n }),\n ApiBlueprint.make({\n name: 'fetch',\n params: defineParams =>\n defineParams({\n api: fetchApiRef,\n deps: {\n configApi: configApiRef,\n identityApi: identityApiRef,\n discoveryApi: discoveryApiRef,\n },\n factory: ({ configApi, identityApi, discoveryApi }) => {\n return createFetchApi({\n middleware: [\n FetchMiddlewares.resolvePluginProtocol({\n discoveryApi,\n }),\n FetchMiddlewares.injectIdentityAuth({\n identityApi,\n config: configApi,\n }),\n ],\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'oauth-request',\n params: defineParams =>\n defineParams({\n api: oauthRequestApiRef,\n deps: {},\n factory: () => new OAuthRequestManager(),\n }),\n }),\n ApiBlueprint.make({\n name: 'google-auth',\n params: defineParams =>\n defineParams({\n api: googleAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GoogleAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'microsoft-auth',\n params: defineParams =>\n defineParams({\n api: microsoftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n MicrosoftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'github-auth',\n params: defineParams =>\n defineParams({\n api: githubAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GithubAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['read:user'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'okta-auth',\n params: defineParams =>\n defineParams({\n api: oktaAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OktaAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'gitlab-auth',\n params: defineParams =>\n defineParams({\n api: gitlabAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GitlabAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'onelogin-auth',\n params: defineParams =>\n defineParams({\n api: oneloginAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OneLoginAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'bitbucket-auth',\n params: defineParams =>\n defineParams({\n api: bitbucketAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['account'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'bitbucket-server-auth',\n params: defineParams =>\n defineParams({\n api: bitbucketServerAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketServerAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['REPO_READ'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n }),\n ApiBlueprint.make({\n name: 'atlassian-auth',\n params: defineParams =>\n defineParams({\n api: atlassianAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return AtlassianAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'vmware-cloud-auth',\n params: defineParams =>\n defineParams({\n api: vmwareCloudAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return VMwareCloudAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'openshift-auth',\n params: defineParams =>\n defineParams({\n api: openshiftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return OpenShiftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n }),\n ApiBlueprint.make({\n name: 'permission',\n params: defineParams =>\n defineParams({\n api: permissionApiRef,\n deps: {\n discovery: discoveryApiRef,\n identity: identityApiRef,\n config: configApiRef,\n },\n factory: ({ config, discovery, identity }) =>\n IdentityPermissionApi.create({ config, discovery, identity }),\n }),\n }),\n ApiBlueprint.make({\n name: 'scm-auth',\n params: defineParams => defineParams(ScmAuth.createDefaultApiFactory()),\n }),\n ApiBlueprint.make({\n name: 'scm-integrations',\n params: defineParams =>\n defineParams({\n api: scmIntegrationsApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) => ScmIntegrationsApi.fromConfig(configApi),\n }),\n }),\n] as const;\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,35 @@
1
1
  import { FrontendHostDiscovery, AlertApiForwarder, NoOpAnalyticsApi, ErrorAlerter, ErrorApiForwarder, UnhandledErrorForwarder, WebStorage, createFetchApi, FetchMiddlewares, OAuthRequestManager, GoogleAuth, MicrosoftAuth, GithubAuth, OktaAuth, GitlabAuth, OneLoginAuth, BitbucketAuth, BitbucketServerAuth, AtlassianAuth, VMwareCloudAuth, OpenShiftAuth } from '@backstage/core-app-api';
2
2
  import { createApiFactory, configApiRef, discoveryApiRef, alertApiRef, analyticsApiRef, errorApiRef, storageApiRef, identityApiRef, fetchApiRef, oauthRequestApiRef, googleAuthApiRef, microsoftAuthApiRef, githubAuthApiRef, oktaAuthApiRef, gitlabAuthApiRef, oneloginAuthApiRef, bitbucketAuthApiRef, bitbucketServerAuthApiRef, atlassianAuthApiRef, vmwareCloudAuthApiRef, openshiftAuthApiRef } from '@backstage/core-plugin-api';
3
3
  import { permissionApiRef, IdentityPermissionApi } from '@backstage/plugin-permission-react';
4
+ import { toastApiRef } from '@backstage/frontend-plugin-api';
5
+ import { isValidElement } from 'react';
4
6
 
7
+ const reactNodeToString = (node) => {
8
+ if (node === null || node === void 0) {
9
+ return "";
10
+ }
11
+ if (typeof node === "string") {
12
+ return node;
13
+ }
14
+ if (Array.isArray(node)) {
15
+ return node.map(reactNodeToString).join(" ");
16
+ }
17
+ if (isValidElement(node)) {
18
+ return reactNodeToString(node.props.children);
19
+ }
20
+ return "";
21
+ };
22
+ const toastStatusToSeverity = (message) => {
23
+ const toastStatus = message.status ?? "success";
24
+ switch (toastStatus) {
25
+ case "warning":
26
+ return "warning";
27
+ case "danger":
28
+ return "error";
29
+ default:
30
+ return "info";
31
+ }
32
+ };
5
33
  [
6
34
  createApiFactory({
7
35
  api: discoveryApiRef,
@@ -230,6 +258,24 @@ import { permissionApiRef, IdentityPermissionApi } from '@backstage/plugin-permi
230
258
  config: configApiRef
231
259
  },
232
260
  factory: ({ config, discovery, identity }) => IdentityPermissionApi.create({ config, discovery, identity })
261
+ }),
262
+ createApiFactory({
263
+ api: toastApiRef,
264
+ deps: { alertApi: alertApiRef },
265
+ factory: ({ alertApi }) => ({
266
+ post(toast) {
267
+ const message = reactNodeToString(toast?.title);
268
+ alertApi.post({
269
+ message,
270
+ severity: toastStatusToSeverity(toast),
271
+ display: "transient"
272
+ });
273
+ return {
274
+ close: () => {
275
+ }
276
+ };
277
+ }
278
+ })
233
279
  })
234
280
  ];
235
281
  //# sourceMappingURL=apis.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apis.esm.js","sources":["../../../../../../../packages/app-defaults/src/defaults/apis.ts"],"sourcesContent":["/*\n * Copyright 2020 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 {\n AlertApiForwarder,\n NoOpAnalyticsApi,\n ErrorApiForwarder,\n ErrorAlerter,\n GoogleAuth,\n GithubAuth,\n OktaAuth,\n GitlabAuth,\n MicrosoftAuth,\n BitbucketAuth,\n BitbucketServerAuth,\n OAuthRequestManager,\n WebStorage,\n OneLoginAuth,\n UnhandledErrorForwarder,\n AtlassianAuth,\n createFetchApi,\n FetchMiddlewares,\n VMwareCloudAuth,\n FrontendHostDiscovery,\n OpenShiftAuth,\n} from '@backstage/core-app-api';\n\nimport {\n createApiFactory,\n alertApiRef,\n analyticsApiRef,\n errorApiRef,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n oauthRequestApiRef,\n googleAuthApiRef,\n githubAuthApiRef,\n oktaAuthApiRef,\n gitlabAuthApiRef,\n microsoftAuthApiRef,\n storageApiRef,\n configApiRef,\n oneloginAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n atlassianAuthApiRef,\n vmwareCloudAuthApiRef,\n openshiftAuthApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n permissionApiRef,\n IdentityPermissionApi,\n} from '@backstage/plugin-permission-react';\n\nexport const apis = [\n createApiFactory({\n api: discoveryApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) => FrontendHostDiscovery.fromConfig(configApi),\n }),\n createApiFactory({\n api: alertApiRef,\n deps: {},\n factory: () => new AlertApiForwarder(),\n }),\n createApiFactory({\n api: analyticsApiRef,\n deps: {},\n factory: () => new NoOpAnalyticsApi(),\n }),\n createApiFactory({\n api: errorApiRef,\n deps: { alertApi: alertApiRef },\n factory: ({ alertApi }) => {\n const errorApi = new ErrorAlerter(alertApi, new ErrorApiForwarder());\n UnhandledErrorForwarder.forward(errorApi, { hidden: false });\n return errorApi;\n },\n }),\n createApiFactory({\n api: storageApiRef,\n deps: { errorApi: errorApiRef },\n factory: ({ errorApi }) => WebStorage.create({ errorApi }),\n }),\n createApiFactory({\n api: fetchApiRef,\n deps: {\n configApi: configApiRef,\n identityApi: identityApiRef,\n discoveryApi: discoveryApiRef,\n },\n factory: ({ configApi, identityApi, discoveryApi }) => {\n return createFetchApi({\n middleware: [\n FetchMiddlewares.resolvePluginProtocol({\n discoveryApi,\n }),\n FetchMiddlewares.injectIdentityAuth({\n identityApi,\n config: configApi,\n }),\n FetchMiddlewares.clarifyFailures(),\n ],\n });\n },\n }),\n createApiFactory({\n api: oauthRequestApiRef,\n deps: {},\n factory: () => new OAuthRequestManager(),\n }),\n createApiFactory({\n api: googleAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GoogleAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: microsoftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n MicrosoftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: githubAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GithubAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['read:user'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: oktaAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OktaAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: gitlabAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GitlabAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: oneloginAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OneLoginAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: bitbucketAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['account'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: bitbucketServerAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketServerAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['REPO_READ'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: atlassianAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return AtlassianAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: vmwareCloudAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return VMwareCloudAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: openshiftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return OpenShiftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: permissionApiRef,\n deps: {\n discovery: discoveryApiRef,\n identity: identityApiRef,\n config: configApiRef,\n },\n factory: ({ config, discovery, identity }) =>\n IdentityPermissionApi.create({ config, discovery, identity }),\n }),\n];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apis.esm.js","sources":["../../../../../../../packages/app-defaults/src/defaults/apis.ts"],"sourcesContent":["/*\n * Copyright 2020 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 {\n AlertApiForwarder,\n NoOpAnalyticsApi,\n ErrorApiForwarder,\n ErrorAlerter,\n GoogleAuth,\n GithubAuth,\n OktaAuth,\n GitlabAuth,\n MicrosoftAuth,\n BitbucketAuth,\n BitbucketServerAuth,\n OAuthRequestManager,\n WebStorage,\n OneLoginAuth,\n UnhandledErrorForwarder,\n AtlassianAuth,\n createFetchApi,\n FetchMiddlewares,\n VMwareCloudAuth,\n FrontendHostDiscovery,\n OpenShiftAuth,\n} from '@backstage/core-app-api';\n\nimport {\n createApiFactory,\n alertApiRef,\n analyticsApiRef,\n errorApiRef,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n oauthRequestApiRef,\n googleAuthApiRef,\n githubAuthApiRef,\n oktaAuthApiRef,\n gitlabAuthApiRef,\n microsoftAuthApiRef,\n storageApiRef,\n configApiRef,\n oneloginAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n atlassianAuthApiRef,\n vmwareCloudAuthApiRef,\n openshiftAuthApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n permissionApiRef,\n IdentityPermissionApi,\n} from '@backstage/plugin-permission-react';\nimport { ToastApiMessage, toastApiRef } from '@backstage/frontend-plugin-api';\nimport { isValidElement } from 'react';\n\nconst reactNodeToString = (\n node: React.ReactNode | null | undefined,\n): string => {\n if (node === null || node === undefined) {\n return '';\n }\n if (typeof node === 'string') {\n return node;\n }\n if (Array.isArray(node)) {\n return node.map(reactNodeToString).join(' ');\n }\n if (isValidElement(node)) {\n return reactNodeToString(node.props.children);\n }\n return '';\n};\n\nconst toastStatusToSeverity = (message: ToastApiMessage) => {\n // 'success' | 'info' | 'warning' | 'error'\n const toastStatus = message.status ?? 'success';\n switch (toastStatus) {\n case 'warning':\n return 'warning';\n case 'danger':\n return 'error';\n default:\n return 'info';\n }\n};\n\nexport const apis = [\n createApiFactory({\n api: discoveryApiRef,\n deps: { configApi: configApiRef },\n factory: ({ configApi }) => FrontendHostDiscovery.fromConfig(configApi),\n }),\n createApiFactory({\n api: alertApiRef,\n deps: {},\n factory: () => new AlertApiForwarder(),\n }),\n createApiFactory({\n api: analyticsApiRef,\n deps: {},\n factory: () => new NoOpAnalyticsApi(),\n }),\n createApiFactory({\n api: errorApiRef,\n deps: { alertApi: alertApiRef },\n factory: ({ alertApi }) => {\n const errorApi = new ErrorAlerter(alertApi, new ErrorApiForwarder());\n UnhandledErrorForwarder.forward(errorApi, { hidden: false });\n return errorApi;\n },\n }),\n createApiFactory({\n api: storageApiRef,\n deps: { errorApi: errorApiRef },\n factory: ({ errorApi }) => WebStorage.create({ errorApi }),\n }),\n createApiFactory({\n api: fetchApiRef,\n deps: {\n configApi: configApiRef,\n identityApi: identityApiRef,\n discoveryApi: discoveryApiRef,\n },\n factory: ({ configApi, identityApi, discoveryApi }) => {\n return createFetchApi({\n middleware: [\n FetchMiddlewares.resolvePluginProtocol({\n discoveryApi,\n }),\n FetchMiddlewares.injectIdentityAuth({\n identityApi,\n config: configApi,\n }),\n FetchMiddlewares.clarifyFailures(),\n ],\n });\n },\n }),\n createApiFactory({\n api: oauthRequestApiRef,\n deps: {},\n factory: () => new OAuthRequestManager(),\n }),\n createApiFactory({\n api: googleAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GoogleAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: microsoftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n MicrosoftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: githubAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GithubAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['read:user'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: oktaAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OktaAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: gitlabAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n GitlabAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: oneloginAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n OneLoginAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: bitbucketAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['account'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: bitbucketServerAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) =>\n BitbucketServerAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n defaultScopes: ['REPO_READ'],\n environment: configApi.getOptionalString('auth.environment'),\n }),\n }),\n createApiFactory({\n api: atlassianAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return AtlassianAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: vmwareCloudAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return VMwareCloudAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: openshiftAuthApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n oauthRequestApi: oauthRequestApiRef,\n configApi: configApiRef,\n },\n factory: ({ discoveryApi, oauthRequestApi, configApi }) => {\n return OpenShiftAuth.create({\n configApi,\n discoveryApi,\n oauthRequestApi,\n environment: configApi.getOptionalString('auth.environment'),\n });\n },\n }),\n createApiFactory({\n api: permissionApiRef,\n deps: {\n discovery: discoveryApiRef,\n identity: identityApiRef,\n config: configApiRef,\n },\n factory: ({ config, discovery, identity }) =>\n IdentityPermissionApi.create({ config, discovery, identity }),\n }),\n createApiFactory({\n api: toastApiRef,\n deps: { alertApi: alertApiRef },\n factory: ({ alertApi }) => ({\n post(toast: ToastApiMessage) {\n const message = reactNodeToString(toast?.title);\n alertApi.post({\n message,\n severity: toastStatusToSeverity(toast),\n display: 'transient',\n });\n\n return {\n close: () => {},\n };\n },\n }),\n }),\n];\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { UrlPatternDiscovery } from './UrlPatternDiscovery.esm.js';
2
+
3
+ class FrontendHostDiscovery {
4
+ /**
5
+ * Creates a new FrontendHostDiscovery discovery instance by reading
6
+ * the external target URL from the `discovery.endpoints` config section.
7
+ *
8
+ * eg.
9
+ * ```yaml
10
+ * discovery:
11
+ * endpoints:
12
+ * - target: https://internal.example.com/internal-catalog
13
+ * plugins: [catalog]
14
+ * - target: https://internal.example.com/secure/api/{{pluginId}}
15
+ * plugins: [auth, permissions]
16
+ * - target:
17
+ * internal: https://internal.example.com/search
18
+ * external: https://example.com/search
19
+ * plugins: [search]
20
+ * ```
21
+ *
22
+ * If a plugin is not declared in the config, the discovery will fall back to using the baseUrl with
23
+ * the provided `pathPattern` appended. The default path pattern is `"/api/{{ pluginId }}"`.
24
+ */
25
+ static fromConfig(config, options) {
26
+ const path = options?.pathPattern ?? "/api/{{ pluginId }}";
27
+ const baseUrl = config.getString("backend.baseUrl");
28
+ const endpoints = config.getOptionalConfigArray("discovery.endpoints")?.flatMap((e) => {
29
+ const target = typeof e.get("target") === "object" ? e.getOptionalString("target.external") : e.getString("target");
30
+ if (!target) {
31
+ return [];
32
+ }
33
+ const discovery = UrlPatternDiscovery.compile(target);
34
+ return e.getStringArray("plugins").map((pluginId) => [pluginId, discovery]);
35
+ });
36
+ return new FrontendHostDiscovery(
37
+ new Map(endpoints),
38
+ UrlPatternDiscovery.compile(`${baseUrl}${path}`)
39
+ );
40
+ }
41
+ endpoints;
42
+ defaultEndpoint;
43
+ constructor(endpoints, defaultEndpoint) {
44
+ this.endpoints = endpoints;
45
+ this.defaultEndpoint = defaultEndpoint;
46
+ }
47
+ async getBaseUrl(pluginId) {
48
+ const endpoint = this.endpoints.get(pluginId);
49
+ if (endpoint) {
50
+ return endpoint.getBaseUrl(pluginId);
51
+ }
52
+ return this.defaultEndpoint.getBaseUrl(pluginId);
53
+ }
54
+ }
55
+
56
+ export { FrontendHostDiscovery };
57
+ //# sourceMappingURL=FrontendHostDiscovery.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrontendHostDiscovery.esm.js","sources":["../../../../../../../../../packages/core-app-api/src/apis/implementations/DiscoveryApi/FrontendHostDiscovery.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 */\nimport { Config } from '@backstage/config';\nimport { DiscoveryApi } from '@backstage/core-plugin-api';\nimport { UrlPatternDiscovery } from './UrlPatternDiscovery';\n\n/**\n * FrontendHostDiscovery is a config driven DiscoveryApi implementation.\n * It uses the app-config to determine the url for a plugin.\n *\n * @public\n */\nexport class FrontendHostDiscovery implements DiscoveryApi {\n /**\n * Creates a new FrontendHostDiscovery discovery instance by reading\n * the external target URL from the `discovery.endpoints` config section.\n *\n * eg.\n * ```yaml\n * discovery:\n * endpoints:\n * - target: https://internal.example.com/internal-catalog\n * plugins: [catalog]\n * - target: https://internal.example.com/secure/api/{{pluginId}}\n * plugins: [auth, permissions]\n * - target:\n * internal: https://internal.example.com/search\n * external: https://example.com/search\n * plugins: [search]\n * ```\n *\n * If a plugin is not declared in the config, the discovery will fall back to using the baseUrl with\n * the provided `pathPattern` appended. The default path pattern is `\"/api/{{ pluginId }}\"`.\n */\n static fromConfig(config: Config, options?: { pathPattern?: string }) {\n const path = options?.pathPattern ?? '/api/{{ pluginId }}';\n const baseUrl = config.getString('backend.baseUrl');\n\n const endpoints = config\n .getOptionalConfigArray('discovery.endpoints')\n ?.flatMap(e => {\n const target =\n typeof e.get('target') === 'object'\n ? e.getOptionalString('target.external')\n : e.getString('target');\n if (!target) {\n return [];\n }\n const discovery = UrlPatternDiscovery.compile(target);\n return e\n .getStringArray('plugins')\n .map(pluginId => [pluginId, discovery] as const);\n });\n\n return new FrontendHostDiscovery(\n new Map(endpoints),\n UrlPatternDiscovery.compile(`${baseUrl}${path}`),\n );\n }\n\n private readonly endpoints: Map<string, DiscoveryApi>;\n private readonly defaultEndpoint: DiscoveryApi;\n\n private constructor(\n endpoints: Map<string, DiscoveryApi>,\n defaultEndpoint: DiscoveryApi,\n ) {\n this.endpoints = endpoints;\n this.defaultEndpoint = defaultEndpoint;\n }\n\n async getBaseUrl(pluginId: string): Promise<string> {\n const endpoint = this.endpoints.get(pluginId);\n if (endpoint) {\n return endpoint.getBaseUrl(pluginId);\n }\n return this.defaultEndpoint.getBaseUrl(pluginId);\n }\n}\n"],"names":[],"mappings":";;AAyBO,MAAM,qBAAA,CAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBzD,OAAO,UAAA,CAAW,MAAA,EAAgB,OAAA,EAAoC;AACpE,IAAA,MAAM,IAAA,GAAO,SAAS,WAAA,IAAe,qBAAA;AACrC,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,SAAA,CAAU,iBAAiB,CAAA;AAElD,IAAA,MAAM,YAAY,MAAA,CACf,sBAAA,CAAuB,qBAAqB,CAAA,EAC3C,QAAQ,CAAA,CAAA,KAAK;AACb,MAAA,MAAM,MAAA,GACJ,OAAO,CAAA,CAAE,GAAA,CAAI,QAAQ,CAAA,KAAM,QAAA,GACvB,CAAA,CAAE,iBAAA,CAAkB,iBAAiB,CAAA,GACrC,CAAA,CAAE,UAAU,QAAQ,CAAA;AAC1B,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,OAAO,EAAC;AAAA,MACV;AACA,MAAA,MAAM,SAAA,GAAY,mBAAA,CAAoB,OAAA,CAAQ,MAAM,CAAA;AACpD,MAAA,OAAO,CAAA,CACJ,eAAe,SAAS,CAAA,CACxB,IAAI,CAAA,QAAA,KAAY,CAAC,QAAA,EAAU,SAAS,CAAU,CAAA;AAAA,IACnD,CAAC,CAAA;AAEH,IAAA,OAAO,IAAI,qBAAA;AAAA,MACT,IAAI,IAAI,SAAS,CAAA;AAAA,MACjB,oBAAoB,OAAA,CAAQ,CAAA,EAAG,OAAO,CAAA,EAAG,IAAI,CAAA,CAAE;AAAA,KACjD;AAAA,EACF;AAAA,EAEiB,SAAA;AAAA,EACA,eAAA;AAAA,EAET,WAAA,CACN,WACA,eAAA,EACA;AACA,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,eAAA,GAAkB,eAAA;AAAA,EACzB;AAAA,EAEA,MAAM,WAAW,QAAA,EAAmC;AAClD,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AAC5C,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,QAAA,CAAS,WAAW,QAAQ,CAAA;AAAA,IACrC;AACA,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,UAAA,CAAW,QAAQ,CAAA;AAAA,EACjD;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-app";
2
- var version = "0.4.7-next.0";
2
+ var version = "0.5.0";
3
3
  var backstage = {
4
4
  role: "frontend-plugin",
5
5
  pluginId: "app",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-app",
3
- "version": "0.4.7-next.0",
3
+ "version": "0.5.0",
4
4
  "backstage": {
5
5
  "role": "frontend-plugin",
6
6
  "pluginId": "app",
@@ -63,17 +63,17 @@
63
63
  "test": "backstage-cli package test"
64
64
  },
65
65
  "dependencies": {
66
- "@backstage/core-components": "0.18.11-next.0",
67
- "@backstage/core-plugin-api": "1.12.6",
68
- "@backstage/filter-predicates": "0.1.3",
69
- "@backstage/frontend-plugin-api": "0.17.0",
70
- "@backstage/integration-react": "1.2.19-next.0",
71
- "@backstage/plugin-app-react": "0.2.3",
72
- "@backstage/plugin-permission-react": "0.5.1",
73
- "@backstage/theme": "0.7.3",
74
- "@backstage/types": "1.2.2",
75
- "@backstage/ui": "0.15.0",
76
- "@backstage/version-bridge": "1.0.12",
66
+ "@backstage/core-components": "^0.18.11",
67
+ "@backstage/core-plugin-api": "^1.12.7",
68
+ "@backstage/filter-predicates": "^0.1.3",
69
+ "@backstage/frontend-plugin-api": "^0.17.2",
70
+ "@backstage/integration-react": "^1.2.19",
71
+ "@backstage/plugin-app-react": "^0.2.4",
72
+ "@backstage/plugin-permission-react": "^0.5.2",
73
+ "@backstage/theme": "^0.7.3",
74
+ "@backstage/types": "^1.2.2",
75
+ "@backstage/ui": "^0.16.0",
76
+ "@backstage/version-bridge": "^1.0.12",
77
77
  "@material-ui/core": "^4.9.13",
78
78
  "@material-ui/icons": "^4.9.1",
79
79
  "@material-ui/lab": "^4.0.0-alpha.61",
@@ -87,11 +87,11 @@
87
87
  "zod": "^4.0.0"
88
88
  },
89
89
  "devDependencies": {
90
- "@backstage/cli": "0.36.3-next.0",
91
- "@backstage/dev-utils": "1.1.24-next.0",
92
- "@backstage/frontend-defaults": "0.5.3-next.0",
93
- "@backstage/frontend-test-utils": "0.6.1-next.0",
94
- "@backstage/test-utils": "1.7.18",
90
+ "@backstage/cli": "^0.36.3",
91
+ "@backstage/dev-utils": "^1.1.24",
92
+ "@backstage/frontend-defaults": "^0.5.3",
93
+ "@backstage/frontend-test-utils": "^0.6.1",
94
+ "@backstage/test-utils": "^1.7.19",
95
95
  "@testing-library/jest-dom": "^6.0.0",
96
96
  "@testing-library/react": "^16.0.0",
97
97
  "@testing-library/user-event": "^14.0.0",