@jayree/sfdx-plugin-manifest 2.5.3 → 2.6.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 +63 -4
- package/lib/SDR-extra/collections/componentSetExtra.d.ts +38 -0
- package/lib/SDR-extra/collections/componentSetExtra.js +66 -0
- package/lib/SDR-extra/collections/componentSetExtra.js.map +1 -0
- package/lib/SDR-extra/resolve/gitDiffResolver.d.ts +18 -0
- package/lib/SDR-extra/resolve/gitDiffResolver.js +192 -0
- package/lib/SDR-extra/resolve/gitDiffResolver.js.map +1 -0
- package/lib/SDR-extra/resolve/treeContainersExtra.d.ts +13 -0
- package/lib/SDR-extra/resolve/treeContainersExtra.js +51 -0
- package/lib/SDR-extra/resolve/treeContainersExtra.js.map +1 -0
- package/lib/SDR-extra/utils/git-extra.d.ts +65 -0
- package/lib/SDR-extra/utils/git-extra.js +198 -0
- package/lib/SDR-extra/utils/git-extra.js.map +1 -0
- package/lib/commands/jayree/manifest/beta/git/diff.d.ts +32 -0
- package/lib/commands/jayree/manifest/beta/git/diff.js +127 -0
- package/lib/commands/jayree/manifest/beta/git/diff.js.map +1 -0
- package/lib/jayreeSfdxCommand.d.ts +3 -0
- package/lib/jayreeSfdxCommand.js +8 -1
- package/lib/jayreeSfdxCommand.js.map +1 -1
- package/lib/utils/gitdiff.js +1 -1
- package/lib/utils/gitdiff.js.map +1 -1
- package/messages/gitdiffbeta.json +17 -0
- package/oclif.manifest.json +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# [2.6.0](https://github.com/jayree/sfdx-plugin-manifest/compare/v2.5.3...v2.6.0) (2023-01-01)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* **gitdiff:** fix diff status of childComponents ([ef13e60](https://github.com/jayree/sfdx-plugin-manifest/commit/ef13e600df02bf23aa764084686c0eb789055c20))
|
7
|
+
|
8
|
+
|
9
|
+
### Features
|
10
|
+
|
11
|
+
* **manifest:beta:git:diff:** added new beta command manifest:beta:git:diff ([f4b6242](https://github.com/jayree/sfdx-plugin-manifest/commit/f4b6242e52a4a04d1279e2090dcf1fe37aca2ff2))
|
12
|
+
|
1
13
|
## [2.5.3](https://github.com/jayree/sfdx-plugin-manifest/compare/v2.5.2...v2.5.3) (2022-12-31)
|
2
14
|
|
3
15
|
|
package/README.md
CHANGED
@@ -22,7 +22,7 @@ $ sfdx plugins:install @jayree/sfdx-plugin-manifest
|
|
22
22
|
$ sfdx jayree:[COMMAND]
|
23
23
|
running command...
|
24
24
|
$ sfdx plugins
|
25
|
-
@jayree/sfdx-plugin-manifest 2.
|
25
|
+
@jayree/sfdx-plugin-manifest 2.6.0
|
26
26
|
$ sfdx help jayree:[COMMAND]
|
27
27
|
USAGE
|
28
28
|
$ sfdx jayree:COMMAND
|
@@ -33,10 +33,69 @@ USAGE
|
|
33
33
|
## Commands
|
34
34
|
|
35
35
|
<!-- commands -->
|
36
|
+
* [`sfdx jayree:manifest:beta:git:diff`](#sfdx-jayreemanifestbetagitdiff)
|
36
37
|
* [`sfdx jayree:manifest:cleanup`](#sfdx-jayreemanifestcleanup)
|
37
38
|
* [`sfdx jayree:manifest:generate`](#sfdx-jayreemanifestgenerate)
|
38
39
|
* [`sfdx jayree:manifest:git:diff`](#sfdx-jayreemanifestgitdiff)
|
39
40
|
|
41
|
+
### `sfdx jayree:manifest:beta:git:diff`
|
42
|
+
|
43
|
+
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
|
+
|
45
|
+
```
|
46
|
+
USAGE
|
47
|
+
$ sfdx jayree:manifest:beta:git:diff [-p <array>] [-o <string>] [-d] [--apiversion <string>] [--json] [--loglevel
|
48
|
+
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
49
|
+
|
50
|
+
ARGUMENTS
|
51
|
+
REF1 base commit or branch
|
52
|
+
REF2 commit or branch to compare to the base commit
|
53
|
+
|
54
|
+
FLAGS
|
55
|
+
-d, --destructivechangesonly create a destructiveChanges manifest
|
56
|
+
only (package.xml will be empty)
|
57
|
+
-o, --outputdir=<value> directory to save the created
|
58
|
+
manifest files
|
59
|
+
-p, --sourcepath=<value> comma-separated list of paths to the
|
60
|
+
local source files to include in the
|
61
|
+
manifest
|
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
|
67
|
+
|
68
|
+
DESCRIPTION
|
69
|
+
create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or
|
70
|
+
delete based on changes in your git history
|
71
|
+
Use this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two
|
72
|
+
git refs.
|
73
|
+
|
74
|
+
You can use all ways to spell <commit> which are valid for 'git diff'.
|
75
|
+
(See https://git-scm.com/docs/git-diff)
|
76
|
+
|
77
|
+
EXAMPLES
|
78
|
+
$ sfdx jayree:manifest:beta:git:diff <commit> <commit>
|
79
|
+
|
80
|
+
$ sfdx jayree:manifest:git:diff <commit>..<commit>
|
81
|
+
|
82
|
+
uses the changes between two arbitrary <commit>
|
83
|
+
|
84
|
+
$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>
|
85
|
+
|
86
|
+
uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.
|
87
|
+
|
88
|
+
$ sfdx jayree:manifest:beta:git:diff branchA..branchB
|
89
|
+
|
90
|
+
uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)
|
91
|
+
|
92
|
+
$ sfdx jayree:manifest:beta:git:diff branchA...branchB
|
93
|
+
|
94
|
+
uses the diff of what is unique in branchB (REF2)
|
95
|
+
```
|
96
|
+
|
97
|
+
_See code: [src/commands/jayree/manifest/beta/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.6.0/src/commands/jayree/manifest/beta/git/diff.ts)_
|
98
|
+
|
40
99
|
### `sfdx jayree:manifest:cleanup`
|
41
100
|
|
42
101
|
removes those tags from a manifest file that are present in a second manifest file
|
@@ -63,7 +122,7 @@ EXAMPLES
|
|
63
122
|
$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml
|
64
123
|
```
|
65
124
|
|
66
|
-
_See code: [src/commands/jayree/manifest/cleanup.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
125
|
+
_See code: [src/commands/jayree/manifest/cleanup.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.6.0/src/commands/jayree/manifest/cleanup.ts)_
|
67
126
|
|
68
127
|
### `sfdx jayree:manifest:generate`
|
69
128
|
|
@@ -106,7 +165,7 @@ EXAMPLES
|
|
106
165
|
<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>
|
107
166
|
```
|
108
167
|
|
109
|
-
_See code: [src/commands/jayree/manifest/generate.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
168
|
+
_See code: [src/commands/jayree/manifest/generate.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.6.0/src/commands/jayree/manifest/generate.ts)_
|
110
169
|
|
111
170
|
### `sfdx jayree:manifest:git:diff`
|
112
171
|
|
@@ -160,5 +219,5 @@ EXAMPLES
|
|
160
219
|
uses the diff of what is unique in branchB (REF2)
|
161
220
|
```
|
162
221
|
|
163
|
-
_See code: [src/commands/jayree/manifest/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.
|
222
|
+
_See code: [src/commands/jayree/manifest/git/diff.ts](https://github.com/jayree/sfdx-plugin-manifest/blob/v2.6.0/src/commands/jayree/manifest/git/diff.ts)_
|
164
223
|
<!-- commandsstop -->
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { ComponentSet, OptionalTreeRegistryOptions } from '@salesforce/source-deploy-retrieve';
|
2
|
+
import Debug from 'debug';
|
3
|
+
export declare const debug: Debug.Debugger;
|
4
|
+
export interface FromGitDiffOptions extends OptionalTreeRegistryOptions {
|
5
|
+
/**
|
6
|
+
* Git ref to resolve components against
|
7
|
+
*/
|
8
|
+
ref: string | string[];
|
9
|
+
/**
|
10
|
+
* File paths or directory paths to resolve components against
|
11
|
+
*/
|
12
|
+
fsPaths?: string[];
|
13
|
+
}
|
14
|
+
export declare class ComponentSetExtra extends ComponentSet {
|
15
|
+
/**
|
16
|
+
* Resolve metadata components from git diff <ref> HEAD.
|
17
|
+
*
|
18
|
+
* @param ref Git ref to resolve components against HEAD
|
19
|
+
* @returns ComponentSet of source resolved components
|
20
|
+
*/
|
21
|
+
static fromGitDiff(ref: string): Promise<ComponentSet>;
|
22
|
+
/**
|
23
|
+
* Resolve metadata components from git diff <ref1> <ref2>.
|
24
|
+
*
|
25
|
+
* @param refs Git refs to resolve components against
|
26
|
+
* @returns ComponentSet of source resolved components
|
27
|
+
*/
|
28
|
+
static fromGitDiff(refs: string[]): Promise<ComponentSet>;
|
29
|
+
/**
|
30
|
+
* Resolve metadata components from git diff.
|
31
|
+
* Customize the resolution process using an options object, such as specifying filters
|
32
|
+
* and resolving against a different file system abstraction (see {@link TreeContainer}).
|
33
|
+
*
|
34
|
+
* @param options
|
35
|
+
* @returns ComponentSet of source resolved components
|
36
|
+
*/
|
37
|
+
static fromGitDiff(options: FromGitDiffOptions): Promise<ComponentSet>;
|
38
|
+
}
|
@@ -0,0 +1,66 @@
|
|
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
|
+
import { ComponentSet, DestructiveChangesType, registry as untypedRegistry, } from '@salesforce/source-deploy-retrieve';
|
8
|
+
import { SfProject } from '@salesforce/core';
|
9
|
+
import Debug from 'debug';
|
10
|
+
import { GitDiffResolver } from '../resolve/gitDiffResolver.js';
|
11
|
+
export const debug = Debug('sf:gitDiff:ComponentSetExtra');
|
12
|
+
export class ComponentSetExtra extends ComponentSet {
|
13
|
+
static async fromGitDiff(input) {
|
14
|
+
let fsPaths;
|
15
|
+
let registry;
|
16
|
+
let tree;
|
17
|
+
let ref1;
|
18
|
+
let ref2;
|
19
|
+
if (Array.isArray(input)) {
|
20
|
+
ref1 = input[0];
|
21
|
+
ref2 = input[1];
|
22
|
+
}
|
23
|
+
else if (typeof input === 'object') {
|
24
|
+
if (Array.isArray(input.ref)) {
|
25
|
+
ref1 = input.ref[0];
|
26
|
+
ref2 = input.ref[1];
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
ref1 = input.ref;
|
30
|
+
}
|
31
|
+
fsPaths = input.fsPaths;
|
32
|
+
registry = input.registry ?? registry;
|
33
|
+
tree = input.tree ?? tree;
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
ref1 = input;
|
37
|
+
}
|
38
|
+
const proj = await SfProject.resolve();
|
39
|
+
fsPaths = fsPaths || proj.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
|
40
|
+
const gitDiffResolver = new GitDiffResolver();
|
41
|
+
const inclusiveFilter = await gitDiffResolver.resolve(ref1, ref2, fsPaths);
|
42
|
+
const components = ComponentSet.fromSource({
|
43
|
+
fsPaths,
|
44
|
+
include: inclusiveFilter,
|
45
|
+
tree,
|
46
|
+
registry,
|
47
|
+
});
|
48
|
+
const childsTobeReplacedByParent = [
|
49
|
+
...Object.keys(untypedRegistry.types.workflow.children.types),
|
50
|
+
...Object.keys(untypedRegistry.types.sharingrules.children.types),
|
51
|
+
...Object.keys(untypedRegistry.types.customobjecttranslation.children.types),
|
52
|
+
...Object.keys(untypedRegistry.types.bot.children.types),
|
53
|
+
];
|
54
|
+
for (const component of inclusiveFilter.getSourceComponents()) {
|
55
|
+
if (component.isMarkedForDelete()) {
|
56
|
+
components.add(component, DestructiveChangesType.POST);
|
57
|
+
}
|
58
|
+
else if (childsTobeReplacedByParent.includes(component.type.id)) {
|
59
|
+
debug(`add parent ${component.parent.type.name}:${component.parent.fullName} of ${component.type.name}:${component.fullName} to manifest`);
|
60
|
+
components.add(component.parent);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
return components;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
//# sourceMappingURL=componentSetExtra.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"componentSetExtra.js","sourceRoot":"","sources":["../../../src/SDR-extra/collections/componentSetExtra.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { ComponentSet } from '@salesforce/source-deploy-retrieve';
|
2
|
+
import Debug from 'debug';
|
3
|
+
export declare const debug: Debug.Debugger;
|
4
|
+
/**
|
5
|
+
* Resolver for metadata type and component objects from a git diff result
|
6
|
+
*
|
7
|
+
* @internal
|
8
|
+
*/
|
9
|
+
export declare class GitDiffResolver {
|
10
|
+
private ref1VirtualTreeContainer;
|
11
|
+
private ref2VirtualTreeContainer;
|
12
|
+
private ref1Resolver;
|
13
|
+
private ref2Resolver;
|
14
|
+
private static getFileStatus;
|
15
|
+
resolve(ref1: string, ref2: string, fsPaths: string[]): Promise<ComponentSet>;
|
16
|
+
private getComponentSet;
|
17
|
+
private getChildComponentStatus;
|
18
|
+
}
|
@@ -0,0 +1,192 @@
|
|
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
|
+
import path from 'path';
|
8
|
+
import { ComponentSet, RegistryAccess, MetadataResolver, SourceComponent, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
|
9
|
+
import { SfProject, SfError } from '@salesforce/core';
|
10
|
+
import fs from 'fs-extra';
|
11
|
+
import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
|
12
|
+
import equal from 'fast-deep-equal';
|
13
|
+
import Debug from 'debug';
|
14
|
+
import { resolveMultiRefString, resolveSingleRefString, getFileState, getStatus } from '../utils/git-extra.js';
|
15
|
+
import { VirtualTreeContainerExtra } from './treeContainersExtra.js';
|
16
|
+
export const debug = Debug('sf:gitDiff:resolver');
|
17
|
+
const registryAccess = new RegistryAccess();
|
18
|
+
/**
|
19
|
+
* Resolver for metadata type and component objects from a git diff result
|
20
|
+
*
|
21
|
+
* @internal
|
22
|
+
*/
|
23
|
+
export class GitDiffResolver {
|
24
|
+
static async getFileStatus(ref1, ref2, dir, resolveSourcePaths) {
|
25
|
+
let files;
|
26
|
+
if (ref2) {
|
27
|
+
files = (await getFileState(ref1, ref2, dir)).filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
files = await getStatus(dir, ref1);
|
31
|
+
files = files.filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
|
32
|
+
}
|
33
|
+
files = files.filter((file) => {
|
34
|
+
if (file.status === 'D') {
|
35
|
+
for (const sourcePath of resolveSourcePaths) {
|
36
|
+
const defaultFolder = path.join(sourcePath, 'main', 'default');
|
37
|
+
const filePath = file.path.replace(file.path.startsWith(defaultFolder) ? defaultFolder : sourcePath, '');
|
38
|
+
const target = files.find((t) => t.path.endsWith(filePath) && t.status === 'A');
|
39
|
+
if (target) {
|
40
|
+
return false;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
return true;
|
45
|
+
});
|
46
|
+
return files;
|
47
|
+
}
|
48
|
+
async resolve(ref1, ref2, fsPaths) {
|
49
|
+
const proj = await SfProject.resolve();
|
50
|
+
if (ref2 === undefined) {
|
51
|
+
const { ref1: r1, ref2: r2 } = await resolveMultiRefString({ ref: ref1, dir: proj.getPath(), fs });
|
52
|
+
ref1 = r1;
|
53
|
+
ref2 = r2;
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
const [r1, r2] = await Promise.all([
|
57
|
+
resolveSingleRefString({ ref: ref1, dir: proj.getPath(), fs }),
|
58
|
+
resolveSingleRefString({ ref: ref2, dir: proj.getPath(), fs }),
|
59
|
+
]);
|
60
|
+
ref1 = r1;
|
61
|
+
ref2 = r2;
|
62
|
+
}
|
63
|
+
debug({ ref1, ref2 });
|
64
|
+
const fileStatus = await GitDiffResolver.getFileStatus(ref1, ref2, proj.getPath(), fsPaths);
|
65
|
+
debug({ fileStatus });
|
66
|
+
const [ref1VirtualTreeContainer, ref2VirtualTreeContainer] = await Promise.all([
|
67
|
+
VirtualTreeContainerExtra.fromGitRef(ref1, proj.getPath(), fileStatus.filter((l) => l.status === 'M').map((l) => l.path)),
|
68
|
+
VirtualTreeContainerExtra.fromGitRef(ref2, proj.getPath(), fileStatus.filter((l) => l.status === 'M').map((l) => l.path)),
|
69
|
+
]);
|
70
|
+
this.ref1VirtualTreeContainer = ref1VirtualTreeContainer;
|
71
|
+
this.ref2VirtualTreeContainer = ref2VirtualTreeContainer;
|
72
|
+
fsPaths = fsPaths.map((filepath) => {
|
73
|
+
filepath = path.resolve(filepath);
|
74
|
+
if (!this.ref1VirtualTreeContainer.exists(filepath) && !this.ref2VirtualTreeContainer.exists(filepath)) {
|
75
|
+
throw new SfError(`The sourcepath "${filepath}" is not a valid source file path.`);
|
76
|
+
}
|
77
|
+
return filepath;
|
78
|
+
});
|
79
|
+
debug({ fsPaths });
|
80
|
+
this.ref1Resolver = new MetadataResolver(registryAccess, this.ref1VirtualTreeContainer);
|
81
|
+
this.ref2Resolver = new MetadataResolver(registryAccess, this.ref2VirtualTreeContainer);
|
82
|
+
return this.getComponentSet(fileStatus, fsPaths);
|
83
|
+
}
|
84
|
+
async getComponentSet(gitLines, fsPaths) {
|
85
|
+
const results = new ComponentSet(undefined, registryAccess);
|
86
|
+
const childComponentPromises = [];
|
87
|
+
for (const [, { status, path: fpath }] of gitLines.entries()) {
|
88
|
+
if (!fsPaths || fsPaths.some((fsPath) => path.resolve(fpath).startsWith(fsPath))) {
|
89
|
+
if (status === 'D') {
|
90
|
+
for (const c of this.ref1Resolver.getComponentsFromPath(fpath)) {
|
91
|
+
// if the component supports partial delete AND there are files that are not deleted,
|
92
|
+
// set the component for deploy, not for delete.
|
93
|
+
if (!!c.type.supportsPartialDelete && c.content && this.ref2VirtualTreeContainer.exists(c.content)) {
|
94
|
+
// all bundle types have a directory name
|
95
|
+
try {
|
96
|
+
this.ref2Resolver
|
97
|
+
.getComponentsFromPath(path.resolve(c.content))
|
98
|
+
.filter((input) => input instanceof SourceComponent)
|
99
|
+
.map((nonDeletedComponent) => {
|
100
|
+
results.add(nonDeletedComponent);
|
101
|
+
});
|
102
|
+
}
|
103
|
+
catch (e) {
|
104
|
+
debug(`unable to find component at ${c.content}. That's ok if it was supposed to be deleted`);
|
105
|
+
}
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
results.add(c, DestructiveChangesType.POST);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
else if (status === 'A') {
|
113
|
+
for (const c of this.ref2Resolver.getComponentsFromPath(fpath)) {
|
114
|
+
results.add(c);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
else {
|
118
|
+
childComponentPromises.push(this.getChildComponentStatus(fpath));
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
for await (const check of childComponentPromises) {
|
123
|
+
if (check.status === 0) {
|
124
|
+
for (const c of this.ref2Resolver.getComponentsFromPath(check.path)) {
|
125
|
+
results.add(c);
|
126
|
+
}
|
127
|
+
}
|
128
|
+
else if (check.status === -1) {
|
129
|
+
// unchanged file
|
130
|
+
}
|
131
|
+
else {
|
132
|
+
for (const c of check.toDestructiveChanges) {
|
133
|
+
results.add(c, DestructiveChangesType.POST);
|
134
|
+
}
|
135
|
+
for (const c of check.toManifest) {
|
136
|
+
results.add(c);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
debug({
|
141
|
+
forceIgnoredPaths: {
|
142
|
+
ref1: Array.from(this.ref1Resolver.forceIgnoredPaths),
|
143
|
+
ref2: Array.from(this.ref2Resolver.forceIgnoredPaths),
|
144
|
+
},
|
145
|
+
});
|
146
|
+
return results;
|
147
|
+
}
|
148
|
+
async getChildComponentStatus(fpath) {
|
149
|
+
if (!parseMetadataXml(fpath)) {
|
150
|
+
return { path: fpath, status: 0 };
|
151
|
+
}
|
152
|
+
const [ref2Component] = this.ref2Resolver.getComponentsFromPath(fpath); // git path only conaints files
|
153
|
+
const [ref1Component] = this.ref1Resolver.getComponentsFromPath(fpath); // git path only conaints files
|
154
|
+
if (equal(await ref1Component.parseXml(), await ref2Component.parseXml())) {
|
155
|
+
return { path: fpath, status: -1 };
|
156
|
+
}
|
157
|
+
if (ref1Component.type.strictDirectoryName === true || !ref1Component.type.children) {
|
158
|
+
return { path: fpath, status: 0 };
|
159
|
+
}
|
160
|
+
const getUniqueIdentifier = (component) => `${component.type.name}#${component[component.type.uniqueIdElement]}`;
|
161
|
+
const ref2ChildUniqueIdArray = ref2Component
|
162
|
+
.getChildren()
|
163
|
+
.map((childComponent) => getUniqueIdentifier(childComponent));
|
164
|
+
const ref1ChildUniqueIdArray = ref1Component
|
165
|
+
.getChildren()
|
166
|
+
.map((childComponent) => getUniqueIdentifier(childComponent));
|
167
|
+
const childComponentsNotInRef2 = ref1Component
|
168
|
+
.getChildren()
|
169
|
+
.filter((childComponent) => !ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // deleted
|
170
|
+
const childComponentsNotInRef1 = ref2Component
|
171
|
+
.getChildren()
|
172
|
+
.filter((childComponent) => !ref1ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // added
|
173
|
+
const childComponentsInRef1AndRef2 = ref1Component
|
174
|
+
.getChildren()
|
175
|
+
.filter((childComponent) => ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // modified?
|
176
|
+
for await (const childComponentRef1 of childComponentsInRef1AndRef2) {
|
177
|
+
const [childComponentRef2] = ref2Component
|
178
|
+
.getChildren()
|
179
|
+
.filter((childComponent) => getUniqueIdentifier(childComponentRef1) === getUniqueIdentifier(childComponent));
|
180
|
+
if (!equal(await childComponentRef1.parseXml(), await childComponentRef2.parseXml())) {
|
181
|
+
childComponentsNotInRef1.push(childComponentRef2); // modified! -> add to added
|
182
|
+
}
|
183
|
+
}
|
184
|
+
return {
|
185
|
+
path: fpath,
|
186
|
+
status: 1 + childComponentsNotInRef2.length + childComponentsNotInRef1.length,
|
187
|
+
toManifest: childComponentsNotInRef1,
|
188
|
+
toDestructiveChanges: childComponentsNotInRef2,
|
189
|
+
};
|
190
|
+
}
|
191
|
+
}
|
192
|
+
//# sourceMappingURL=gitDiffResolver.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"gitDiffResolver.js","sourceRoot":"","sources":["../../../src/SDR-extra/resolve/gitDiffResolver.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { VirtualTreeContainer } from '@salesforce/source-deploy-retrieve';
|
2
|
+
export declare class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
3
|
+
/**
|
4
|
+
* Designed for recreating virtual files from a git ref
|
5
|
+
* To support use of MetadataResolver to also resolve metadata xmls file names can be provided
|
6
|
+
*
|
7
|
+
* @param ref git ref
|
8
|
+
* @param dir git dir
|
9
|
+
* @param includeBufferForFiles full paths to modified files
|
10
|
+
* @returns VirtualTreeContainer
|
11
|
+
*/
|
12
|
+
static fromGitRef(ref: string, dir: string, includeBufferForFiles: string[]): Promise<VirtualTreeContainer>;
|
13
|
+
}
|
@@ -0,0 +1,51 @@
|
|
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
|
+
import path from 'path';
|
8
|
+
import { VirtualTreeContainer } from '@salesforce/source-deploy-retrieve';
|
9
|
+
import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
|
10
|
+
import fs from 'fs-extra';
|
11
|
+
import { listFullPathFiles, getOid, readBlobAsBuffer } from '../utils/git-extra.js';
|
12
|
+
export class VirtualTreeContainerExtra extends VirtualTreeContainer {
|
13
|
+
/**
|
14
|
+
* Designed for recreating virtual files from a git ref
|
15
|
+
* To support use of MetadataResolver to also resolve metadata xmls file names can be provided
|
16
|
+
*
|
17
|
+
* @param ref git ref
|
18
|
+
* @param dir git dir
|
19
|
+
* @param includeBufferForFiles full paths to modified files
|
20
|
+
* @returns VirtualTreeContainer
|
21
|
+
*/
|
22
|
+
static async fromGitRef(ref, dir, includeBufferForFiles) {
|
23
|
+
const paths = await listFullPathFiles(dir, ref);
|
24
|
+
const oid = await getOid(dir, ref);
|
25
|
+
const virtualDirectoryByFullPath = new Map();
|
26
|
+
for await (const filename of paths) {
|
27
|
+
let dirPath = path.dirname(filename);
|
28
|
+
virtualDirectoryByFullPath.set(dirPath, {
|
29
|
+
dirPath,
|
30
|
+
children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add({
|
31
|
+
name: path.basename(filename),
|
32
|
+
data: parseMetadataXml(filename) && includeBufferForFiles.includes(filename)
|
33
|
+
? oid
|
34
|
+
? await readBlobAsBuffer(dir, oid, filename)
|
35
|
+
: await fs.readFile(filename)
|
36
|
+
: Buffer.from(''),
|
37
|
+
})),
|
38
|
+
});
|
39
|
+
const splits = filename.split(path.sep);
|
40
|
+
for (let i = 1; i < splits.length - 1; i++) {
|
41
|
+
dirPath = splits.slice(0, i + 1).join(path.sep);
|
42
|
+
virtualDirectoryByFullPath.set(dirPath, {
|
43
|
+
dirPath,
|
44
|
+
children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add(splits[i + 1])),
|
45
|
+
});
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return new VirtualTreeContainer(Array.from(virtualDirectoryByFullPath.values()));
|
49
|
+
}
|
50
|
+
}
|
51
|
+
//# sourceMappingURL=treeContainersExtra.js.map
|
@@ -0,0 +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,UAAU,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,MAAM,OAAO,yBAA0B,SAAQ,oBAAoB;IACjE;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAC5B,GAAW,EACX,GAAW,EACX,qBAA+B;QAE/B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,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,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;4BAC5C,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAC/B,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,65 @@
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
2
|
+
import { CallbackFsClient, PromiseFsClient } from 'isomorphic-git';
|
3
|
+
import Debug from 'debug';
|
4
|
+
export declare const debug: Debug.Debugger;
|
5
|
+
export interface GetCommitLogOptions {
|
6
|
+
/**
|
7
|
+
* File paths or directory paths to resolve components against
|
8
|
+
*/
|
9
|
+
ref: string;
|
10
|
+
/**
|
11
|
+
* File paths or directory paths to resolve components against
|
12
|
+
*/
|
13
|
+
dir: string;
|
14
|
+
/**
|
15
|
+
* File paths or directory paths to resolve components against
|
16
|
+
*/
|
17
|
+
fs: CallbackFsClient | PromiseFsClient;
|
18
|
+
}
|
19
|
+
interface MultiRefStringOptions {
|
20
|
+
/**
|
21
|
+
* File paths or directory paths to resolve components against
|
22
|
+
*/
|
23
|
+
ref: string;
|
24
|
+
/**
|
25
|
+
* File paths or directory paths to resolve components against
|
26
|
+
*/
|
27
|
+
dir: string;
|
28
|
+
/**
|
29
|
+
* File paths or directory paths to resolve components against
|
30
|
+
*/
|
31
|
+
fs: CallbackFsClient | PromiseFsClient;
|
32
|
+
}
|
33
|
+
export declare function resolveMultiRefString(options: MultiRefStringOptions): Promise<{
|
34
|
+
ref1: string;
|
35
|
+
ref2: string;
|
36
|
+
}>;
|
37
|
+
interface SingleRefStringOptions {
|
38
|
+
/**
|
39
|
+
* File paths or directory paths to resolve components against
|
40
|
+
*/
|
41
|
+
ref: string;
|
42
|
+
/**
|
43
|
+
* File paths or directory paths to resolve components against
|
44
|
+
*/
|
45
|
+
dir: string;
|
46
|
+
/**
|
47
|
+
* File paths or directory paths to resolve components against
|
48
|
+
*/
|
49
|
+
fs: CallbackFsClient | PromiseFsClient;
|
50
|
+
}
|
51
|
+
export declare function resolveSingleRefString(options: SingleRefStringOptions): Promise<string>;
|
52
|
+
export declare function getFileState(commitHash1: string, commitHash2: string, dir: string): Promise<[
|
53
|
+
{
|
54
|
+
path: string;
|
55
|
+
status: string;
|
56
|
+
}
|
57
|
+
]>;
|
58
|
+
export declare function getStatus(dir: string, ref: string): Promise<Array<{
|
59
|
+
path: string;
|
60
|
+
status: string;
|
61
|
+
}>>;
|
62
|
+
export declare function listFullPathFiles(dir: string, ref: string): Promise<string[]>;
|
63
|
+
export declare function getOid(dir: string, ref: string): Promise<string>;
|
64
|
+
export declare function readBlobAsBuffer(dir: string, oid: string, filename: string): Promise<Buffer>;
|
65
|
+
export {};
|
@@ -0,0 +1,198 @@
|
|
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
|
+
import util from 'util';
|
8
|
+
import path from 'path';
|
9
|
+
import git from 'isomorphic-git';
|
10
|
+
import fs from 'fs-extra';
|
11
|
+
import Debug from 'debug';
|
12
|
+
export const debug = Debug('sf:gitDiff:extra');
|
13
|
+
async function getCommitLog(options) {
|
14
|
+
try {
|
15
|
+
const [log] = await git.log({
|
16
|
+
fs: options.fs,
|
17
|
+
dir: options.dir,
|
18
|
+
ref: options.ref,
|
19
|
+
depth: 1,
|
20
|
+
});
|
21
|
+
return { oid: log.oid, parents: log.commit.parent };
|
22
|
+
}
|
23
|
+
catch (error) {
|
24
|
+
throw new Error(`ambiguous argument '${options.ref}': unknown revision or path not in the working tree.
|
25
|
+
See more help with --help`);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
export async function resolveMultiRefString(options) {
|
29
|
+
const a = options.ref.split('.');
|
30
|
+
let ref1;
|
31
|
+
let ref2;
|
32
|
+
if (a.length === 3 || a.length === 4) {
|
33
|
+
ref1 = a[0];
|
34
|
+
ref2 = a[a.length - 1];
|
35
|
+
}
|
36
|
+
else if (a.length === 1) {
|
37
|
+
ref1 = a[0];
|
38
|
+
ref2 = undefined;
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
throw new Error(`Ambiguous ${util.format('argument%s', options.ref.length === 1 ? '' : 's')}: ${options.ref}
|
42
|
+
See more help with --help`);
|
43
|
+
}
|
44
|
+
if (a.length === 4) {
|
45
|
+
ref1 = (await git.findMergeBase({
|
46
|
+
fs: options.fs,
|
47
|
+
dir: options.dir,
|
48
|
+
oids: [ref2, ref1],
|
49
|
+
}))[0];
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
ref1 = await resolveSingleRefString({ ref: ref1, dir: options.dir, fs: options.fs });
|
53
|
+
}
|
54
|
+
ref2 = await resolveSingleRefString({ ref: ref2, dir: options.dir, fs: options.fs });
|
55
|
+
return { ref1, ref2 };
|
56
|
+
}
|
57
|
+
export async function resolveSingleRefString(options) {
|
58
|
+
if (options.ref === undefined) {
|
59
|
+
return '';
|
60
|
+
}
|
61
|
+
if (!['~', '^'].some((el) => options.ref.includes(el))) {
|
62
|
+
return (await getCommitLog({ ref: options.ref, fs: options.fs, dir: options.dir })).oid;
|
63
|
+
}
|
64
|
+
const firstIndex = [options.ref.indexOf('^'), options.ref.indexOf('~')]
|
65
|
+
.filter((a) => a >= 0)
|
66
|
+
.reduce((a, b) => Math.min(a, b));
|
67
|
+
let ipath = options.ref.substring(firstIndex);
|
68
|
+
let resolvedRef = options.ref.substring(0, firstIndex);
|
69
|
+
while (ipath.length && resolvedRef !== undefined) {
|
70
|
+
if (ipath.startsWith('^')) {
|
71
|
+
ipath = ipath.substring(1);
|
72
|
+
let next = Number(ipath.substring(0, 1));
|
73
|
+
ipath = next ? ipath.substring(1) : ipath;
|
74
|
+
next = next ? next : 1;
|
75
|
+
// eslint-disable-next-line no-await-in-loop
|
76
|
+
resolvedRef = (await getCommitLog({ ref: resolvedRef, fs: options.fs, dir: options.dir })).parents[next - 1];
|
77
|
+
}
|
78
|
+
else if (ipath.startsWith('~')) {
|
79
|
+
ipath = ipath.substring(1);
|
80
|
+
let next = Number(ipath.substring(0, 1));
|
81
|
+
ipath = next ? ipath.substring(1) : ipath;
|
82
|
+
next = next ? next : 1;
|
83
|
+
for (let index = 0; index <= next - 1; index++) {
|
84
|
+
// eslint-disable-next-line no-await-in-loop
|
85
|
+
resolvedRef = (await getCommitLog({ ref: resolvedRef, fs: options.fs, dir: options.dir })).parents[0];
|
86
|
+
}
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
resolvedRef = undefined;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
if (resolvedRef === undefined) {
|
93
|
+
throw new Error(`ambiguous argument '${options.ref}': unknown revision or path not in the working tree.`);
|
94
|
+
}
|
95
|
+
return resolvedRef;
|
96
|
+
}
|
97
|
+
export async function getFileState(commitHash1, commitHash2, dir) {
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
99
|
+
return git.walk({
|
100
|
+
fs,
|
101
|
+
dir,
|
102
|
+
trees: [git.TREE({ ref: commitHash1 }), git.TREE({ ref: commitHash2 })],
|
103
|
+
async map(filepath, [A, B]) {
|
104
|
+
if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
const Aoid = await A?.oid();
|
108
|
+
const Boid = await B?.oid();
|
109
|
+
let type = 'EQ';
|
110
|
+
if (Aoid !== Boid) {
|
111
|
+
type = 'M';
|
112
|
+
}
|
113
|
+
if (Aoid === undefined) {
|
114
|
+
type = 'A';
|
115
|
+
}
|
116
|
+
if (Boid === undefined) {
|
117
|
+
type = 'D';
|
118
|
+
}
|
119
|
+
if (type !== 'EQ') {
|
120
|
+
return {
|
121
|
+
path: path.join(dir, ensureOSPath(filepath)),
|
122
|
+
status: type,
|
123
|
+
};
|
124
|
+
}
|
125
|
+
},
|
126
|
+
});
|
127
|
+
}
|
128
|
+
export async function getStatus(dir, ref) {
|
129
|
+
const getStatusText = (row) => {
|
130
|
+
if ([
|
131
|
+
[0, 2, 2],
|
132
|
+
[0, 2, 3], // added, staged, with unstaged changes
|
133
|
+
].some((a) => a.every((val, index) => val === row[index]))) {
|
134
|
+
return 'A';
|
135
|
+
}
|
136
|
+
if ([
|
137
|
+
[1, 0, 0],
|
138
|
+
[1, 0, 1],
|
139
|
+
[1, 1, 0],
|
140
|
+
[1, 2, 0],
|
141
|
+
[1, 0, 3], // modified, staged, with unstaged deletion
|
142
|
+
].some((a) => a.every((val, index) => val === row[index]))) {
|
143
|
+
return 'D';
|
144
|
+
}
|
145
|
+
if ([
|
146
|
+
[1, 2, 1],
|
147
|
+
[1, 2, 2],
|
148
|
+
[1, 2, 3], // modified, staged, with unstaged changes
|
149
|
+
].some((a) => a.every((val, index) => val === row[index]))) {
|
150
|
+
return 'M';
|
151
|
+
}
|
152
|
+
};
|
153
|
+
const statusMatrix = await git.statusMatrix({ fs, dir, ref });
|
154
|
+
const unstaged = statusMatrix
|
155
|
+
.filter((row) => [
|
156
|
+
[0, 2, 0],
|
157
|
+
[0, 0, 3],
|
158
|
+
[0, 2, 3],
|
159
|
+
[1, 2, 1],
|
160
|
+
[1, 0, 3],
|
161
|
+
[1, 1, 3],
|
162
|
+
[1, 2, 3],
|
163
|
+
[1, 1, 0],
|
164
|
+
[1, 2, 0],
|
165
|
+
[1, 0, 1], // deleted, unstaged
|
166
|
+
].some((a) => a.every((val, index) => val === row.slice(1)[index])))
|
167
|
+
.map((row) => path.join(dir, ensureOSPath(row[0])));
|
168
|
+
debug({ unstaged });
|
169
|
+
const gitlines = statusMatrix
|
170
|
+
.filter((row) => ![
|
171
|
+
[0, 0, 0],
|
172
|
+
[1, 1, 1],
|
173
|
+
[0, 0, 3],
|
174
|
+
[0, 2, 0],
|
175
|
+
[1, 1, 3], // modified, staged, with unstaged original file
|
176
|
+
].some((a) => a.every((val, index) => val === row.slice(1)[index])))
|
177
|
+
.map((row) => ({
|
178
|
+
path: path.join(dir, ensureOSPath(row[0])),
|
179
|
+
status: getStatusText(row.slice(1)),
|
180
|
+
}));
|
181
|
+
return gitlines;
|
182
|
+
}
|
183
|
+
function ensureOSPath(fpath) {
|
184
|
+
return fpath.split(path.posix.sep).join(path.sep);
|
185
|
+
}
|
186
|
+
function ensureGitRelPath(dir, fpath) {
|
187
|
+
return path.relative(dir, fpath).split(path.sep).join(path.posix.sep);
|
188
|
+
}
|
189
|
+
export async function listFullPathFiles(dir, ref) {
|
190
|
+
return (await git.listFiles({ fs, dir, ref })).map((p) => path.join(dir, ensureOSPath(p)));
|
191
|
+
}
|
192
|
+
export async function getOid(dir, ref) {
|
193
|
+
return ref ? git.resolveRef({ fs, dir, ref }) : '';
|
194
|
+
}
|
195
|
+
export async function readBlobAsBuffer(dir, oid, filename) {
|
196
|
+
return Buffer.from((await git.readBlob({ fs, dir, oid, filepath: ensureGitRelPath(dir, filename) })).blob);
|
197
|
+
}
|
198
|
+
//# sourceMappingURL=git-extra.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"git-extra.js","sourceRoot":"","sources":["../../../src/SDR-extra/utils/git-extra.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { ArgInput } from '@oclif/core/lib/interfaces';
|
2
|
+
import { FlagsConfig } from '@salesforce/command';
|
3
|
+
import { JayreeSfdxCommand } from '../../../../../jayreeSfdxCommand.js';
|
4
|
+
interface CreateCommandResult {
|
5
|
+
manifest?: {
|
6
|
+
path: string;
|
7
|
+
name: string;
|
8
|
+
};
|
9
|
+
destructiveChanges?: {
|
10
|
+
path: string;
|
11
|
+
name: string;
|
12
|
+
};
|
13
|
+
}
|
14
|
+
export default class gitDiff extends JayreeSfdxCommand {
|
15
|
+
static description: string;
|
16
|
+
static examples: string[];
|
17
|
+
static args: ArgInput;
|
18
|
+
protected static flagsConfig: FlagsConfig;
|
19
|
+
protected static requiresUsername: boolean;
|
20
|
+
protected static supportsDevhubUsername: boolean;
|
21
|
+
protected static requiresProject: boolean;
|
22
|
+
private outputDir;
|
23
|
+
private manifestName;
|
24
|
+
private destructiveChangesName;
|
25
|
+
private outputPath;
|
26
|
+
private componentSet;
|
27
|
+
private destructiveChangesOnly;
|
28
|
+
run(): Promise<CreateCommandResult>;
|
29
|
+
protected createManifest(): Promise<void>;
|
30
|
+
protected formatResult(): CreateCommandResult;
|
31
|
+
}
|
32
|
+
export {};
|
@@ -0,0 +1,127 @@
|
|
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
|
+
import os from 'os';
|
8
|
+
import { join } from 'path';
|
9
|
+
import { flags } from '@salesforce/command';
|
10
|
+
import { Messages } from '@salesforce/core';
|
11
|
+
import fs from 'fs-extra';
|
12
|
+
import { DestructiveChangesType } from '@salesforce/source-deploy-retrieve';
|
13
|
+
import { JayreeSfdxCommand } from '../../../../../jayreeSfdxCommand.js';
|
14
|
+
import { ComponentSetExtra } from '../../../../../SDR-extra/collections/componentSetExtra.js';
|
15
|
+
Messages.importMessagesDirectory(new URL('./', import.meta.url).pathname);
|
16
|
+
const messages = Messages.loadMessages('@jayree/sfdx-plugin-manifest', 'gitdiffbeta');
|
17
|
+
export default class gitDiff extends JayreeSfdxCommand {
|
18
|
+
async run() {
|
19
|
+
await this.createManifest();
|
20
|
+
return this.formatResult();
|
21
|
+
}
|
22
|
+
async createManifest() {
|
23
|
+
this.manifestName = 'package.xml';
|
24
|
+
this.destructiveChangesName = 'destructiveChanges.xml';
|
25
|
+
this.outputDir = this.getFlag('outputdir');
|
26
|
+
this.destructiveChangesOnly = this.getFlag('destructivechangesonly');
|
27
|
+
this.componentSet = await ComponentSetExtra.fromGitDiff({
|
28
|
+
ref: [this.args.ref1, this.args.ref2],
|
29
|
+
fsPaths: this.getFlag('sourcepath'),
|
30
|
+
});
|
31
|
+
this.componentSet.sourceApiVersion = this.getFlag('apiversion') ?? (await this.getSourceApiVersion());
|
32
|
+
if (this.outputDir) {
|
33
|
+
await fs.ensureDir(this.outputDir);
|
34
|
+
this.outputPath = join(this.outputDir, this.manifestName);
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
this.outputPath = this.manifestName;
|
38
|
+
}
|
39
|
+
if (this.componentSet.size) {
|
40
|
+
if (this.componentSet.getTypesOfDestructiveChanges().length) {
|
41
|
+
await fs.writeFile(join(this.outputDir, this.destructiveChangesName), await this.componentSet.getPackageXml(undefined, DestructiveChangesType.POST));
|
42
|
+
}
|
43
|
+
if (this.destructiveChangesOnly) {
|
44
|
+
if (this.componentSet.getTypesOfDestructiveChanges().length) {
|
45
|
+
const emptyCompSet = new ComponentSetExtra();
|
46
|
+
emptyCompSet.sourceApiVersion = this.componentSet.sourceApiVersion;
|
47
|
+
return fs.writeFile(this.outputPath, await emptyCompSet.getPackageXml());
|
48
|
+
}
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
return fs.writeFile(this.outputPath, await this.componentSet.getPackageXml());
|
52
|
+
}
|
53
|
+
}
|
54
|
+
formatResult() {
|
55
|
+
if (!this.isJsonOutput()) {
|
56
|
+
if (this.componentSet.size) {
|
57
|
+
if (this.destructiveChangesOnly && !this.componentSet.getTypesOfDestructiveChanges().length) {
|
58
|
+
this.ux.log(messages.getMessage('nocomponents'));
|
59
|
+
}
|
60
|
+
else if (this.outputDir) {
|
61
|
+
this.ux.log(messages.getMessage('successOutputDir', [this.manifestName, this.outputDir]));
|
62
|
+
if (this.componentSet.getTypesOfDestructiveChanges().length) {
|
63
|
+
this.ux.log(messages.getMessage('successOutputDir', [this.destructiveChangesName, this.outputDir]));
|
64
|
+
}
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
this.ux.log(messages.getMessage('success', [this.manifestName]));
|
68
|
+
if (this.componentSet.getTypesOfDestructiveChanges().length) {
|
69
|
+
this.ux.log(messages.getMessage('success', [this.destructiveChangesName]));
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
this.ux.log(messages.getMessage('nocomponents'));
|
75
|
+
}
|
76
|
+
}
|
77
|
+
if (this.componentSet.getTypesOfDestructiveChanges().length) {
|
78
|
+
return {
|
79
|
+
manifest: { path: this.outputPath, name: this.manifestName },
|
80
|
+
destructiveChanges: {
|
81
|
+
path: join(this.outputDir, this.destructiveChangesName),
|
82
|
+
name: this.destructiveChangesName,
|
83
|
+
},
|
84
|
+
};
|
85
|
+
}
|
86
|
+
else if (this.componentSet.size && !this.destructiveChangesOnly) {
|
87
|
+
return { manifest: { path: this.outputPath, name: this.manifestName } };
|
88
|
+
}
|
89
|
+
else {
|
90
|
+
return {};
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
gitDiff.description = messages.getMessage('description');
|
95
|
+
gitDiff.examples = messages.getMessage('examples').split(os.EOL);
|
96
|
+
gitDiff.args = [
|
97
|
+
{
|
98
|
+
name: 'ref1',
|
99
|
+
required: true,
|
100
|
+
description: 'base commit or branch',
|
101
|
+
},
|
102
|
+
{
|
103
|
+
name: 'ref2',
|
104
|
+
description: 'commit or branch to compare to the base commit',
|
105
|
+
},
|
106
|
+
];
|
107
|
+
gitDiff.flagsConfig = {
|
108
|
+
apiversion: flags.builtin({}),
|
109
|
+
sourcepath: flags.array({
|
110
|
+
char: 'p',
|
111
|
+
description: messages.getMessage('flags.sourcepath'),
|
112
|
+
}),
|
113
|
+
outputdir: flags.string({
|
114
|
+
char: 'o',
|
115
|
+
description: messages.getMessage('flags.outputdir'),
|
116
|
+
default: '',
|
117
|
+
}),
|
118
|
+
destructivechangesonly: flags.boolean({
|
119
|
+
char: 'd',
|
120
|
+
description: messages.getMessage('flags.destructivechangesonly'),
|
121
|
+
default: false,
|
122
|
+
}),
|
123
|
+
};
|
124
|
+
gitDiff.requiresUsername = false;
|
125
|
+
gitDiff.supportsDevhubUsername = false;
|
126
|
+
gitDiff.requiresProject = true;
|
127
|
+
//# sourceMappingURL=diff.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../../src/commands/jayree/manifest/beta/git/diff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAe,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AAE9F,QAAQ,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;AAOtF,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,iBAAiB;IA8C7C,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,wBAAwB,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAS,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAU,wBAAwB,CAAC,CAAC;QAE9E,IAAI,CAAC,YAAY,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC;YACtD,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAW,YAAY,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAEtG,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;gBAC3D,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,EACjD,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAC9E,CAAC;aACH;YACD,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;oBAC3D,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBAC7C,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBACnE,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;iBAC1E;gBACD,OAAO;aACR;YACD,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;SAC/E;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC1B,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;oBAC3F,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;iBAClD;qBAAM,IAAI,IAAI,CAAC,SAAS,EAAE;oBACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC1F,IAAI,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;wBAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACrG;iBACF;qBAAM;oBACL,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBACjE,IAAI,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;wBAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;qBAC5E;iBACF;aACF;iBAAM;gBACL,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;aAClD;SACF;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE;YAC3D,OAAO;gBACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC5D,kBAAkB,EAAE;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC;oBACvD,IAAI,EAAE,IAAI,CAAC,sBAAsB;iBAClC;aACF,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACjE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;SACzE;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;;AAzHa,mBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAEjD,gBAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAEzD,YAAI,GAAa;IAC7B;QACE,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,uBAAuB;KACrC;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEe,mBAAW,GAAgB;IAC1C,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;KACrD,CAAC;IACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACnD,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAChE,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;AAEe,wBAAgB,GAAG,KAAK,CAAC;AACzB,8BAAsB,GAAG,KAAK,CAAC;AAC/B,uBAAe,GAAG,IAAI,CAAC"}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import { SfdxCommand } from '@salesforce/command';
|
2
|
+
import { Optional } from '@salesforce/ts-types';
|
2
3
|
export declare abstract class JayreeSfdxCommand extends SfdxCommand {
|
3
4
|
protected warnIfRunByAlias(aliases: string[], id: string): void;
|
4
5
|
protected getFlag<T>(flagName: string, defaultVal?: unknown): T;
|
6
|
+
protected isJsonOutput(): boolean;
|
7
|
+
protected getSourceApiVersion(): Promise<Optional<string>>;
|
5
8
|
}
|
package/lib/jayreeSfdxCommand.js
CHANGED
@@ -5,7 +5,7 @@
|
|
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
|
import { SfdxCommand } from '@salesforce/command';
|
8
|
-
import { get } from '@salesforce/ts-types';
|
8
|
+
import { get, getBoolean, getString } from '@salesforce/ts-types';
|
9
9
|
export class JayreeSfdxCommand extends SfdxCommand {
|
10
10
|
warnIfRunByAlias(aliases, id) {
|
11
11
|
if (aliases.some((r) => process.argv.includes(r))) {
|
@@ -15,5 +15,12 @@ export class JayreeSfdxCommand extends SfdxCommand {
|
|
15
15
|
getFlag(flagName, defaultVal) {
|
16
16
|
return get(this.flags, flagName, defaultVal);
|
17
17
|
}
|
18
|
+
isJsonOutput() {
|
19
|
+
return getBoolean(this.flags, 'json', false);
|
20
|
+
}
|
21
|
+
async getSourceApiVersion() {
|
22
|
+
const projectConfig = await this.project.resolveProjectConfig();
|
23
|
+
return getString(projectConfig, 'sourceApiVersion');
|
24
|
+
}
|
18
25
|
}
|
19
26
|
//# sourceMappingURL=jayreeSfdxCommand.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jayreeSfdxCommand.js","sourceRoot":"","sources":["../src/jayreeSfdxCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"jayreeSfdxCommand.js","sourceRoot":"","sources":["../src/jayreeSfdxCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAE5E,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAC/C,gBAAgB,CAAC,OAAiB,EAAE,EAAU;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;IAES,OAAO,CAAI,QAAgB,EAAE,UAAoB;QACzD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAM,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,mBAAmB;QACjC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;CACF"}
|
package/lib/utils/gitdiff.js
CHANGED
@@ -191,7 +191,7 @@ export async function analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTre
|
|
191
191
|
debug({ childComponentsNotInRef1 });
|
192
192
|
return {
|
193
193
|
path,
|
194
|
-
status: childComponentsNotInRef2.length + childComponentsNotInRef1.length,
|
194
|
+
status: 1 + childComponentsNotInRef2.length + childComponentsNotInRef1.length,
|
195
195
|
toManifest: childComponentsNotInRef1,
|
196
196
|
toDestructiveChanges: childComponentsNotInRef2,
|
197
197
|
};
|
package/lib/utils/gitdiff.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gitdiff.js","sourceRoot":"","sources":["../../src/utils/gitdiff.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"gitdiff.js","sourceRoot":"","sources":["../../src/utils/gitdiff.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"description": "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\nUse this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.\n\nYou can use all ways to spell <commit> which are valid for 'git diff'.\n(See https://git-scm.com/docs/git-diff)",
|
3
|
+
"examples": [
|
4
|
+
"$ sfdx jayree:manifest:beta:git:diff <commit> <commit>\n$ sfdx jayree:manifest:git:diff <commit>..<commit>\nuses the changes between two arbitrary <commit>",
|
5
|
+
"$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>\nuses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.",
|
6
|
+
"$ sfdx jayree:manifest:beta:git:diff branchA..branchB\nuses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)",
|
7
|
+
"$ sfdx jayree:manifest:beta:git:diff branchA...branchB\nuses the diff of what is unique in branchB (REF2)"
|
8
|
+
],
|
9
|
+
"flags": {
|
10
|
+
"outputdir": "directory to save the created manifest files",
|
11
|
+
"sourcepath": "comma-separated list of paths to the local source files to include in the manifest",
|
12
|
+
"destructivechangesonly": "create a destructiveChanges manifest only (package.xml will be empty)"
|
13
|
+
},
|
14
|
+
"success": "successfully wrote %s",
|
15
|
+
"successOutputDir": "successfully wrote %s to %s",
|
16
|
+
"nocomponents": "no source-backed components present"
|
17
|
+
}
|
package/oclif.manifest.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":"2.5.3","commands":{"jayree:manifest:cleanup":{"id":"jayree:manifest:cleanup","description":"removes those tags from a manifest file that are present in a second manifest file\nUse this command to remove components or metadata types from a manifes file.\nIf the 'cleanup' manifest file (--file) doesn't exist, a template file is created, which can then be modified.","strict":true,"usage":"<%= command.id %> [-x <filepath>] [-f <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"manifest":{"name":"manifest","type":"option","char":"x","description":"path to the manifest file","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"path to the second 'cleanup' manifest file","multiple":false}},"args":[],"flagsConfig":{"manifest":{"kind":"filepath","char":"x","description":"path to the manifest file","input":[],"multiple":false,"type":"option"},"file":{"kind":"filepath","char":"f","description":"path to the second 'cleanup' manifest file","input":[],"multiple":false,"type":"option"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:generate":{"id":"jayree:manifest:generate","description":"generate a complete manifest file form the specified org\nUse this command to generate a manifest file based on an existing org.","strict":true,"usage":"<%= command.id %> [-q <array>] [-c] [-w] [--includeflowversions] [-f <string>] [-x | -a] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:generate --targetusername myOrg@example.com","<?xml version='1.0' encoding='UTF-8'?>","<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"quickfilter":{"name":"quickfilter","type":"option","char":"q","description":"csv separated list of metadata type, member or file names to filter on","multiple":false},"matchcase":{"name":"matchcase","type":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false},"matchwholeword":{"name":"matchwholeword","type":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false},"includeflowversions":{"name":"includeflowversions","type":"boolean","description":"include flow versions as with api version 43.0","allowNo":false},"file":{"name":"file","type":"option","char":"f","description":"write to 'file' instead of stdout","multiple":false},"excludemanaged":{"name":"excludemanaged","type":"boolean","char":"x","description":"exclude managed packages from output","allowNo":false,"exclusive":["excludeall"]},"excludeall":{"name":"excludeall","type":"boolean","char":"a","description":"exclude all packages from output","allowNo":false,"exclusive":["excludemanaged"]}},"args":[],"flagsConfig":{"quickfilter":{"kind":"array","char":"q","description":"csv separated list of metadata type, member or file names to filter on","input":[],"multiple":false,"type":"option"},"matchcase":{"kind":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false,"type":"boolean"},"matchwholeword":{"kind":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false,"type":"boolean"},"includeflowversions":{"kind":"boolean","description":"include flow versions as with api version 43.0","allowNo":false,"type":"boolean"},"file":{"kind":"string","char":"f","description":"write to 'file' instead of stdout","input":[],"multiple":false,"type":"option"},"excludemanaged":{"kind":"boolean","char":"x","description":"exclude managed packages from output","exclusive":["excludeall"],"allowNo":false,"type":"boolean"},"excludeall":{"kind":"boolean","char":"a","description":"exclude all packages from output","exclusive":["excludemanaged"],"allowNo":false,"type":"boolean"}},"requiresUsername":true,"supportsDevhubUsername":false,"requiresProject":false},"jayree:manifest:git:diff":{"id":"jayree:manifest:git:diff","description":"create a manifest and destructiveChanges manifest using 'git diff' data\nUse this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.\n\nYou can use all ways to spell <commit> which are valid for 'git diff'.\n(See https://git-scm.com/docs/git-diff)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of source file paths to limit the diff","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true,"hidden":false},{"name":"ref2","description":"commit or branch to compare to the base commit","required":false,"hidden":false}],"flagsConfig":{"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of source file paths to limit the diff","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true}}}
|
1
|
+
{"version":"2.6.0","commands":{"jayree:manifest:cleanup":{"id":"jayree:manifest:cleanup","description":"removes those tags from a manifest file that are present in a second manifest file\nUse this command to remove components or metadata types from a manifes file.\nIf the 'cleanup' manifest file (--file) doesn't exist, a template file is created, which can then be modified.","strict":true,"usage":"<%= command.id %> [-x <filepath>] [-f <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"manifest":{"name":"manifest","type":"option","char":"x","description":"path to the manifest file","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"path to the second 'cleanup' manifest file","multiple":false}},"args":[],"flagsConfig":{"manifest":{"kind":"filepath","char":"x","description":"path to the manifest file","input":[],"multiple":false,"type":"option"},"file":{"kind":"filepath","char":"f","description":"path to the second 'cleanup' manifest file","input":[],"multiple":false,"type":"option"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:generate":{"id":"jayree:manifest:generate","description":"generate a complete manifest file form the specified org\nUse this command to generate a manifest file based on an existing org.","strict":true,"usage":"<%= command.id %> [-q <array>] [-c] [-w] [--includeflowversions] [-f <string>] [-x | -a] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:generate --targetusername myOrg@example.com","<?xml version='1.0' encoding='UTF-8'?>","<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"quickfilter":{"name":"quickfilter","type":"option","char":"q","description":"csv separated list of metadata type, member or file names to filter on","multiple":false},"matchcase":{"name":"matchcase","type":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false},"matchwholeword":{"name":"matchwholeword","type":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false},"includeflowversions":{"name":"includeflowversions","type":"boolean","description":"include flow versions as with api version 43.0","allowNo":false},"file":{"name":"file","type":"option","char":"f","description":"write to 'file' instead of stdout","multiple":false},"excludemanaged":{"name":"excludemanaged","type":"boolean","char":"x","description":"exclude managed packages from output","allowNo":false,"exclusive":["excludeall"]},"excludeall":{"name":"excludeall","type":"boolean","char":"a","description":"exclude all packages from output","allowNo":false,"exclusive":["excludemanaged"]}},"args":[],"flagsConfig":{"quickfilter":{"kind":"array","char":"q","description":"csv separated list of metadata type, member or file names to filter on","input":[],"multiple":false,"type":"option"},"matchcase":{"kind":"boolean","char":"c","description":"enable 'match case' for the quickfilter","allowNo":false,"type":"boolean"},"matchwholeword":{"kind":"boolean","char":"w","description":"enable 'match whole word' for the quickfilter","allowNo":false,"type":"boolean"},"includeflowversions":{"kind":"boolean","description":"include flow versions as with api version 43.0","allowNo":false,"type":"boolean"},"file":{"kind":"string","char":"f","description":"write to 'file' instead of stdout","input":[],"multiple":false,"type":"option"},"excludemanaged":{"kind":"boolean","char":"x","description":"exclude managed packages from output","exclusive":["excludeall"],"allowNo":false,"type":"boolean"},"excludeall":{"kind":"boolean","char":"a","description":"exclude all packages from output","exclusive":["excludemanaged"],"allowNo":false,"type":"boolean"}},"requiresUsername":true,"supportsDevhubUsername":false,"requiresProject":false},"jayree:manifest:git:diff":{"id":"jayree:manifest:git:diff","description":"create a manifest and destructiveChanges manifest using 'git diff' data\nUse this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.\n\nYou can use all ways to spell <commit> which are valid for 'git diff'.\n(See https://git-scm.com/docs/git-diff)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of source file paths to limit the diff","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true,"hidden":false},{"name":"ref2","description":"commit or branch to compare to the base commit","required":false,"hidden":false}],"flagsConfig":{"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of source file paths to limit the diff","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true},"jayree:manifest:beta:git:diff":{"id":"jayree:manifest:beta:git:diff","description":"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\nUse this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two git refs.\n\nYou can use all ways to spell <commit> which are valid for 'git diff'.\n(See https://git-scm.com/docs/git-diff)","strict":true,"usage":"<%= command.id %> [-p <array>] [-o <string>] [-d] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@jayree/sfdx-plugin-manifest","pluginAlias":"@jayree/sfdx-plugin-manifest","pluginType":"core","aliases":[],"examples":["$ sfdx jayree:manifest:beta:git:diff <commit> <commit>","$ sfdx jayree:manifest:git:diff <commit>..<commit>","uses the changes between two arbitrary <commit>","$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>","uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.","$ sfdx jayree:manifest:beta:git:diff branchA..branchB","uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)","$ sfdx jayree:manifest:beta:git:diff branchA...branchB","uses the diff of what is unique in branchB (REF2)"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"sourcepath":{"name":"sourcepath","type":"option","char":"p","description":"comma-separated list of paths to the local source files to include in the manifest","multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"o","description":"directory to save the created manifest files","multiple":false,"default":""},"destructivechangesonly":{"name":"destructivechangesonly","type":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","allowNo":false}},"args":[{"name":"ref1","description":"base commit or branch","required":true},{"name":"ref2","description":"commit or branch to compare to the base commit"}],"flagsConfig":{"apiversion":{"type":"option","kind":"string","description":"override the api version used for api requests made by this command","longDescription":"Override the API version used for API requests made by this command.","input":[],"multiple":false},"sourcepath":{"kind":"array","char":"p","description":"comma-separated list of paths to the local source files to include in the manifest","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"o","description":"directory to save the created manifest files","default":"","input":[],"multiple":false,"type":"option"},"destructivechangesonly":{"kind":"boolean","char":"d","description":"create a destructiveChanges manifest only (package.xml will be empty)","default":false,"allowNo":false,"type":"boolean"}},"requiresUsername":false,"supportsDevhubUsername":false,"requiresProject":true}}}
|
package/package.json
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jayree/sfdx-plugin-manifest",
|
3
3
|
"description": "A Salesforce CLI plugin containing commands for creating manifest files from Salesforce orgs or git commits of sfdx projects.",
|
4
|
-
"version": "2.
|
4
|
+
"version": "2.6.0",
|
5
5
|
"author": "jayree",
|
6
6
|
"type": "module",
|
7
7
|
"bugs": "https://github.com/jayree/sfdx-plugin-manifest/issues",
|
8
8
|
"dependencies": {
|
9
9
|
"@oclif/core": "^1.23.0",
|
10
10
|
"@salesforce/command": "^5.2.35",
|
11
|
-
"@salesforce/kit": "^1.
|
11
|
+
"@salesforce/kit": "^1.8.0",
|
12
12
|
"@salesforce/source-deploy-retrieve": "^7.5.19",
|
13
|
-
"@salesforce/ts-types": "^1.
|
13
|
+
"@salesforce/ts-types": "^1.7.1",
|
14
14
|
"debug": "^4.3.4",
|
15
15
|
"fast-deep-equal": "^3.1.3",
|
16
16
|
"fast-xml-parser": "^4.0.12",
|
17
|
-
"fs-extra": "^
|
17
|
+
"fs-extra": "^11.1.0",
|
18
18
|
"isomorphic-git": "^1.21.0",
|
19
19
|
"listr2": "^5.0.6",
|
20
20
|
"marked": "^4.2.5",
|
@@ -63,7 +63,7 @@
|
|
63
63
|
"prettier": "^2.8.1",
|
64
64
|
"pretty-quick": "^3.1.3",
|
65
65
|
"shx": "^0.3.4",
|
66
|
-
"sinon": "
|
66
|
+
"sinon": "15.0.1",
|
67
67
|
"source-map-support": "~0.5.21",
|
68
68
|
"ts-node": "^10.9.1",
|
69
69
|
"typescript": "^4.9.4"
|