diff --git a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts new file mode 100644 index 0000000000..449ce5f4a8 --- /dev/null +++ b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts @@ -0,0 +1,23 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { bundledExtensionInjectionToken } from "../../../../../../common/library"; +import buildSemanticVersionInjectable from "../../../../../../common/vars/build-semantic-version.injectable"; + +const aboutBundledExtensionsInjectable = getInjectable({ + id: "about-bundled-extensions", + instantiate: (di) => { + const buildSemanticVersion = di.inject(buildSemanticVersionInjectable); + const bundledExtensions = di.injectMany(bundledExtensionInjectionToken); + + if (buildSemanticVersion.get().prerelease[0] === "latest") { + return []; + } + + return bundledExtensions.map(ext => `${ext.manifest.name}: ${ext.manifest.version}`); + }, +}); + +export default aboutBundledExtensionsInjectable; diff --git a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts index a91e2af337..8bc78ae8c3 100644 --- a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts +++ b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts @@ -10,6 +10,7 @@ import productNameInjectable from "../../../../../../common/vars/product-name.in import buildVersionInjectable from "../../../../../../main/vars/build-version/build-version.injectable"; import extensionApiVersionInjectable from "../../../../../../common/vars/extension-api-version.injectable"; import applicationCopyrightInjectable from "../../../../../../common/vars/application-copyright.injectable"; +import aboutBundledExtensionsInjectable from "./about-bundled-extensions.injectable"; const showAboutInjectable = getInjectable({ id: "show-about", @@ -22,6 +23,7 @@ const showAboutInjectable = getInjectable({ const appName = di.inject(appNameInjectable); const productName = di.inject(productNameInjectable); const applicationCopyright = di.inject(applicationCopyrightInjectable); + const aboutBundledExtensions = di.inject(aboutBundledExtensionsInjectable); return () => { const appInfo = [ @@ -30,6 +32,7 @@ const showAboutInjectable = getInjectable({ `Electron: ${process.versions.electron}`, `Chrome: ${process.versions.chrome}`, `Node: ${process.versions.node}`, + ...aboutBundledExtensions, applicationCopyright, ];