sfdx-git-delta 7.2.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +18 -5
  2. package/lib/adapter/GitAdapter.d.ts +22 -13
  3. package/lib/adapter/GitAdapter.js +170 -105
  4. package/lib/adapter/GitAdapter.js.map +1 -1
  5. package/lib/adapter/ioExecutor.d.ts +5 -6
  6. package/lib/adapter/ioExecutor.js +22 -22
  7. package/lib/adapter/ioExecutor.js.map +1 -1
  8. package/lib/adapter/treeIndex.d.ts +7 -4
  9. package/lib/adapter/treeIndex.js +34 -0
  10. package/lib/adapter/treeIndex.js.map +1 -1
  11. package/lib/adapter/treeReader.d.ts +8 -0
  12. package/lib/adapter/treeReader.js +22 -0
  13. package/lib/adapter/treeReader.js.map +1 -0
  14. package/lib/adapter/tsgitErrorMap.d.ts +5 -3
  15. package/lib/adapter/tsgitErrorMap.js +48 -16
  16. package/lib/adapter/tsgitErrorMap.js.map +1 -1
  17. package/lib/commands/sgd/source/delta.d.ts +1 -0
  18. package/lib/commands/sgd/source/delta.js +5 -0
  19. package/lib/commands/sgd/source/delta.js.map +1 -1
  20. package/lib/main.js +27 -9
  21. package/lib/main.js.map +1 -1
  22. package/lib/post-processor/baseProcessor.d.ts +4 -4
  23. package/lib/post-processor/baseProcessor.js +6 -5
  24. package/lib/post-processor/baseProcessor.js.map +1 -1
  25. package/lib/post-processor/flowTranslationProcessor.d.ts +0 -3
  26. package/lib/post-processor/flowTranslationProcessor.js +1 -5
  27. package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
  28. package/lib/post-processor/includeProcessor.d.ts +2 -3
  29. package/lib/post-processor/includeProcessor.js +4 -4
  30. package/lib/post-processor/includeProcessor.js.map +1 -1
  31. package/lib/post-processor/postProcessorManager.d.ts +2 -3
  32. package/lib/post-processor/postProcessorManager.js +4 -4
  33. package/lib/post-processor/postProcessorManager.js.map +1 -1
  34. package/lib/service/containedDecomposedHandler.d.ts +2 -2
  35. package/lib/service/containedDecomposedHandler.js +3 -3
  36. package/lib/service/containedDecomposedHandler.js.map +1 -1
  37. package/lib/service/customObjectHandler.js +1 -1
  38. package/lib/service/customObjectHandler.js.map +1 -1
  39. package/lib/service/diffLineInterpreter.d.ts +3 -5
  40. package/lib/service/diffLineInterpreter.js +6 -9
  41. package/lib/service/diffLineInterpreter.js.map +1 -1
  42. package/lib/service/inFileHandler.d.ts +2 -2
  43. package/lib/service/inFileHandler.js +3 -3
  44. package/lib/service/inFileHandler.js.map +1 -1
  45. package/lib/service/inFolderHandler.js +1 -1
  46. package/lib/service/inFolderHandler.js.map +1 -1
  47. package/lib/service/inResourceHandler.js +3 -2
  48. package/lib/service/inResourceHandler.js.map +1 -1
  49. package/lib/service/reportingFolderHandler.d.ts +2 -2
  50. package/lib/service/reportingFolderHandler.js +2 -2
  51. package/lib/service/reportingFolderHandler.js.map +1 -1
  52. package/lib/service/sharedFolderHandler.d.ts +2 -2
  53. package/lib/service/sharedFolderHandler.js +2 -2
  54. package/lib/service/sharedFolderHandler.js.map +1 -1
  55. package/lib/service/standardHandler.d.ts +4 -2
  56. package/lib/service/standardHandler.js +8 -3
  57. package/lib/service/standardHandler.js.map +1 -1
  58. package/lib/service/typeHandlerFactory.d.ts +6 -4
  59. package/lib/service/typeHandlerFactory.js +12 -11
  60. package/lib/service/typeHandlerFactory.js.map +1 -1
  61. package/lib/types/config.d.ts +1 -0
  62. package/lib/types/runContext.d.ts +21 -0
  63. package/lib/types/runContext.js +12 -0
  64. package/lib/types/runContext.js.map +1 -0
  65. package/lib/utils/configValidator.d.ts +4 -0
  66. package/lib/utils/configValidator.js +49 -8
  67. package/lib/utils/configValidator.js.map +1 -1
  68. package/lib/utils/errorUtils.d.ts +3 -0
  69. package/lib/utils/errorUtils.js +6 -0
  70. package/lib/utils/errorUtils.js.map +1 -1
  71. package/lib/utils/fsHelper.d.ts +3 -2
  72. package/lib/utils/fsHelper.js +9 -10
  73. package/lib/utils/fsHelper.js.map +1 -1
  74. package/lib/utils/metadataBoundaryResolver.d.ts +7 -5
  75. package/lib/utils/metadataBoundaryResolver.js +18 -21
  76. package/lib/utils/metadataBoundaryResolver.js.map +1 -1
  77. package/lib/utils/renameResolver.d.ts +2 -3
  78. package/lib/utils/renameResolver.js +2 -2
  79. package/lib/utils/renameResolver.js.map +1 -1
  80. package/lib/utils/repoGitDiff.d.ts +1 -0
  81. package/lib/utils/repoGitDiff.js +17 -1
  82. package/lib/utils/repoGitDiff.js.map +1 -1
  83. package/messages/delta.md +12 -0
  84. package/oclif.manifest.json +9 -2
  85. package/package.json +42 -27
