sfdx-git-delta 6.41.2 → 6.43.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 (140) hide show
  1. package/README.md +35 -2
  2. package/lib/adapter/GitAdapter.d.ts +51 -2
  3. package/lib/adapter/GitAdapter.js +367 -41
  4. package/lib/adapter/GitAdapter.js.map +1 -1
  5. package/lib/adapter/gitBatchCatFile.d.ts +26 -4
  6. package/lib/adapter/gitBatchCatFile.js +128 -44
  7. package/lib/adapter/gitBatchCatFile.js.map +1 -1
  8. package/lib/adapter/gitBlobReader.d.ts +58 -0
  9. package/lib/adapter/gitBlobReader.js +27 -0
  10. package/lib/adapter/gitBlobReader.js.map +1 -0
  11. package/lib/adapter/ioExecutor.d.ts +18 -6
  12. package/lib/adapter/ioExecutor.js +97 -12
  13. package/lib/adapter/ioExecutor.js.map +1 -1
  14. package/lib/commands/sgd/source/delta.d.ts +2 -0
  15. package/lib/commands/sgd/source/delta.js +31 -1
  16. package/lib/commands/sgd/source/delta.js.map +1 -1
  17. package/lib/constant/cliConstants.d.ts +2 -0
  18. package/lib/constant/cliConstants.js +4 -0
  19. package/lib/constant/cliConstants.js.map +1 -1
  20. package/lib/constant/gitConstants.d.ts +1 -0
  21. package/lib/constant/gitConstants.js +4 -0
  22. package/lib/constant/gitConstants.js.map +1 -1
  23. package/lib/main.js +35 -7
  24. package/lib/main.js.map +1 -1
  25. package/lib/metadata/MetadataRepositoryImpl.d.ts +1 -0
  26. package/lib/metadata/MetadataRepositoryImpl.js +14 -2
  27. package/lib/metadata/MetadataRepositoryImpl.js.map +1 -1
  28. package/lib/post-processor/changesManifestProcessor.d.ts +15 -0
  29. package/lib/post-processor/changesManifestProcessor.js +50 -0
  30. package/lib/post-processor/changesManifestProcessor.js.map +1 -0
  31. package/lib/post-processor/flowTranslationProcessor.d.ts +31 -14
  32. package/lib/post-processor/flowTranslationProcessor.js +146 -51
  33. package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
  34. package/lib/post-processor/packageGenerator.d.ts +1 -2
  35. package/lib/post-processor/packageGenerator.js +23 -34
  36. package/lib/post-processor/packageGenerator.js.map +1 -1
  37. package/lib/post-processor/postProcessorManager.js +9 -6
  38. package/lib/post-processor/postProcessorManager.js.map +1 -1
  39. package/lib/service/botHandler.d.ts +2 -1
  40. package/lib/service/botHandler.js +4 -3
  41. package/lib/service/botHandler.js.map +1 -1
  42. package/lib/service/containedDecomposedHandler.d.ts +3 -2
  43. package/lib/service/containedDecomposedHandler.js +6 -6
  44. package/lib/service/containedDecomposedHandler.js.map +1 -1
  45. package/lib/service/customFieldHandler.d.ts +2 -1
  46. package/lib/service/customFieldHandler.js +2 -2
  47. package/lib/service/customFieldHandler.js.map +1 -1
  48. package/lib/service/customLabelHandler.d.ts +2 -1
  49. package/lib/service/customLabelHandler.js +3 -3
  50. package/lib/service/customLabelHandler.js.map +1 -1
  51. package/lib/service/customObjectHandler.d.ts +2 -1
  52. package/lib/service/customObjectHandler.js +2 -2
  53. package/lib/service/customObjectHandler.js.map +1 -1
  54. package/lib/service/decomposedHandler.d.ts +2 -1
  55. package/lib/service/decomposedHandler.js +2 -2
  56. package/lib/service/decomposedHandler.js.map +1 -1
  57. package/lib/service/diffLineInterpreter.d.ts +1 -1
  58. package/lib/service/diffLineInterpreter.js +16 -6
  59. package/lib/service/diffLineInterpreter.js.map +1 -1
  60. package/lib/service/flowHandler.d.ts +2 -1
  61. package/lib/service/flowHandler.js +2 -2
  62. package/lib/service/flowHandler.js.map +1 -1
  63. package/lib/service/inFileHandler.d.ts +8 -7
  64. package/lib/service/inFileHandler.js +37 -30
  65. package/lib/service/inFileHandler.js.map +1 -1
  66. package/lib/service/inFolderHandler.d.ts +2 -1
  67. package/lib/service/inFolderHandler.js +2 -2
  68. package/lib/service/inFolderHandler.js.map +1 -1
  69. package/lib/service/inResourceHandler.d.ts +3 -2
  70. package/lib/service/inResourceHandler.js +5 -5
  71. package/lib/service/inResourceHandler.js.map +1 -1
  72. package/lib/service/objectTranslationHandler.d.ts +3 -3
  73. package/lib/service/objectTranslationHandler.js +15 -8
  74. package/lib/service/objectTranslationHandler.js.map +1 -1
  75. package/lib/service/reportingFolderHandler.d.ts +8 -4
  76. package/lib/service/reportingFolderHandler.js +5 -6
  77. package/lib/service/reportingFolderHandler.js.map +1 -1
  78. package/lib/service/sharedFolderHandler.d.ts +8 -4
  79. package/lib/service/sharedFolderHandler.js +5 -6
  80. package/lib/service/sharedFolderHandler.js.map +1 -1
  81. package/lib/service/standardHandler.d.ts +14 -7
  82. package/lib/service/standardHandler.js +47 -27
  83. package/lib/service/standardHandler.js.map +1 -1
  84. package/lib/service/typeHandlerFactory.d.ts +2 -0
  85. package/lib/service/typeHandlerFactory.js +15 -0
  86. package/lib/service/typeHandlerFactory.js.map +1 -1
  87. package/lib/types/config.d.ts +1 -0
  88. package/lib/types/handlerResult.d.ts +17 -8
  89. package/lib/types/handlerResult.js +9 -11
  90. package/lib/types/handlerResult.js.map +1 -1
  91. package/lib/types/work.d.ts +2 -5
  92. package/lib/utils/LoggingDecorator.js +22 -11
  93. package/lib/utils/LoggingDecorator.js.map +1 -1
  94. package/lib/utils/changeSet.d.ts +53 -0
  95. package/lib/utils/changeSet.js +257 -0
  96. package/lib/utils/changeSet.js.map +1 -0
  97. package/lib/utils/configValidator.d.ts +1 -0
  98. package/lib/utils/configValidator.js +39 -1
  99. package/lib/utils/configValidator.js.map +1 -1
  100. package/lib/utils/gitLfsHelper.js +9 -1
  101. package/lib/utils/gitLfsHelper.js.map +1 -1
  102. package/lib/utils/metadataDiff/index.d.ts +28 -0
  103. package/lib/utils/metadataDiff/index.js +57 -0
  104. package/lib/utils/metadataDiff/index.js.map +1 -0
  105. package/lib/utils/metadataDiff/streamingDiff.d.ts +68 -0
  106. package/lib/utils/metadataDiff/streamingDiff.js +300 -0
  107. package/lib/utils/metadataDiff/streamingDiff.js.map +1 -0
  108. package/lib/utils/metadataDiff/xmlEventReader.d.ts +28 -0
  109. package/lib/utils/metadataDiff/xmlEventReader.js +221 -0
  110. package/lib/utils/metadataDiff/xmlEventReader.js.map +1 -0
  111. package/lib/utils/metadataDiff/xmlWriter.d.ts +17 -0
  112. package/lib/utils/metadataDiff/xmlWriter.js +213 -0
  113. package/lib/utils/metadataDiff/xmlWriter.js.map +1 -0
  114. package/lib/utils/packageHelper.d.ts +8 -1
  115. package/lib/utils/packageHelper.js +25 -28
  116. package/lib/utils/packageHelper.js.map +1 -1
  117. package/lib/utils/renameResolver.d.ts +19 -0
  118. package/lib/utils/renameResolver.js +52 -0
  119. package/lib/utils/renameResolver.js.map +1 -0
  120. package/lib/utils/repoGitDiff.d.ts +18 -5
  121. package/lib/utils/repoGitDiff.js +66 -33
  122. package/lib/utils/repoGitDiff.js.map +1 -1
  123. package/lib/utils/treeIndexScope.d.ts +1 -1
  124. package/lib/utils/treeIndexScope.js.map +1 -1
  125. package/lib/utils/txmlAdapter.d.ts +30 -0
  126. package/lib/utils/txmlAdapter.js +121 -0
  127. package/lib/utils/txmlAdapter.js.map +1 -0
  128. package/lib/utils/xmlHelper.d.ts +0 -5
  129. package/lib/utils/xmlHelper.js +0 -57
  130. package/lib/utils/xmlHelper.js.map +1 -1
  131. package/messages/delta.md +12 -0
  132. package/npm-shrinkwrap.json +628 -486
  133. package/oclif.manifest.json +9 -1
  134. package/package.json +53 -21
  135. package/lib/utils/manifestAggregator.d.ts +0 -3
  136. package/lib/utils/manifestAggregator.js +0 -22
  137. package/lib/utils/manifestAggregator.js.map +0 -1
  138. package/lib/utils/metadataDiff.d.ts +0 -23
  139. package/lib/utils/metadataDiff.js +0 -242
  140. package/lib/utils/metadataDiff.js.map +0 -1
