@salesforce/packaging
Version:
Packaging library for the Salesforce packaging platform
489 lines (488 loc) • 15.4 kB
TypeScript
import { Duration } from '@salesforce/kit';
import { Connection } from '@salesforce/core';
import { NamedPackagingDir, SfProject } from '@salesforce/core/project';
import type { SaveResult } from '@jsforce/jsforce-node';
import { Attributes } from 'graphology-types';
import { Optional } from '@salesforce/ts-types';
import { ConvertResult } from '@salesforce/source-deploy-retrieve';
import type { Package } from '@salesforce/types/metadata';
import { PackageProfileApi } from '../package/packageProfileApi';
import { PackageAncestryNode } from '../package/packageAncestry';
import { VersionNumber } from '../package/versionNumber';
import { PackagingSObjects } from './packagingSObjects';
import Package2VersionStatus = PackagingSObjects.Package2VersionStatus;
import PackageInstallRequest = PackagingSObjects.PackageInstallRequest;
import MetadataPackageVersion = PackagingSObjects.MetadataPackageVersion;
export type IPackageVersion1GP = {
getPackageVersion(id: string): Promise<MetadataPackageVersion[]>;
};
export type IPackageVersion2GP = {
create(): Promise<void>;
convert(): Promise<void>;
delete(): Promise<void>;
install(): Promise<void>;
list(): Promise<void>;
uninstall(): Promise<void>;
update(): Promise<void>;
};
export type PackageOptions = {
connection: Connection;
project?: SfProject;
packageAliasOrId: string;
};
export type PackageUpdateOptions = {
Id: string;
Name?: string;
Description?: string;
PackageErrorUsername?: string;
AppAnalyticsEnabled?: boolean;
RecommendedVersionId?: string;
};
export type PackageIdType = 'PackageId' | 'SubscriberPackageVersionId' | 'PackageInstallRequestId' | 'PackageUninstallRequestId';
export type PackageVersionOptions1GP = Record<string, unknown>;
export type PackageVersionCreateRequestResult = {
Id: string;
Status: Package2VersionStatus;
Package2Id: string;
Package2Name: string | null;
Package2VersionId: string;
SubscriberPackageVersionId: string | null;
Tag: string;
Branch: string;
Error: any[];
CreatedDate: string;
HasMetadataRemoved: boolean | null;
HasPassedCodeCoverageCheck: boolean | null;
CodeCoverage: number | null;
VersionNumber: string | null;
CreatedBy: string;
ConvertedFromVersionId: string | null;
TotalNumberOfMetadataFiles: number | null;
TotalSizeOfMetadataFiles: number | null;
};
export declare const PackageVersionCreateRequestResultInProgressStatuses: PackagingSObjects.Package2VersionStatus[];
export type PackageVersionCreateRequestError = {
Message: string;
};
export type PackageVersionCreateEventData = {
id: string;
packageUpdated?: boolean;
packageVersionCreateRequestResult: PackageVersionCreateRequestResult;
message?: string;
timeRemaining?: Duration;
};
export type PackageVersionListResult = {
Id: string;
Package2Id: string;
SubscriberPackageVersionId: string;
Name: string;
Package2: {
[key: string]: unknown;
Name: string;
NamespacePrefix: string;
IsOrgDependent?: boolean;
};
Description: string;
Tag: string;
Branch: string;
MajorVersion: string;
MinorVersion: string;
PatchVersion: string;
BuildNumber: string;
IsReleased: boolean;
CreatedDate: string;
LastModifiedDate: string;
IsPasswordProtected: boolean;
AncestorId: string;
ValidationSkipped: boolean;
ValidatedAsync?: boolean;
CreatedById: string;
CodeCoverage?: {
[key: string]: unknown;
apexCodeCoveragePercentage: number;
};
HasPassedCodeCoverageCheck?: boolean;
ConvertedFromVersionId?: string;
ReleaseVersion?: string;
BuildDurationInSeconds?: number;
HasMetadataRemoved?: boolean;
Language?: string;
};
export type PackagePushRequestListQueryOptions = {
packageId: string;
scheduledLastDays?: number;
status?: 'Created' | 'Cancelled' | 'Pending' | 'In Progress' | 'Failed' | 'Succeeded';
isMigration?: boolean;
};
export type PackagePushRequestListResult = {
Id: string;
PackageVersionId: string;
PackageVersion: {
Name: string;
MajorVersion: string;
MinorVersion: string;
};
Status: string;
ScheduledStartTime: string;
StartTime: string;
EndTime: string;
OrgsScheduled: number;
OrgsUpgradeSucceeded: number;
OrgsUpgradeFailed: number;
};
export type PackagePushScheduleQueryOptions = {
packageVersionId: string;
scheduledStartTime?: string;
orgList: string;
};
export type PackagePushScheduleResult = {
PushRequestId: string;
ScheduledStartTime: string | undefined;
Status: string;
};
export type PackagePushRequestReportQueryOptions = {
packagePushRequestId: string;
};
export type PackagePushRequestAbortQueryOptions = {
packagePushRequestId: string;
};
export type PackageInstallCreateRequest = Partial<Pick<PackageInstallRequest, 'ApexCompileType' | 'EnableRss' | 'NameConflictResolution' | 'PackageInstallSource' | 'Password' | 'SecurityType' | 'SkipHandlers' | 'UpgradeType'>> & Pick<PackagingSObjects.PackageInstallRequest, 'SubscriberPackageVersionKey'>;
export type Package1Display = {
MetadataPackageVersionId: string;
MetadataPackageId: string;
Name: string;
Version: string;
ReleaseState: string;
BuildNumber: number;
};
export type PackageType = 'Managed' | 'Unlocked';
export type PackageCreateOptions = {
name: string;
description: string;
noNamespace: boolean;
orgDependent: boolean;
packageType: PackageType;
errorNotificationUsername: string;
path: string;
};
export type PackageDescriptorJson = Partial<NamedPackagingDir> & Partial<{
id: string;
features: string[];
orgPreferences: string[];
snapshot: string;
packageMetadataAccess: {
permissionSets: string[] | string;
permissionSetLicenses: string[] | string;
};
apexTestAccess: {
permissionSets: string[] | string;
permissionSetLicenses: string[] | string;
};
permissionSetNames: string[];
permissionSetLicenseDeveloperNames: string[];
packageMetadataPermissionSetNames: string[];
packageMetadataPermissionSetLicenseNames: string[];
branch: string;
subscriberPackageVersionId: string;
packageId: string;
versionName: string;
language?: string;
}>;
export type PackageVersionCreateRequest = {
Package2Id: string;
VersionInfo: string;
Tag?: string;
Branch?: string;
InstallKey?: string;
Instance?: string;
SourceOrg?: string;
Language?: string;
CalculateCodeCoverage: boolean;
SkipValidation: boolean;
AsyncValidation?: boolean;
IsDevUsePkgZipRequested?: boolean;
CalcTransitiveDependencies?: boolean;
};
export type PackageVersionListOptions = {
orderBy?: string;
modifiedLastDays?: number;
createdLastDays?: number;
packages?: string[];
verbose?: boolean;
concise?: boolean;
isReleased?: boolean;
showConversionsOnly?: boolean;
branch?: string;
};
export type PackageVersionUpdateOptions = {
InstallKey?: string;
VersionName?: string;
VersionDescription?: string;
Branch?: string;
Tag?: string;
};
export type PackageSaveResult = SaveResult;
export type PackageVersionCreateRequestOptions = {
path: string;
preserve: boolean;
definitionfile?: string;
codecoverage?: boolean;
branch?: string;
skipancestorcheck?: boolean;
};
export type PackageVersionMetadataDownloadOptions = {
subscriberPackageVersionId: string;
destinationFolder?: string;
};
export type PackageVersionMetadataDownloadResult = ConvertResult;
export type PackageInstallOptions = {
/**
* The frequency to poll the org for package publish status. If providing a number
* it is interpreted in milliseconds.
*/
publishFrequency?: number | Duration;
/**
* The amount of time to wait for package publish to complete. If providing a number
* it is interpreted in minutes.
*/
publishTimeout?: number | Duration;
/**
* The frequency to poll the org for package installation status. If providing a number
* it is interpreted in milliseconds.
*/
pollingFrequency?: number | Duration;
/**
* The amount of time to wait for package installation to complete. If providing a number
* it is interpreted in minutes.
*/
pollingTimeout?: number | Duration;
};
export type MDFolderForArtifactOptions = {
packageName?: string;
sourceDir?: string;
outputDir?: string;
manifest?: string;
sourcePaths?: string[];
metadataPaths?: string[];
deploydir?: string;
sourceApiVersion?: string;
};
export type PackageVersionOptions = {
connection: Connection;
/**
* Can be one of:
* 1. SubscriberPackageVersionId (04t)
* 2. PackageVersionId (05i)
* 3. Alias for a 04t or 05i, defined in sfdx-project.json
*/
idOrAlias: string;
project?: SfProject;
};
export type SubscriberPackageVersionOptions = {
connection: Connection;
aliasOrId: string;
password: Optional<string>;
};
export type ConvertPackageOptions = {
installationKey?: string;
definitionfile?: string;
/** @deprecated stop using it*/
installationKeyBypass: boolean;
wait: Duration;
buildInstance?: string;
frequency?: Duration;
seedMetadata?: string;
patchversion?: string;
codecoverage?: boolean;
};
export type PackageVersionCreateOptions = {
connection: Connection;
project: SfProject;
} & Partial<{
branch: string;
buildinstance: string;
codecoverage: boolean;
definitionfile: string;
installationkey: string;
installationkeybypass: boolean;
language?: string;
packageId: string;
path: string;
postinstallscript: string;
postinstallurl: string;
preserve: boolean;
releasenotesurl: string;
skipancestorcheck: boolean;
skipvalidation: boolean;
asyncvalidation: boolean;
generatepkgzip?: boolean;
sourceorg: string;
tag: string;
uninstallscript: string;
validateschema: boolean;
versiondescription: string;
versionname: string;
versionnumber: string;
profileApi: PackageProfileApi;
}>;
export type PackageVersionCreateRequestQueryOptions = {
createdlastdays?: number;
status?: 'Queued' | 'InProgress' | 'Success' | 'Error';
id?: string;
showConversionsOnly?: boolean;
};
export type ProfileApiOptions = {
project: SfProject;
includeUserLicenses: boolean;
};
export type PackageVersionReportResult = Partial<Omit<PackagingSObjects.Package2Version, 'AncestorId' | 'HasPassedCodeCoverageCheck' | 'HasMetadataRemoved'>> & {
Package2: Partial<Omit<PackagingSObjects.Package2, 'IsOrgDependent'>> & {
IsOrgDependent: boolean | null | undefined;
};
SubscriberPackageVersion?: Pick<PackagingSObjects.SubscriberPackageVersion, 'Dependencies'>;
Version: string;
AncestorVersion?: string | null;
AncestorId?: string | null;
PackageType?: PackageType | null;
HasPassedCodeCoverageCheck?: boolean | null;
HasMetadataRemoved?: boolean | null;
};
export type PackageVersionCreateReportProgress = PackageVersionCreateRequestResult & {
remainingWaitTime: Duration;
};
export type Package1VersionCreateRequest = Pick<PackagingSObjects.PackageUploadRequest, 'VersionName' | 'MetadataPackageId'> & Partial<Pick<PackagingSObjects.PackageUploadRequest, 'Description' | 'MajorVersion' | 'MinorVersion' | 'IsReleaseVersion' | 'ReleaseNotesUrl' | 'PostInstallUrl' | 'Password'>>;
export type InstalledPackages = {
Id: string;
SubscriberPackageId: string;
SubscriberPackageVersionId: string;
MinPackageVersionId: string;
SubscriberPackage?: PackagingSObjects.SubscriberPackage;
SubscriberPackageVersion?: PackagingSObjects.SubscriberPackageVersion;
};
export type CodeCoverage = null | {
apexCodeCoveragePercentage: number;
};
export type CodeCoveragePercentages = null | {
codeCovPercentages: [
{
className: string;
codeCoveragePercentage: number;
}
];
};
export type PackageAncestryNodeOptions = Attributes & {
AncestorId?: string;
SubscriberPackageVersionId: string;
MajorVersion: string | number;
MinorVersion: string | number;
PatchVersion: string | number;
BuildNumber: string | number;
depthCounter: number;
};
export type PackageAncestryNodeAttributes = PackageAncestryNodeOptions & {
node: PackageAncestryNode;
};
export type PackageAncestryData = Omit<PackageAncestryNodeAttributes, 'AncestorId'>;
export type PackageAncestryNodeData = {
data: PackageAncestryNodeOptions;
children: PackageAncestryNodeData[];
};
export type PackageAncestryOptions = {
packageId: string;
project?: SfProject;
connection: Connection;
};
export type AncestryRepresentationProducerOptions = {
packageNode?: PackageAncestryNode;
depth: number;
verbose?: boolean;
logger?: (text: string) => void;
};
export type AncestryRepresentationProducer = {
label: string;
options?: AncestryRepresentationProducerOptions;
addNode(node: AncestryRepresentationProducer): void;
produce(): PackageAncestryNodeData | string | void;
};
export type PackageVersionDependencyOptions = {
packageVersionId: string;
project?: SfProject;
connection: Connection;
verbose?: boolean;
edgeDirection?: 'root-first' | 'root-last';
};
export type DependencyGraphData = {
creator: string;
nodes: DependencyGraphNode[];
edges: DependencyGraphEdge[];
};
export type DependencyGraphNode = {
subscriberPackageVersionId: string;
packageName: string;
version: VersionNumber;
};
export type DependencyGraphEdge = {
source: string;
target: string;
};
export declare const PackageEvents: {
convert: {
success: string;
error: string;
progress: string;
};
install: {
warning: string;
presend: string;
postsend: string;
status: string;
'subscriber-status': string;
};
uninstall: string;
};
export declare const PackageVersionEvents: {
create: {
enqueued: string;
progress: string;
success: string;
error: string;
'timed-out': string;
'preserve-files': string;
};
};
export declare const Package1VersionEvents: {
create: {
progress: string;
};
};
export type PackageXml = Pick<Package, 'types' | 'version'>;
export type PackagePushRequestReportResult = {
PackageVersion: {
MetadataPackage: {
Name: string;
NamespacePrefix: string;
};
MetadataPackageId: string;
Name: string;
MajorVersion: string;
MinorVersion: string;
};
Id: string;
PackageVersionId: string;
Status: string;
ScheduledStartTime: string | null;
StartTime: string | null;
EndTime: string | null;
DurationSeconds: number | null;
};
export type PackagePushRequestJobCountByStatusResult = {
expr0: number;
};
export type PackagePushRequestReportJobFailuresResult = {
ErrorMessage: string;
ErrorDetails: string;
ErrorTitle: string;
ErrorSeverity: string;
ErrorType: string;
PackagePushJobId: string;
};