@jayree/sfdx-plugin-manifest 3.3.28 → 3.4.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +3 -3
  3. package/lib/SDR-extra/collections/componentSetExtra.js +1 -1
  4. package/lib/SDR-extra/collections/componentSetExtra.js.map +1 -1
  5. package/lib/SDR-extra/resolve/gitDiffResolver.d.ts +4 -5
  6. package/lib/SDR-extra/resolve/gitDiffResolver.js +45 -160
  7. package/lib/SDR-extra/resolve/gitDiffResolver.js.map +1 -1
  8. package/lib/SDR-extra/resolve/treeContainersExtra.d.ts +1 -2
  9. package/lib/SDR-extra/resolve/treeContainersExtra.js +28 -15
  10. package/lib/SDR-extra/resolve/treeContainersExtra.js.map +1 -1
  11. package/lib/SDR-extra/utils/gitComponentSetArray.d.ts +25 -0
  12. package/lib/SDR-extra/utils/gitComponentSetArray.js +142 -0
  13. package/lib/SDR-extra/utils/gitComponentSetArray.js.map +1 -0
  14. package/lib/SDR-extra/utils/index.d.ts +1 -0
  15. package/lib/SDR-extra/utils/index.js +1 -0
  16. package/lib/SDR-extra/utils/index.js.map +1 -1
  17. package/lib/SDR-extra/utils/localGitRepo.d.ts +19 -23
  18. package/lib/SDR-extra/utils/localGitRepo.js +129 -129
  19. package/lib/SDR-extra/utils/localGitRepo.js.map +1 -1
  20. package/lib/SDR-extra/utils/moveDetection.d.ts +16 -0
  21. package/lib/SDR-extra/utils/moveDetection.js +137 -0
  22. package/lib/SDR-extra/utils/moveDetection.js.map +1 -0
  23. package/lib/SDR-extra/utils/statusMatrix.d.ts +10 -0
  24. package/lib/SDR-extra/utils/statusMatrix.js +78 -0
  25. package/lib/SDR-extra/utils/statusMatrix.js.map +1 -0
  26. package/lib/SDR-extra/utils/worthWalking.d.ts +1 -0
  27. package/lib/SDR-extra/utils/worthWalking.js +19 -0
  28. package/lib/SDR-extra/utils/worthWalking.js.map +1 -0
  29. package/lib/commands/jayree/manifest/git/diff.js +4 -1
  30. package/lib/commands/jayree/manifest/git/diff.js.map +1 -1
  31. package/lib/tsconfig.tsbuildinfo +1 -1
  32. package/npm-shrinkwrap.json +867 -416
  33. package/oclif.lock +335 -249
  34. package/oclif.manifest.json +1 -1
  35. package/package.json +6 -3