@@ -9,26 +9,25 @@ export default class SharedFolderHandler extends StandardHandler {
9
9
  super(changeType, element, work);
10
10
  this.resolvedType = element.getSharedFolderMetadata().get(element.extension);
11
11
  }
12
- _collectManifestElement(target) {
12
+ getElementDescriptor() {
13
13
  /* v8 ignore next 5 -- collectAddition/Deletion guard ensures resolvedType is set */
14
14
  if (!this.resolvedType) {
15
15
  throw new Error(`SharedFolderHandler: resolvedType is missing for ${this.element.fullPath}`);
16
16
  }
17
17
  return {
18
- target,
19
18
  type: this.resolvedType,
20
19
  member: this._getElementName(),
21
20
  };
22
21
  }
23
- async collectAddition() {
22
+ async collectAddition(sink) {
24
23
  if (!this.resolvedType)
25
24
  return emptyResult();
26
- return await super.collectAddition();
25
+ return await super.collectAddition(sink);
27
26
  }
28
- async collectDeletion() {
27
+ async collectDeletion(sink) {
29
28
  if (!this.resolvedType)
30
29
  return emptyResult();
31
- return await super.collectDeletion();
30
+ return await super.collectDeletion(sink);
32
31
  }
33
32
  _isProcessable() {
34
33
  return super._isProcessable() || !!this.resolvedType;
@@ -1 +1 @@
1
- {"version":3,"file":"sharedFolderHandler.js","sourceRoot":"","sources":["../../src/service/sharedFolderHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAMlE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIvD,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAElD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,eAAe;IAC3C,YAAY,CAAoB;IAEnD,YAAY,UAAkB,EAAE,OAAwB,EAAE,IAAU;QAClE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9E,CAAC;IAEkB,uBAAuB,CACxC,MAAsB;QAEtB,oFAAoF;QACpF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC5E,CAAA;QACH,CAAC;QACD,OAAO;YACL,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE;SAC/B,CAAA;IACH,CAAC;IAEe,KAAK,CAAC,eAAe;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,WAAW,EAAE,CAAA;QAC5C,OAAO,MAAM,KAAK,CAAC,eAAe,EAAE,CAAA;IACtC,CAAC;IAEe,KAAK,CAAC,eAAe;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,WAAW,EAAE,CAAA;QAC5C,OAAO,MAAM,KAAK,CAAC,eAAe,EAAE,CAAA;IACtC,CAAC;IAEkB,cAAc;QAC/B,OAAO,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;IACtD,CAAC;IAEkB,oBAAoB,CAAC,IAAY;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,IAAI,CACT,UAAU,CAAC,GAAG,EACd,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,eAAe,EAAE,CACxD,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"sharedFolderHandler.js","sourceRoot":"","sources":["../../src/service/sharedFolderHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAKvD,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAElD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,eAAe;IAC3C,YAAY,CAAoB;IAEnD,YAAY,UAAkB,EAAE,OAAwB,EAAE,IAAU;QAClE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9E,CAAC;IAEe,oBAAoB;QAClC,oFAAoF;QACpF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC5E,CAAA;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE;SAC/B,CAAA;IACH,CAAC;IAEe,KAAK,CAAC,eAAe,CACnC,IAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,WAAW,EAAE,CAAA;QAC5C,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEe,KAAK,CAAC,eAAe,CACnC,IAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,WAAW,EAAE,CAAA;QAC5C,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEkB,cAAc;QAC/B,OAAO,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;IACtD,CAAC;IAEkB,oBAAoB,CAAC,IAAY;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,IAAI,CACT,UAAU,CAAC,GAAG,EACd,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,eAAe,EAAE,CACxD,CAAA;IACH,CAAC;CACF"}
@@ -1,7 +1,8 @@
1
1
  import type { Config } from '../types/config.js';
2
- import type { CopyOperation, HandlerResult } from '../types/handlerResult.js';
2
+ import type { AddKind, CopyOperation, HandlerResult } from '../types/handlerResult.js';
3
3
  import { ManifestTarget } from '../types/handlerResult.js';
4
4
  import type { Work } from '../types/work.js';
5
+ import type ChangeSet from '../utils/changeSet.js';
5
6
  import type { MetadataElement } from '../utils/metadataElement.js';
6
7
  /**
7
8
  * Strategy pattern base for metadata type handlers.
@@ -18,19 +19,25 @@ export default class StandardHandler {
18
19
  protected readonly work: Work;
19
20
  protected readonly config: Config;
20
21
  constructor(changeType: string, element: MetadataElement, work: Work);
21
- collect(): Promise<HandlerResult>;
22
- collectAddition(): Promise<HandlerResult>;
23
- collectDeletion(): Promise<HandlerResult>;
24
- collectModification(): Promise<HandlerResult>;
22
+ collect(sink?: ChangeSet): Promise<HandlerResult>;
23
+ collectAddition(sink?: ChangeSet): Promise<HandlerResult>;
24
+ collectDeletion(sink?: ChangeSet): Promise<HandlerResult>;
25
+ collectModification(sink?: ChangeSet): Promise<HandlerResult>;
26
+ protected _emptyResultFor(sink?: ChangeSet): HandlerResult;
25
27
  protected _getElementName(): string;
28
+ getElementDescriptor(): {
29
+ type: string;
30
+ member: string;
31
+ };
26
32
  protected _collectManifestElement(target: ManifestTarget): {
27
- target: ManifestTarget;
33
+ changeKind: AddKind;
28
34
  type: string;
29
35
  member: string;
36
+ target: ManifestTarget;
30
37
  };
38
+ protected _getChangeKind(): AddKind;
31
39
  protected _collectCopyWithMetaFile(copies: CopyOperation[], src: string): void;
32
40
  protected _collectCopy(copies: CopyOperation[], path: string): void;
33
- protected _collectComputedContent(copies: CopyOperation[], path: string, content: string): void;
34
41
  protected _shouldCollectCopies(): boolean;
35
42
  protected _getMetaTypeFilePath(path: string): string;
36
43
  protected _shouldCopyMetaFile(path: string): boolean;
@@ -3,10 +3,15 @@ import { __decorate } from "tslib";
3
3
  import { join, parse } from 'node:path/posix';
4
4
  import { ADDITION, DELETION, MODIFICATION } from '../constant/gitConstants.js';
5
5
  import { METAFILE_SUFFIX } from '../constant/metadataConstants.js';
6
- import { CopyOperationKind, emptyResult, ManifestTarget, } from '../types/handlerResult.js';
6
+ import { ChangeKind, CopyOperationKind, emptyResult, ManifestTarget, } from '../types/handlerResult.js';
7
7
  import { getErrorMessage, wrapError } from '../utils/errorUtils.js';
8
8
  import { log } from '../utils/LoggingDecorator.js';
9
9
  import { Logger, lazy } from '../utils/LoggingService.js';
10
+ const CHANGE_KIND_BY_GIT_TYPE = {
11
+ [ADDITION]: ChangeKind.Add,
12
+ [MODIFICATION]: ChangeKind.Modify,
13
+ [DELETION]: ChangeKind.Delete,
14
+ };
10
15
  /**
11
16
  * Strategy pattern base for metadata type handlers.
12
17
  * Each Salesforce metadata type may need unique diff-collection behavior
@@ -27,57 +32,77 @@ export default class StandardHandler {
27
32
  this.work = work;
28
33
  this.config = work.config;
29
34
  }
30
- async collect() {
35
+ // `sink` lets the orchestrator (DiffLineInterpreter) share one ChangeSet
36
+ // across every handler in a pass, eliminating ~N per-handler ChangeSet
37
+ // allocations and their later merge. When omitted (tests, ad-hoc callers)
38
+ // each call still gets its own fresh ChangeSet via `emptyResult()`, so the
39
+ // existing test API (`await sut.collectAddition()`) stays unchanged.
40
+ async collect(sink) {
31
41
  if (!this._isProcessable()) {
32
- return emptyResult();
42
+ return this._emptyResultFor(sink);
33
43
  }
34
44
  try {
35
45
  switch (this.changeType) {
36
46
  case ADDITION:
37
- return await this.collectAddition();
47
+ return await this.collectAddition(sink);
38
48
  case DELETION:
39
- return await this.collectDeletion();
49
+ return await this.collectDeletion(sink);
40
50
  case MODIFICATION:
41
- return await this.collectModification();
51
+ return await this.collectModification(sink);
42
52
  default:
43
- return emptyResult();
53
+ return this._emptyResultFor(sink);
44
54
  }
45
55
  }
46
56
  catch (error) {
47
57
  const message = `${this.element.basePath}: ${getErrorMessage(error)}`;
48
58
  Logger.warn(lazy `${message}`);
49
59
  Logger.debug(lazy `${this.constructor.name}.collect: ${this.changeType} ${this.element.type.xmlName} '${this.element.basePath}' failed: ${() => getErrorMessage(error)}`);
50
- return {
51
- manifests: [],
52
- copies: [],
53
- warnings: [wrapError(message, error)],
54
- };
60
+ const failed = this._emptyResultFor(sink);
61
+ failed.warnings.push(wrapError(message, error));
62
+ return failed;
55
63
  }
56
64
  }
57
- async collectAddition() {
58
- const result = emptyResult();
59
- result.manifests.push(this._collectManifestElement(ManifestTarget.Package));
65
+ async collectAddition(sink) {
66
+ const result = this._emptyResultFor(sink);
67
+ result.changes.addElement(this._collectManifestElement(ManifestTarget.Package));
60
68
  this._collectCopyWithMetaFile(result.copies, this.element.basePath);
61
69
  return result;
62
70
  }
63
- async collectDeletion() {
64
- const result = emptyResult();
65
- result.manifests.push(this._collectManifestElement(ManifestTarget.DestructiveChanges));
71
+ async collectDeletion(sink) {
72
+ const result = this._emptyResultFor(sink);
73
+ result.changes.addElement(this._collectManifestElement(ManifestTarget.DestructiveChanges));
66
74
  return result;
67
75
  }
68
- async collectModification() {
69
- return await this.collectAddition();
76
+ async collectModification(sink) {
77
+ return await this.collectAddition(sink);
78
+ }
79
+ _emptyResultFor(sink) {
80
+ /* v8 ignore next -- defensive: production callers always pass a sink; the no-sink fallback exists for legacy / direct-handler tests */
81
+ return sink ? { changes: sink, copies: [], warnings: [] } : emptyResult();
70
82
  }
71
83
  _getElementName() {
72
84
  return this.element.componentName;
73
85
  }
74
- _collectManifestElement(target) {
86
+ // Public accessor used by the rename resolver — lets main.ts map a rename
87
+ // path pair back to (type, member) without running collect() side-effects.
88
+ getElementDescriptor() {
75
89
  return {
76
- target,
77
90
  type: this.element.type.xmlName,
78
91
  member: this._getElementName(),
79
92
  };
80
93
  }
94
+ _collectManifestElement(target) {
95
+ return {
96
+ target,
97
+ ...this.getElementDescriptor(),
98
+ changeKind: this._getChangeKind(),
99
+ };
100
+ }
101
+ _getChangeKind() {
102
+ // collect()'s switch guarantees changeType is ADDITION | MODIFICATION |
103
+ // DELETION before _collectManifestElement runs, so the lookup always hits.
104
+ return CHANGE_KIND_BY_GIT_TYPE[this.changeType];
105
+ }
81
106
  _collectCopyWithMetaFile(copies, src) {
82
107
  if (this._delegateFileCopy()) {
83
108
  this._collectCopy(copies, src);
@@ -95,11 +120,6 @@ export default class StandardHandler {
95
120
  revision: this.config.to,
96
121
  });
97
122
  }
98
- _collectComputedContent(copies, path, content) {
99
- if (!this._shouldCollectCopies())
100
- return;
101
- copies.push({ kind: CopyOperationKind.ComputedContent, path, content });
102
- }
103
123
  _shouldCollectCopies() {
104
124
  return this.config.generateDelta;
105
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"standardHandler.js","sourceRoot":"","sources":["../../src/service/standardHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standardHandler.js","sourceRoot":"","sources":["../../src/service/standardHandler.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,10 @@ export default class TypeHandlerFactory {
7
7
  protected readonly metadata: MetadataRepository;
8
8
  protected readonly resolver: MetadataBoundaryResolver;
9
9
  private readonly inFileParentXmlNames;
10
+ private readonly handlerCache;
10
11
  constructor(work: Work, metadata: MetadataRepository);
11
12
  getTypeHandler(line: string): Promise<Standard>;
12
13
  private buildInFileParentIndex;
13
14
  private resolveHandler;
15
+ private _computeHandler;
14
16
  }
@@ -57,6 +57,13 @@ export default class TypeHandlerFactory {
57
57
  metadata;
58
58
  resolver;
59
59
  inFileParentXmlNames;
60
+ // Memoizes resolveHandler(metadata) → handler-class. The dispatch
61
+ // (handlerMap lookup, inFolder check, adapter check, parentXmlName
62
+ // walk, inFileParent check) is deterministic in the metadata
63
+ // reference, and the registry returns the same Metadata instance for
64
+ // a given type. ~50 distinct types per diff at most, so the cache
65
+ // stays trivially small.
66
+ handlerCache = new Map();
60
67
  constructor(work, metadata) {
61
68
  this.work = work;
62
69
  this.metadata = metadata;
@@ -89,6 +96,14 @@ export default class TypeHandlerFactory {
89
96
  }
90
97
  }
91
98
  resolveHandler(type) {
99
+ const cached = this.handlerCache.get(type);
100
+ if (cached !== undefined)
101
+ return cached;
102
+ const resolved = this._computeHandler(type);
103
+ this.handlerCache.set(type, resolved);
104
+ return resolved;
105
+ }
106
+ _computeHandler(type) {
92
107
  const xmlName = type.xmlName;
93
108
  if (xmlName in handlerMap) {
94
109
  return handlerMap[xmlName];
@@ -1 +1 @@
1
- {"version":3,"file":"typeHandlerFactory.js","sourceRoot":"","sources":["../../src/service/typeHandlerFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeHandlerFactory.js","sourceRoot":"","sources":["../../src/service/typeHandlerFactory.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,5 @@ export type Config = {
12
12
  include?: string | undefined;
13
13
  includeDestructive?: string | undefined;
14
14
  additionalMetadataRegistryPath?: string | undefined;
15
+ changesManifest?: string | undefined;
15
16
  };
@@ -1,16 +1,26 @@
1
+ import type { Writable } from 'node:stream';
2
+ import type ChangeSet from '../utils/changeSet.js';
1
3
  export declare enum ManifestTarget {
2
4
  Package = "package",
3
5
  DestructiveChanges = "destructiveChanges"
4
6
  }
7
+ export declare enum ChangeKind {
8
+ Add = "add",
9
+ Modify = "modify",
10
+ Delete = "delete",
11
+ Rename = "rename"
12
+ }
13
+ export type AddKind = ChangeKind.Add | ChangeKind.Modify | ChangeKind.Delete;
5
14
  export declare enum CopyOperationKind {
6
15
  GitCopy = "gitCopy",
7
16
  GitDirCopy = "gitDirCopy",
8
- ComputedContent = "computedContent"
17
+ StreamedContent = "streamedContent"
9
18
  }
10
19
  export type ManifestElement = {
11
20
  target: ManifestTarget;
12
21
  type: string;
13
22
  member: string;
23
+ changeKind: AddKind;
14
24
  };
15
25
  export type GitCopyOperation = {
16
26
  kind: CopyOperationKind.GitCopy;
@@ -22,16 +32,15 @@ export type GitDirCopyOperation = {
22
32
  path: string;
23
33
  revision: string;
24
34
  };
25
- export type ComputedContentOperation = {
26
- kind: CopyOperationKind.ComputedContent;
35
+ export type StreamedContentOperation = {
36
+ kind: CopyOperationKind.StreamedContent;
27
37
  path: string;
28
- content: string;
38
+ writer: (out: Writable) => Promise<void>;
29
39
  };
30
- export type CopyOperation = GitCopyOperation | GitDirCopyOperation | ComputedContentOperation;
40
+ export type CopyOperation = GitCopyOperation | GitDirCopyOperation | StreamedContentOperation;
31
41
  export type HandlerResult = {
32
- manifests: ManifestElement[];
42
+ changes: ChangeSet;
33
43
  copies: CopyOperation[];
34
44
  warnings: Error[];
35
45
  };
36
- export declare const emptyResult: () => HandlerResult;
37
- export declare const mergeResults: (...results: HandlerResult[]) => HandlerResult;
46
+ export { emptyResult, mergeResults } from '../utils/changeSet.js';
@@ -4,20 +4,18 @@ export var ManifestTarget;
4
4
  ManifestTarget["Package"] = "package";
5
5
  ManifestTarget["DestructiveChanges"] = "destructiveChanges";
6
6
  })(ManifestTarget || (ManifestTarget = {}));
7
+ export var ChangeKind;
8
+ (function (ChangeKind) {
9
+ ChangeKind["Add"] = "add";
10
+ ChangeKind["Modify"] = "modify";
11
+ ChangeKind["Delete"] = "delete";
12
+ ChangeKind["Rename"] = "rename";
13
+ })(ChangeKind || (ChangeKind = {}));
7
14
  export var CopyOperationKind;
8
15
  (function (CopyOperationKind) {
9
16
  CopyOperationKind["GitCopy"] = "gitCopy";
10
17
  CopyOperationKind["GitDirCopy"] = "gitDirCopy";
11
- CopyOperationKind["ComputedContent"] = "computedContent";
18
+ CopyOperationKind["StreamedContent"] = "streamedContent";
12
19
  })(CopyOperationKind || (CopyOperationKind = {}));
13
- export const emptyResult = () => ({
14
- manifests: [],
15
- copies: [],
16
- warnings: [],
17
- });
18
- export const mergeResults = (...results) => ({
19
- manifests: results.flatMap(r => r.manifests),
20
- copies: results.flatMap(r => r.copies),
21
- warnings: results.flatMap(r => r.warnings),
22
- });
20
+ export { emptyResult, mergeResults } from '../utils/changeSet.js';
23
21
  //# sourceMappingURL=handlerResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlerResult.js","sourceRoot":"","sources":["../../src/types/handlerResult.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2DAAyC,CAAA;AAC3C,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;AACrC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAqCD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAkB,EAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;CACb,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAwB,EAAiB,EAAE,CAAC,CAAC;IAC3E,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;CAC3C,CAAC,CAAA"}
1
+ {"version":3,"file":"handlerResult.js","sourceRoot":"","sources":["../../src/types/handlerResult.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AASZ,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2DAAyC,CAAA;AAC3C,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAOD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;AACrC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAgDD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,11 +1,8 @@
1
+ import type ChangeSet from '../utils/changeSet.js';
1
2
  import type { Config } from './config.js';
2
3
  export type Manifest = Map<string, Set<string>>;
3
- export type Manifests = {
4
- package: Manifest;
5
- destructiveChanges: Manifest;
6
- };
7
4
  export type Work = {
8
5
  config: Config;
9
- diffs: Manifests;
6
+ changes: ChangeSet;
10
7
  warnings: Error[];
11
8
  };
@@ -1,29 +1,40 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: it is dynamic by definition */
2
2
  import { Logger, lazy } from './LoggingService.js';
3
- const ASYNC_CALLABLE_TAGS = new Set([
4
- '[object AsyncFunction]',
5
- '[object AsyncGeneratorFunction]',
6
- ]);
7
- const isAsyncFunction = (fn) => ASYNC_CALLABLE_TAGS.has(Object.prototype.toString.call(fn));
3
+ const ASYNC_FUNCTION_TAG = '[object AsyncFunction]';
4
+ const ASYNC_GENERATOR_FUNCTION_TAG = '[object AsyncGeneratorFunction]';
5
+ const tagOf = (fn) => Object.prototype.toString.call(fn);
8
6
  export function log(_target, propertyKey, descriptor) {
9
7
  const original = descriptor.value;
10
- const isAsync = isAsyncFunction(original);
8
+ const tag = tagOf(original);
9
+ const isAsync = tag === ASYNC_FUNCTION_TAG;
10
+ const isAsyncGenerator = tag === ASYNC_GENERATOR_FUNCTION_TAG;
11
11
  descriptor.value = function (...args) {
12
12
  const className = this.constructor.name;
13
13
  Logger.trace(lazy `${className}.${propertyKey}: entry`);
14
14
  const logExit = () => {
15
15
  Logger.trace(lazy `${className}.${propertyKey}: exit`);
16
16
  };
17
- // `exit` must fire on every failure path, including when `.apply()`
18
- // itself throws synchronously (possible for non-async functions, and
19
- // for transpiled-down async wrappers that don't convert sync throws
20
- // to rejections). The outer try/catch covers that. For genuine async
21
- // returns, `.finally` covers the resolve/reject paths.
17
+ // `exit` must fire on every failure path. Sync throws are caught
18
+ // below. Async functions resolve/reject through `.finally`. Async
19
+ // generators are wrapped in a delegating generator whose `finally`
20
+ // clause fires whether iteration completes, throws, or is closed
21
+ // early via `.return()` / `.throw()`.
22
22
  try {
23
23
  const result = original.apply(this, args);
24
24
  if (isAsync) {
25
25
  return result.finally(logExit);
26
26
  }
27
+ if (isAsyncGenerator) {
28
+ const inner = result;
29
+ return (async function* () {
30
+ try {
31
+ yield* inner;
32
+ }
33
+ finally {
34
+ logExit();
35
+ }
36
+ })();
37
+ }
27
38
  logExit();
28
39
  return result;
29
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoggingDecorator.js","sourceRoot":"","sources":["../../src/utils/LoggingDecorator.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,wBAAwB;IACxB,iCAAiC;CAClC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,EAAW,EAAW,EAAE,CAC/C,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAE7D,MAAM,UAAU,GAAG,CACjB,OAAY,EACZ,WAAmB,EACnB,UAA8B;IAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;IACjC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEzC,UAAU,CAAC,KAAK,GAAG,UAAwB,GAAG,IAAW;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,GAAG,SAAS,IAAI,WAAW,SAAS,CAAC,CAAA;QAEtD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,GAAG,SAAS,IAAI,WAAW,QAAQ,CAAC,CAAA;QACvD,CAAC,CAAA;QAED,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,uDAAuD;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAQ,MAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACtD,CAAC;YACD,OAAO,EAAE,CAAA;YACT,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAA;YACT,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"LoggingDecorator.js","sourceRoot":"","sources":["../../src/utils/LoggingDecorator.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,kBAAkB,GAAG,wBAAwB,CAAA;AACnD,MAAM,4BAA4B,GAAG,iCAAiC,CAAA;AAEtE,MAAM,KAAK,GAAG,CAAC,EAAW,EAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEzE,MAAM,UAAU,GAAG,CACjB,OAAY,EACZ,WAAmB,EACnB,UAA8B;IAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3B,MAAM,OAAO,GAAG,GAAG,KAAK,kBAAkB,CAAA;IAC1C,MAAM,gBAAgB,GAAG,GAAG,KAAK,4BAA4B,CAAA;IAE7D,UAAU,CAAC,KAAK,GAAG,UAAwB,GAAG,IAAW;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,GAAG,SAAS,IAAI,WAAW,SAAS,CAAC,CAAA;QAEtD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,GAAG,SAAS,IAAI,WAAW,QAAQ,CAAC,CAAA;QACvD,CAAC,CAAA;QAED,iEAAiE;QACjE,kEAAkE;QAClE,mEAAmE;QACnE,iEAAiE;QACjE,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAQ,MAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACtD,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAiC,CAAA;gBAC/C,OAAO,CAAC,KAAK,SAAS,CAAC;oBACrB,IAAI,CAAC;wBACH,KAAK,CAAC,CAAC,KAAK,CAAA;oBACd,CAAC;4BAAS,CAAC;wBACT,OAAO,EAAE,CAAA;oBACX,CAAC;gBACH,CAAC,CAAC,EAAE,CAAA;YACN,CAAC;YACD,OAAO,EAAE,CAAA;YACT,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAA;YACT,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { type AddKind, ChangeKind, type ManifestElement } from '../types/handlerResult.js';
2
+ import type { Manifest } from '../types/work.js';
3
+ export type RenamePair = Readonly<{
4
+ from: string;
5
+ to: string;
6
+ }>;
7
+ export type RenameBucket = Map<string, Map<string, RenamePair>>;
8
+ /**
9
+ * Domain object that collects every component change observed in a diff and
10
+ * derives the views consumed downstream:
11
+ * - Package manifest (`ManifestTarget.Package` entries + rename targets)
12
+ * - Destructive manifest (`ManifestTarget.DestructiveChanges` entries +
13
+ * rename sources — minus entries that also appear in the Package view)
14
+ * - Per-kind bucket map (used for the JSON review manifest)
15
+ *
16
+ * `ManifestTarget` and `ChangeKind` are orthogonal. A single ManifestElement
17
+ * can be (target=Package, changeKind=Delete) — this happens when InFileHandler
18
+ * treats a deleted container file as an addition to preserve surviving
19
+ * sub-elements. The xml manifests MUST route on `target` (the deployment
20
+ * contract); `changeKind` only drives the review-oriented JSON bucket.
21
+ *
22
+ * Insertion goes through `add` for single-component changes and
23
+ * `recordRename` for rename pairs. Views are pure projections.
24
+ */
25
+ export default class ChangeSet {
26
+ private readonly byTarget;
27
+ private readonly byKind;
28
+ private readonly renames;
29
+ static from(elements: readonly ManifestElement[]): ChangeSet;
30
+ addElement(element: ManifestElement): void;
31
+ toElements(): ManifestElement[];
32
+ add(kind: AddKind, type: string, member: string): void;
33
+ recordRename(type: string, from: string, to: string): void;
34
+ merge(other: ChangeSet): void;
35
+ forPackageManifest(): Manifest;
36
+ forDestructiveManifest(): Manifest;
37
+ byChangeKind(): Readonly<{
38
+ [ChangeKind.Add]: Manifest;
39
+ [ChangeKind.Modify]: Manifest;
40
+ [ChangeKind.Delete]: Manifest;
41
+ [ChangeKind.Rename]: RenameBucket;
42
+ }>;
43
+ private _addToManifest;
44
+ private _cloneManifest;
45
+ private _renameTargetsByType;
46
+ private _renameSourcesByType;
47
+ private _cloneRenames;
48
+ private _unionByType;
49
+ private _subtractByType;
50
+ }
51
+ import type { HandlerResult } from '../types/handlerResult.js';
52
+ export declare const emptyResult: () => HandlerResult;
53
+ export declare const mergeResults: (...results: HandlerResult[]) => HandlerResult;