@simplysf/simply-package 3.0.2 → 3.0.4

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.
Files changed (32) hide show
  1. package/README.md +8 -8
  2. package/lib/commands/simply/package/dependencies/install.d.ts +1 -1
  3. package/lib/commands/simply/package/dependencies/install.js +1 -1
  4. package/lib/commands/simply/package/dependencies/install.js.map +1 -1
  5. package/lib/commands/simply/package/dependencies/manage.d.ts +1 -2
  6. package/lib/commands/simply/package/dependencies/manage.js +1 -3
  7. package/lib/commands/simply/package/dependencies/manage.js.map +1 -1
  8. package/lib/commands/simply/package/version/get.d.ts +1 -1
  9. package/lib/commands/simply/package/version/get.js +1 -1
  10. package/lib/commands/simply/package/version/get.js.map +1 -1
  11. package/package.json +4 -4
  12. package/lib/common/packageUtils.d.ts +0 -19
  13. package/lib/common/packageUtils.js +0 -43
  14. package/lib/common/packageUtils.js.map +0 -1
  15. package/lib/common/packageVersionLookup.d.ts +0 -56
  16. package/lib/common/packageVersionLookup.js +0 -141
  17. package/lib/common/packageVersionLookup.js.map +0 -1
  18. package/lib/common/packageVersionService.d.ts +0 -65
  19. package/lib/common/packageVersionService.js +0 -347
  20. package/lib/common/packageVersionService.js.map +0 -1
  21. package/lib/common/sfdxProjectService.d.ts +0 -19
  22. package/lib/common/sfdxProjectService.js +0 -160
  23. package/lib/common/sfdxProjectService.js.map +0 -1
  24. package/lib/schemas/manage/dependencyChange.d.ts +0 -20
  25. package/lib/schemas/manage/dependencyChange.js +0 -17
  26. package/lib/schemas/manage/dependencyChange.js.map +0 -1
  27. package/lib/schemas/manage/parsedDependency.d.ts +0 -26
  28. package/lib/schemas/manage/parsedDependency.js +0 -49
  29. package/lib/schemas/manage/parsedDependency.js.map +0 -1
  30. package/lib/schemas/sfdx-project/packageDirs.d.ts +0 -22
  31. package/lib/schemas/sfdx-project/packageDirs.js +0 -44
  32. package/lib/schemas/sfdx-project/packageDirs.js.map +0 -1