@@ -0,0 +1,142 @@
1
+ /*
2
+ * Copyright (c) 2022, jayree
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ // https://github.com/forcedotcom/source-tracking/blob/main/src/shared/localComponentSetArray.ts
8
+ import { ComponentSet, RegistryAccess, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
9
+ import { Logger } from '@salesforce/core';
10
+ import equal from 'fast-deep-equal';
11
+ import { getString } from '@salesforce/ts-types';
12
+ import { supportsPartialDelete, pathIsInFolder } from '@salesforce/source-tracking/lib/shared/functions.js';
13
+ import { isDefined } from '@salesforce/source-tracking/lib/shared/guards.js';
14
+ import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
15
+ export const getGroupedFiles = (input, byPackageDir = false) => (byPackageDir ? getSequential(input) : getNonSequential(input)).filter((group) => group.deletes.length || group.adds.length || group.modifies.length);
16
+ const getSequential = ({ packageDirs, adds, modifies, deletes }) => packageDirs.map((pkgDir) => ({
17
+ path: pkgDir.name,
18
+ adds: adds.filter(pathIsInFolder(pkgDir.name)),
19
+ modifies: modifies.filter(pathIsInFolder(pkgDir.name)),
20
+ deletes: deletes.filter(pathIsInFolder(pkgDir.name)),
21
+ }));
22
+ const getNonSequential = ({ packageDirs, adds, modifies, deletes }) => [
23
+ {
24
+ adds,
25
+ modifies,
26
+ deletes,
27
+ path: packageDirs.map((dir) => dir.name).join(';'),
28
+ },
29
+ ];
30
+ export const getComponentSets = ({ groupings, sourceApiVersion, registry = new RegistryAccess(), resolverForNonDeletes, resolverForDeletes, virtualTreeContainer, }) => {
31
+ const logger = Logger.childFromRoot('gitDiff:gitComponentSetArray');
32
+ return groupings
33
+ .map((grouping) => {
34
+ logger.debug(`building componentSet for ${grouping.path} (deletes: ${grouping.deletes.length} adds: ${grouping.adds.length} modifies: ${grouping.modifies.length})`);
35
+ const componentSet = new ComponentSet(undefined, registry);
36
+ if (sourceApiVersion) {
37
+ componentSet.sourceApiVersion = sourceApiVersion;
38
+ }
39
+ grouping.deletes
40
+ .flatMap((filename) => resolverForDeletes.getComponentsFromPath(filename))
41
+ .filter(isDefined)
42
+ .forEach((component) => {
43
+ // if the component supports partial delete AND there are files that are not deleted,
44
+ // set the component for deploy, not for delete.
45
+ if (supportsPartialDelete(component) && component.content && virtualTreeContainer.exists(component.content)) {
46
+ // all bundle types have a directory name
47
+ try {
48
+ resolverForNonDeletes
49
+ .getComponentsFromPath(component.content)
50
+ .filter(isDefined)
51
+ .map((nonDeletedComponent) => componentSet.add(nonDeletedComponent));
52
+ }
53
+ catch (e) {
54
+ logger.warn(`unable to find component at ${component.content}. That's ok if it was supposed to be deleted`);
55
+ }
56
+ }
57
+ else {
58
+ componentSet.add(component, DestructiveChangesType.POST);
59
+ }
60
+ });
61
+ grouping.adds
62
+ .flatMap((filename) => resolverForNonDeletes.getComponentsFromPath(filename))
63
+ .filter(isDefined)
64
+ .forEach((component) => componentSet.add(component));
65
+ grouping.modifies
66
+ .flat()
67
+ .filter((filename) => {
68
+ if (!parseMetadataXml(filename)) {
69
+ resolverForNonDeletes
70
+ .getComponentsFromPath(filename)
71
+ .filter(isDefined)
72
+ .forEach((component) => componentSet.add(component));
73
+ return false;
74
+ }
75
+ return true;
76
+ })
77
+ .map((filename) => {
78
+ const [ref2Component] = resolverForNonDeletes.getComponentsFromPath(filename).filter(isDefined); // git path only conaints files
79
+ const [ref1Component] = resolverForDeletes.getComponentsFromPath(filename).filter(isDefined); // git path only conaints files
80
+ return { ref1Component, ref2Component, filename };
81
+ })
82
+ .filter((comp) => {
83
+ if (resolverForDeletes.forceIgnoredPaths.has(comp.filename) ||
84
+ resolverForNonDeletes.forceIgnoredPaths.has(comp.filename)) {
85
+ return false;
86
+ }
87
+ return true;
88
+ })
89
+ .filter((comp) => {
90
+ if (equal(comp.ref1Component.parseXmlSync(comp.filename), comp.ref2Component.parseXmlSync(comp.filename))) {
91
+ return false;
92
+ }
93
+ return true;
94
+ })
95
+ .filter((comp) => {
96
+ if (comp.ref1Component.type.strictDirectoryName === true || !comp.ref1Component.type.children) {
97
+ resolverForNonDeletes
98
+ .getComponentsFromPath(comp.filename)
99
+ .filter(isDefined)
100
+ .forEach((component) => componentSet.add(component));
101
+ return false;
102
+ }
103
+ return true;
104
+ })
105
+ .forEach((comp) => {
106
+ const getUniqueIdentifier = (component) => `${component.type.name}#${getString(component, component.type.uniqueIdElement)}`;
107
+ const ref2ChildUniqueIdArray = comp.ref2Component
108
+ .getChildren()
109
+ .map((childComponent) => getUniqueIdentifier(childComponent));
110
+ const ref1ChildUniqueIdArray = comp.ref1Component
111
+ .getChildren()
112
+ .map((childComponent) => getUniqueIdentifier(childComponent));
113
+ comp.ref1Component
114
+ .getChildren()
115
+ .filter((childComponent) => !ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent)))
116
+ .map((component) => componentSet.add(component, DestructiveChangesType.POST)); // deleted
117
+ comp.ref2Component
118
+ .getChildren()
119
+ .filter((childComponent) => !ref1ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent)))
120
+ .map((component) => componentSet.add(component)); // added
121
+ const childComponentsInRef1AndRef2 = comp.ref1Component
122
+ .getChildren()
123
+ .filter((childComponent) => ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // modified?
124
+ for (const childComponentRef1 of childComponentsInRef1AndRef2) {
125
+ const [childComponentRef2] = comp.ref2Component
126
+ .getChildren()
127
+ .filter((childComponent) => getUniqueIdentifier(childComponentRef1) === getUniqueIdentifier(childComponent));
128
+ if (!equal(childComponentRef1.parseXmlSync(), childComponentRef2.parseXmlSync())) {
129
+ componentSet.add(childComponentRef2); // modified! -> add to added
130
+ }
131
+ }
132
+ });
133
+ // there may have been ignored files, but componentSet.add doesn't automatically track them.
134
+ // We'll manually set the ignored paths from what the resolver has been tracking
135
+ componentSet.forceIgnoredPaths = new Set([...(componentSet.forceIgnoredPaths ?? [])]
136
+ .concat(Array.from(resolverForDeletes.forceIgnoredPaths))
137
+ .concat(Array.from(resolverForNonDeletes.forceIgnoredPaths)));
138
+ return componentSet;
139
+ })
140
+ .filter((componentSet) => componentSet.size > 0 || componentSet.forceIgnoredPaths?.size);
141
+ };
142
+ //# sourceMappingURL=gitComponentSetArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitComponentSetArray.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/gitComponentSetArray.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './localGitRepo.js';
2
+ export * from './statusMatrix.js';
@@ -5,4 +5,5 @@
5
5
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
6
  */