@@ -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
- metadataRepo;
15
- gitAdapter;
14
+ ctx;
16
15
  dirCache;
17
- constructor(metadataRepo, gitAdapter) {
18
- this.metadataRepo = metadataRepo;
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.metadataRepo);
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.metadataRepo, componentName);
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
- let allFiles;
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.metadataRepo, pathAfterType[i]);
63
+ return MetadataElement.fromScan(path, metadataDef, this.metadata, pathAfterType[i]);
67
64
  }
68
65
  }
69
- return MetadataElement.fromScan(path, metadataDef, this.metadataRepo, parse(path).name);
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 = await this.gitAdapter.listDirAtRevision(currentDir, revision);
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.metadataRepo, componentName);
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.metadataRepo, parse(path).name);
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.metadataRepo.get(sibling);
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":"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"}
1
+ {"version":3,"file":"metadataBoundaryResolver.js","sourceRoot":"","sources":["../../src/utils/metadataBoundaryResolver.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { MetadataRepository } from '../metadata/MetadataRepository.js';
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(config: Config, metadata: MetadataRepository);
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(config, metadata) {
26
- this.factory = new TypeHandlerFactory(config, metadata);
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;AAEhE,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,MAAc,EAAE,QAA4B;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzD,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"}
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"}
@@ -27,4 +27,5 @@ export default class RepoGitDiff {
27
27
  getUnmatchedSourceScopes(): readonly string[];
28
28
  protected _expandRename(line: string): Iterable<string>;
29
29
  protected _extractComparisonName(line: string): string;
30
+ private diffSpec;
30
31
  }
@@ -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(this.diffScopeVerdict, this.config.source)) {
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":"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"}
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
@@ -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.2.0"
209
+ "version": "7.4.0"
203
210
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfdx-git-delta",
3
- "version": "7.2.0",
3
+ "version": "7.4.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,38 +48,38 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@oclif/core": "4.13.3",
52
- "@salesforce/core": "9.1.0",
53
- "@salesforce/sf-plugins-core": "13.0.0",
54
- "@salesforce/source-deploy-retrieve": "13.0.1",
55
- "@scolladon/tsgit": "3.2.1",
51
+ "@oclif/core": "4.14.0",
52
+ "@salesforce/core": "9.1.5",
53
+ "@salesforce/sf-plugins-core": "13.0.3",
54
+ "@salesforce/source-deploy-retrieve": "13.2.0",
55
+ "@scolladon/tsgit": "3.6.0",
56
56
  "ignore": "7.0.6",
57
- "txml": "6.0.0",
57
+ "txml": "6.0.1",
58
58
  "zod": "4.4.3"
59
59
  },
60
60
  "devDependencies": {
61
- "@biomejs/biome": "2.5.7",
62
- "@commitlint/cli": "21.2.1",
63
- "@commitlint/config-conventional": "21.2.0",
61
+ "@biomejs/biome": "2.5.10",
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.56",
66
- "@salesforce/cli-plugins-testkit": "5.3.65",
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": "9.6.1",
69
- "@stryker-mutator/vitest-runner": "9.6.1",
70
- "@types/node": "26.1.2",
71
- "@vitest/coverage-v8": "4.1.10",
68
+ "@stryker-mutator/core": "10.0.0",
69
+ "@stryker-mutator/vitest-runner": "10.0.0",
70
+ "@types/node": "26.2.0",
71
+ "@vitest/coverage-v8": "4.1.11",
72
72
  "husky": "9.1.7",
73
- "knip": "6.32.0",
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.87",
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",
81
81
  "validate-branch-name": "1.3.2",
82
- "vitest": "4.1.10",
82
+ "vitest": "4.1.11",
83
83
  "wireit": "0.14.13"
84
84
  },
85
85
  "overrides": {
@@ -265,7 +265,9 @@
265
265
  "__tests__/functional/**/*.test.ts",
266
266
  "__tests__/functional/byteEquality/fixtures/**",
267
267
  "**/tsconfig.json",
268
- "vitest.functional.config.ts"
268
+ "vitest.functional.config.ts",
269
+ "package.json",
270
+ "package-lock.json"
269
271
  ],
270
272
  "output": [],
271
273
  "dependencies": [
@@ -278,7 +280,10 @@
278
280
  "src/**/*.ts",
279
281
  "__tests__/integration/**/*.test.ts",
280
282
  "**/tsconfig.json",
281
- "vitest.integration.config.ts"
283
+ "vitest.integration.config.ts",
284
+ "package.json",
285
+ "package-lock.json",
286
+ "__tests__/__utils__/**/*.ts"
282
287
  ],
283
288
  "output": [],
284
289
  "dependencies": [
@@ -298,7 +303,9 @@
298
303
  "src/**/*.ts",
299
304
  "__tests__/perf/**",
300
305
  "**/tsconfig.json",
301
- "vitest.config.perf.ts"
306
+ "vitest.config.perf.ts",
307
+ "package.json",
308
+ "package-lock.json"
302
309
  ],
303
310
  "output": [
304
311
  "perf-raw.json",
@@ -315,7 +322,9 @@
315
322
  "src/**/*.ts",
316
323
  "__tests__/**/*.ts",
317
324
  "messages/**",
318
- "**/tsconfig.json"
325
+ "**/tsconfig.json",
326
+ "package.json",
327
+ "package-lock.json"
319
328
  ],
320
329
  "output": [
321
330
  ".stryker-tmp/**"
@@ -325,12 +334,14 @@
325
334
  ]
326
335
  },
327
336
  "test:mutation:incremental": {
328
- "command": "FILES=$(git --no-pager diff --name-only --diff-filter=AM --merge-base origin/main src | grep '.ts$' | paste -sd ',' -) && [ -n \"$FILES\" ] && stryker run --mutate \"$FILES\" || echo 'No source files changed — skipping mutation testing'",
337
+ "command": "FILES=$(git --no-pager diff --name-only --diff-filter=AM --merge-base origin/main src | grep '.ts$' | paste -sd ',' -); if [ -n \"$FILES\" ]; then stryker run --mutate \"$FILES\"; else echo 'No source files changed — skipping mutation testing'; fi",
329
338
  "files": [
330
339
  "src/**/*.ts",
331
340
  "__tests__/**/*.ts",
332
341
  "messages/**",
333
- "**/tsconfig.json"
342
+ "**/tsconfig.json",
343
+ "package.json",
344
+ "package-lock.json"
334
345
  ],
335
346
  "output": [
336
347
  ".stryker-tmp/**"
@@ -346,7 +357,9 @@
346
357
  "__tests__/nut/**/*.nut.ts",
347
358
  "messages/**",
348
359
  "**/tsconfig.json",
349
- "vitest.nut.config.ts"
360
+ "vitest.nut.config.ts",
361
+ "package.json",
362
+ "package-lock.json"
350
363
  ],
351
364
  "output": [],
352
365
  "dependencies": [
@@ -361,7 +374,9 @@
361
374
  "__tests__/**/*.ts",
362
375
  "messages/**",
363
376
  "**/tsconfig.json",
364
- "vitest.config.ts"
377
+ "vitest.config.ts",
378
+ "package.json",
379
+ "package-lock.json"
365
380
  ],
366
381
  "output": [
367
382
  "reports/coverage/**"