sfdx-git-delta 7.2.0 → 7.3.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/README.md +17 -4
- package/lib/adapter/GitAdapter.d.ts +19 -13
- package/lib/adapter/GitAdapter.js +105 -96
- package/lib/adapter/GitAdapter.js.map +1 -1
- package/lib/adapter/ioExecutor.d.ts +5 -6
- package/lib/adapter/ioExecutor.js +22 -22
- package/lib/adapter/ioExecutor.js.map +1 -1
- package/lib/adapter/treeIndex.d.ts +7 -4
- package/lib/adapter/treeIndex.js +34 -0
- package/lib/adapter/treeIndex.js.map +1 -1
- package/lib/adapter/treeReader.d.ts +8 -0
- package/lib/adapter/treeReader.js +22 -0
- package/lib/adapter/treeReader.js.map +1 -0
- package/lib/commands/sgd/source/delta.d.ts +1 -0
- package/lib/commands/sgd/source/delta.js +5 -0
- package/lib/commands/sgd/source/delta.js.map +1 -1
- package/lib/main.js +27 -9
- package/lib/main.js.map +1 -1
- package/lib/post-processor/baseProcessor.d.ts +4 -4
- package/lib/post-processor/baseProcessor.js +6 -5
- package/lib/post-processor/baseProcessor.js.map +1 -1
- package/lib/post-processor/flowTranslationProcessor.d.ts +0 -3
- package/lib/post-processor/flowTranslationProcessor.js +1 -5
- package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
- package/lib/post-processor/includeProcessor.d.ts +2 -3
- package/lib/post-processor/includeProcessor.js +4 -4
- package/lib/post-processor/includeProcessor.js.map +1 -1
- package/lib/post-processor/postProcessorManager.d.ts +2 -3
- package/lib/post-processor/postProcessorManager.js +4 -4
- package/lib/post-processor/postProcessorManager.js.map +1 -1
- package/lib/service/containedDecomposedHandler.d.ts +2 -2
- package/lib/service/containedDecomposedHandler.js +3 -3
- package/lib/service/containedDecomposedHandler.js.map +1 -1
- package/lib/service/customObjectHandler.js +1 -1
- package/lib/service/customObjectHandler.js.map +1 -1
- package/lib/service/diffLineInterpreter.d.ts +3 -5
- package/lib/service/diffLineInterpreter.js +6 -9
- package/lib/service/diffLineInterpreter.js.map +1 -1
- package/lib/service/inFileHandler.d.ts +2 -2
- package/lib/service/inFileHandler.js +3 -3
- package/lib/service/inFileHandler.js.map +1 -1
- package/lib/service/inFolderHandler.js +1 -1
- package/lib/service/inFolderHandler.js.map +1 -1
- package/lib/service/inResourceHandler.js +3 -2
- package/lib/service/inResourceHandler.js.map +1 -1
- package/lib/service/reportingFolderHandler.d.ts +2 -2
- package/lib/service/reportingFolderHandler.js +2 -2
- package/lib/service/reportingFolderHandler.js.map +1 -1
- package/lib/service/sharedFolderHandler.d.ts +2 -2
- package/lib/service/sharedFolderHandler.js +2 -2
- package/lib/service/sharedFolderHandler.js.map +1 -1
- package/lib/service/standardHandler.d.ts +4 -2
- package/lib/service/standardHandler.js +8 -3
- package/lib/service/standardHandler.js.map +1 -1
- package/lib/service/typeHandlerFactory.d.ts +6 -4
- package/lib/service/typeHandlerFactory.js +12 -11
- package/lib/service/typeHandlerFactory.js.map +1 -1
- package/lib/types/config.d.ts +1 -0
- package/lib/types/runContext.d.ts +21 -0
- package/lib/types/runContext.js +12 -0
- package/lib/types/runContext.js.map +1 -0
- package/lib/utils/configValidator.d.ts +1 -0
- package/lib/utils/configValidator.js +24 -2
- package/lib/utils/configValidator.js.map +1 -1
- package/lib/utils/fsHelper.d.ts +3 -2
- package/lib/utils/fsHelper.js +9 -10
- package/lib/utils/fsHelper.js.map +1 -1
- package/lib/utils/metadataBoundaryResolver.d.ts +7 -5
- package/lib/utils/metadataBoundaryResolver.js +18 -21
- package/lib/utils/metadataBoundaryResolver.js.map +1 -1
- package/lib/utils/renameResolver.d.ts +2 -3
- package/lib/utils/renameResolver.js +2 -2
- package/lib/utils/renameResolver.js.map +1 -1
- package/lib/utils/repoGitDiff.d.ts +1 -0
- package/lib/utils/repoGitDiff.js +17 -1
- package/lib/utils/repoGitDiff.js.map +1 -1
- package/messages/delta.md +12 -0
- package/oclif.manifest.json +9 -2
- package/package.json +16 -16
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TreeReader } from '../adapter/treeReader.js';
|
|
2
|
+
import type { MetadataRepository } from '../metadata/MetadataRepository.js';
|
|
3
|
+
import type { Config } from './config.js';
|
|
4
|
+
export type RunContext = Readonly<{
|
|
5
|
+
config: Config;
|
|
6
|
+
metadata: MetadataRepository;
|
|
7
|
+
trees: TreeReader;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* The single derive point for a pass that runs under overridden revisions
|
|
11
|
+
* (IncludeProcessor's ADDITION / DELETION re-entry). `trees` is deliberately
|
|
12
|
+
* carried through UNCHANGED: the reader stays keyed by whatever revision each
|
|
13
|
+
* read names, so a pass whose effective `config.to` is a revision no index was
|
|
14
|
+
* built for still reads empty. That degrade is load-bearing on the include
|
|
15
|
+
* DELETION path — rebinding `trees` here silently reclassifies deletions as
|
|
16
|
+
* additions.
|
|
17
|
+
*/
|
|
18
|
+
export declare const withRevisions: (ctx: RunContext, revisions?: {
|
|
19
|
+
from: string;
|
|
20
|
+
to: string;
|
|
21
|
+
}) => RunContext;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* The single derive point for a pass that runs under overridden revisions
|
|
4
|
+
* (IncludeProcessor's ADDITION / DELETION re-entry). `trees` is deliberately
|
|
5
|
+
* carried through UNCHANGED: the reader stays keyed by whatever revision each
|
|
6
|
+
* read names, so a pass whose effective `config.to` is a revision no index was
|
|
7
|
+
* built for still reads empty. That degrade is load-bearing on the include
|
|
8
|
+
* DELETION path — rebinding `trees` here silently reclassifies deletions as
|
|
9
|
+
* additions.
|
|
10
|
+
*/
|
|
11
|
+
export const withRevisions = (ctx, revisions) => revisions ? { ...ctx, config: { ...ctx.config, ...revisions } } : ctx;
|
|
12
|
+
//# sourceMappingURL=runContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runContext.js","sourceRoot":"","sources":["../../src/types/runContext.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAYZ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAe,EACf,SAAwC,EAC5B,EAAE,CACd,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA"}
|
|
@@ -11,6 +11,7 @@ export default class ConfigValidator {
|
|
|
11
11
|
protected _validateGitSha(): Promise<string[]>;
|
|
12
12
|
protected _validateSource(): string[];
|
|
13
13
|
validateConfig(): Promise<readonly Error[]>;
|
|
14
|
+
protected _resolveMergeBase(requestedFrom: string, requestedTo: string): Promise<void>;
|
|
14
15
|
protected _validateChangesManifest(): Promise<string[]>;
|
|
15
16
|
protected _handleDefault(): Promise<readonly Error[]>;
|
|
16
17
|
protected _getApiVersion(): Promise<void>;
|
|
@@ -50,7 +50,7 @@ export default class ConfigValidator {
|
|
|
50
50
|
lazy `_validateGitSha: '${shaParameter}' = '${shaValue}' is not a valid git SHA: ${() => getErrorMessage(error)}`);
|
|
51
51
|
errors.push(this.message.getMessage('error.ParameterIsNotGitSHA', [
|
|
52
52
|
shaParameter,
|
|
53
|
-
shaValue,
|
|
53
|
+
sanitizeForMessage(shaValue),
|
|
54
54
|
]));
|
|
55
55
|
}
|
|
56
56
|
}));
|
|
@@ -60,6 +60,8 @@ export default class ConfigValidator {
|
|
|
60
60
|
return this.sourceRejections.map(rejection => this.message.getMessage(SOURCE_DIR_REJECTION_MESSAGE_KEYS[rejection.reason], [sanitizeForMessage(rejection.value)]));
|
|
61
61
|
}
|
|
62
62
|
async validateConfig() {
|
|
63
|
+
const requestedFrom = this.config.from;
|
|
64
|
+
const requestedTo = this.config.to;
|
|
63
65
|
this._sanitizeConfig();
|
|
64
66
|
// Short-circuits before any git object is read: _validateGitSha below
|
|
65
67
|
// calls parseRev, which opens the repository. A bad --source-dir is
|
|
@@ -84,9 +86,29 @@ export default class ConfigValidator {
|
|
|
84
86
|
if (errors.length > 0) {
|
|
85
87
|
throw new ConfigError(errors.join(', '));
|
|
86
88
|
}
|
|
87
|
-
|
|
89
|
+
// Runs after the SHA validation above so a typo in either ref surfaces
|
|
90
|
+
// as the precise ParameterIsNotGitSHA message instead of the vaguer
|
|
91
|
+
// MergeBaseNotFound.
|
|
92
|
+
await this._resolveMergeBase(requestedFrom, requestedTo);
|
|
88
93
|
return defaultWarnings;
|
|
89
94
|
}
|
|
95
|
+
// --merge-base resolves --from to the merge base of --from and --to (git
|
|
96
|
+
// three-dot semantics) in place. requestedFrom/requestedTo are the
|
|
97
|
+
// user-typed refs, captured before _validateGitSha overwrites
|
|
98
|
+
// this.config.from/to with resolved SHAs — the error the user sees must
|
|
99
|
+
// name what they typed, not a 40-character hash.
|
|
100
|
+
async _resolveMergeBase(requestedFrom, requestedTo) {
|
|
101
|
+
if (!this.config.mergeBase)
|
|
102
|
+
return;
|
|
103
|
+
const base = await this.gitAdapter.getMergeBase(this.config.from, this.config.to);
|
|
104
|
+
if (!base) {
|
|
105
|
+
throw new ConfigError(this.message.getMessage('error.MergeBaseNotFound', [
|
|
106
|
+
sanitizeForMessage(requestedFrom),
|
|
107
|
+
sanitizeForMessage(requestedTo),
|
|
108
|
+
]));
|
|
109
|
+
}
|
|
110
|
+
this.config.from = base;
|
|
111
|
+
}
|
|
90
112
|
// oclif cannot natively validate --changes-manifest (it uses a string flag
|
|
91
113
|
// to allow the bare form). Replicate meaningful checks: if the path already
|
|
92
114
|
// exists it must be a regular file; otherwise ENOENT is fine because
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAO1D,MAAM,QAAQ,GAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAElD,MAAM,iCAAiC,GAGnC;IACF,KAAK,EAAE,wBAAwB;IAC/B,KAAK,EAAE,kCAAkC;IACzC,QAAQ,EAAE,iCAAiC;IAC3C,QAAQ,EAAE,2BAA2B;IACrC,OAAO,EAAE,kCAAkC;CAC5C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,eAAe;IAKb,MAAM;IACR,gBAAgB;IALhB,UAAU,CAAY;IACtB,OAAO,CAAgB;IAE1C,YACqB,MAAc,EAChB,gBAAgB,GAAkC,EAAE;sBADlD,MAAM;gCACR,gBAAgB;QAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAA;QAE3B,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK;gBACV,+GAA+G;gBAC/G,IAAI,CAAA,qBAAqB,YAAY,QAAQ,QAAQ,6BAA6B,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CACjH,CAAA;gBACD,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,4BAA4B,EAAE;oBACpD,YAAY;oBACZ,QAAQ;
|
|
1
|
+
{"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/fsHelper.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Config } from '../types/config.js';
|
|
2
2
|
import type { FileGitRef } from '../types/git.js';
|
|
3
|
+
import type { RunContext } from '../types/runContext.js';
|
|
3
4
|
export declare const resetWrittenFiles: () => void;
|
|
4
5
|
export declare const readPathFromGit: (forRef: FileGitRef, config: Config) => Promise<string>;
|
|
5
|
-
export declare const pathExists: (path: string,
|
|
6
|
-
export declare const readDirs: (paths: string | string[],
|
|
6
|
+
export declare const pathExists: (path: string, ctx: RunContext) => Promise<boolean>;
|
|
7
|
+
export declare const readDirs: (paths: string | string[], ctx: RunContext) => Promise<string[]>;
|
|
7
8
|
export declare const grepContentUnder: (pattern: string, path: string | string[], config: Config) => Promise<string[]>;
|
|
8
9
|
export declare const grepContentMatching: (pattern: string, pathspecs: string | string[], config: Config) => Promise<string[]>;
|
|
9
10
|
export declare const contentIncludes: (pattern: string, path: string, config: Config) => Promise<boolean>;
|
package/lib/utils/fsHelper.js
CHANGED
|
@@ -22,21 +22,20 @@ export const readPathFromGit = async (forRef, config) => {
|
|
|
22
22
|
}
|
|
23
23
|
return utf8Data;
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
25
|
+
// Both read the run-owned tree reader for `config.to` — supplied by the
|
|
26
|
+
// caller (ultimately main.ts) rather than rebuilt here, so there is no
|
|
27
|
+
// scope for this lookup to disagree with whatever scope the index was
|
|
28
|
+
// actually built under. A revision nobody built an index for (or an index
|
|
29
|
+
// build that failed) degrades to false/[] rather than indexing lazily.
|
|
30
|
+
export const pathExists = async (path, ctx) => ctx.trees.pathExists(ctx.config.to, path);
|
|
31
|
+
export const readDirs = async (paths, ctx) => ctx.trees.filesUnder(ctx.config.to, paths);
|
|
33
32
|
export const grepContentUnder = async (pattern, path, config) => {
|
|
34
33
|
const gitAdapter = GitAdapter.getInstance(config);
|
|
35
|
-
return await gitAdapter.grepUnderPaths(pattern, path);
|
|
34
|
+
return await gitAdapter.grepUnderPaths(pattern, path, config.to);
|
|
36
35
|
};
|
|
37
36
|
export const grepContentMatching = async (pattern, pathspecs, config) => {
|
|
38
37
|
const gitAdapter = GitAdapter.getInstance(config);
|
|
39
|
-
return await gitAdapter.grepMatchingPathspecs(pattern, pathspecs);
|
|
38
|
+
return await gitAdapter.grepMatchingPathspecs(pattern, pathspecs, config.to);
|
|
40
39
|
};
|
|
41
40
|
export const contentIncludes = async (pattern, path, config) => {
|
|
42
41
|
const results = await grepContentUnder(pattern, path, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fsHelper.js","sourceRoot":"","sources":["../../src/utils/fsHelper.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,UAAU,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"fsHelper.js","sourceRoot":"","sources":["../../src/utils/fsHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { MetadataRepository } from '../metadata/MetadataRepository.js';
|
|
1
|
+
import type { TreeReader } from '../adapter/treeReader.js';
|
|
2
|
+
import type { MetadataRepository } from '../metadata/MetadataRepository.js';
|
|
3
3
|
import type { Metadata } from '../types/metadata.js';
|
|
4
|
+
import type { RunContext } from '../types/runContext.js';
|
|
4
5
|
import { MetadataElement } from './metadataElement.js';
|
|
5
6
|
export declare class MetadataBoundaryResolver {
|
|
6
|
-
protected readonly
|
|
7
|
-
protected readonly gitAdapter: GitAdapter;
|
|
7
|
+
protected readonly ctx: RunContext;
|
|
8
8
|
protected readonly dirCache: Map<string, string[]>;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(ctx: RunContext);
|
|
10
|
+
protected get metadata(): MetadataRepository;
|
|
11
|
+
protected get trees(): TreeReader;
|
|
10
12
|
createElement(path: string, metadataDef: Metadata, revision: string): Promise<MetadataElement>;
|
|
11
13
|
protected scanAndCreateElement(path: string, metadataDef: Metadata, revision: string): Promise<MetadataElement>;
|
|
12
14
|
protected isNameInPath(parts: string[], componentName: string): boolean;
|
|
@@ -11,16 +11,20 @@ import { METAFILE_SUFFIX } from '../constant/metadataConstants.js';
|
|
|
11
11
|
import { log } from './LoggingDecorator.js';
|
|
12
12
|
import { MetadataElement } from './metadataElement.js';
|
|
13
13
|
export class MetadataBoundaryResolver {
|
|
14
|
-
|
|
15
|
-
gitAdapter;
|
|
14
|
+
ctx;
|
|
16
15
|
dirCache;
|
|
17
|
-
constructor(
|
|
18
|
-
this.
|
|
19
|
-
this.gitAdapter = gitAdapter;
|
|
16
|
+
constructor(ctx) {
|
|
17
|
+
this.ctx = ctx;
|
|
20
18
|
this.dirCache = new Map();
|
|
21
19
|
}
|
|
20
|
+
get metadata() {
|
|
21
|
+
return this.ctx.metadata;
|
|
22
|
+
}
|
|
23
|
+
get trees() {
|
|
24
|
+
return this.ctx.trees;
|
|
25
|
+
}
|
|
22
26
|
async createElement(path, metadataDef, revision) {
|
|
23
|
-
const element = MetadataElement.fromPath(path, metadataDef, this.
|
|
27
|
+
const element = MetadataElement.fromPath(path, metadataDef, this.metadata);
|
|
24
28
|
if (element && element.pathAfterType.length <= 1)
|
|
25
29
|
return element;
|
|
26
30
|
if (element && !metadataDef.suffix)
|
|
@@ -32,7 +36,7 @@ export class MetadataBoundaryResolver {
|
|
|
32
36
|
if (componentName === element.pathAfterType[0]) {
|
|
33
37
|
return element;
|
|
34
38
|
}
|
|
35
|
-
return MetadataElement.fromScan(path, metadataDef, this.
|
|
39
|
+
return MetadataElement.fromScan(path, metadataDef, this.metadata, componentName);
|
|
36
40
|
}
|
|
37
41
|
return element;
|
|
38
42
|
}
|
|
@@ -43,14 +47,7 @@ export class MetadataBoundaryResolver {
|
|
|
43
47
|
const dirIndex = parts.lastIndexOf(metadataDef.directoryName);
|
|
44
48
|
if (dirIndex >= 0 && metadataDef.suffix) {
|
|
45
49
|
const typeDir = parts.slice(0, dirIndex + 1).join(PATH_SEP);
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
allFiles = await this.gitAdapter.getFilesPath(typeDir, revision);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
// Stryker disable next-line ArrayDeclaration -- equivalent: catch fallback to empty list; an injected non-empty default would feed the componentNames Set with bogus entries that the next-loop's componentNames.has check rejects (the test fixtures provide concrete pathAfterType values that don't match the injected sentinel)
|
|
52
|
-
allFiles = [];
|
|
53
|
-
}
|
|
50
|
+
const allFiles = this.trees.filesUnder(revision, typeDir);
|
|
54
51
|
const metaSuffix = `.${metadataDef.suffix}${METAFILE_SUFFIX}`;
|
|
55
52
|
const componentNames = new Set();
|
|
56
53
|
for (const file of allFiles) {
|
|
@@ -63,10 +60,10 @@ export class MetadataBoundaryResolver {
|
|
|
63
60
|
// Stryker disable next-line UpdateOperator -- equivalent: reverse-iterate from the second-to-last segment back to root; flipping i++ to i++ means the loop never enters (i starts at length-2, which is < length but i++ goes up while guard is i >= 0 which is always true) — but in practice the test paths have length 1-2 so the loop body executes 0-1 times, observably the same in either direction
|
|
64
61
|
for (let i = pathAfterType.length - 2; i >= 0; i--) {
|
|
65
62
|
if (componentNames.has(pathAfterType[i])) {
|
|
66
|
-
return MetadataElement.fromScan(path, metadataDef, this.
|
|
63
|
+
return MetadataElement.fromScan(path, metadataDef, this.metadata, pathAfterType[i]);
|
|
67
64
|
}
|
|
68
65
|
}
|
|
69
|
-
return MetadataElement.fromScan(path, metadataDef, this.
|
|
66
|
+
return MetadataElement.fromScan(path, metadataDef, this.metadata, parse(path).name);
|
|
70
67
|
}
|
|
71
68
|
let currentDir = dirname(path);
|
|
72
69
|
// Stryker disable next-line ConditionalExpression,LogicalOperator,BlockStatement,StringLiteral -- equivalent: directory walk termination; this loop walks up from the file's dirname to the repo root, emptying the body skips the walk and falls through to the post-loop fallback (which produces a generic MetadataElement); the test surface only exercises the walk path for nested directory metadata, and the fallback path is also tested
|
|
@@ -74,23 +71,23 @@ export class MetadataBoundaryResolver {
|
|
|
74
71
|
const cacheKey = `${revision}:${currentDir}`;
|
|
75
72
|
let siblings = this.dirCache.get(cacheKey);
|
|
76
73
|
if (siblings === undefined) {
|
|
77
|
-
siblings =
|
|
74
|
+
siblings = this.trees.children(revision, currentDir);
|
|
78
75
|
this.dirCache.set(cacheKey, siblings);
|
|
79
76
|
}
|
|
80
77
|
const componentName = this.findComponentName(siblings, parts);
|
|
81
78
|
if (componentName) {
|
|
82
|
-
return MetadataElement.fromScan(path, metadataDef, this.
|
|
79
|
+
return MetadataElement.fromScan(path, metadataDef, this.metadata, componentName);
|
|
83
80
|
}
|
|
84
81
|
currentDir = dirname(currentDir);
|
|
85
82
|
}
|
|
86
|
-
return MetadataElement.fromScan(path, metadataDef, this.
|
|
83
|
+
return MetadataElement.fromScan(path, metadataDef, this.metadata, parse(path).name);
|
|
87
84
|
}
|
|
88
85
|
isNameInPath(parts, componentName) {
|
|
89
86
|
return parts.some(part => part === componentName || part.startsWith(`${componentName}.`));
|
|
90
87
|
}
|
|
91
88
|
findComponentName(siblings, parts) {
|
|
92
89
|
for (const sibling of siblings) {
|
|
93
|
-
const siblingMetadata = this.
|
|
90
|
+
const siblingMetadata = this.metadata.get(sibling);
|
|
94
91
|
if (siblingMetadata?.suffix &&
|
|
95
92
|
sibling.includes(`.${siblingMetadata.suffix}`)) {
|
|
96
93
|
const name = this.extractName(sibling, siblingMetadata.suffix);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataBoundaryResolver.js","sourceRoot":"","sources":["../../src/utils/metadataBoundaryResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"metadataBoundaryResolver.js","sourceRoot":"","sources":["../../src/utils/metadataBoundaryResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAIlE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,OAAO,wBAAwB;IAGJ,GAAG;IAFf,QAAQ,CAAuB;IAElD,YAA+B,GAAe;mBAAf,GAAG;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAC3B,CAAC;IAED,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC1B,CAAC;IAED,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACvB,CAAC;IAGY,AAAN,KAAK,CAAC,aAAa,CACxB,IAAY,EACZ,WAAqB,EACrB,QAAgB;QAEhB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1E,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,OAAO,CAAA;QAChE,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,OAAO,CAAA;QAElD,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAO,CAAC,CAAA;gBACrE,IAAI,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,OAAO,OAAO,CAAA;gBAChB,CAAC;gBACD,OAAO,eAAe,CAAC,QAAQ,CAC7B,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,aAAa,CACd,CAAA;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAES,KAAK,CAAC,oBAAoB,CAClC,IAAY,EACZ,WAAqB,EACrB,QAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QAE7D,IAAI,QAAQ,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACzD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe,EAAE,CAAA;YAE7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;YACxC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAG,CAAA;oBAC5C,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;YAC/C,2YAA2Y;YAC3Y,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,OAAO,eAAe,CAAC,QAAQ,CAC7B,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,aAAa,CAAC,CAAC,CAAC,CACjB,CAAA;gBACH,CAAC;YACH,CAAC;YAED,OAAO,eAAe,CAAC,QAAQ,CAC7B,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACjB,CAAA;QACH,CAAC;QAED,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,kbAAkb;QAClb,OAAO,UAAU,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAA;YAE5C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;gBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACvC,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,eAAe,CAAC,QAAQ,CAC7B,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,aAAa,CACd,CAAA;YACH,CAAC;YAED,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,eAAe,CAAC,QAAQ,CAC7B,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACjB,CAAA;IACH,CAAC;IAES,YAAY,CAAC,KAAe,EAAE,aAAqB;QAC3D,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,CACvE,CAAA;IACH,CAAC;IAES,iBAAiB,CACzB,QAAkB,EAClB,KAAe;QAEf,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAClD,IACE,eAAe,EAAE,MAAM;gBACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC,EAC9C,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;gBAC9D,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAES,WAAW,CAAC,QAAgB,EAAE,MAAc;QACpD,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;IACxE,CAAC;CACF;AAnIc;IADZ,GAAG;6DA4BH"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Config } from '../types/config.js';
|
|
1
|
+
import type { RunContext } from '../types/runContext.js';
|
|
3
2
|
import type { RenameTriple } from './changeSet.js';
|
|
4
3
|
import type { RenamePathPair } from './repoGitDiff.js';
|
|
5
4
|
/**
|
|
@@ -13,7 +12,7 @@ import type { RenamePathPair } from './repoGitDiff.js';
|
|
|
13
12
|
*/
|
|
14
13
|
export default class RenameResolver {
|
|
15
14
|
private readonly factory;
|
|
16
|
-
constructor(
|
|
15
|
+
constructor(ctx: RunContext);
|
|
17
16
|
resolve(pairs: readonly RenamePathPair[]): Promise<readonly RenameTriple[]>;
|
|
18
17
|
private _resolve;
|
|
19
18
|
}
|
|
@@ -22,8 +22,8 @@ import { Logger, lazy } from './LoggingService.js';
|
|
|
22
22
|
*/
|
|
23
23
|
export default class RenameResolver {
|
|
24
24
|
factory;
|
|
25
|
-
constructor(
|
|
26
|
-
this.factory = new TypeHandlerFactory(
|
|
25
|
+
constructor(ctx) {
|
|
26
|
+
this.factory = new TypeHandlerFactory(ctx);
|
|
27
27
|
}
|
|
28
28
|
async resolve(pairs) {
|
|
29
29
|
const triples = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renameResolver.js","sourceRoot":"","sources":["../../src/utils/renameResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAEZ,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"renameResolver.js","sourceRoot":"","sources":["../../src/utils/renameResolver.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAEZ,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAChB,OAAO,CAAoB;IAE5C,YAAY,GAAe;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,OAAO,CAClB,KAAgC;QAEhC,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC1C,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,IAAoB;QAEpB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CACnD,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CACpC,CAAA;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CACjD,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAClC,CAAA;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAA;YAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAA;YAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YACtC,gOAAgO;YAChO,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAA;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI;YACT,0IAA0I;YAC1I,IAAI,CAAA,qCAAqC,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF;AAnCc;IADZ,GAAG;6CAUH"}
|
package/lib/utils/repoGitDiff.js
CHANGED
|
@@ -12,6 +12,7 @@ export default class RepoGitDiff {
|
|
|
12
12
|
// getLines() can be called more than once on the same instance (see the
|
|
13
13
|
// renamePairs reset below), so the verdict is reset explicitly at the
|
|
14
14
|
// start of every call rather than relying on the initialiser alone.
|
|
15
|
+
// Stryker disable next-line ObjectLiteral -- equivalent: emptying this initialiser is unobservable. getLines() reassigns both fields to 0 as its first synchronous statement before any await, and the only other consumer, GitAdapter.getUnmatchedSourceScopes, branches solely on `changesSeen > 0` — false for both 0 and undefined
|
|
15
16
|
diffScopeVerdict = {
|
|
16
17
|
changesSeen: 0,
|
|
17
18
|
linesYielded: 0,
|
|
@@ -38,7 +39,11 @@ export default class RepoGitDiff {
|
|
|
38
39
|
const ignoreHelper = await buildIgnoreHelper(this.config);
|
|
39
40
|
const additionNames = new Set();
|
|
40
41
|
const deferredDeletions = [];
|
|
41
|
-
for await (const rawLine of this.gitAdapter.streamDiffLines(
|
|
42
|
+
for await (const rawLine of this.gitAdapter.streamDiffLines({
|
|
43
|
+
spec: this.diffSpec(),
|
|
44
|
+
verdict: this.diffScopeVerdict,
|
|
45
|
+
scopes: this.config.source,
|
|
46
|
+
})) {
|
|
42
47
|
for (const expanded of this._expandRename(rawLine)) {
|
|
43
48
|
// Stryker disable next-line ConditionalExpression -- equivalent: _expandRename never yields empty/falsy strings — it yields the original line or the synthetic D/A pair, both non-empty; the false-flip falls through to metadata.has which would return false on empty paths, observably the same continue
|
|
44
49
|
if (!expanded)
|
|
@@ -101,5 +106,16 @@ export default class RepoGitDiff {
|
|
|
101
106
|
_extractComparisonName(line) {
|
|
102
107
|
return this.metadata.getFullyQualifiedName(line).toLocaleLowerCase();
|
|
103
108
|
}
|
|
109
|
+
// Built fresh on every getLines() call (not cached at construction) so a
|
|
110
|
+
// later rewrite of config.from (ConfigValidator resolves SHAs after
|
|
111
|
+
// RepoGitDiff may already exist) is still visible when the diff runs.
|
|
112
|
+
diffSpec() {
|
|
113
|
+
return {
|
|
114
|
+
from: this.config.from,
|
|
115
|
+
to: this.config.to,
|
|
116
|
+
detectRenames: Boolean(this.config.changesManifest),
|
|
117
|
+
ignoreWhitespace: this.config.ignoreWhitespace,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
104
120
|
}
|
|
105
121
|
//# sourceMappingURL=repoGitDiff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repoGitDiff.js","sourceRoot":"","sources":["../../src/utils/repoGitDiff.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,
|
|
1
|
+
{"version":3,"file":"repoGitDiff.js","sourceRoot":"","sources":["../../src/utils/repoGitDiff.ts"],"names":[],"mappings":"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"}
|
package/messages/delta.md
CHANGED
|
@@ -16,6 +16,10 @@ Use two git commit reference to generate the package corresponding to what has c
|
|
|
16
16
|
|
|
17
17
|
<%= config.bin %> <%= command.id %> --from "origin/development" --generate-delta --output-dir incremental
|
|
18
18
|
|
|
19
|
+
- Build incremental manifest from where the current branch diverged from main
|
|
20
|
+
|
|
21
|
+
<%= config.bin %> <%= command.id %> --from "main" --merge-base --output-dir incremental
|
|
22
|
+
|
|
19
23
|
# flags.to.summary
|
|
20
24
|
|
|
21
25
|
commit sha to where the diff is done
|
|
@@ -24,6 +28,10 @@ commit sha to where the diff is done
|
|
|
24
28
|
|
|
25
29
|
commit sha from where the diff is done
|
|
26
30
|
|
|
31
|
+
# flags.merge-base.summary
|
|
32
|
+
|
|
33
|
+
diff from the merge base of --from and --to instead of --from itself (git three-dot semantics)
|
|
34
|
+
|
|
27
35
|
# flags.repo.summary
|
|
28
36
|
|
|
29
37
|
git repository location
|
|
@@ -86,6 +94,10 @@ path to a JSON file grouping changed components by kind (add, modify, delete, re
|
|
|
86
94
|
|
|
87
95
|
--%s is not a valid sha pointer: '%s' (If in CI/CD context, check the fetch depth is properly set)
|
|
88
96
|
|
|
97
|
+
# error.MergeBaseNotFound
|
|
98
|
+
|
|
99
|
+
no merge base found between --from '%s' and --to '%s' (If in CI/CD context, check the fetch depth is properly set)
|
|
100
|
+
|
|
89
101
|
# error.PathIsNotGit
|
|
90
102
|
|
|
91
103
|
'%s' is not a git repository
|
package/oclif.manifest.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"args": {},
|
|
6
6
|
"description": "Use two git commit reference to generate the package corresponding to what has changed in between",
|
|
7
7
|
"examples": [
|
|
8
|
-
"- Build incremental manifest from the previous commit\n\n<%= config.bin %> <%= command.id %> --from \"origin/development\" --output-dir incremental\n\n- Build incremental manifest and source from the development branch\n\n<%= config.bin %> <%= command.id %> --from \"origin/development\" --generate-delta --output-dir incremental"
|
|
8
|
+
"- Build incremental manifest from the previous commit\n\n<%= config.bin %> <%= command.id %> --from \"origin/development\" --output-dir incremental\n\n- Build incremental manifest and source from the development branch\n\n<%= config.bin %> <%= command.id %> --from \"origin/development\" --generate-delta --output-dir incremental\n\n- Build incremental manifest from where the current branch diverged from main\n\n<%= config.bin %> <%= command.id %> --from \"main\" --merge-base --output-dir incremental"
|
|
9
9
|
],
|
|
10
10
|
"flags": {
|
|
11
11
|
"json": {
|
|
@@ -41,6 +41,13 @@
|
|
|
41
41
|
"multiple": false,
|
|
42
42
|
"type": "option"
|
|
43
43
|
},
|
|
44
|
+
"merge-base": {
|
|
45
|
+
"char": "b",
|
|
46
|
+
"name": "merge-base",
|
|
47
|
+
"summary": "diff from the merge base of --from and --to instead of --from itself (git three-dot semantics)",
|
|
48
|
+
"allowNo": false,
|
|
49
|
+
"type": "boolean"
|
|
50
|
+
},
|
|
44
51
|
"generate-delta": {
|
|
45
52
|
"char": "d",
|
|
46
53
|
"name": "generate-delta",
|
|
@@ -199,5 +206,5 @@
|
|
|
199
206
|
]
|
|
200
207
|
}
|
|
201
208
|
},
|
|
202
|
-
"version": "7.
|
|
209
|
+
"version": "7.3.0"
|
|
203
210
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sfdx-git-delta",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0",
|
|
4
4
|
"description": "Generate the sfdx content in source format and destructive change from two git commits",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"salesforce",
|
|
@@ -48,33 +48,33 @@
|
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@oclif/core": "4.13.
|
|
52
|
-
"@salesforce/core": "9.1.
|
|
51
|
+
"@oclif/core": "4.13.5",
|
|
52
|
+
"@salesforce/core": "9.1.2",
|
|
53
53
|
"@salesforce/sf-plugins-core": "13.0.0",
|
|
54
|
-
"@salesforce/source-deploy-retrieve": "13.
|
|
55
|
-
"@scolladon/tsgit": "3.
|
|
54
|
+
"@salesforce/source-deploy-retrieve": "13.1.1",
|
|
55
|
+
"@scolladon/tsgit": "3.4.0",
|
|
56
56
|
"ignore": "7.0.6",
|
|
57
|
-
"txml": "6.0.
|
|
57
|
+
"txml": "6.0.1",
|
|
58
58
|
"zod": "4.4.3"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@biomejs/biome": "2.5.
|
|
62
|
-
"@commitlint/cli": "21.2.
|
|
63
|
-
"@commitlint/config-conventional": "21.2.
|
|
61
|
+
"@biomejs/biome": "2.5.8",
|
|
62
|
+
"@commitlint/cli": "21.2.2",
|
|
63
|
+
"@commitlint/config-conventional": "21.2.2",
|
|
64
64
|
"@ls-lint/ls-lint": "2.3.1",
|
|
65
|
-
"@oclif/plugin-help": "6.2.
|
|
66
|
-
"@salesforce/cli-plugins-testkit": "5.3.
|
|
65
|
+
"@oclif/plugin-help": "6.2.58",
|
|
66
|
+
"@salesforce/cli-plugins-testkit": "5.3.66",
|
|
67
67
|
"@salesforce/dev-config": "4.3.3",
|
|
68
|
-
"@stryker-mutator/core": "
|
|
69
|
-
"@stryker-mutator/vitest-runner": "
|
|
70
|
-
"@types/node": "26.
|
|
68
|
+
"@stryker-mutator/core": "10.0.0",
|
|
69
|
+
"@stryker-mutator/vitest-runner": "10.0.0",
|
|
70
|
+
"@types/node": "26.2.0",
|
|
71
71
|
"@vitest/coverage-v8": "4.1.10",
|
|
72
72
|
"husky": "9.1.7",
|
|
73
|
-
"knip": "6.32.
|
|
73
|
+
"knip": "6.32.2",
|
|
74
74
|
"lint-staged": "17.3.0",
|
|
75
75
|
"ls-engines": "0.10.1",
|
|
76
76
|
"oclif": "4.23.30",
|
|
77
|
-
"pkg-pr-new": "0.0.
|
|
77
|
+
"pkg-pr-new": "0.0.88",
|
|
78
78
|
"shx": "0.4.0",
|
|
79
79
|
"ts-node": "10.9.2",
|
|
80
80
|
"typescript": "7.0.2",
|