7
7
  export * from './localGitRepo.js';
8
+ export * from './statusMatrix.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -1,12 +1,19 @@
1
+ import { StatusRow } from 'isomorphic-git';
2
+ import { NamedPackageDir } from '@salesforce/core';
3
+ import { RegistryAccess } from '@salesforce/source-deploy-retrieve';
4
+ export declare const STAGE = 3;
1
5
  export type GitRepoOptions = {
2
- gitDir: string;
3
- packageDirs?: string[];
6
+ dir: string;
7
+ packageDirs: NamedPackageDir[];
8
+ registry: RegistryAccess;
4
9
  };
5
10
  export declare class GitRepo {
6
11
  private static instanceMap;
7
- gitDir: string;
12
+ dir: string;
8
13
  private packageDirs;
14
+ private status;
9
15
  private lifecycle;
16
+ private readonly registry;
10
17
  private constructor();
11
18
  static getInstance(options: GitRepoOptions): GitRepo;
12
19
  resolveMultiRefString(ref: string): Promise<{
@@ -14,26 +21,15 @@ export declare class GitRepo {
14
21
  ref2: string;
15
22
  }>;
16
23
  resolveSingleRefString(ref: string | undefined): Promise<string>;
17
- getStatus(ref: string): Promise<Array<{
18
- path: string;
19
- status: string | undefined;
20
- }>>;
21
- getFileState(options: {
22
- ref1: string;
23
- ref2: string;
24
- }): Promise<[
25
- {
26
- path: string;
27
- status: string;
28
- }
29
- ]>;
30
- listFullPathFiles(ref: string): Promise<string[]>;
31
- getOid(ref: string): Promise<string>;
32
- readBlobAsBuffer(options: {
33
- oid: string;
34
- filename: string;
35
- }): Promise<Buffer>;
24
+ getAdds(): StatusRow[];
25
+ getAddFilenames(): string[];
26
+ getModifies(): StatusRow[];
27
+ getModifyFilenames(): string[];
28
+ getDeletes(): StatusRow[];
29
+ getDeleteFilenames(): string[];
30
+ getStatus(ref1: string, ref2?: string): Promise<StatusRow[]>;
31
+ emitStatusWarnings(): Promise<void>;
32
+ private detectMovedFiles;
36
33
  private getCommitLog;
37
- private ensureGitRelPath;
38
34
  private checkLocalGitAutocrlfConfig;
39
35
  }
@@ -4,27 +4,46 @@
4
4
  * Licensed under the BSD 3-Clause license.
5
5
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
6
  */
7
+ // https://github.com/forcedotcom/source-tracking/blob/main/src/shared/local/localShadowRepo.ts
7
8
  import util from 'node:util';
8
9
  import path from 'node:path';
10
+ import os from 'node:os';
9
11
  import fs from 'node:fs/promises';
10
12
  import { execSync } from 'node:child_process';
11
13
  import git from 'isomorphic-git';
12
- import { Lifecycle } from '@salesforce/core';
14
+ import { Lifecycle, SfError } from '@salesforce/core';
15
+ import { excludeLwcLocalOnlyTest, folderContainsPath } from '@salesforce/source-tracking/lib/shared/functions.js';
16
+ import { HEAD, WORKDIR, IS_WINDOWS, ensureWindows, ensurePosix, toFilenames, } from '@salesforce/source-tracking/lib/shared/local/functions.js';
17
+ import { getMatches } from '@salesforce/source-tracking/lib/shared/local/moveDetection.js';
18
+ import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
19
+ import { filenameMatchesToMap, getLogMessage } from './moveDetection.js';
20
+ import { statusMatrix } from './statusMatrix.js';
21
+ export const STAGE = 3;
22
+ const redirectToCliRepoError = (e) => {
23
+ if (e instanceof git.Errors.InternalError) {
24
+ const error = new SfError(`An internal error caused this command to fail. isomorphic-git error:${os.EOL}${e.data.message}`, e.name);
25
+ throw error;
26
+ }
27
+ throw e;
28
+ };
13
29
  export class GitRepo {
14
30
  static instanceMap = new Map();
15
- gitDir;
31
+ dir;
16
32
  packageDirs;
33
+ status;
17
34
  lifecycle = Lifecycle.getInstance();
35
+ registry;
18
36
  constructor(options) {
19
- this.gitDir = options.gitDir;
20
- this.packageDirs = options.packageDirs;
37
+ this.dir = options.dir;
38
+ this.packageDirs = options.packageDirs.map(packageDirToRelativePosixPath(options.dir));
39
+ this.registry = options.registry;
21
40
  }
22
41
  static getInstance(options) {
23
- if (!GitRepo.instanceMap.has(options.gitDir)) {
42
+ if (!GitRepo.instanceMap.has(options.dir)) {
24
43
  const newInstance = new GitRepo(options);
25
- GitRepo.instanceMap.set(options.gitDir, newInstance);
44
+ GitRepo.instanceMap.set(options.dir, newInstance);
26
45
  }
27
- return GitRepo.instanceMap.get(options.gitDir);
46
+ return GitRepo.instanceMap.get(options.dir);
28
47
  }
29
48
  async resolveMultiRefString(ref) {
30
49
  const a = ref.split('.');
@@ -44,7 +63,7 @@ export class GitRepo {
44
63
  if (a.length === 4 && ref2) {
45
64
  ref1 = (await git.findMergeBase({
46
65
  fs,
47
- dir: this.gitDir,
66
+ dir: this.dir,
48
67
  oids: [ref2, ref1],
49
68
  }))[0];
50
69
  }
@@ -92,40 +111,49 @@ export class GitRepo {
92
111
  }
93
112
  return resolvedRef;
94
113
  }
95
- async getStatus(ref) {
96
- const getStatusText = (row) => {
97
- if ([
98
- [0, 2, 2], // added, staged
99
- [0, 2, 3], // added, staged, with unstaged changes
100
- ].some((a) => a.every((val, index) => val === row[index]))) {
101
- return 'A';
102
- }
103
- if ([
104
- [1, 0, 0], // deleted, staged
105
- [1, 0, 1], // deleted, unstaged
106
- [1, 1, 0], // deleted, staged, with unstaged original file
107
- [1, 2, 0], // deleted, staged, with unstaged changes
108
- [1, 0, 3], // modified, staged, with unstaged deletion
109
- ].some((a) => a.every((val, index) => val === row[index]))) {
110
- return 'D';
111
- }
112
- if ([
113
- [1, 2, 1], // modified, unstaged
114
- [1, 2, 2], // modified, staged
115
- [1, 2, 3], // modified, staged, with unstaged changes
116
- ].some((a) => a.every((val, index) => val === row[index]))) {
117
- return 'M';
118
- }
119
- return undefined;
120
- };
114
+ getAdds() {
115
+ return this.status.filter((file) => file[HEAD] === 0 && file[WORKDIR] === 2);
116
+ }
117
+ getAddFilenames() {
118
+ return toFilenames(this.getAdds());
119
+ }
120
+ getModifies() {
121
+ return this.status.filter((file) => file[HEAD] === 1 && file[WORKDIR] === 2);
122
+ }
123
+ getModifyFilenames() {
124
+ return toFilenames(this.getModifies());
125
+ }
126
+ getDeletes() {
127
+ return this.status.filter((file) => file[HEAD] === 1 && file[WORKDIR] === 0);
128
+ }
129
+ getDeleteFilenames() {
130
+ return toFilenames(this.getDeletes());
131
+ }
132
+ async getStatus(ref1, ref2) {
121
133
  await this.checkLocalGitAutocrlfConfig();
122
- const statusMatrix = await git.statusMatrix({
123
- fs,
124
- dir: this.gitDir,
125
- ref,
126
- filter: (f) => this.packageDirs ? this.packageDirs.some((fDir) => f.startsWith(this.ensureGitRelPath(fDir))) : true,
127
- });
128
- const warningMatrix = statusMatrix.filter((row) => [
134
+ try {
135
+ this.status = await statusMatrix({
136
+ dir: this.dir,
137
+ ref1,
138
+ ref2,
139
+ filepaths: this.packageDirs,
140
+ ignored: true,
141
+ filter: fileFilter(this.packageDirs),
142
+ });
143
+ // isomorphic-git stores things in unix-style tree. Convert to windows-style if necessary
144
+ if (IS_WINDOWS) {
145
+ this.status = this.status.map((row) => [path.normalize(row[0]), row[HEAD], row[WORKDIR], row[STAGE]]);
146
+ }
147
+ await this.detectMovedFiles();
148
+ await this.emitStatusWarnings();
149
+ }
150
+ catch (e) {
151
+ redirectToCliRepoError(e);
152
+ }
153
+ return this.status;
154
+ }
155
+ async emitStatusWarnings() {
156
+ const warningPatterns = [
129
157
  [0, 2, 3], // added, staged, with unstaged changes
130
158
  [1, 0, 3], // modified, staged, with unstaged deletion
131
159
  [1, 2, 3], // modified, staged, with unstaged changes
@@ -136,95 +164,61 @@ export class GitRepo {
136
164
  [1, 2, 1], // modified, unstaged
137
165
  [1, 0, 1], // deleted, unstaged
138
166
  [0, 2, 0], // new, untracked
139
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])));
140
- if (warningMatrix.length) {
141
- const buildWarningArray = (warnings) => {
142
- const emitWarningArray = [];
143
- warnings.forEach((warning) => {
144
- const filteredChanges = warningMatrix
145
- .filter((row) => warning.filter.some((a) => a.every((val, index) => val === row.slice(1)[index])))
146
- .map((row) => path.join(this.gitDir, ensureOSPath(row[0])));
147
- for (const file of filteredChanges) {
148
- emitWarningArray.push(this.lifecycle.emitWarning(util.format(warning.message, file)));
149
- }
150
- });
151
- return emitWarningArray;
152
- };
153
- // prettier-ignore
154
- await Promise.all(buildWarningArray([
155
- { filter: [[0, 2, 3], [1, 0, 3], [1, 2, 3], [1, 1, 0], [1, 2, 0]], message: 'The staged file with unstaged changes "%s" was processed.', },
156
- { filter: [[0, 0, 3], [1, 1, 3]], message: 'The staged file with unstaged changes "%s" was ignored.', },
157
- { filter: [[1, 2, 1], [1, 0, 1]], message: 'The unstaged file "%s" was processed.', },
158
- { filter: [[0, 2, 0]], message: 'The untracked file "%s" was ignored.', },
159
- ]));
160
- }
161
- const gitlines = statusMatrix
162
- .filter((row) => ![
163
- [0, 0, 0], // undefined
164
- [1, 1, 1], // unmodified
165
- [0, 0, 3], // added, staged, with unstaged deletion
166
- [0, 2, 0], // new, untracked
167
- [1, 1, 3], // modified, staged, with unstaged original file
168
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
169
- .map((row) => ({
170
- path: path.join(this.gitDir, ensureOSPath(row[0])),
171
- status: getStatusText(row.slice(1)),
172
- }));
173
- return gitlines;
167
+ ];
168
+ // prettier-ignore
169
+ const warningMessages = [
170
+ { filter: [[0, 2, 3], [1, 0, 3], [1, 2, 3], [1, 2, 0], [0, 0, 3]], message: 'The staged file with unstaged changes %s was processed.' },
171
+ { filter: [[1, 1, 3], [1, 1, 0]], message: 'The staged file with unstaged changes %s was ignored.' },
172
+ { filter: [[1, 2, 1], [1, 0, 1]], message: 'The unstaged file %s was processed.' },
173
+ { filter: [[0, 2, 0]], message: 'The untracked file %s was processed.' },
174
+ ];
175
+ const matchesPattern = (row, patterns) => patterns.some((pattern) => pattern.every((val, i) => val === row[i + 1]));
176
+ const filteredRows = this.status.filter((row) => matchesPattern(row, warningPatterns));
177
+ if (filteredRows.length === 0)
178
+ return;
179
+ const getWarningPromises = (warnings) => warnings.flatMap((warning) => {
180
+ const filesToWarn = filteredRows
181
+ .filter((row) => matchesPattern(row, warning.filter))
182
+ .map((row) => (IS_WINDOWS ? ensureWindows(row[0]) : row[0]));
183
+ return filesToWarn.map((file) => this.lifecycle.emitWarning(util.format(warning.message, file)));
184
+ });
185
+ await Promise.all(getWarningPromises(warningMessages));
174
186
  }
175
- async getFileState(options) {
176
- const gitDir = this.gitDir;
177
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
178
- return git.walk({
179
- fs,
180
- dir: this.gitDir,
181
- trees: [git.TREE({ ref: options.ref1 }), git.TREE({ ref: options.ref2 })],
182
- async map(filepath, [A, B]) {
183
- if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
184
- return;
185
- }
186
- const Aoid = await A?.oid();
187
- const Boid = await B?.oid();
188
- let type = 'EQ';
189
- if (Aoid !== Boid) {
190
- type = 'M';
191
- }
192
- if (Aoid === undefined) {
193
- type = 'A';
194
- }
195
- if (Boid === undefined) {
196
- type = 'D';
187
+ async detectMovedFiles() {
188
+ const matchingFiles = getMatches(this.status);
189
+ if (!matchingFiles.added.size || !matchingFiles.deleted.size)
190
+ return;
191
+ const tmpMatches = new Map();
192
+ for (const deletedFilePath of matchingFiles.deleted) {
193
+ const fullName = parseMetadataXml(deletedFilePath)?.fullName;
194
+ if (fullName) {
195
+ const addedFilePath = path.join(path.dirname(deletedFilePath), fullName, path.basename(deletedFilePath));
196
+ if (matchingFiles.added.has(addedFilePath)) {
197
+ matchingFiles.deleted.delete(deletedFilePath);
198
+ matchingFiles.added.delete(addedFilePath);
199
+ tmpMatches.set(deletedFilePath, addedFilePath);
197
200
  }
198
- if (type !== 'EQ') {
199
- return {
200
- path: path.join(gitDir, ensureOSPath(filepath)),
201
- status: type,
202
- };
203
- }
204
- },
201
+ }
202
+ }
203
+ const matches = await filenameMatchesToMap(this.registry)(this.dir)(path.join(this.dir, '.git'))(matchingFiles);
204
+ tmpMatches.forEach((key, value) => {
205
+ matches.fullMatches.set(key, value);
205
206
  });
206
- }
207
- async listFullPathFiles(ref) {
208
- return ref
209
- ? (await git.listFiles({ fs, dir: this.gitDir, ref })).map((p) => path.join(this.gitDir, ensureOSPath(p)))
210
- : (await fs.readdir(this.gitDir, { recursive: true })).map((p) => path.join(this.gitDir, ensureOSPath(p)));
211
- }
212
- async getOid(ref) {
213
- return ref ? git.resolveRef({ fs, dir: this.gitDir, ref }) : '';
214
- }
215
- async readBlobAsBuffer(options) {
216
- return Buffer.from((await git.readBlob({
217
- fs,
218
- dir: this.gitDir,
219
- oid: options.oid,
220
- filepath: this.ensureGitRelPath(options.filename),
221
- })).blob);
207
+ if (matches.deleteOnly.size === 0 && matches.fullMatches.size === 0)
208
+ return;
209
+ await Promise.all(getLogMessage(matches).map((message) => this.lifecycle.emitWarning(message)));
210
+ const removeFiles = [
211
+ ...matches.fullMatches.values(),
212
+ ...matches.fullMatches.keys(),
213
+ ...matches.deleteOnly.values(),
214
+ ];
215
+ this.status = this.status.filter((file) => (removeFiles.includes(file[0]) ? false : true));
222
216
  }
223
217
  async getCommitLog(ref) {
224
218
  try {
225
219
  const [log] = await git.log({
226
220
  fs,
227
- dir: this.gitDir,
221
+ dir: this.dir,
228
222
  ref,
229
223
  depth: 1,
230
224
  });
@@ -235,12 +229,9 @@ export class GitRepo {
235
229
  See more help with --help`);
236
230
  }
237
231
  }
238
- ensureGitRelPath(fpath) {
239
- return path.relative(this.gitDir, fpath).split(path.sep).join(path.posix.sep);
240
- }
241
232
  async checkLocalGitAutocrlfConfig() {
242
233
  try {
243
- const stdout = execSync('git config --show-origin core.autocrlf', { cwd: this.gitDir }).toString().trim();
234
+ const stdout = execSync('git config --show-origin core.autocrlf', { cwd: this.dir }).toString().trim();
244
235
  if (stdout) {
245
236
  const [origin, value] = stdout.split('\t');
246
237
  const [, ...rest] = origin.split(':');
@@ -255,7 +246,16 @@ export class GitRepo {
255
246
  }
256
247
  }
257
248
  }
258
- function ensureOSPath(fpath) {
259
- return fpath.split(path.posix.sep).join(path.sep);
260
- }
249
+ const packageDirToRelativePosixPath = (projectPath) => (packageDir) => IS_WINDOWS
250
+ ? ensurePosix(path.relative(projectPath, packageDir.fullPath))
251
+ : path.relative(projectPath, packageDir.fullPath);
252
+ const fileFilter = (packageDirs) => (f) =>
253
+ // no hidden files
254
+ !f.includes(`${path.sep}.`) &&
255
+ // no lwc tests
256
+ excludeLwcLocalOnlyTest(f) &&
257
+ // no gitignore files
258
+ !f.endsWith('.gitignore') &&
259
+ // isogit uses `startsWith` for filepaths so it's possible to get a false positive
260
+ packageDirs.some(folderContainsPath(f));
261
261
  //# sourceMappingURL=localGitRepo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localGitRepo.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/localGitRepo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,OAAO,OAAO;IACV,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEjD,MAAM,CAAS;IAEd,WAAW,CAAuB;IAElC,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE5C,YAAoB,OAAuB;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAuB;QAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAY,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,GAAW;QAI5C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,IAAY,CAAC;QACjB,IAAI,IAAwB,CAAC;QAE7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG;4BACrE,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,GAAG,CACL,MAAM,GAAG,CAAC,aAAa,CAAC;gBACtB,EAAE;gBACF,GAAG,EAAE,IAAI,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACnB,CAAC,CACH,CAAC,CAAC,CAAW,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAuB;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5C,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/G,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,WAAW,GAAuB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,MAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,4CAA4C;gBAC5C,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC/C,4CAA4C;oBAC5C,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,sDAAsD,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,GAAW;QAChC,MAAM,aAAa,GAAG,CAAC,GAAa,EAA+B,EAAE;YACnE,IACE;gBACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB;gBAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uCAAuC;aACnD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IACE;gBACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;gBAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB;gBAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,+CAA+C;gBAC1D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,yCAAyC;gBACpD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,2CAA2C;aACvD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IACE;gBACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB;gBAChC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB;gBAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,0CAA0C;aACtD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC;YAC1C,EAAE;YACF,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,GAAG;YACH,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;SACvG,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD;YACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uCAAuC;YAClD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,2CAA2C;YACtD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,0CAA0C;YACrD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,+CAA+C;YAC1D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,yCAAyC;YACpD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,wCAAwC;YACnD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gDAAgD;YAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB;YAChC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB;YAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB;SAC7B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACpE,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,iBAAiB,GAAG,CAAC,QAAwD,EAAwB,EAAE;gBAC3G,MAAM,gBAAgB,GAAyB,EAAE,CAAC;gBAClD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,eAAe,GAAG,aAAa;yBAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACjG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE9D,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;wBACnC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC;YACF,kBAAkB;YAClB,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAClC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,2DAA2D,GAAG;gBAC1I,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,yDAAyD,GAAG;gBACvG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,uCAAuC,GAAG;gBACrF,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,sCAAsC,GAAG;aAC1E,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY;aAC1B,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,CAAC;YACC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY;YACvB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa;YACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,wCAAwC;YACnD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB;YAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gDAAgD;SAC5D,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACtE;aACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;SAChD,CAAC,CAAC,CAAC;QAEN,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAuC;QAQ/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,+DAA+D;QAC/D,OAAO,GAAG,CAAC,IAAI,CAAC;YACd,EAAE;YACF,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,QAAQ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC;oBACrF,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;gBAE5B,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,IAAI,GAAG,GAAG,CAAC;gBACb,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,CAAC;gBACb,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,CAAC;gBACb,CAAC;gBAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;wBAC/C,MAAM,EAAE,IAAI;qBACb,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACxC,OAAO,GAAG;YACR,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1G,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/G,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAA0C;QACtE,OAAO,MAAM,CAAC,IAAI,CAChB,CACE,MAAM,GAAG,CAAC,QAAQ,CAAC;YACjB,EAAE;YACF,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;SAClD,CAAC,CACH,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QACpC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;gBAC1B,EAAE;gBACF,GAAG,EAAE,IAAI,CAAC,MAAM;gBAChB,GAAG;gBACH,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG;4BACN,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wCAAwC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAE1G,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAC9B,2CAA2C,KAAK,OAAO,IAAI,+EAA+E,KAAK,IAAI,CACpJ,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;;AAGH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"localGitRepo.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/localGitRepo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { RegistryAccess } from '@salesforce/source-deploy-retrieve';
2
+ import { StringMap } from '@salesforce/source-tracking/lib/shared/local/types.js';
3
+ type AddedAndDeletedFilenames = {
4
+ added: Set<string>;
5
+ deleted: Set<string>;
6
+ };
7
+ export type StringMapsForMatches = {
8
+ /** these matches filename=>basename, metadata type/name, and git object hash */
9
+ fullMatches: StringMap;
10
+ /** these did not match the hash. They *probably* are matches where the "add" is also modified */
11
+ deleteOnly: StringMap;
12
+ };
13
+ /** composed functions to simplified use by the shadowRepo class */
14
+ export declare const filenameMatchesToMap: (registry: RegistryAccess) => (projectPath: string) => (gitDir: string) => ({ added, deleted }: AddedAndDeletedFilenames) => Promise<StringMapsForMatches>;
15
+ export declare const getLogMessage: (matches: StringMapsForMatches) => string[];
16
+ export {};