@salesforce/packaging 4.17.2 → 4.18.1

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.
@@ -126,7 +126,7 @@ export declare namespace BundleSObjects {
126
126
  ValidationError?: string;
127
127
  } & Schema;
128
128
  type PkgBundleVersionInstallReq = {
129
- PackageBundleVersionID: string;
129
+ PackageBundleVersionId: string;
130
130
  DevelopmentOrganization: string;
131
131
  };
132
132
  type PkgBundleVersionInstallReqResult = PkgBundleVersionInstallReq & {
@@ -140,7 +140,7 @@ export declare namespace BundleSObjects {
140
140
  type PkgBundleVersionInstallQueryRecord = {
141
141
  Id: string;
142
142
  InstallStatus: BundleSObjects.PkgBundleVersionInstallReqStatus;
143
- PackageBundleVersionID: string;
143
+ PackageBundleVersionId: string;
144
144
  DevelopmentOrganization: string;
145
145
  ValidationError: string;
146
146
  CreatedDate: string;
@@ -25,7 +25,7 @@ const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'bundle_i
25
25
  class PackageBundleInstall {
26
26
  static async getInstallStatus(installRequestId, connection) {
27
27
  try {
28
- const query = 'SELECT Id, InstallStatus, PackageBundleVersionID, DevelopmentOrganization, ValidationError, ' +
28
+ const query = 'SELECT Id, InstallStatus, PackageBundleVersionId, DevelopmentOrganization, ValidationError, ' +
29
29
  'CreatedDate, CreatedById ' +
30
30
  `FROM PkgBundleVersionInstallReq WHERE Id = '${installRequestId}'`;
31
31
  const queryResult = await connection.autoFetchQuery(query, {
@@ -38,7 +38,7 @@ class PackageBundleInstall {
38
38
  return {
39
39
  Id: record.Id,
40
40
  InstallStatus: record.InstallStatus,
41
- PackageBundleVersionID: record.PackageBundleVersionID ?? '',
41
+ PackageBundleVersionId: record.PackageBundleVersionId ?? '',
42
42
  DevelopmentOrganization: record.DevelopmentOrganization ?? '',
43
43
  ValidationError: record.ValidationError ?? '',
44
44
  CreatedDate: record.CreatedDate ?? '',
@@ -52,7 +52,7 @@ class PackageBundleInstall {
52
52
  }
53
53
  }
54
54
  static async getInstallStatuses(connection, status, createdLastDays) {
55
- let query = 'SELECT Id, InstallStatus, PackageBundleVersionID, DevelopmentOrganization, ValidationError, ' +
55
+ let query = 'SELECT Id, InstallStatus, PackageBundleVersionId, DevelopmentOrganization, ValidationError, ' +
56
56
  'CreatedDate, CreatedById ' +
57
57
  'FROM PkgBundleVersionInstallReq';
58
58
  if (status && createdLastDays) {
@@ -70,7 +70,7 @@ class PackageBundleInstall {
70
70
  return queryResult.records.map((record) => ({
71
71
  Id: record.Id,
72
72
  InstallStatus: record.InstallStatus,
73
- PackageBundleVersionID: record.PackageBundleVersionID ?? '',
73
+ PackageBundleVersionId: record.PackageBundleVersionId ?? '',
74
74
  DevelopmentOrganization: record.DevelopmentOrganization ?? '',
75
75
  ValidationError: record.ValidationError ?? '',
76
76
  CreatedDate: record.CreatedDate ?? '',
@@ -81,7 +81,7 @@ class PackageBundleInstall {
81
81
  static async installBundle(connection, project, options) {
82
82
  const packageBundleVersionId = PackageBundleInstall.parsePackageBundleVersionId(options.PackageBundleVersion, project);
83
83
  const request = {
84
- PackageBundleVersionID: packageBundleVersionId,
84
+ PackageBundleVersionId: packageBundleVersionId,
85
85
  DevelopmentOrganization: options.DevelopmentOrganization,
86
86
  };
87
87
  let installResult;
@@ -200,10 +200,11 @@ async function createPackageVersionCreateRequest(context, packageId, apiVersion,
200
200
  await node_fs_1.default.promises.mkdir(packageVersTmpRoot, { recursive: true });
201
201
  await node_fs_1.default.promises.mkdir(packageVersBlobDirectory, { recursive: true });
202
202
  await node_fs_1.default.promises.mkdir(packageVersMetadataFolder, { recursive: true });
203
- const hasSeedMetadata = await new packageVersionCreate_1.MetadataResolver().resolveMetadata(context.seedmetadata, seedMetadataFolder, 'seedMDDirectoryDoesNotExist', apiVersion);
203
+ const seedMetadataPath = context.seedmetadata ?? packageDescriptorJson.seedMetadata?.path;
204
+ const hasSeedMetadata = await new packageVersionCreate_1.MetadataResolver().resolveMetadata(seedMetadataPath, seedMetadataFolder, 'seedMDDirectoryDoesNotExist', apiVersion);
204
205
  if (hasSeedMetadata) {
205
206
  // Zip the seedMetadataFolder folder and put the zip in {packageVersBlobDirectory}/{seedMetadataZipFile}
206
- core_1.Logger.childFromRoot('packageConvert:pollForStatusWithInterval').debug(`Including metadata found in '${context.seedmetadata ?? '<undefined seedmetadata>'}'.`);
207
+ core_1.Logger.childFromRoot('packageConvert:pollForStatusWithInterval').debug(`Including metadata found in '${seedMetadataPath ?? '<undefined seedmetadata>'}'.`);
207
208
  await pkgUtils.zipDir(seedMetadataFolder, seedMetadataZipFile);
208
209
  }
209
210
  await settingsGenerator.createDeploy();
@@ -215,6 +216,7 @@ async function createPackageVersionCreateRequest(context, packageId, apiVersion,
215
216
  // Zip the packageVersMetadataFolder folder and put the zip in {packageVersBlobDirectory}/package.zip
216
217
  await pkgUtils.zipDir(packageVersMetadataFolder, metadataZipFile);
217
218
  packageDescriptorJson = (0, packageUtils_1.resolveBuildUserPermissions)(packageDescriptorJson, context.codecoverage ?? false);
219
+ packageDescriptorJson = (0, packageUtils_1.cleanPackageDescriptorJson)(packageDescriptorJson);
218
220
  await node_fs_1.default.promises.writeFile(node_path_1.default.join(packageVersBlobDirectory, 'package2-descriptor.json'), JSON.stringify(packageDescriptorJson, undefined, 2));
219
221
  // Zip the Version Info and package.zip files into another zip
220
222
  await pkgUtils.zipDir(packageVersBlobDirectory, packageVersBlobZipFile);
@@ -227,7 +229,7 @@ function buildPackageDescriptorJson(args) {
227
229
  ...(base ?? {}),
228
230
  };
229
231
  if (packageObject && (0, project_1.isPackagingDirectory)(packageObject)) {
230
- const allowedKeys = ['apexTestAccess'];
232
+ const allowedKeys = ['apexTestAccess', 'seedMetadata'];
231
233
  for (const key of allowedKeys) {
232
234
  if (Object.prototype.hasOwnProperty.call(packageObject, key)) {
233
235
  const value = packageObject[key];
@@ -368,7 +368,7 @@ class PackageVersionCreate {
368
368
  if (resultValues.length > 0) {
369
369
  packageDescriptorJson.dependencies = resultValues;
370
370
  }
371
- packageDescriptorJson = cleanPackageDescriptorJson(packageDescriptorJson);
371
+ packageDescriptorJson = pkgUtils.cleanPackageDescriptorJson(packageDescriptorJson);
372
372
  packageDescriptorJson = setPackageDescriptorJsonValues(packageDescriptorJson, this.options, this.logger);
373
373
  await node_fs_1.default.promises.mkdir(packageVersTmpRoot, { recursive: true });
374
374
  await node_fs_1.default.promises.mkdir(packageVersBlobDirectory, { recursive: true });
@@ -928,21 +928,4 @@ const setPackageDescriptorJsonValues = (packageDescriptorJson, options, logger)
928
928
  }
929
929
  return merged;
930
930
  };
931
- /**
932
- * Cleans client-side-only attribute(s) from the packageDescriptorJSON so it can go to API
933
- */
934
- const cleanPackageDescriptorJson = (packageDescriptorJson) => {
935
- // properties only used by the client side
936
- const clientOnlyProps = [
937
- 'default',
938
- 'includeProfileUserLicenses',
939
- 'unpackagedMetadata',
940
- 'seedMetadata',
941
- 'branch',
942
- 'fullPath',
943
- 'name',
944
- 'scopeProfiles',
945
- ];
946
- return Object.fromEntries(Object.entries(packageDescriptorJson).filter(([key]) => !clientOnlyProps.includes(key)));
947
- };
948
931
  //# sourceMappingURL=packageVersionCreate.js.map
@@ -139,3 +139,7 @@ export declare function findPackageDirectory(project: SfProject | undefined, pac
139
139
  * directories containing only an .eslintrc.json file.
140
140
  */
141
141
  export declare function isPackageDirectoryEffectivelyEmpty(directory: string): boolean;
142
+ /**
143
+ * Cleans client-side-only attribute(s) from the packageDescriptorJSON so it can go to API
144
+ */
145
+ export declare function cleanPackageDescriptorJson(packageDescriptorJson: PackageDescriptorJson): PackageDescriptorJson;
@@ -57,6 +57,7 @@ exports.copyDescriptorProperties = copyDescriptorProperties;
57
57
  exports.resolveBuildUserPermissions = resolveBuildUserPermissions;
58
58
  exports.findPackageDirectory = findPackageDirectory;
59
59
  exports.isPackageDirectoryEffectivelyEmpty = isPackageDirectoryEffectivelyEmpty;
60
+ exports.cleanPackageDescriptorJson = cleanPackageDescriptorJson;
60
61
  /*
61
62
  * Copyright 2025, Salesforce, Inc.
62
63
  *
@@ -534,4 +535,21 @@ function isPackageDirectoryEffectivelyEmpty(directory) {
534
535
  ? isPackageDirectoryEffectivelyEmpty((0, node_path_1.join)(directory, entry.name))
535
536
  : entry.name === '.eslintrc.json');
536
537
  }
538
+ /**
539
+ * Cleans client-side-only attribute(s) from the packageDescriptorJSON so it can go to API
540
+ */
541
+ function cleanPackageDescriptorJson(packageDescriptorJson) {
542
+ // properties only used by the client side
543
+ const clientOnlyProps = [
544
+ 'default',
545
+ 'includeProfileUserLicenses',
546
+ 'unpackagedMetadata',
547
+ 'seedMetadata',
548
+ 'branch',
549
+ 'fullPath',
550
+ 'name',
551
+ 'scopeProfiles',
552
+ ];
553
+ return Object.fromEntries(Object.entries(packageDescriptorJson).filter(([key]) => !clientOnlyProps.includes(key)));
554
+ }
537
555
  //# sourceMappingURL=packageUtils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "4.17.2",
3
+ "version": "4.18.1",
4
4
  "description": "Packaging library for the Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",