@@ -1,65 +0,0 @@
1
- import { Connection } from '@salesforce/core';
2
- import { SfProject } from '@salesforce/core';
3
- import { PackageVersionListResult } from '@salesforce/packaging';
4
- import { ParsedDependency } from '../schemas/manage/parsedDependency.js';
5
- /** A single selectable entry in an interactive package-version prompt. */
6
- export type VersionChoice = {
7
- name: string;
8
- value: string;
9
- short: string;
10
- };
11
- /**
12
- * Queryable, in-memory view over a Dev Hub's packages and package versions, built once by
13
- * {@link buildVersionService} and then reused for alias resolution, dependency enrichment, and
14
- * building interactive/automatic version-selection choices.
15
- */
16
- export type PackageVersionService = {
17
- /** @returns Whether this service has data for the given `SubscriberPackageVersionId`. */
18
- knowsAboutVersion(subscriberPackageVersionId: string): boolean;
19
- /** @returns Whether this service has data for the given `Package2Id`. */
20
- knowsAboutPackage(package2Id: string): boolean;
21
- /** @returns The `Package2Id` that owns the given version, if known. */
22
- getPackage2IdForVersion(subscriberPackageVersionId: string): string | undefined;
23
- /** @returns The computed `package@major.minor.patch-build[-branch]` alias for a version, if known. */
24
- getVersionAlias(subscriberPackageVersionId: string): string | undefined;
25
- /** @returns The computed `namespace.Name` (or `Name`) alias for a package, if known. */
26
- getPackageAlias(package2Id: string): string | undefined;
27
- /**
28
- * Fill in a dependency's `package2Id`/`versionNumber`/version-component fields from its
29
- * `subscriberPackageVersionId`, when it has one but the rest weren't already set.
30
- *
31
- * @returns The enriched dependency, or the input unchanged if it can't be enriched.
32
- */
33
- enrichDependency(dependency: ParsedDependency): ParsedDependency;
34
- /**
35
- * Build the full ranked list of interactive version choices for a dependency: latest on the
36
- * given feature branch, latest at each version-precision level (patch/minor/major) on the main
37
- * and release branches, latest released versions, a non-pinned "LATEST" build choice, and the
38
- * dependency's current version.
39
- *
40
- * @returns The choices, in display order, with duplicates already removed.
41
- */
42
- buildInteractiveChoices(dependency: ParsedDependency, branch: string, branchesWithReleased: string[]): VersionChoice[];
43
- /** @returns The latest released version choice for the main branch and each release branch. */
44
- buildReleasedChoices(dependency: ParsedDependency, branchesWithReleased: string[]): VersionChoice[];
45
- /** @returns A single non-pinned "LATEST" build choice for the dependency's current major.minor.patch. */
46
- buildLatestChoices(dependency: ParsedDependency): VersionChoice[];
47
- /** @returns The full version record for a `SubscriberPackageVersionId`, if known. */
48
- findVersionById(subscriberPackageVersionId: string): PackageVersionListResult | undefined;
49
- };
50
- /** IDs to scope {@link buildVersionService} to, instead of loading every package/version in the Dev Hub. */
51
- export type VersionServiceFilterIds = {
52
- package2Ids: string[];
53
- subscriberVersionIds: string[];
54
- };
55
- /**
56
- * Load packages and package versions from the Dev Hub and build a {@link PackageVersionService}
57
- * over them.
58
- *
59
- * @param connection - The Dev Hub connection to query.
60
- * @param project - The SFDX project, used by `Package.listVersions` for alias resolution.
61
- * @param filterIds - When provided, only loads packages/versions relevant to these IDs (plus the
62
- * packages owning any given `subscriberVersionIds`) instead of every package in the Dev Hub.
63
- * @returns A version service backed by the loaded packages/versions.
64
- */
65
- export declare function buildVersionService(connection: Connection, project: SfProject, filterIds?: VersionServiceFilterIds): Promise<PackageVersionService>;
@@ -1,347 +0,0 @@
1
- /*
2
- * Copyright (c) 2026, Clay Chipps.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Package, Package2Fields } from '@salesforce/packaging';
17
- /**
18
- * Load packages and package versions from the Dev Hub and build a {@link PackageVersionService}
19
- * over them.
20
- *
21
- * @param connection - The Dev Hub connection to query.
22
- * @param project - The SFDX project, used by `Package.listVersions` for alias resolution.
23
- * @param filterIds - When provided, only loads packages/versions relevant to these IDs (plus the
24
- * packages owning any given `subscriberVersionIds`) instead of every package in the Dev Hub.
25
- * @returns A version service backed by the loaded packages/versions.
26
- */
27
- export async function buildVersionService(connection, project, filterIds) {
28
- let packages;
29
- let versions;
30
- if (filterIds) {
31
- const package2IdSet = new Set(filterIds.package2Ids);
32
- if (filterIds.subscriberVersionIds.length > 0) {
33
- const inClause = filterIds.subscriberVersionIds.map((id) => `'${id}'`).join(', ');
34
- const result = await connection.autoFetchQuery(`SELECT Package2Id FROM Package2Version WHERE SubscriberPackageVersionId IN (${inClause})`, { tooling: true });
35
- for (const rec of result.records) {
36
- package2IdSet.add(rec.Package2Id);
37
- }
38
- }
39
- const targetPackage2Ids = [...package2IdSet];
40
- if (targetPackage2Ids.length === 0) {
41
- packages = [];
42
- versions = [];
43
- }
44
- else {
45
- const apiVersion = connection.getApiVersion();
46
- const fields = Package2Fields.filter((f) => apiVersion >= '59.0' || f !== 'AppAnalyticsEnabled').filter((f) => apiVersion >= '66.0' || f !== 'RecommendedVersionId');
47
- const inClause = targetPackage2Ids.map((id) => `'${id}'`).join(', ');
48
- const pkg2Result = await connection.autoFetchQuery(`SELECT ${fields.join(', ')} FROM Package2 WHERE Id IN (${inClause}) ORDER BY NamespacePrefix, Name`, { tooling: true });
49
- packages = (pkg2Result?.records ?? []);
50
- versions = await Package.listVersions(connection, project, {
51
- concise: false,
52
- createdLastDays: undefined,
53
- modifiedLastDays: undefined,
54
- orderBy: 'Package2Id, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber',
55
- isReleased: undefined,
56
- verbose: true,
57
- packages: targetPackage2Ids,
58
- });
59
- }
60
- }
61
- else {
62
- packages = await Package.list(connection);
63
- versions = await Package.listVersions(connection, project, {
64
- concise: false,
65
- createdLastDays: undefined,
66
- modifiedLastDays: undefined,
67
- orderBy: 'Package2Id, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber',
68
- isReleased: undefined,
69
- verbose: true,
70
- });
71
- }
72
- const versionsBySubscriberId = new Map();
73
- const packageAliasById = new Map();
74
- const versionsByPackageAndBranch = new Map();
75
- const releasedVersionsByPackageAndBranch = new Map();
76
- for (const pkg of packages) {
77
- packageAliasById.set(pkg.Id, computePackageAlias(pkg));
78
- }
79
- for (const version of versions) {
80
- versionsBySubscriberId.set(version.SubscriberPackageVersionId, version);
81
- sortVersionIntoMap(versionsByPackageAndBranch, version);
82
- if (version.IsReleased) {
83
- sortVersionIntoMap(releasedVersionsByPackageAndBranch, version);
84
- }
85
- }
86
- /** @returns The `namespace.Name` (or bare `Name`) alias for a `Package2` record. */
87
- function computePackageAlias(pkg) {
88
- return (pkg.NamespacePrefix ? pkg.NamespacePrefix + '.' : '') + pkg.Name;
89
- }
90
- /** @returns The `package@major.minor.patch-build[-branch]` alias for a package version. */
91
- function computeVersionAlias(v, branch) {
92
- const seg = `${v.MajorVersion}.${v.MinorVersion}.${v.PatchVersion}-${v.BuildNumber}` + (branch ? '-' + branch : '');
93
- const pkgAlias = packageAliasById.get(v.Package2Id) ?? v.Package2Id;
94
- return pkgAlias + '@' + seg;
95
- }
96
- /** Index a package version into `map`, nested by package, branch, and major/minor/patch/build. */
97
- function sortVersionIntoMap(map, v) {
98
- const branch = v.Branch ?? '';
99
- const major = parseInt(v.MajorVersion, 10);
100
- const minor = parseInt(v.MinorVersion, 10);
101
- const patch = parseInt(v.PatchVersion, 10);
102
- const build = parseInt(v.BuildNumber, 10);
103
- if (!map.has(v.Package2Id))
104
- map.set(v.Package2Id, new Map());
105
- const byBranch = map.get(v.Package2Id);
106
- if (!byBranch.has(branch))
107
- byBranch.set(branch, new Map());
108
- const byMajor = byBranch.get(branch);
109
- if (!byMajor.has(major))
110
- byMajor.set(major, new Map());
111
- const byMinor = byMajor.get(major);
112
- if (!byMinor.has(minor))
113
- byMinor.set(minor, new Map());
114
- const byPatch = byMinor.get(minor);
115
- if (!byPatch.has(patch))
116
- byPatch.set(patch, new Map());
117
- const byBuild = byPatch.get(patch);
118
- if (!byBuild.has(build))
119
- byBuild.set(build, v);
120
- }
121
- /**
122
- * Walk a version map block to the latest (highest-key) entry at any depth.
123
- *
124
- * @param block - A `VersionMap` node at any nesting depth (major/minor/patch/build).
125
- * @returns The version record at the highest key, recursing into nested maps as needed.
126
- */
127
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
- function findLatestFromBlock(block) {
129
- const keys = [...block.keys()];
130
- const maxKey = keys.reduce((max, k) => (k > max ? k : max), keys[0]);
131
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
132
- const entry = block.get(maxKey);
133
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
134
- return entry instanceof Map ? findLatestFromBlock(entry) : entry;
135
- }
136
- /** How far down a `VersionMap` to descend before returning a block to search for "latest" in. */
137
- let ChunkLevel;
138
- (function (ChunkLevel) {
139
- ChunkLevel[ChunkLevel["Major"] = 1] = "Major";
140
- ChunkLevel[ChunkLevel["Minor"] = 2] = "Minor";
141
- ChunkLevel[ChunkLevel["Patch"] = 3] = "Patch";
142
- })(ChunkLevel || (ChunkLevel = {}));
143
- /**
144
- * Descend into `map` for the given package/branch, stopping at `level` (or as far as the
145
- * dependency's known major/minor version components allow).
146
- *
147
- * @returns The block at the requested depth, or `undefined` if nothing is indexed there.
148
- */
149
- function findBlock(map, package2Id, branch, dependency, level) {
150
- const resolvedBranch = branch ?? '';
151
- const byBranch = map.get(package2Id);
152
- if (!byBranch?.has(resolvedBranch))
153
- return undefined;
154
- const byMajor = byBranch.get(resolvedBranch);
155
- if (level === ChunkLevel.Major)
156
- return byMajor;
157
- const byMinor = byMajor?.get(dependency.majorVersion);
158
- if (level === ChunkLevel.Minor || byMinor === undefined)
159
- return byMinor;
160
- return byMinor.get(dependency.minorVersion);
161
- }
162
- /** @returns A {@link VersionChoice} pointing directly at a specific package version. */
163
- function makeVersionChoice(v, label, branch) {
164
- const seg = `${v.MajorVersion}.${v.MinorVersion}.${v.PatchVersion}-${v.BuildNumber}` + (branch ? '-' + branch : '');
165
- return {
166
- name: `${label}: ${seg}`,
167
- value: v.SubscriberPackageVersionId,
168
- short: seg,
169
- };
170
- }
171
- /** @returns A {@link VersionChoice} whose value is a non-pinned `package2Id|major.minor.patch.LATEST` build spec. */
172
- function makeLatestChoice(v, label) {
173
- const seg = `${v.MajorVersion}.${v.MinorVersion}.${v.PatchVersion}.LATEST`;
174
- return {
175
- name: label,
176
- value: `${v.Package2Id}|${seg}`,
177
- short: seg,
178
- };
179
- }
180
- /**
181
- * @returns The latest released version choice for a package on the given branch (empty string
182
- * for the main branch), or `undefined` if there isn't one or it's already in `seen`.
183
- */
184
- function findLatestReleasedForBranch(package2Id, branch, dependency, seen) {
185
- const block = findBlock(releasedVersionsByPackageAndBranch, package2Id, branch, dependency, ChunkLevel.Major);
186
- if (!block)
187
- return undefined;
188
- const v = findLatestFromBlock(block);
189
- if (seen.has(v.SubscriberPackageVersionId))
190
- return undefined;
191
- seen.add(v.SubscriberPackageVersionId);
192
- const label = branch
193
- ? `Latest released version on build branch - ${branch}`
194
- : 'Latest released version on main build branch';
195
- return makeVersionChoice(v, label, branch || undefined);
196
- }
197
- /**
198
- * @returns The latest version choice for a package on the given branch (empty string for the
199
- * main branch) at the given precision level, or `undefined` if there isn't one or it's already
200
- * in `seen`.
201
- */
202
- function findLatestForBranch(package2Id, branch, dependency, level, label, seen) {
203
- const block = findBlock(versionsByPackageAndBranch, package2Id, branch, dependency, level);
204
- if (!block)
205
- return undefined;
206
- const v = findLatestFromBlock(block);
207
- if (seen.has(v.SubscriberPackageVersionId))
208
- return undefined;
209
- seen.add(v.SubscriberPackageVersionId);
210
- return makeVersionChoice(v, label, branch || undefined);
211
- }
212
- return {
213
- knowsAboutVersion(id) {
214
- return versionsBySubscriberId.has(id);
215
- },
216
- knowsAboutPackage(package2Id) {
217
- return packageAliasById.has(package2Id);
218
- },
219
- getPackage2IdForVersion(subscriberPackageVersionId) {
220
- return versionsBySubscriberId.get(subscriberPackageVersionId)?.Package2Id;
221
- },
222
- getVersionAlias(subscriberPackageVersionId) {
223
- const v = versionsBySubscriberId.get(subscriberPackageVersionId);
224
- if (!v)
225
- return undefined;
226
- return computeVersionAlias(v, v.Branch || undefined);
227
- },
228
- getPackageAlias(package2Id) {
229
- return packageAliasById.get(package2Id);
230
- },
231
- findVersionById(subscriberPackageVersionId) {
232
- return versionsBySubscriberId.get(subscriberPackageVersionId);
233
- },
234
- enrichDependency(dependency) {
235
- if (dependency.package2Id || !dependency.subscriberPackageVersionId)
236
- return dependency;
237
- const v = versionsBySubscriberId.get(dependency.subscriberPackageVersionId);
238
- if (!v)
239
- return dependency;
240
- const parts = `${v.MajorVersion}.${v.MinorVersion}.${v.PatchVersion}.${v.BuildNumber}`.split('.');
241
- return {
242
- ...dependency,
243
- package2Id: v.Package2Id,
244
- versionNumber: `${v.MajorVersion}.${v.MinorVersion}.${v.PatchVersion}.${v.BuildNumber}`,
245
- majorVersion: parseInt(parts[0], 10),
246
- minorVersion: parseInt(parts[1], 10),
247
- patchVersion: parseInt(parts[2], 10),
248
- buildVersion: parseInt(parts[3], 10),
249
- };
250
- },
251
- // eslint-disable-next-line complexity
252
- buildInteractiveChoices(dependency, branch, branchesWithReleased) {
253
- const package2Id = dependency.package2Id;
254
- const maj = dependency.majorVersion ?? '';
255
- const min = dependency.minorVersion ?? '';
256
- const pat = dependency.patchVersion ?? '';
257
- const choices = [];
258
- const releasedChoices = [];
259
- const seen = new Set();
260
- // Latest released on null/main branch and named release branches
261
- const releasedMain = findLatestReleasedForBranch(package2Id, '', dependency, seen);
262
- if (releasedMain)
263
- releasedChoices.push(releasedMain);
264
- for (const b of branchesWithReleased ?? []) {
265
- const rc = findLatestReleasedForBranch(package2Id, b, dependency, seen);
266
- if (rc)
267
- releasedChoices.push(rc);
268
- }
269
- // Latest version on the specified feature branch
270
- if (branch) {
271
- const c = findLatestForBranch(package2Id, branch, dependency, ChunkLevel.Patch, `Latest version on '${branch}' branch`, seen);
272
- if (c)
273
- choices.push(c);
274
- }
275
- // Latest build with same Major.Minor.Patch on main branch and release branches
276
- const patchMain = findLatestForBranch(package2Id, '', dependency, ChunkLevel.Patch, `Latest ${maj}.${min}.${pat} version on main build branch`, seen);
277
- if (patchMain)
278
- choices.push(patchMain);
279
- for (const b of branchesWithReleased ?? []) {
280
- const c = findLatestForBranch(package2Id, b, dependency, ChunkLevel.Patch, `Latest ${maj}.${min}.${pat} version on build branch - ${b}`, seen);
281
- if (c)
282
- choices.push(c);
283
- }
284
- // Latest build with same Major.Minor on main branch and release branches
285
- const minorMain = findLatestForBranch(package2Id, '', dependency, ChunkLevel.Minor, `Latest ${maj}.${min} version on main build branch`, seen);
286
- if (minorMain)
287
- choices.push(minorMain);
288
- for (const b of branchesWithReleased ?? []) {
289
- const c = findLatestForBranch(package2Id, b, dependency, ChunkLevel.Minor, `Latest ${maj}.${min} version on build branch - ${b}`, seen);
290
- if (c)
291
- choices.push(c);
292
- }
293
- // Latest build overall on main branch and release branches
294
- const majorMain = findLatestForBranch(package2Id, '', dependency, ChunkLevel.Major, 'Latest version on main build branch', seen);
295
- if (majorMain)
296
- choices.push(majorMain);
297
- for (const b of branchesWithReleased ?? []) {
298
- const c = findLatestForBranch(package2Id, b, dependency, ChunkLevel.Major, `Latest version on build branch - ${b}`, seen);
299
- if (c)
300
- choices.push(c);
301
- }
302
- // Released choices go after so they appear clearly
303
- choices.push(...releasedChoices);
304
- // Non-pinned latest for current Major.Minor.Patch
305
- const block = findBlock(versionsByPackageAndBranch, package2Id, branch, dependency, ChunkLevel.Patch) ??
306
- findBlock(versionsByPackageAndBranch, package2Id, '', dependency, ChunkLevel.Patch) ??
307
- findBlock(versionsByPackageAndBranch, package2Id, '', dependency, ChunkLevel.Minor);
308
- if (block) {
309
- const v = findLatestFromBlock(block);
310
- choices.push(makeLatestChoice(v, `Non-pinned latest ${maj}.${min}.${pat} build`));
311
- }
312
- // Keep the current version as last option
313
- if (dependency.subscriberPackageVersionId && versionsBySubscriberId.has(dependency.subscriberPackageVersionId)) {
314
- const v = versionsBySubscriberId.get(dependency.subscriberPackageVersionId);
315
- choices.push(makeVersionChoice(v, 'Current version specified', v.Branch || undefined));
316
- }
317
- return choices;
318
- },
319
- buildReleasedChoices(dependency, branchesWithReleased) {
320
- const package2Id = dependency.package2Id;
321
- const choices = [];
322
- const seen = new Set();
323
- const main = findLatestReleasedForBranch(package2Id, '', dependency, seen);
324
- if (main)
325
- choices.push(main);
326
- for (const b of branchesWithReleased ?? []) {
327
- const c = findLatestReleasedForBranch(package2Id, b, dependency, seen);
328
- if (c)
329
- choices.push(c);
330
- }
331
- return choices;
332
- },
333
- buildLatestChoices(dependency) {
334
- const package2Id = dependency.package2Id;
335
- const block = findBlock(versionsByPackageAndBranch, package2Id, '', dependency, ChunkLevel.Patch) ??
336
- findBlock(versionsByPackageAndBranch, package2Id, '', dependency, ChunkLevel.Minor);
337
- if (!block)
338
- return [];
339
- const v = findLatestFromBlock(block);
340
- const maj = dependency.majorVersion ?? '';
341
- const min = dependency.minorVersion ?? '';
342
- const pat = dependency.patchVersion ?? '';
343
- return [makeLatestChoice(v, `Non-pinned latest ${maj}.${min}.${pat} build`)];
344
- },
345
- };
346
- }
347
- //# sourceMappingURL=packageVersionService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"packageVersionService.js","sourceRoot":"","sources":["../../src/common/packageVersionService.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { SfProject } from '@salesforce/core';
2
- import { DependencyChange } from '../schemas/manage/dependencyChange.js';
3
- import { ParsedDependency } from '../schemas/manage/parsedDependency.js';
4
- /** Read/write access to an SFDX project's package dependencies and related plugin config. */
5
- export type SfdxProjectService = {
6
- getDependenciesByDirectory(): Map<string, ParsedDependency[]>;
7
- getDependenciesToIgnore(): string[];
8
- getBranchesWithReleasedVersions(): string[];
9
- findAlias(id: string): string | undefined;
10
- resolveAlias(alias: string): string;
11
- applyChanges(changesByDirectory: Map<string, DependencyChange[]>): Promise<void>;
12
- };
13
- /**
14
- * Load an SFDX project's `sfdx-project.json` and build an {@link SfdxProjectService} over it.
15
- *
16
- * @param project - The SFDX project to load.
17
- * @returns A service for reading/writing the project's package dependencies.
18
- */
19
- export declare function buildProjectService(project: SfProject): Promise<SfdxProjectService>;
@@ -1,160 +0,0 @@
1
- /*
2
- * Copyright (c) 2026, Clay Chipps.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { isNamedPackagingDirectory } from '@salesforce/core';
17
- import { parseDependency } from '../schemas/manage/parsedDependency.js';
18
- import { PACKAGE_PREFIX_SUBSCRIBER_PACKAGE_VERSION } from './packageUtils.js';
19
- /**
20
- * Load an SFDX project's `sfdx-project.json` and build an {@link SfdxProjectService} over it.
21
- *
22
- * @param project - The SFDX project to load.
23
- * @returns A service for reading/writing the project's package dependencies.
24
- */
25
- export async function buildProjectService(project) {
26
- const projectJson = await project.retrieveSfProjectJson();
27
- const contents = projectJson.getContents();
28
- /** @returns The project's `packageAliases` map, or an empty object if there isn't one. */
29
- function getAliases() {
30
- return contents.packageAliases ?? {};
31
- }
32
- /** @returns The ID `alias` resolves to, or `alias` itself if it isn't a known alias. */
33
- function resolveAlias(alias) {
34
- return project.getPackageIdFromAlias(alias) ?? alias;
35
- }
36
- /** @returns The first alias in `packageAliases` that resolves to `id`, if any. */
37
- function findAlias(id) {
38
- const aliases = getAliases();
39
- for (const [k, v] of Object.entries(aliases)) {
40
- if (v === id)
41
- return k;
42
- }
43
- return undefined;
44
- }
45
- /** @returns Every package directory's parsed dependencies, keyed by directory path. */
46
- function getDependenciesByDirectory() {
47
- const result = new Map();
48
- for (const dir of project.getPackageDirectories()) {
49
- const deps = isNamedPackagingDirectory(dir) ? (dir.dependencies ?? []) : [];
50
- const parsed = [];
51
- for (const dep of deps) {
52
- const resolvedPackage = project.getPackageIdFromAlias(dep.package) ?? dep.package;
53
- parsed.push(parseDependency(resolvedPackage, dep.versionNumber));
54
- }
55
- result.set(dir.path, parsed);
56
- }
57
- return result;
58
- }
59
- /**
60
- * @param keyPath - A dot-delimited path into `sfdx-project.json`'s contents, e.g.
61
- * `plugins.simply.dependencies.ignore`.
62
- * @returns The value at `keyPath`, or `undefined` if any segment along the path is missing.
63
- */
64
- function getPluginConfig(keyPath) {
65
- const parts = keyPath.split('.');
66
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
- let current = contents;
68
- for (const part of parts) {
69
- if (current == null || typeof current !== 'object')
70
- return undefined;
71
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
72
- current = current[part];
73
- }
74
- return current;
75
- }
76
- /** @returns Package2Ids/aliases configured under `plugins.simply.dependencies.ignore`. */
77
- function getDependenciesToIgnore() {
78
- return getPluginConfig('plugins.simply.dependencies.ignore') ?? [];
79
- }
80
- /** @returns Branch names configured under `plugins.simply.package.brancheswithreleasedversions`. */
81
- function getBranchesWithReleasedVersions() {
82
- return getPluginConfig('plugins.simply.package.brancheswithreleasedversions') ?? [];
83
- }
84
- /**
85
- * Apply a set of dependency version changes to the in-memory project JSON and write it back to
86
- * disk, updating each affected directory's dependency entries and `packageAliases` as needed.
87
- *
88
- * @param changesByDirectory - The changes to apply, keyed by package directory path.
89
- */
90
- async function applyChanges(changesByDirectory) {
91
- // Deep-clone both structures so we can mutate them freely before calling set()
92
- const updatedDirs = JSON.parse(JSON.stringify(contents.packageDirectories ?? []));
93
- const updatedAliases = { ...getAliases() };
94
- for (const [dirPath, changes] of changesByDirectory) {
95
- // `dirPath` comes from `SfProject.getPackageDirectories()`, which normalizes the path to the
96
- // OS separator. The raw JSON on disk always uses forward slashes, so compare both
97
- // slash-normalized to avoid a false mismatch (and a silent no-op write) on Windows.
98
- const dir = updatedDirs.find((d) => normalizePathSep(d['path']) === normalizePathSep(dirPath));
99
- if (!dir)
100
- continue;
101
- const deps = (dir['dependencies'] ?? []);
102
- for (const change of changes) {
103
- const dep = deps.find((d) => resolveAlias(d['package']) === change.oldDependency.package2Id ||
104
- resolveAlias(d['package']) === change.oldDependency.subscriberPackageVersionId);
105
- if (!dep)
106
- continue;
107
- if (change.newSubscriberPackageVersionId) {
108
- // Pinned version: set alias, clear versionNumber
109
- dep['package'] = change.newAlias;
110
- delete dep['versionNumber'];
111
- updatedAliases[change.newAlias] = change.newSubscriberPackageVersionId;
112
- // Add package-level alias if provided
113
- if (change.newPackage2Id) {
114
- const pkgAlias = change.newAlias.split('@')[0];
115
- if (pkgAlias && !updatedAliases[pkgAlias]) {
116
- updatedAliases[pkgAlias] = change.newPackage2Id;
117
- }
118
- }
119
- // Remove old version alias if it changed and pointed to a subscriber package version
120
- if (change.oldAlias !== change.newAlias) {
121
- const oldTarget = updatedAliases[change.oldAlias];
122
- if (oldTarget?.startsWith(PACKAGE_PREFIX_SUBSCRIBER_PACKAGE_VERSION)) {
123
- delete updatedAliases[change.oldAlias];
124
- }
125
- }
126
- }
127
- else if (change.newPackage2Id && change.newVersionNumber) {
128
- // Non-pinned version: set package 0Ho alias and versionNumber
129
- dep['package'] = change.newAlias;
130
- dep['versionNumber'] = change.newVersionNumber;
131
- updatedAliases[change.newAlias] = change.newPackage2Id;
132
- if (change.oldAlias !== change.newAlias) {
133
- const oldTarget = updatedAliases[change.oldAlias];
134
- if (oldTarget?.startsWith(PACKAGE_PREFIX_SUBSCRIBER_PACKAGE_VERSION)) {
135
- delete updatedAliases[change.oldAlias];
136
- }
137
- }
138
- }
139
- }
140
- }
141
- const sortedAliases = Object.fromEntries(Object.entries(updatedAliases).sort(([a], [b]) => a.localeCompare(b)));
142
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
143
- projectJson.set('packageDirectories', updatedDirs);
144
- projectJson.set('packageAliases', sortedAliases);
145
- await projectJson.write();
146
- }
147
- return {
148
- getDependenciesByDirectory,
149
- getDependenciesToIgnore,
150
- getBranchesWithReleasedVersions,
151
- findAlias,
152
- resolveAlias,
153
- applyChanges,
154
- };
155
- }
156
- /** @returns `path` with backslashes converted to forward slashes, for OS-agnostic path comparison. */
157
- function normalizePathSep(path) {
158
- return path.replace(/\\/g, '/');
159
- }
160
- //# sourceMappingURL=sfdxProjectService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sfdxProjectService.js","sourceRoot":"","sources":["../../src/common/sfdxProjectService.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { ParsedDependency } from './parsedDependency.js';
2
- /** A proposed (or applied) change to a single dependency's pinned/tracked version. */
3
- export type DependencyChange = {
4
- oldAlias: string;
5
- oldDependency: ParsedDependency;
6
- newAlias: string;
7
- newSubscriberPackageVersionId?: string;
8
- newPackage2Id?: string;
9
- newVersionNumber?: string;
10
- isSameAsOld: boolean;
11
- };
12
- /** Per-package-directory summary returned by `simply package dependencies manage`. */
13
- export type PackageDependenciesManageResult = {
14
- packageDirectory: string;
15
- changes: Array<{
16
- oldAlias: string;
17
- newAlias: string;
18
- changed: boolean;
19
- }>;
20
- };