@salesforce/packaging 3.2.36 → 3.3.0

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.
@@ -124,12 +124,18 @@ export type PackageDescriptorJson = Partial<NamedPackageDir> & Partial<{
124
124
  features: string[];
125
125
  orgPreferences: string[];
126
126
  snapshot: string;
127
+ packageMetadataAccess: {
128
+ permissionSets: string[] | string;
129
+ permissionSetLicenses: string[] | string;
130
+ };
127
131
  apexTestAccess: {
128
132
  permissionSets: string[] | string;
129
133
  permissionSetLicenses: string[] | string;
130
134
  };
131
135
  permissionSetNames: string[];
132
136
  permissionSetLicenseDeveloperNames: string[];
137
+ packageMetadataPermissionSetNames: string[];
138
+ packageMetadataPermissionSetLicenseNames: string[];
133
139
  branch: string;
134
140
  subscriberPackageVersionId: string;
135
141
  packageId: string;
@@ -33,7 +33,7 @@ export declare class PackageVersionCreate {
33
33
  private createPackageVersionCreateRequestFromOptions;
34
34
  private verifyHasSource;
35
35
  private cleanGeneratedPackage;
36
- private resolveApexTestPermissions;
36
+ private resolveBuildUserPermissions;
37
37
  private packageVersionCreate;
38
38
  private getPackageDirFromId;
39
39
  private getPackageType;
@@ -277,7 +277,7 @@ class PackageVersionCreate {
277
277
  }
278
278
  packageDescriptorJson = (0, packageUtils_1.copyDescriptorProperties)(packageDescriptorJson, definitionFileJson);
279
279
  }
280
- this.resolveApexTestPermissions(packageDescriptorJson);
280
+ this.resolveBuildUserPermissions(packageDescriptorJson);
281
281
  // All dependencies for the packaging dir should be resolved to an 04t id to be passed to the server.
282
282
  // (see _retrieveSubscriberPackageVersionId for details)
283
283
  const dependencies = packageDescriptorJson.dependencies;
@@ -402,7 +402,7 @@ class PackageVersionCreate {
402
402
  // Zip the Version Info and package.zip files into another zip
403
403
  await (0, packageUtils_1.zipDir)(packageVersBlobDirectory, packageVersBlobZipFile);
404
404
  }
405
- resolveApexTestPermissions(packageDescriptorJson) {
405
+ resolveBuildUserPermissions(packageDescriptorJson) {
406
406
  // Process permissionSet and permissionSetLicenses that should be enabled when running Apex tests
407
407
  // This only applies if code coverage is enabled
408
408
  if (this.options.codecoverage) {
@@ -422,7 +422,23 @@ class PackageVersionCreate {
422
422
  packageDescriptorJson.permissionSetLicenseDeveloperNames = permissionSetLicenses.map((s) => s.trim());
423
423
  }
424
424
  }
425
+ // Process permissionSet and permissionsetLicenses that should be enabled for the package metadata deploy
426
+ if (packageDescriptorJson.packageMetadataAccess?.permissionSets) {
427
+ let permSets = packageDescriptorJson.packageMetadataAccess.permissionSets;
428
+ if (!Array.isArray(permSets)) {
429
+ permSets = permSets.split(',');
430
+ }
431
+ packageDescriptorJson.packageMetadataPermissionSetNames = permSets.map((s) => s.trim());
432
+ }
433
+ if (packageDescriptorJson.packageMetadataAccess?.permissionSetLicenses) {
434
+ let permissionSetLicenses = packageDescriptorJson.packageMetadataAccess.permissionSetLicenses;
435
+ if (!Array.isArray(permissionSetLicenses)) {
436
+ permissionSetLicenses = permissionSetLicenses.split(',');
437
+ }
438
+ packageDescriptorJson.packageMetadataPermissionSetLicenseNames = permissionSetLicenses.map((s) => s.trim());
439
+ }
425
440
  delete packageDescriptorJson.apexTestAccess;
441
+ delete packageDescriptorJson.packageMetadataAccess;
426
442
  }
427
443
  // eslint-disable-next-line complexity
428
444
  async packageVersionCreate() {
@@ -107,6 +107,14 @@ export declare function numberToDuration(duration: number | Duration | undefined
107
107
  */
108
108
  export declare function zipDir(dir: string, zipfile: string): Promise<void>;
109
109
  export declare function copyDir(src: string, dest: string): void;
110
+ /**
111
+ * Parse and copy properties from both of these arguments into a new object
112
+ *
113
+ * @param packageDescriptorJson
114
+ * @param definitionFileJson
115
+ * @returns the resulting object with specific properties
116
+ * overridden from definition file based on case-insensitive matches.
117
+ */
110
118
  export declare function copyDescriptorProperties(packageDescriptorJson: PackageDescriptorJson, definitionFileJson: ScratchOrgInfo): PackageDescriptorJson;
111
119
  export declare function replaceIfEmpty<T>(value: T, replacement: T): T;
112
120
  /**
@@ -398,10 +398,21 @@ function copyDir(src, dest) {
398
398
  });
399
399
  }
400
400
  exports.copyDir = copyDir;
401
+ /**
402
+ * Parse and copy properties from both of these arguments into a new object
403
+ *
404
+ * @param packageDescriptorJson
405
+ * @param definitionFileJson
406
+ * @returns the resulting object with specific properties
407
+ * overridden from definition file based on case-insensitive matches.
408
+ */
401
409
  function copyDescriptorProperties(packageDescriptorJson, definitionFileJson) {
402
410
  const packageDescriptorJsonCopy = Object.assign({}, packageDescriptorJson);
403
411
  const definitionFileJsonCopy = Object.assign({}, definitionFileJson);
404
- return Object.assign({}, packageDescriptorJsonCopy, Object.fromEntries(['country', 'edition', 'language', 'features', 'orgPreferences', 'snapshot', 'release', 'sourceOrg'].map((prop) => [[prop], definitionFileJsonCopy[prop]])));
412
+ return Object.assign({}, packageDescriptorJsonCopy, Object.fromEntries(['country', 'edition', 'language', 'features', 'orgPreferences', 'snapshot', 'release', 'sourceOrg'].map((prop) => {
413
+ const matchCase = Object.keys(definitionFileJsonCopy).find((key) => key.toLowerCase() === prop.toLowerCase());
414
+ return [[prop], matchCase ? definitionFileJsonCopy[matchCase] : undefined];
415
+ })));
405
416
  }
406
417
  exports.copyDescriptorProperties = copyDescriptorProperties;
407
418
  function replaceIfEmpty(value, replacement) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "3.2.36",
3
+ "version": "3.3.0",
4
4
  "description": "Packaging library for the Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",
@@ -42,9 +42,9 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "@oclif/core": "^3",
45
- "@salesforce/core": "^6.7.3",
45
+ "@salesforce/core": "^6.7.6",
46
46
  "@salesforce/kit": "^3.1.0",
47
- "@salesforce/schemas": "^1.6.1",
47
+ "@salesforce/schemas": "^1.7.0",
48
48
  "@salesforce/source-deploy-retrieve": "^10.7.0",
49
49
  "@salesforce/ts-types": "^2.0.9",
50
50
  "fast-xml-parser": "^4.3.6",