@salesforce/core 7.3.11 → 7.3.12-qa.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.
- package/lib/org/scratchOrgInfoGenerator.js +1 -0
- package/lib/sfProject.d.ts +12 -49
- package/lib/sfProject.js +21 -12
- package/package.json +1 -1
|
@@ -53,6 +53,7 @@ const getAncestorIds = async (scratchOrgInfo, projectJson, hubOrg) => {
|
|
|
53
53
|
throw new sfError_1.SfError(messages.getMessage('Package2AncestorsIdsKeyNotSupportedError'), 'DeprecationError');
|
|
54
54
|
}
|
|
55
55
|
const packagesWithAncestors = (await projectJson.getPackageDirectories())
|
|
56
|
+
.filter(sfProject_1.isPackagingDirectory)
|
|
56
57
|
// check that the package has any ancestor types (id or version)
|
|
57
58
|
.filter((packageDir) => packageDir.ancestorId ?? packageDir.ancestorVersion);
|
|
58
59
|
if (packagesWithAncestors.length === 0) {
|
package/lib/sfProject.d.ts
CHANGED
|
@@ -1,40 +1,9 @@
|
|
|
1
1
|
import { Dictionary, JsonMap, Nullable, Optional } from '@salesforce/ts-types';
|
|
2
|
+
import { PackageDir as PackageDirSchema, PackageDirDependency as PackageDirDependencySchema, ProjectJson as ProjectJsonSchema, PackagePackageDir } from '@salesforce/schemas';
|
|
2
3
|
import { ConfigFile } from './config/configFile';
|
|
3
4
|
import { ConfigContents } from './config/configStackTypes';
|
|
4
|
-
export type PackageDirDependency =
|
|
5
|
-
|
|
6
|
-
package: string;
|
|
7
|
-
versionNumber?: string;
|
|
8
|
-
};
|
|
9
|
-
export type PackageDir = {
|
|
10
|
-
ancestorId?: string;
|
|
11
|
-
ancestorVersion?: string;
|
|
12
|
-
default?: boolean;
|
|
13
|
-
definitionFile?: string;
|
|
14
|
-
dependencies?: PackageDirDependency[];
|
|
15
|
-
includeProfileUserLicenses?: boolean;
|
|
16
|
-
package?: string;
|
|
17
|
-
packageMetadataAccess?: {
|
|
18
|
-
permissionSets: string | string[];
|
|
19
|
-
permissionSetLicenses: string | string[];
|
|
20
|
-
};
|
|
21
|
-
path: string;
|
|
22
|
-
postInstallScript?: string;
|
|
23
|
-
postInstallUrl?: string;
|
|
24
|
-
releaseNotesUrl?: string;
|
|
25
|
-
scopeProfiles?: boolean;
|
|
26
|
-
uninstallScript?: string;
|
|
27
|
-
versionDescription?: string;
|
|
28
|
-
versionName?: string;
|
|
29
|
-
versionNumber?: string;
|
|
30
|
-
unpackagedMetadata?: {
|
|
31
|
-
path: string;
|
|
32
|
-
};
|
|
33
|
-
seedMetadata?: {
|
|
34
|
-
path: string;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
export type NamedPackageDir = PackageDir & {
|
|
5
|
+
export type PackageDirDependency = PackageDirDependencySchema;
|
|
6
|
+
type NamedDirAdditions = {
|
|
38
7
|
/**
|
|
39
8
|
* The [normalized](https://nodejs.org/api/path.html#path_path_normalize_path) path used as the package name.
|
|
40
9
|
*/
|
|
@@ -44,20 +13,10 @@ export type NamedPackageDir = PackageDir & {
|
|
|
44
13
|
*/
|
|
45
14
|
fullPath: string;
|
|
46
15
|
};
|
|
47
|
-
export type
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
sfdcLoginUrl?: string;
|
|
52
|
-
signupTargetLoginUrl?: string;
|
|
53
|
-
oauthLocalPort?: number;
|
|
54
|
-
plugins?: {
|
|
55
|
-
[k: string]: unknown;
|
|
56
|
-
};
|
|
57
|
-
packageAliases?: {
|
|
58
|
-
[k: string]: string;
|
|
59
|
-
};
|
|
60
|
-
};
|
|
16
|
+
export type PackageDir = PackageDirSchema;
|
|
17
|
+
export type NamedPackagingDir = PackagePackageDir & NamedDirAdditions;
|
|
18
|
+
export type NamedPackageDir = PackageDir & NamedDirAdditions;
|
|
19
|
+
export type ProjectJson = ConfigContents & ProjectJsonSchema;
|
|
61
20
|
/**
|
|
62
21
|
* The sfdx-project.json config object. This file determines if a folder is a valid sfdx project.
|
|
63
22
|
*
|
|
@@ -160,7 +119,7 @@ export declare class SfProjectJson extends ConfigFile<ConfigFile.Options, Projec
|
|
|
160
119
|
*
|
|
161
120
|
* @param packageDir
|
|
162
121
|
*/
|
|
163
|
-
addPackageDirectory(packageDir:
|
|
122
|
+
addPackageDirectory(packageDir: PackageDir): void;
|
|
164
123
|
private doesPackageExist;
|
|
165
124
|
private validateKeys;
|
|
166
125
|
}
|
|
@@ -358,3 +317,7 @@ export declare class SfProject {
|
|
|
358
317
|
getPackageIdFromAlias(alias: string): Optional<string>;
|
|
359
318
|
getAliasesFromPackageId(id: string): string[];
|
|
360
319
|
}
|
|
320
|
+
/** differentiate between the Base PackageDir (path, maybe default) and the Packaging version (package and maybe a LOT of other fields) by whether is has the `package` property */
|
|
321
|
+
export declare const isPackagingDirectory: (packageDir: PackageDir) => packageDir is PackagePackageDir;
|
|
322
|
+
export declare const isNamedPackagingDirectory: (packageDir: NamedPackageDir) => packageDir is NamedPackagingDir;
|
|
323
|
+
export {};
|
package/lib/sfProject.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.SfProject = exports.SfProjectJson = void 0;
|
|
26
|
+
exports.isNamedPackagingDirectory = exports.isPackagingDirectory = exports.SfProject = exports.SfProjectJson = void 0;
|
|
27
27
|
/*
|
|
28
28
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
29
29
|
* All rights reserved.
|
|
@@ -282,16 +282,7 @@ class SfProjectJson extends configFile_1.ConfigFile {
|
|
|
282
282
|
* @param packageDir
|
|
283
283
|
*/
|
|
284
284
|
addPackageDirectory(packageDir) {
|
|
285
|
-
|
|
286
|
-
// so an attempt of matching an existing entry is a bit convoluted
|
|
287
|
-
// an entry w/o a package or id is considered a directory entry for which a package has yet to be created
|
|
288
|
-
// so first attempt is to find a matching dir entry that where path is the same and id and package are not present
|
|
289
|
-
// if that fails, then find a matching dir entry package is present and is same as the new entry
|
|
290
|
-
const dirIndex = this.getContents().packageDirectories.findIndex((pd) => {
|
|
291
|
-
const withId = pd;
|
|
292
|
-
return ((withId.path === packageDir.path && !withId.id && !withId.package) ||
|
|
293
|
-
(!!packageDir.package && packageDir.package === withId.package));
|
|
294
|
-
});
|
|
285
|
+
const dirIndex = this.getContents().packageDirectories.findIndex(findPackageDir(packageDir));
|
|
295
286
|
// merge new package dir with existing entry, if present
|
|
296
287
|
const packageDirEntry = Object.assign({}, dirIndex > -1 ? this.getContents().packageDirectories[dirIndex] : packageDir, packageDir);
|
|
297
288
|
const modifiedPackagesDirs = dirIndex > -1
|
|
@@ -301,6 +292,7 @@ class SfProjectJson extends configFile_1.ConfigFile {
|
|
|
301
292
|
[...(this.getContents()?.packageDirectories ?? []), packageDirEntry];
|
|
302
293
|
this.set('packageDirectories', modifiedPackagesDirs);
|
|
303
294
|
}
|
|
295
|
+
// keep it because testSetup stubs it!
|
|
304
296
|
// eslint-disable-next-line class-methods-use-this
|
|
305
297
|
doesPackageExist(packagePath) {
|
|
306
298
|
return fs.existsSync(packagePath);
|
|
@@ -520,7 +512,9 @@ class SfProject {
|
|
|
520
512
|
*/
|
|
521
513
|
getPackageNameFromPath(path) {
|
|
522
514
|
const packageDir = this.getPackageFromPath(path);
|
|
523
|
-
|
|
515
|
+
if (!packageDir)
|
|
516
|
+
return undefined;
|
|
517
|
+
return (0, exports.isNamedPackagingDirectory)(packageDir) ? packageDir.package : packageDir.path;
|
|
524
518
|
}
|
|
525
519
|
/**
|
|
526
520
|
* Returns the package directory.
|
|
@@ -664,4 +658,19 @@ class SfProject {
|
|
|
664
658
|
}
|
|
665
659
|
}
|
|
666
660
|
exports.SfProject = SfProject;
|
|
661
|
+
/** differentiate between the Base PackageDir (path, maybe default) and the Packaging version (package and maybe a LOT of other fields) by whether is has the `package` property */
|
|
662
|
+
const isPackagingDirectory = (packageDir) => 'package' in packageDir && typeof packageDir.package === 'string';
|
|
663
|
+
exports.isPackagingDirectory = isPackagingDirectory;
|
|
664
|
+
const isNamedPackagingDirectory = (packageDir) => 'package' in packageDir && typeof packageDir.package === 'string';
|
|
665
|
+
exports.isNamedPackagingDirectory = isNamedPackagingDirectory;
|
|
666
|
+
/**
|
|
667
|
+
* there is no notion of uniqueness in package directory entries
|
|
668
|
+
* so an attempt of matching an existing entry is a bit convoluted
|
|
669
|
+
*/
|
|
670
|
+
const findPackageDir = (target) => (potentialMatch) =>
|
|
671
|
+
// an entry w/o a package or id is considered a directory entry for which a package has yet to be created
|
|
672
|
+
// find a matching dir entry that where path is the same and id and package are not present
|
|
673
|
+
(potentialMatch.path === target.path && !('id' in potentialMatch) && !(0, exports.isPackagingDirectory)(potentialMatch)) ||
|
|
674
|
+
// if that fails, then find a matching dir entry package is present and is same as the new entry
|
|
675
|
+
((0, exports.isPackagingDirectory)(target) && (0, exports.isPackagingDirectory)(potentialMatch) && target.package === potentialMatch.package);
|
|
667
676
|
//# sourceMappingURL=sfProject.js.map
|