@jayree/sfdx-plugin-manifest 2.6.4 → 2.7.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.
- package/CHANGELOG.md +12 -0
- package/README.md +48 -53
- package/lib/SDR-extra/collections/componentSetExtra.d.ts +2 -3
- package/lib/SDR-extra/collections/componentSetExtra.js +27 -17
- package/lib/SDR-extra/collections/componentSetExtra.js.map +1 -1
- package/lib/SDR-extra/collections/index.d.ts +1 -0
- package/lib/SDR-extra/collections/index.js +8 -0
- package/lib/SDR-extra/collections/index.js.map +1 -0
- package/lib/SDR-extra/index.d.ts +3 -0
- package/lib/SDR-extra/index.js +10 -0
- package/lib/SDR-extra/index.js.map +1 -0
- package/lib/SDR-extra/resolve/gitDiffResolver.d.ts +3 -6
- package/lib/SDR-extra/resolve/gitDiffResolver.js +21 -17
- package/lib/SDR-extra/resolve/gitDiffResolver.js.map +1 -1
- package/lib/SDR-extra/resolve/index.d.ts +2 -0
- package/lib/SDR-extra/resolve/index.js +9 -0
- package/lib/SDR-extra/resolve/index.js.map +1 -0
- package/lib/SDR-extra/resolve/treeContainersExtra.d.ts +1 -1
- package/lib/SDR-extra/resolve/treeContainersExtra.js +8 -7
- package/lib/SDR-extra/resolve/treeContainersExtra.js.map +1 -1
- package/lib/SDR-extra/utils/index.d.ts +1 -0
- package/lib/SDR-extra/utils/index.js +8 -0
- package/lib/SDR-extra/utils/index.js.map +1 -0
- package/lib/SDR-extra/utils/localGitRepo.d.ts +39 -0
- package/lib/SDR-extra/utils/localGitRepo.js +239 -0
- package/lib/SDR-extra/utils/localGitRepo.js.map +1 -0
- package/lib/commands/jayree/manifest/beta/git/diff.d.ts +15 -10
- package/lib/commands/jayree/manifest/beta/git/diff.js +42 -33
- package/lib/commands/jayree/manifest/beta/git/diff.js.map +1 -1
- package/messages/gitdiffbeta.md +67 -0
- package/oclif.manifest.json +1 -1
- package/package.json +5 -3
- package/lib/SDR-extra/utils/git-extra.d.ts +0 -71
- package/lib/SDR-extra/utils/git-extra.js +0 -202
- package/lib/SDR-extra/utils/git-extra.js.map +0 -1
- package/messages/gitdiffbeta.json +0 -17
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# [2.7.0](https://github.com/jayree/sfdx-plugin-manifest/compare/v2.6.4...v2.7.0) (2023-01-09)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* **manifest:beta:git:diff:** fix output if ref2 is set ([9886831](https://github.com/jayree/sfdx-plugin-manifest/commit/9886831f7533d2b9d2bfdba2f1da5f94f2eb3caa))
|
7
|
+
|
8
|
+
|
9
|
+
### Features
|
10
|
+
|
11
|
+
* **manifest:beta:git:diff:** more enhancements and new sf flags. -d is now used for --source-dir ([1c6be65](https://github.com/jayree/sfdx-plugin-manifest/commit/1c6be65967f6c1fd0afa6ae590466563347d80aa))
|
12
|
+
|
1
13
|
## [2.6.4](https://github.com/jayree/sfdx-plugin-manifest/compare/v2.6.3...v2.6.4) (2023-01-09)
|
2
14
|
|
3
15
|
|
package/README.md
CHANGED
@@ -3,32 +3,16 @@
|
|
3
3
|
A Salesforce CLI plugin containing commands for creating manifest files from Salesforce orgs or git commits of sfdx projects.
|
4
4
|
|
5
5
|
[](https://developer.salesforce.com/tools/sfdxcli)
|
6
|
-
[](https://npmjs.org/package/@jayree/sfdx-plugin-manifest)
|
7
7
|
[](https://github.com/jayree/sfdx-plugin-manifest/actions/workflows/release.yml)
|
8
8
|
[](https://npmjs.org/package/@jayree/sfdx-plugin-manifest)
|
9
9
|
[](https://github.com/jayree-plugins/sfdx-plugin-manifest/blob/main/package.json)
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<!-- install -->
|
16
|
-
|
17
|
-
## Usage
|
18
|
-
|
19
|
-
<!-- usage -->
|
20
|
-
```sh-session
|
21
|
-
$ sfdx plugins:install @jayree/sfdx-plugin-manifest
|
22
|
-
$ sfdx jayree:[COMMAND]
|
23
|
-
running command...
|
24
|
-
$ sfdx plugins
|
25
|
-
@jayree/sfdx-plugin-manifest 2.6.4
|
26
|
-
$ sfdx help jayree:[COMMAND]
|
27
|
-
USAGE
|
28
|
-
$ sfdx jayree:COMMAND
|
29
|
-
...
|
11
|
+
## Install
|
12
|
+
|
13
|
+
```bash
|
14
|
+
sfdx plugins:install @jayree/sfdx-plugin-manifest
|
30
15
|
```
|
31
|
-
<!-- usagestop -->
|
32
16
|
|
33
17
|
## Commands
|
34
18
|
|
@@ -40,61 +24,72 @@ USAGE
|
|
40
24
|
|
41
25
|
### `sfdx jayree:manifest:beta:git:diff`
|
42
26
|
|
43
|
-
|
27
|
+
Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or delete based on changes in your git history.
|
44
28
|
|
45
29
|
```
|
46
30
|
USAGE
|
47
|
-
$ sfdx jayree:manifest:beta:git:diff [
|
48
|
-
|
31
|
+
$ sfdx jayree:manifest:beta:git:diff [REF1] [REF2] [--json] [--api-version <value>] [-d <value>] [--output-dir <value>]
|
32
|
+
[--destructive-changes-only]
|
49
33
|
|
50
34
|
ARGUMENTS
|
51
35
|
REF1 base commit or branch
|
52
36
|
REF2 commit or branch to compare to the base commit
|
53
37
|
|
54
38
|
FLAGS
|
55
|
-
-d, --
|
56
|
-
|
57
|
-
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
--apiversion=<value> override the api version used for
|
63
|
-
api requests made by this command
|
64
|
-
--json format output as json
|
65
|
-
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
66
|
-
this command invocation
|
39
|
+
-d, --source-dir=<value>... Path to the local source files to include in the manifest.
|
40
|
+
--api-version=<value> Override the api version used for api requests made by this command
|
41
|
+
--destructive-changes-only Create a destructiveChanges manifest only.
|
42
|
+
--output-dir=<value> Directory to save the created manifest files.
|
43
|
+
|
44
|
+
GLOBAL FLAGS
|
45
|
+
--json Format output as json.
|
67
46
|
|
68
47
|
DESCRIPTION
|
69
|
-
|
70
|
-
delete based on changes in your git history
|
48
|
+
Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or
|
49
|
+
delete based on changes in your git history.
|
50
|
+
|
71
51
|
Use this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two
|
72
52
|
git refs.
|
73
53
|
|
74
|
-
You can use all ways to spell <commit> which are valid for 'git diff'.
|
75
|
-
(See https://git-scm.com/docs/git-diff)
|
54
|
+
You can use all ways to spell <commit> which are valid for 'git diff' (See https://git-scm.com/docs/git-diff).
|
76
55
|
|
77
56
|
EXAMPLES
|
78
|
-
|
57
|
+
Uses the changes between two arbitrary <commit>.
|
79
58
|
|
80
|
-
|
59
|
+
$ sfdx jayree:manifest:beta:git:diff <commit> <commit>
|
60
|
+
$ sfdx jayree:manifest:beta:git:diff <commit>..<commit>
|
81
61
|
|
82
|
-
|
62
|
+
Uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both
|
63
|
+
<commit>.
|
83
64
|
|
84
|
-
|
65
|
+
$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>
|
85
66
|
|
86
|
-
|
67
|
+
Uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1).
|
87
68
|
|
88
|
-
|
69
|
+
$ sfdx jayree:manifest:beta:git:diff branchA..branchB
|
89
70
|
|
90
|
-
|
71
|
+
Uses the diff of what is unique in branchB (REF2).
|
91
72
|
|
92
|
-
|
73
|
+
$ sfdx jayree:manifest:beta:git:diff branchA...branchB
|
93
74
|
|
94
|
-
|
75
|
+
FLAG DESCRIPTIONS
|
76
|
+
-d, --source-dir=<value>... Path to the local source files to include in the manifest.
|
77
|
+
|
78
|
+
The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder
|
79
|
+
(in which case the operation is applied to all metadata types in the directory and its subdirectories).
|
80
|
+
|
81
|
+
You can specify this flag more than once.
|
82
|
+
|
83
|
+
--destructive-changes-only Create a destructiveChanges manifest only.
|
84
|
+
|
85
|
+
Use this flag to create a 'destructiveChanges.xml' and a blank 'package.xml'.
|
86
|
+
|
87
|
+
--output-dir=<value> Directory to save the created manifest files.
|
88
|
+
|
89
|
+
The location can be an absolute path or relative to the current working directory.
|
95
90
|
```
|
96
91
|
|
97
|
-
_See code: [src/commands/jayree/manifest/beta/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
92
|
+
_See code: [src/commands/jayree/manifest/beta/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.7.0/src/commands/jayree/manifest/beta/git/diff.ts)_
|
98
93
|
|
99
94
|
### `sfdx jayree:manifest:cleanup`
|
100
95
|
|
@@ -122,7 +117,7 @@ EXAMPLES
|
|
122
117
|
$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml
|
123
118
|
```
|
124
119
|
|
125
|
-
_See code: [src/commands/jayree/manifest/cleanup.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
120
|
+
_See code: [src/commands/jayree/manifest/cleanup.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.7.0/src/commands/jayree/manifest/cleanup.ts)_
|
126
121
|
|
127
122
|
### `sfdx jayree:manifest:generate`
|
128
123
|
|
@@ -165,7 +160,7 @@ EXAMPLES
|
|
165
160
|
<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>
|
166
161
|
```
|
167
162
|
|
168
|
-
_See code: [src/commands/jayree/manifest/generate.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
163
|
+
_See code: [src/commands/jayree/manifest/generate.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.7.0/src/commands/jayree/manifest/generate.ts)_
|
169
164
|
|
170
165
|
### `sfdx jayree:manifest:git:diff`
|
171
166
|
|
@@ -219,5 +214,5 @@ EXAMPLES
|
|
219
214
|
uses the diff of what is unique in branchB (REF2)
|
220
215
|
```
|
221
216
|
|
222
|
-
_See code: [src/commands/jayree/manifest/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
217
|
+
_See code: [src/commands/jayree/manifest/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.7.0/src/commands/jayree/manifest/git/diff.ts)_
|
223
218
|
<!-- commandsstop -->
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import { ComponentSet, OptionalTreeRegistryOptions } from '@salesforce/source-deploy-retrieve';
|
2
|
-
|
3
|
-
export declare const debug: Debug.Debugger;
|
4
|
-
export interface FromGitDiffOptions extends OptionalTreeRegistryOptions {
|
2
|
+
interface FromGitDiffOptions extends OptionalTreeRegistryOptions {
|
5
3
|
/**
|
6
4
|
* Git ref to resolve components against
|
7
5
|
*/
|
@@ -36,3 +34,4 @@ export declare class ComponentSetExtra extends ComponentSet {
|
|
36
34
|
*/
|
37
35
|
static fromGitDiff(options: FromGitDiffOptions): Promise<ComponentSet>;
|
38
36
|
}
|
37
|
+
export {};
|
@@ -6,11 +6,11 @@
|
|
6
6
|
*/
|
7
7
|
import path from 'path';
|
8
8
|
import { ComponentSet, DestructiveChangesType, registry as untypedRegistry, } from '@salesforce/source-deploy-retrieve';
|
9
|
-
import { SfProject } from '@salesforce/core';
|
9
|
+
import { SfProject, Lifecycle } from '@salesforce/core';
|
10
10
|
import Debug from 'debug';
|
11
|
-
import fs from 'fs
|
12
|
-
import { GitDiffResolver } from '../resolve/
|
13
|
-
|
11
|
+
import fs from 'graceful-fs';
|
12
|
+
import { GitDiffResolver } from '../resolve/index.js';
|
13
|
+
const debug = Debug('sf:gitDiff:ComponentSetExtra');
|
14
14
|
export class ComponentSetExtra extends ComponentSet {
|
15
15
|
static async fromGitDiff(input) {
|
16
16
|
let fsPaths;
|
@@ -38,8 +38,20 @@ export class ComponentSetExtra extends ComponentSet {
|
|
38
38
|
ref1 = input;
|
39
39
|
}
|
40
40
|
const project = await SfProject.resolve();
|
41
|
-
const gitDiffResolver = new GitDiffResolver(project
|
41
|
+
const gitDiffResolver = new GitDiffResolver(project);
|
42
42
|
const inclusiveFilter = await gitDiffResolver.resolve(ref1, ref2, fsPaths);
|
43
|
+
const childsTobeReplacedByParent = [
|
44
|
+
...Object.keys(untypedRegistry.types.workflow.children.types),
|
45
|
+
...Object.keys(untypedRegistry.types.sharingrules.children.types),
|
46
|
+
...Object.keys(untypedRegistry.types.customobjecttranslation.children.types),
|
47
|
+
...Object.keys(untypedRegistry.types.bot.children.types),
|
48
|
+
];
|
49
|
+
for (const component of inclusiveFilter.getSourceComponents()) {
|
50
|
+
if (childsTobeReplacedByParent.includes(component.type.id)) {
|
51
|
+
debug(`add parent ${component.parent.type.name}:${component.parent.fullName} of ${component.type.name}:${component.fullName} to manifest`);
|
52
|
+
inclusiveFilter.add(component.parent);
|
53
|
+
}
|
54
|
+
}
|
43
55
|
fsPaths =
|
44
56
|
fsPaths?.map((filepath) => path.resolve(filepath)).filter((filepath) => fs.existsSync(filepath)) ||
|
45
57
|
project.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
|
@@ -50,21 +62,19 @@ export class ComponentSetExtra extends ComponentSet {
|
|
50
62
|
tree,
|
51
63
|
registry,
|
52
64
|
});
|
53
|
-
const
|
54
|
-
...Object.keys(untypedRegistry.types.workflow.children.types),
|
55
|
-
...Object.keys(untypedRegistry.types.sharingrules.children.types),
|
56
|
-
...Object.keys(untypedRegistry.types.customobjecttranslation.children.types),
|
57
|
-
...Object.keys(untypedRegistry.types.bot.children.types),
|
58
|
-
];
|
59
|
-
for (const component of inclusiveFilter
|
60
|
-
.getSourceComponents()
|
61
|
-
.filter((comp) => fsPaths.some((fsPath) => path.resolve(comp.xml).startsWith(fsPath)))) {
|
65
|
+
for (const component of inclusiveFilter.getSourceComponents()) {
|
62
66
|
if (component.isMarkedForDelete()) {
|
63
67
|
components.add(component, DestructiveChangesType.POST);
|
64
68
|
}
|
65
|
-
|
66
|
-
|
67
|
-
|
69
|
+
}
|
70
|
+
for await (const component of inclusiveFilter.getSourceComponents()) {
|
71
|
+
if (!components
|
72
|
+
.getSourceComponents()
|
73
|
+
.find((localComponent) => !!localComponent
|
74
|
+
.getChildren()
|
75
|
+
.find((localChild) => component.type.name === localChild.type.name && component.fullName === localChild.fullName) ||
|
76
|
+
(component.type.name === localComponent.type.name && component.fullName === localComponent.fullName))) {
|
77
|
+
await Lifecycle.getInstance().emitWarning(`The component "${component.type.name}:${component.fullName}" was not found locally.`);
|
68
78
|
}
|
69
79
|
}
|
70
80
|
return components;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"componentSetExtra.js","sourceRoot":"","sources":["../../../src/SDR-extra/collections/componentSetExtra.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,YAAY,EAGZ,sBAAsB,EAEtB,QAAQ,IAAI,eAAe,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"componentSetExtra.js","sourceRoot":"","sources":["../../../src/SDR-extra/collections/componentSetExtra.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './componentSetExtra.js';
|
@@ -0,0 +1,8 @@
|
|
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
|
+
export * from './componentSetExtra.js';
|
8
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SDR-extra/collections/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
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
|
+
export * from './collections/index.js';
|
8
|
+
export * from './resolve/index.js';
|
9
|
+
export * from './utils/index.js';
|
10
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SDR-extra/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
|
@@ -1,24 +1,21 @@
|
|
1
1
|
import { ComponentSet } from '@salesforce/source-deploy-retrieve';
|
2
2
|
import { SfProject } from '@salesforce/core';
|
3
|
-
import Debug from 'debug';
|
4
|
-
import { CallbackFsClient, PromiseFsClient } from '../utils/git-extra.js';
|
5
|
-
export declare const debug: Debug.Debugger;
|
6
3
|
/**
|
7
4
|
* Resolver for metadata type and component objects from a git diff result
|
8
5
|
*
|
9
6
|
* @internal
|
10
7
|
*/
|
11
8
|
export declare class GitDiffResolver {
|
12
|
-
private fs;
|
13
9
|
private ref2VirtualTreeContainer;
|
14
10
|
private ref1Resolver;
|
15
11
|
private ref2Resolver;
|
16
|
-
private
|
12
|
+
private gitDir;
|
17
13
|
private uniquePackageDirectories;
|
14
|
+
private localRepo;
|
18
15
|
/**
|
19
16
|
* @param dir SFDX project directory
|
20
17
|
*/
|
21
|
-
constructor(project: SfProject
|
18
|
+
constructor(project: SfProject);
|
22
19
|
resolve(ref1: string, ref2: string, fsPaths: string[]): Promise<ComponentSet>;
|
23
20
|
private getFileStatus;
|
24
21
|
private getComponentSet;
|
@@ -6,12 +6,12 @@
|
|
6
6
|
*/
|
7
7
|
import path from 'path';
|
8
8
|
import { ComponentSet, RegistryAccess, MetadataResolver, SourceComponent, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
|
9
|
-
import { SfError } from '@salesforce/core';
|
9
|
+
import { SfError, Lifecycle } from '@salesforce/core';
|
10
10
|
import equal from 'fast-deep-equal';
|
11
11
|
import Debug from 'debug';
|
12
|
-
import {
|
13
|
-
import { VirtualTreeContainerExtra, parseMetadataXml } from './
|
14
|
-
|
12
|
+
import { GitRepo } from '../utils/localGitRepo.js';
|
13
|
+
import { VirtualTreeContainerExtra, parseMetadataXml } from './index.js';
|
14
|
+
const debug = Debug('sf:gitDiff:resolver');
|
15
15
|
const registryAccess = new RegistryAccess();
|
16
16
|
/**
|
17
17
|
* Resolver for metadata type and component objects from a git diff result
|
@@ -22,21 +22,24 @@ export class GitDiffResolver {
|
|
22
22
|
/**
|
23
23
|
* @param dir SFDX project directory
|
24
24
|
*/
|
25
|
-
constructor(project
|
26
|
-
this.
|
27
|
-
this.dir = project.getPath();
|
25
|
+
constructor(project) {
|
26
|
+
this.gitDir = project.getPath();
|
28
27
|
this.uniquePackageDirectories = project.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
|
28
|
+
this.localRepo = GitRepo.getInstance({
|
29
|
+
gitDir: this.gitDir,
|
30
|
+
packageDirs: this.uniquePackageDirectories,
|
31
|
+
});
|
29
32
|
}
|
30
33
|
async resolve(ref1, ref2, fsPaths) {
|
31
34
|
if (ref2 === undefined) {
|
32
|
-
const { ref1: r1, ref2: r2 } = await resolveMultiRefString(
|
35
|
+
const { ref1: r1, ref2: r2 } = await this.localRepo.resolveMultiRefString(ref1);
|
33
36
|
ref1 = r1;
|
34
37
|
ref2 = r2;
|
35
38
|
}
|
36
39
|
else {
|
37
40
|
const [r1, r2] = await Promise.all([
|
38
|
-
resolveSingleRefString(
|
39
|
-
resolveSingleRefString(
|
41
|
+
this.localRepo.resolveSingleRefString(ref1),
|
42
|
+
this.localRepo.resolveSingleRefString(ref2),
|
40
43
|
]);
|
41
44
|
ref1 = r1;
|
42
45
|
ref2 = r2;
|
@@ -45,8 +48,8 @@ export class GitDiffResolver {
|
|
45
48
|
const fileStatus = await this.getFileStatus(ref1, ref2);
|
46
49
|
debug({ fileStatus });
|
47
50
|
const [ref1VirtualTreeContainer, ref2VirtualTreeContainer] = await Promise.all([
|
48
|
-
VirtualTreeContainerExtra.fromGitRef(ref1, this.
|
49
|
-
VirtualTreeContainerExtra.fromGitRef(ref2, this.
|
51
|
+
VirtualTreeContainerExtra.fromGitRef(ref1, this.gitDir, fileStatus.filter((l) => l.status === 'M').map((l) => l.path)),
|
52
|
+
VirtualTreeContainerExtra.fromGitRef(ref2, this.gitDir, fileStatus.filter((l) => l.status === 'M').map((l) => l.path)),
|
50
53
|
]);
|
51
54
|
if (fsPaths) {
|
52
55
|
fsPaths.map((filepath) => {
|
@@ -64,10 +67,10 @@ export class GitDiffResolver {
|
|
64
67
|
async getFileStatus(ref1, ref2) {
|
65
68
|
let files;
|
66
69
|
if (ref2) {
|
67
|
-
files = await getFileState({ ref1, ref2
|
70
|
+
files = (await this.localRepo.getFileState({ ref1, ref2 })).filter((l) => this.uniquePackageDirectories.some((f) => l.path.startsWith(f)));
|
68
71
|
}
|
69
72
|
else {
|
70
|
-
files = await getStatus(
|
73
|
+
files = await this.localRepo.getStatus(ref1);
|
71
74
|
}
|
72
75
|
files = files.filter((file) => {
|
73
76
|
if (file.status === 'D') {
|
@@ -143,9 +146,10 @@ export class GitDiffResolver {
|
|
143
146
|
}
|
144
147
|
}
|
145
148
|
}
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
+
const forceIgnored = Array.from(new Set([...this.ref1Resolver.forceIgnoredPaths, ...this.ref2Resolver.forceIgnoredPaths]));
|
150
|
+
for await (const file of forceIgnored) {
|
151
|
+
await Lifecycle.getInstance().emitWarning(`The forceignored file "${file}" was ignored.`);
|
152
|
+
}
|
149
153
|
return results;
|
150
154
|
}
|
151
155
|
async getChildComponentStatus(fpath) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gitDiffResolver.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/gitDiffResolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAa,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"gitDiffResolver.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/gitDiffResolver.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
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
|
+
export * from './gitDiffResolver.js';
|
8
|
+
export * from './treeContainersExtra.js';
|
9
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
|
@@ -10,5 +10,5 @@ export declare class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
|
10
10
|
* @param includeBufferForFiles full paths to modified files
|
11
11
|
* @returns VirtualTreeContainer
|
12
12
|
*/
|
13
|
-
static fromGitRef(ref: string,
|
13
|
+
static fromGitRef(ref: string, gitDir: string, includeBufferForFiles: string[]): Promise<VirtualTreeContainer>;
|
14
14
|
}
|
@@ -7,8 +7,8 @@
|
|
7
7
|
import path from 'path';
|
8
8
|
import { VirtualTreeContainer } from '@salesforce/source-deploy-retrieve';
|
9
9
|
import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
|
10
|
-
import fs from 'fs
|
11
|
-
import {
|
10
|
+
import fs from 'graceful-fs';
|
11
|
+
import { GitRepo } from '../utils/index.js';
|
12
12
|
export { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
|
13
13
|
export class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
14
14
|
/**
|
@@ -20,9 +20,10 @@ export class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
|
20
20
|
* @param includeBufferForFiles full paths to modified files
|
21
21
|
* @returns VirtualTreeContainer
|
22
22
|
*/
|
23
|
-
static async fromGitRef(ref,
|
24
|
-
const
|
25
|
-
const
|
23
|
+
static async fromGitRef(ref, gitDir, includeBufferForFiles) {
|
24
|
+
const localRepo = GitRepo.getInstance({ gitDir });
|
25
|
+
const paths = await localRepo.listFullPathFiles(ref);
|
26
|
+
const oid = await localRepo.getOid(ref);
|
26
27
|
const virtualDirectoryByFullPath = new Map();
|
27
28
|
for await (const filename of paths) {
|
28
29
|
let dirPath = path.dirname(filename);
|
@@ -32,8 +33,8 @@ export class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
|
32
33
|
name: path.basename(filename),
|
33
34
|
data: parseMetadataXml(filename) && includeBufferForFiles.includes(filename)
|
34
35
|
? oid
|
35
|
-
? await readBlobAsBuffer({
|
36
|
-
: await fs.readFile(filename)
|
36
|
+
? await localRepo.readBlobAsBuffer({ oid, filename })
|
37
|
+
: await fs.promises.readFile(filename)
|
37
38
|
: Buffer.from(''),
|
38
39
|
})),
|
39
40
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"treeContainersExtra.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/treeContainersExtra.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAoB,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"treeContainersExtra.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/treeContainersExtra.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAoB,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAE7F,MAAM,OAAO,yBAA0B,SAAQ,oBAAoB;IACjE;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAC5B,GAAW,EACX,MAAc,EACd,qBAA+B;QAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAElD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA4B,CAAC;QACvE,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,KAAK,EAAE;YAClC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtC,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,IAAI,CAClB,IAAI,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;oBACnE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC7B,IAAI,EACF,gBAAgB,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACpE,CAAC,CAAC,GAAG;4BACH,CAAC,CAAC,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;4BACrD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACtB,CAAC,CACH;aACF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChD,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE;oBACtC,OAAO;oBACP,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC1G,CAAC,CAAC;aACJ;SACF;QACD,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './localGitRepo.js';
|
@@ -0,0 +1,8 @@
|
|
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
|
+
export * from './localGitRepo.js';
|
8
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,mBAAmB,CAAC"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
2
|
+
interface GitRepoOptions {
|
3
|
+
gitDir: string;
|
4
|
+
packageDirs?: string[];
|
5
|
+
}
|
6
|
+
export declare class GitRepo {
|
7
|
+
private static instanceMap;
|
8
|
+
gitDir: string;
|
9
|
+
private packageDirs;
|
10
|
+
private constructor();
|
11
|
+
static getInstance(options: GitRepoOptions): GitRepo;
|
12
|
+
resolveMultiRefString(ref: string): Promise<{
|
13
|
+
ref1: string;
|
14
|
+
ref2: string;
|
15
|
+
}>;
|
16
|
+
resolveSingleRefString(ref: string): Promise<string>;
|
17
|
+
getStatus(ref: string): Promise<Array<{
|
18
|
+
path: string;
|
19
|
+
status: string;
|
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>;
|
36
|
+
private getCommitLog;
|
37
|
+
private ensureGitRelPath;
|
38
|
+
}
|
39
|
+
export {};
|