npm package diff

Package: @forge/cli

Versions: 10.13.6 - 11.0.0-next.18

File: package/out/service/installation-service.d.ts

Index: package/out/service/installation-service.d.ts
===================================================================
--- package/out/service/installation-service.d.ts
+++ package/out/service/installation-service.d.ts
@@ -1,15 +1,17 @@
 /// <reference types="node" />
-import { AppConfigProvider, AppEnvironmentType, AppEnvironmentVersion, Maybe } from '@forge/cli-shared';
+import { AppConfigProvider, AppEnvironmentType, AppEnvironmentVersion, Maybe, SupportedProduct, BaseError } from '@forge/cli-shared';
 import { URL } from 'url';
 import { AppInstallSiteDetails } from '../installations/install-app-site';
 export interface Installation {
     id: string;
     product: string;
+    secondaryProducts?: string[];
     site: string;
     environmentKey: string;
     environmentType: AppEnvironmentType;
     context: string;
+    secondaryContexts?: string[];
     version: {
         isLatest: boolean;
         version: string;
     };
@@ -19,17 +21,18 @@
 }
 export interface AppEnvironmentVersionPermissions {
     scopes: string[];
     egressAddresses: string[];
+    primaryProduct?: string;
 }
 export interface AppEnvironmentPermissions extends AppEnvironmentVersionPermissions {
     addedScopes: string[];
     environmentType: AppEnvironmentType;
     hasDeployments: boolean;
 }
 interface InstallationFilterOptions {
-    site?: string;
-    product?: 'Jira' | 'Confluence';
+    site?: URL;
+    product?: SupportedProduct;
     environment?: string;
 }
 export interface AppEnvironmentVersionData {
     nodes?: Array<Maybe<AppEnvironmentVersion>> | null;
@@ -41,16 +44,27 @@
 }
 export interface UpgradeAppInstallationsClient {
     upgradeInstallation({ site, product, environmentKey, appId }: AppInstallSiteDetails): Promise<void>;
 }
+export interface HasNoAppInstallationsForEnvClient {
+    hasNoAppInstallationsForEnv(appId: string, appEnv: AppEnvironmentType): Promise<boolean>;
+}
+export declare class MultipleMatchingInstallationsError extends BaseError {
+    constructor();
+}
 export declare class InstallationService {
     private readonly getAppConfig;
     private readonly listInstallationsClient;
     private readonly upgradeAppInstallationsClient;
-    constructor(getAppConfig: AppConfigProvider, listInstallationsClient: ListAppInstallationsClient, upgradeAppInstallationsClient: UpgradeAppInstallationsClient);
+    private readonly hasNoAppInstallationsForEnvClient;
+    constructor(getAppConfig: AppConfigProvider, listInstallationsClient: ListAppInstallationsClient, upgradeAppInstallationsClient: UpgradeAppInstallationsClient, hasNoAppInstallationsForEnvClient: HasNoAppInstallationsForEnvClient);
+    private comparePossibleInstallations;
+    private matchSiteForProduct;
     private filterInstallations;
     listAppInstallations(filter?: InstallationFilterOptions): Promise<AppInstallation>;
+    hasNoAppInstallationsForEnv(appEnv: AppEnvironmentType): Promise<boolean>;
     listNonTechnicalAppInstallations(filter?: InstallationFilterOptions): Promise<AppInstallation>;
+    findOnlyMatchingInstallation(filter: InstallationFilterOptions): Promise<Installation>;
     hasOutdatedProductInstallation(environment: string): Promise<boolean>;
     upgradeInstallation(site: URL, product: string, environmentKey: string, appId: string): Promise<boolean>;
     private getPermissionsFromAppEnvironmentVersion;
     getAppEnvironmentPermissions(appId: string, environmentKey: string): Promise<AppEnvironmentPermissions | undefined>;