/************************************************************************* * ADOBE CONFIDENTIAL * ___________________ * * Copyright 2024 Adobe * All Rights Reserved. * * NOTICE: All information contained herein is, and remains * the property of Adobe and its suppliers, if any. The intellectual * and technical concepts contained herein are proprietary to Adobe * and its suppliers and are protected by all applicable intellectual * property laws, including trade secret and copyright laws. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Adobe. **************************************************************************/ import { ExtensionsProvider, InstalledExtensions } from "@adobe/uix-host"; /** @internal */ type ExtensionPoint = { extensionPoint: string; url: string; }; /** @public */ export type ExtensionManagerExtension = { id: string; name: string; title: string; description: string; status: string; supportEmail: string; extId: string; disabled: boolean; extensionPoints: ExtensionPoint[]; scope: Record; configuration?: Record; }; /** @internal */ type AuthEMConfig = { schema: "Bearer" | "Basic"; imsToken: string; }; /** @public */ export interface ExtensionManagerConfig { apiKey: string; auth: AuthEMConfig; service: string; extensionPoint: string; version: string; imsOrg: string; baseUrl: string; scope?: Record; } /** * Authentication configuration, including IMS Org ID, access token, and API key * @public */ export interface AuthConfig { /** IMS Org ID */ imsOrg: string; /** Access token for the user */ imsToken: string; /** API key */ apiKey: string; } /** * Discovery configuration, including environment and repo Id * @public */ export interface DiscoveryConfig { /** Environment level for backend Extension resolution services */ experienceShellEnvironment?: "prod" | "stage"; scope?: Record; } /** * Extension point ID * @public */ export interface ExtensionPointId { /** Service name */ service: string; /** Extension point name */ name: string; /** Extension point version */ version: string; } /** * Sets up new ExtensionsProvider with authentication and discovery information needed to fetch the list of * Extensions from AppRegistry and Extension Manager service, along with the query string portion of URL * to extract the information about development Extensions * @public */ export interface ExtensionsProviderConfig { /** Discovery configuration */ discoveryConfig: DiscoveryConfig; /** Authentication configuration */ authConfig: AuthConfig; /** Extension point ID */ extensionPointId: ExtensionPointId; providerConfig: ExtensionProviderConfig; } /** @public */ export interface ExtensionProviderConfig { extensionManagerUrl?: string; appRegistryUrl?: string; disableExtensionManager?: boolean; } /** @internal */ export declare const getExtensionRegistryBaseUrl: (environment: "prod" | "stage" | undefined, registry: string | null) => string; /** @internal */ export declare const getExtensionManagerBaseUrl: (environment: "prod" | "stage" | undefined, extensionManager: string | null) => string; /** * Extracts programId and envId from the repo value * @param repo - the repo value * @returns object with programId and envId * @internal */ export declare function extractProgramIdEnvId(repo: string): { programId: string; envId: string; }; /** * Builds the URL for fetching extensions from the Extension Manager service * @param config - the Extension Manager configuration * @returns the URL for fetching extensions * @internal */ export declare function buildExtensionManagerUrl(config: ExtensionManagerConfig): string; /** * @internal */ export declare function fetchExtensionsFromExtensionManager(config: ExtensionManagerConfig): Promise; /** * Takes an array of extensions from the App Registry, an array of extensions from the Extension Manager, and * merges them into a list of Extensions. If an extension is disabled in the Extension Manager, it is removed from * the list. * Extension list from the App Registry is used as a base. * @internal */ export declare function mergeExtensions(appRegistryExtensions: InstalledExtensions, extensionManagerExtensions: ExtensionManagerExtension[], extensionPointId: ExtensionPointId): InstalledExtensions; /** * Creates an extension manager extension provider * @internal */ export declare function createExtensionManagerExtensionsProvider(discoveryConfig: DiscoveryConfig, authConfig: AuthConfig, providerConfig: ExtensionProviderConfig, extensionPointId: ExtensionPointId): ExtensionsProvider; export {}; //# sourceMappingURL=ExtensionManagerProvider.d.ts.map