@backstage/plugin-app 0.4.7-next.1 → 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,23 @@
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
+
3
21
  ## 0.4.7-next.1
4
22
 
5
23
  ### 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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"}
@@ -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.1";
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.1",
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.1",
67
- "@backstage/core-plugin-api": "1.12.7-next.0",
68
- "@backstage/filter-predicates": "0.1.3",
69
- "@backstage/frontend-plugin-api": "0.17.2-next.0",
70
- "@backstage/integration-react": "1.2.19-next.1",
71
- "@backstage/plugin-app-react": "0.2.4-next.0",
72
- "@backstage/plugin-permission-react": "0.5.2-next.0",
73
- "@backstage/theme": "0.7.3",
74
- "@backstage/types": "1.2.2",
75
- "@backstage/ui": "0.15.1-next.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.1",
91
- "@backstage/dev-utils": "1.1.24-next.1",
92
- "@backstage/frontend-defaults": "0.5.3-next.1",
93
- "@backstage/frontend-test-utils": "0.6.1-next.1",
94
- "@backstage/test-utils": "1.7.19-next.0",
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",