@backstage/core-plugin-api 1.12.2 → 1.12.3-next.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,12 +1,17 @@
1
1
  # @backstage/core-plugin-api
2
2
 
3
- ## 1.12.2
3
+ ## 1.12.2-next.0
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 5683c85: Bump to latest zod to ensure it has the latest features
7
+ - 53b6549: Plugins in the new frontend system now have a `pluginId` field rather than `id` to better align with naming conventions used throughout the frontend and backend systems. The old field is still present but marked as deprecated. All internal code has been updated to prefer `pluginId` while maintaining backward compatibility by falling back to `id` when needed.
8
+ - 69d880e: Bump to latest zod to ensure it has the latest features
8
9
  - Updated dependencies
9
- - @backstage/frontend-plugin-api@0.13.4
10
+ - @backstage/frontend-plugin-api@0.14.0-next.0
11
+ - @backstage/config@1.3.6
12
+ - @backstage/errors@1.2.7
13
+ - @backstage/types@1.2.2
14
+ - @backstage/version-bridge@1.0.11
10
15
 
11
16
  ## 1.12.1
12
17
 
@@ -18,7 +18,7 @@ function toLegacyPlugin(plugin) {
18
18
  };
19
19
  legacy = {
20
20
  getId() {
21
- return plugin.id;
21
+ return plugin.pluginId ?? plugin.id;
22
22
  },
23
23
  get routes() {
24
24
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"useApp.esm.js","sources":["../../src/app/useApp.tsx"],"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 { useMemo } from 'react';\nimport { useVersionedContext } from '@backstage/version-bridge';\nimport {\n appTreeApiRef,\n iconsApiRef,\n useApiHolder,\n ErrorDisplay,\n NotFoundErrorPage,\n Progress,\n createFrontendPlugin,\n FrontendPlugin,\n ApiHolder,\n} from '@backstage/frontend-plugin-api';\nimport {\n AppComponents,\n IconComponent,\n BackstagePlugin,\n} from '@backstage/core-plugin-api';\nimport { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\nimport { AppContext as AppContextV1 } from './types';\n\nconst legacyPluginStore = getOrCreateGlobalSingleton(\n 'legacy-plugin-compatibility-store',\n () => new WeakMap<FrontendPlugin, BackstagePlugin>(),\n);\n\nfunction toLegacyPlugin(plugin: FrontendPlugin): BackstagePlugin {\n let legacy = legacyPluginStore.get(plugin);\n if (legacy) {\n return legacy;\n }\n\n const errorMsg = 'Not implemented in legacy plugin compatibility layer';\n const notImplemented = () => {\n throw new Error(errorMsg);\n };\n\n legacy = {\n getId(): string {\n return plugin.id;\n },\n get routes() {\n return {};\n },\n get externalRoutes() {\n return {};\n },\n getApis: notImplemented,\n getFeatureFlags: notImplemented,\n provide: notImplemented,\n };\n\n legacyPluginStore.set(plugin, legacy);\n return legacy;\n}\n\nfunction toNewPlugin(plugin: BackstagePlugin): FrontendPlugin {\n return createFrontendPlugin({\n pluginId: plugin.getId(),\n });\n}\n\nfunction useOptionalApiHolder(): ApiHolder | undefined {\n try {\n return useApiHolder();\n } catch {\n return undefined;\n }\n}\n\n/**\n * React hook providing {@link AppContext}.\n *\n * @public\n */\nexport const useApp = (): AppContextV1 => {\n const apiHolder = useOptionalApiHolder();\n const appTreeApi = apiHolder?.get(appTreeApiRef);\n const iconsApi = apiHolder?.get(iconsApiRef);\n const versionedContext = useVersionedContext<{ 1: AppContextV1 }>(\n 'app-context',\n );\n\n const newAppContext = useMemo<AppContextV1 | undefined>(() => {\n if (!appTreeApi) {\n return undefined;\n }\n\n if (!iconsApi) {\n return undefined;\n }\n\n const { tree } = appTreeApi.getTree();\n\n let gatheredPlugins: BackstagePlugin[] | undefined = undefined;\n\n const ErrorBoundaryFallbackWrapper: AppComponents['ErrorBoundaryFallback'] =\n ({ plugin, ...rest }) => (\n <ErrorDisplay {...rest} plugin={plugin && toNewPlugin(plugin)} />\n );\n\n return {\n getPlugins(): BackstagePlugin[] {\n if (gatheredPlugins) {\n return gatheredPlugins;\n }\n\n const pluginSet = new Set<BackstagePlugin>();\n for (const node of tree.nodes.values()) {\n const plugin = node.spec.plugin;\n if (plugin) {\n pluginSet.add(toLegacyPlugin(plugin));\n }\n }\n gatheredPlugins = Array.from(pluginSet);\n\n return gatheredPlugins;\n },\n\n getSystemIcon(key: string): IconComponent | undefined {\n return iconsApi.getIcon(key);\n },\n\n getSystemIcons(): Record<string, IconComponent> {\n return Object.fromEntries(\n iconsApi.listIconKeys().map(key => [key, iconsApi.getIcon(key)!]),\n );\n },\n\n getComponents(): AppComponents {\n return {\n NotFoundErrorPage: NotFoundErrorPage,\n BootErrorPage() {\n throw new Error(\n 'The BootErrorPage app component should not be accessed by plugins',\n );\n },\n Progress: Progress,\n Router() {\n throw new Error(\n 'The Router app component should not be accessed by plugins',\n );\n },\n ErrorBoundaryFallback: ErrorBoundaryFallbackWrapper,\n };\n },\n };\n }, [appTreeApi, iconsApi]);\n\n if (newAppContext) {\n return newAppContext;\n }\n\n if (!versionedContext) {\n throw new Error('App context is not available');\n }\n\n const appContext = versionedContext.atVersion(1);\n if (!appContext) {\n throw new Error('AppContext v1 not available');\n }\n return appContext;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useApp.esm.js","sources":["../../src/app/useApp.tsx"],"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 { useMemo } from 'react';\nimport { useVersionedContext } from '@backstage/version-bridge';\nimport {\n appTreeApiRef,\n iconsApiRef,\n useApiHolder,\n ErrorDisplay,\n NotFoundErrorPage,\n Progress,\n createFrontendPlugin,\n FrontendPlugin,\n ApiHolder,\n} from '@backstage/frontend-plugin-api';\nimport {\n AppComponents,\n IconComponent,\n BackstagePlugin,\n} from '@backstage/core-plugin-api';\nimport { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\nimport { AppContext as AppContextV1 } from './types';\n\nconst legacyPluginStore = getOrCreateGlobalSingleton(\n 'legacy-plugin-compatibility-store',\n () => new WeakMap<FrontendPlugin, BackstagePlugin>(),\n);\n\nfunction toLegacyPlugin(plugin: FrontendPlugin): BackstagePlugin {\n let legacy = legacyPluginStore.get(plugin);\n if (legacy) {\n return legacy;\n }\n\n const errorMsg = 'Not implemented in legacy plugin compatibility layer';\n const notImplemented = () => {\n throw new Error(errorMsg);\n };\n\n legacy = {\n getId(): string {\n return plugin.pluginId ?? plugin.id;\n },\n get routes() {\n return {};\n },\n get externalRoutes() {\n return {};\n },\n getApis: notImplemented,\n getFeatureFlags: notImplemented,\n provide: notImplemented,\n };\n\n legacyPluginStore.set(plugin, legacy);\n return legacy;\n}\n\nfunction toNewPlugin(plugin: BackstagePlugin): FrontendPlugin {\n return createFrontendPlugin({\n pluginId: plugin.getId(),\n });\n}\n\nfunction useOptionalApiHolder(): ApiHolder | undefined {\n try {\n return useApiHolder();\n } catch {\n return undefined;\n }\n}\n\n/**\n * React hook providing {@link AppContext}.\n *\n * @public\n */\nexport const useApp = (): AppContextV1 => {\n const apiHolder = useOptionalApiHolder();\n const appTreeApi = apiHolder?.get(appTreeApiRef);\n const iconsApi = apiHolder?.get(iconsApiRef);\n const versionedContext = useVersionedContext<{ 1: AppContextV1 }>(\n 'app-context',\n );\n\n const newAppContext = useMemo<AppContextV1 | undefined>(() => {\n if (!appTreeApi) {\n return undefined;\n }\n\n if (!iconsApi) {\n return undefined;\n }\n\n const { tree } = appTreeApi.getTree();\n\n let gatheredPlugins: BackstagePlugin[] | undefined = undefined;\n\n const ErrorBoundaryFallbackWrapper: AppComponents['ErrorBoundaryFallback'] =\n ({ plugin, ...rest }) => (\n <ErrorDisplay {...rest} plugin={plugin && toNewPlugin(plugin)} />\n );\n\n return {\n getPlugins(): BackstagePlugin[] {\n if (gatheredPlugins) {\n return gatheredPlugins;\n }\n\n const pluginSet = new Set<BackstagePlugin>();\n for (const node of tree.nodes.values()) {\n const plugin = node.spec.plugin;\n if (plugin) {\n pluginSet.add(toLegacyPlugin(plugin));\n }\n }\n gatheredPlugins = Array.from(pluginSet);\n\n return gatheredPlugins;\n },\n\n getSystemIcon(key: string): IconComponent | undefined {\n return iconsApi.getIcon(key);\n },\n\n getSystemIcons(): Record<string, IconComponent> {\n return Object.fromEntries(\n iconsApi.listIconKeys().map(key => [key, iconsApi.getIcon(key)!]),\n );\n },\n\n getComponents(): AppComponents {\n return {\n NotFoundErrorPage: NotFoundErrorPage,\n BootErrorPage() {\n throw new Error(\n 'The BootErrorPage app component should not be accessed by plugins',\n );\n },\n Progress: Progress,\n Router() {\n throw new Error(\n 'The Router app component should not be accessed by plugins',\n );\n },\n ErrorBoundaryFallback: ErrorBoundaryFallbackWrapper,\n };\n },\n };\n }, [appTreeApi, iconsApi]);\n\n if (newAppContext) {\n return newAppContext;\n }\n\n if (!versionedContext) {\n throw new Error('App context is not available');\n }\n\n const appContext = versionedContext.atVersion(1);\n if (!appContext) {\n throw new Error('AppContext v1 not available');\n }\n return appContext;\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/core-plugin-api",
3
- "version": "1.12.2",
3
+ "version": "1.12.3-next.0",
4
4
  "description": "Core API used by Backstage plugins",
5
5
  "backstage": {
6
6
  "role": "web-library"
@@ -57,18 +57,18 @@
57
57
  "test": "backstage-cli package test"
58
58
  },
59
59
  "dependencies": {
60
- "@backstage/config": "^1.3.6",
61
- "@backstage/errors": "^1.2.7",
62
- "@backstage/frontend-plugin-api": "^0.13.4",
63
- "@backstage/types": "^1.2.2",
64
- "@backstage/version-bridge": "^1.0.11",
60
+ "@backstage/config": "1.3.6",
61
+ "@backstage/errors": "1.2.7",
62
+ "@backstage/frontend-plugin-api": "0.14.0-next.1",
63
+ "@backstage/types": "1.2.2",
64
+ "@backstage/version-bridge": "1.0.11",
65
65
  "history": "^5.0.0",
66
66
  "zod": "^3.25.76"
67
67
  },
68
68
  "devDependencies": {
69
- "@backstage/cli": "^0.35.3",
70
- "@backstage/core-app-api": "^1.19.4",
71
- "@backstage/test-utils": "^1.7.14",
69
+ "@backstage/cli": "0.35.4-next.1",
70
+ "@backstage/core-app-api": "1.19.5-next.0",
71
+ "@backstage/test-utils": "1.7.15-next.1",
72
72
  "@testing-library/dom": "^10.0.0",
73
73
  "@testing-library/jest-dom": "^6.0.0",
74
74
  "@testing-library/react": "^16.0.0",