sfdx-git-delta 7.0.1 → 7.2.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 (139) hide show
  1. package/README.md +12 -3
  2. package/lib/adapter/GitAdapter.d.ts +25 -64
  3. package/lib/adapter/GitAdapter.js +352 -483
  4. package/lib/adapter/GitAdapter.js.map +1 -1
  5. package/lib/adapter/gitBlobReader.d.ts +8 -10
  6. package/lib/adapter/gitBlobReader.js.map +1 -1
  7. package/lib/adapter/ioExecutor.d.ts +5 -4
  8. package/lib/adapter/ioExecutor.js +22 -14
  9. package/lib/adapter/ioExecutor.js.map +1 -1
  10. package/lib/adapter/pathMatching.d.ts +9 -0
  11. package/lib/adapter/pathMatching.js +83 -0
  12. package/lib/adapter/pathMatching.js.map +1 -0
  13. package/lib/adapter/tsgitErrorMap.d.ts +7 -0
  14. package/lib/adapter/tsgitErrorMap.js +32 -0
  15. package/lib/adapter/tsgitErrorMap.js.map +1 -0
  16. package/lib/commands/sgd/source/delta.js.map +1 -1
  17. package/lib/constant/gitConstants.d.ts +0 -2
  18. package/lib/constant/gitConstants.js +0 -8
  19. package/lib/constant/gitConstants.js.map +1 -1
  20. package/lib/constant/metadataConstants.d.ts +1 -0
  21. package/lib/constant/metadataConstants.js +1 -0
  22. package/lib/constant/metadataConstants.js.map +1 -1
  23. package/lib/main.d.ts +2 -2
  24. package/lib/main.js +64 -35
  25. package/lib/main.js.map +1 -1
  26. package/lib/post-processor/baseProcessor.d.ts +9 -6
  27. package/lib/post-processor/baseProcessor.js +5 -6
  28. package/lib/post-processor/baseProcessor.js.map +1 -1
  29. package/lib/post-processor/changesManifestProcessor.d.ts +3 -2
  30. package/lib/post-processor/changesManifestProcessor.js +5 -4
  31. package/lib/post-processor/changesManifestProcessor.js.map +1 -1
  32. package/lib/post-processor/flowTranslationProcessor.d.ts +8 -7
  33. package/lib/post-processor/flowTranslationProcessor.js +20 -19
  34. package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
  35. package/lib/post-processor/includeProcessor.d.ts +6 -5
  36. package/lib/post-processor/includeProcessor.js +7 -6
  37. package/lib/post-processor/includeProcessor.js.map +1 -1
  38. package/lib/post-processor/packageGenerator.d.ts +3 -2
  39. package/lib/post-processor/packageGenerator.js +5 -4
  40. package/lib/post-processor/packageGenerator.js.map +1 -1
  41. package/lib/post-processor/postProcessorManager.d.ts +5 -7
  42. package/lib/post-processor/postProcessorManager.js +23 -31
  43. package/lib/post-processor/postProcessorManager.js.map +1 -1
  44. package/lib/service/botHandler.d.ts +1 -2
  45. package/lib/service/botHandler.js +17 -10
  46. package/lib/service/botHandler.js.map +1 -1
  47. package/lib/service/containedDecomposedHandler.d.ts +4 -5
  48. package/lib/service/containedDecomposedHandler.js +13 -12
  49. package/lib/service/containedDecomposedHandler.js.map +1 -1
  50. package/lib/service/customFieldHandler.d.ts +1 -2
  51. package/lib/service/customFieldHandler.js +7 -6
  52. package/lib/service/customFieldHandler.js.map +1 -1
  53. package/lib/service/customLabelHandler.d.ts +1 -2
  54. package/lib/service/customLabelHandler.js +3 -3
  55. package/lib/service/customLabelHandler.js.map +1 -1
  56. package/lib/service/customObjectHandler.d.ts +3 -4
  57. package/lib/service/customObjectHandler.js +10 -9
  58. package/lib/service/customObjectHandler.js.map +1 -1
  59. package/lib/service/decomposedHandler.d.ts +3 -4
  60. package/lib/service/decomposedHandler.js +5 -4
  61. package/lib/service/decomposedHandler.js.map +1 -1
  62. package/lib/service/diffLineInterpreter.d.ts +3 -3
  63. package/lib/service/diffLineInterpreter.js +18 -14
  64. package/lib/service/diffLineInterpreter.js.map +1 -1
  65. package/lib/service/flowHandler.d.ts +1 -2
  66. package/lib/service/flowHandler.js +9 -4
  67. package/lib/service/flowHandler.js.map +1 -1
  68. package/lib/service/inFileHandler.d.ts +8 -9
  69. package/lib/service/inFileHandler.js +28 -27
  70. package/lib/service/inFileHandler.js.map +1 -1
  71. package/lib/service/inFolderHandler.d.ts +4 -5
  72. package/lib/service/inFolderHandler.js +6 -5
  73. package/lib/service/inFolderHandler.js.map +1 -1
  74. package/lib/service/inResourceHandler.d.ts +4 -5
  75. package/lib/service/inResourceHandler.js +8 -7
  76. package/lib/service/inResourceHandler.js.map +1 -1
  77. package/lib/service/objectTranslationHandler.d.ts +1 -2
  78. package/lib/service/objectTranslationHandler.js +6 -5
  79. package/lib/service/objectTranslationHandler.js.map +1 -1
  80. package/lib/service/reportingFolderHandler.d.ts +6 -7
  81. package/lib/service/reportingFolderHandler.js +6 -6
  82. package/lib/service/reportingFolderHandler.js.map +1 -1
  83. package/lib/service/sharedFolderHandler.d.ts +4 -5
  84. package/lib/service/sharedFolderHandler.js +6 -6
  85. package/lib/service/sharedFolderHandler.js.map +1 -1
  86. package/lib/service/standardHandler.d.ts +5 -9
  87. package/lib/service/standardHandler.js +28 -35
  88. package/lib/service/standardHandler.js.map +1 -1
  89. package/lib/service/typeHandlerFactory.d.ts +3 -3
  90. package/lib/service/typeHandlerFactory.js +6 -6
  91. package/lib/service/typeHandlerFactory.js.map +1 -1
  92. package/lib/types/config.d.ts +5 -1
  93. package/lib/types/handlerResult.d.ts +7 -7
  94. package/lib/types/handlerResult.js +10 -1
  95. package/lib/types/handlerResult.js.map +1 -1
  96. package/lib/types/work.d.ts +1 -1
  97. package/lib/utils/arrayUtils.d.ts +1 -1
  98. package/lib/utils/arrayUtils.js.map +1 -1
  99. package/lib/utils/bundleRollup.d.ts +6 -0
  100. package/lib/utils/bundleRollup.js +62 -0
  101. package/lib/utils/bundleRollup.js.map +1 -0
  102. package/lib/utils/changeSet.d.ts +12 -15
  103. package/lib/utils/changeSet.js +23 -120
  104. package/lib/utils/changeSet.js.map +1 -1
  105. package/lib/utils/changesAssembly.d.ts +8 -0
  106. package/lib/utils/changesAssembly.js +21 -0
  107. package/lib/utils/changesAssembly.js.map +1 -0
  108. package/lib/utils/configValidator.d.ts +7 -6
  109. package/lib/utils/configValidator.js +32 -11
  110. package/lib/utils/configValidator.js.map +1 -1
  111. package/lib/utils/fsHelper.d.ts +2 -1
  112. package/lib/utils/fsHelper.js +7 -3
  113. package/lib/utils/fsHelper.js.map +1 -1
  114. package/lib/utils/messageSanitizer.d.ts +1 -0
  115. package/lib/utils/messageSanitizer.js +48 -0
  116. package/lib/utils/messageSanitizer.js.map +1 -0
  117. package/lib/utils/metadataDiff/index.d.ts +0 -2
  118. package/lib/utils/metadataDiff/index.js.map +1 -1
  119. package/lib/utils/metadataDiff/streamingDiff.d.ts +1 -3
  120. package/lib/utils/metadataDiff/streamingDiff.js +16 -54
  121. package/lib/utils/metadataDiff/streamingDiff.js.map +1 -1
  122. package/lib/utils/pathspec.d.ts +15 -0
  123. package/lib/utils/pathspec.js +71 -0
  124. package/lib/utils/pathspec.js.map +1 -0
  125. package/lib/utils/renameResolver.d.ts +6 -6
  126. package/lib/utils/renameResolver.js +10 -9
  127. package/lib/utils/renameResolver.js.map +1 -1
  128. package/lib/utils/repoGitDiff.d.ts +2 -0
  129. package/lib/utils/repoGitDiff.js +14 -1
  130. package/lib/utils/repoGitDiff.js.map +1 -1
  131. package/messages/delta.md +26 -0
  132. package/oclif.manifest.json +2 -2
  133. package/package.json +28 -20
  134. package/lib/adapter/gitBatchCatFile.d.ts +0 -42
  135. package/lib/adapter/gitBatchCatFile.js +0 -203
  136. package/lib/adapter/gitBatchCatFile.js.map +0 -1
  137. package/lib/post-processor/bundleRollupProcessor.d.ts +0 -7
  138. package/lib/post-processor/bundleRollupProcessor.js +0 -81
  139. package/lib/post-processor/bundleRollupProcessor.js.map +0 -1
@@ -17,16 +17,24 @@ import { pathExists, sanitizePath } from './fsUtils.js';
17
17
  import { log } from './LoggingDecorator.js';
18
18
  import { Logger, lazy } from './LoggingService.js';
19
19
  import { MessageService } from './MessageService.js';
20
+ import { sanitizeForMessage } from './messageSanitizer.js';
20
21
  const SHA_KEYS = ['from', 'to'];
22
+ const SOURCE_DIR_REJECTION_MESSAGE_KEYS = {
23
+ empty: 'error.SourceDirIsEmpty',
24
+ magic: 'error.SourceDirUsesPathspecMagic',
25
+ wildcard: 'error.SourceDirContainsWildcard',
26
+ absolute: 'error.SourceDirIsAbsolute',
27
+ escapes: 'error.SourceDirEscapesRepository',
28
+ };
21
29
  export default class ConfigValidator {
22
- work;
23
30
  config;
31
+ sourceRejections;
24
32
  gitAdapter;
25
33
  message;
26
- constructor(work) {
27
- this.work = work;
28
- this.config = work.config;
29
- this.gitAdapter = GitAdapter.getInstance(work.config);
34
+ constructor(config, sourceRejections = []) {
35
+ this.config = config;
36
+ this.sourceRejections = sourceRejections;
37
+ this.gitAdapter = GitAdapter.getInstance(config);
30
38
  this.message = new MessageService();
31
39
  }
32
40
  async _validateGitSha() {
@@ -48,9 +56,20 @@ export default class ConfigValidator {
48
56
  }));
49
57
  return errors;
50
58
  }
59
+ _validateSource() {
60
+ return this.sourceRejections.map(rejection => this.message.getMessage(SOURCE_DIR_REJECTION_MESSAGE_KEYS[rejection.reason], [sanitizeForMessage(rejection.value)]));
61
+ }
51
62
  async validateConfig() {
52
63
  this._sanitizeConfig();
53
- const [, repoExists, gitErrors, changesManifestErrors] = await Promise.all([
64
+ // Short-circuits before any git object is read: _validateGitSha below
65
+ // calls parseRev, which opens the repository. A bad --source-dir is
66
+ // the actionable error and the one that today produces a silent empty
67
+ // manifest, so it is reported alone even if the SHAs are also invalid.
68
+ const sourceErrors = this._validateSource();
69
+ if (sourceErrors.length > 0) {
70
+ throw new ConfigError(sourceErrors.join(', '));
71
+ }
72
+ const [defaultWarnings, repoExists, gitErrors, changesManifestErrors] = await Promise.all([
54
73
  this._handleDefault(),
55
74
  pathExists(join(this.config.repo, GIT_FOLDER)),
56
75
  this._validateGitSha(),
@@ -66,6 +85,7 @@ export default class ConfigValidator {
66
85
  throw new ConfigError(errors.join(', '));
67
86
  }
68
87
  await this.gitAdapter.configureRepository();
88
+ return defaultWarnings;
69
89
  }
70
90
  // oclif cannot natively validate --changes-manifest (it uses a string flag
71
91
  // to allow the bare form). Replicate meaningful checks: if the path already
@@ -103,7 +123,7 @@ export default class ConfigValidator {
103
123
  }
104
124
  async _handleDefault() {
105
125
  await this._getApiVersion();
106
- await this._apiVersionDefault();
126
+ return await this._apiVersionDefault();
107
127
  }
108
128
  async _getApiVersion() {
109
129
  if (this.config.apiVersion !== undefined)
@@ -127,13 +147,14 @@ export default class ConfigValidator {
127
147
  const latestVersion = await this._resolveLatestSupportedVersion();
128
148
  // Stryker disable next-line ConditionalExpression -- equivalent: undefined signals the lookup failed while a usable apiVersion is already set; flipping the guard would fall through to clamp against an undefined ceiling, which the offline test surface forbids
129
149
  if (latestVersion === undefined)
130
- return;
150
+ return [];
151
+ const warnings = [];
131
152
  // Stryker disable ConditionalExpression,LogicalOperator -- equivalent: this triple-AND gate ensures we only override a numeric, defined, above-latest apiVersion; flipping individual conditions to true falls into the override branch when apiVersion is undefined or NaN, but the second `if (apiVersion === undefined || isNaN())` block immediately resets to latestVersion, producing the same observable apiVersion in both arms (only the warning content differs, which the test surface doesn't disambiguate)
132
153
  if (this.config.apiVersion !== undefined &&
133
154
  !isNaN(this.config.apiVersion) &&
134
155
  this.config.apiVersion > latestVersion) {
135
156
  // Stryker restore ConditionalExpression,LogicalOperator
136
- this.work.warnings.push(new Error(this.message.getMessage('warning.ApiVersionOverridden', [
157
+ warnings.push(new Error(this.message.getMessage('warning.ApiVersionOverridden', [
137
158
  String(this.config.apiVersion),
138
159
  String(latestVersion),
139
160
  ])));
@@ -142,10 +163,11 @@ export default class ConfigValidator {
142
163
  // Stryker disable next-line ConditionalExpression -- equivalent: defaulting fallback when apiVersion is unset/NaN; flipping to false skips the default and the apiVersion stays as-is, but the only test fixtures with apiVersion already set hit the early-return at _getApiVersion start, so the default branch is unreachable for those test cases
143
164
  if (this.config.apiVersion === undefined || isNaN(this.config.apiVersion)) {
144
165
  this.config.apiVersion = latestVersion;
145
- this.work.warnings.push(new Error(this.message.getMessage('warning.ApiVersionDefaulted', [
166
+ warnings.push(new Error(this.message.getMessage('warning.ApiVersionDefaulted', [
146
167
  String(latestVersion),
147
168
  ])));
148
169
  }
170
+ return warnings;
149
171
  }
150
172
  // Resolves the latest supported API version, falling back gracefully when the
151
173
  // appexchange lookup is unreachable (offline/firewalled environments).
@@ -171,7 +193,6 @@ export default class ConfigValidator {
171
193
  }
172
194
  _sanitizeConfig() {
173
195
  this.config.repo = sanitizePath(this.config.repo);
174
- this.config.source = this.config.source.map(source => sanitizePath(source));
175
196
  this.config.output = sanitizePath(this.config.output);
176
197
  this.config.ignore = sanitizePath(this.config.ignore);
177
198
  this.config.ignoreDestructive = sanitizePath(this.config.ignoreDestructive);
@@ -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;AAG1E,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;AAGpD,MAAM,QAAQ,GAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAElD,MAAM,CAAC,OAAO,OAAO,eAAe;IAKH,IAAI;IAJhB,MAAM,CAAQ;IACd,UAAU,CAAY;IACtB,OAAO,CAAgB;IAE1C,YAA+B,IAAU;oBAAV,IAAI;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrD,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;iBACT,CAAC,CACH,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAGY,AAAN,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzE,IAAI,CAAC,cAAc,EAAE;YACrB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,wBAAwB,EAAE;SAChC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAClE,CAAA;QACH,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAC1B,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;QAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAA;IAC7C,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,oEAAoE;IAC1D,KAAK,CAAC,wBAAwB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,OAAO;oBACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,MAAM,CAAC,CAAC;iBACnE,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,sEAAsE;YACtE,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,IAAI,GACR,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAE,KAA+B,CAAC,IAAI;gBACvC,CAAC,CAAC,SAAS,CAAA;YACf,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iCAAiC,EAAE;wBACzD,MAAM;wBACN,eAAe,CAAC,KAAK,CAAC;qBACvB,CAAC;iBACH,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACjC,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QAEhD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3D,MAAM,iBAAiB,GAAG,SAAS;iBAChC,gBAAgB,EAAE;iBAClB,WAAW,EAAE,CAAC,gBAAgB,CAAA;YACjC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK;YACV,gGAAgG;YAChG,IAAI,CAAA,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CACjF,CAAA;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAA;QACjE,mQAAmQ;QACnQ,IAAI,aAAa,KAAK,SAAS;YAAE,OAAM;QAEvC,wfAAwf;QACxf,IACE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YACpC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,EACtC,CAAC;YACD,wDAAwD;YACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACrB,IAAI,KAAK,CACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,8BAA8B,EAAE;gBACtD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,MAAM,CAAC,aAAa,CAAC;aACtB,CAAC,CACH,CACF,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAA;QACxC,CAAC;QAED,sVAAsV;QACtV,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACrB,IAAI,KAAK,CACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAAE;gBACrD,MAAM,CAAC,aAAa,CAAC;aACtB,CAAC,CACH,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IAC7D,KAAK,CAAC,8BAA8B;QAG5C,IAAI,CAAC;YACH,OAAO,MAAM,yBAAyB,EAAE,CAAA;QAC1C,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,qEAAqE;YACrE,6RAA6R;YAC7R,IACE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBACpC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAC9B,CAAC;gBACD,wCAAwC;gBACxC,MAAM,CAAC,KAAK;gBACV,gGAAgG;gBAChG,IAAI,CAAA,8FAA8F,EAAE,EAAE,CACvG,CAAA;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iCAAiC,EAAE;gBACzD,eAAe,CAAC,EAAE,CAAC;aACpB,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC,CAAA;QAC5E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAE,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAC3C,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC/B,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,YAAY,CACvD,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAC3C,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACzE,CAAC;CACF;AApKc;IADZ,GAAG;qDAyBH"}
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;iBACT,CAAC,CACH,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAES,eAAe;QACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,CACrB,iCAAiC,CAAC,SAAS,CAAC,MAAM,CAAC,EACnD,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACtC,CACF,CAAA;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAChD,CAAC;QAED,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC,GACnE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE;YACrB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,wBAAwB,EAAE;SAChC,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAClE,CAAA;QACH,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAC1B,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;QAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAA;QAC3C,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,oEAAoE;IAC1D,KAAK,CAAC,wBAAwB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,OAAO;oBACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,MAAM,CAAC,CAAC;iBACnE,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,sEAAsE;YACtE,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,IAAI,GACR,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAE,KAA+B,CAAC,IAAI;gBACvC,CAAC,CAAC,SAAS,CAAA;YACf,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iCAAiC,EAAE;wBACzD,MAAM;wBACN,eAAe,CAAC,KAAK,CAAC;qBACvB,CAAC;iBACH,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAC3B,OAAO,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACxC,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QAEhD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3D,MAAM,iBAAiB,GAAG,SAAS;iBAChC,gBAAgB,EAAE;iBAClB,WAAW,EAAE,CAAC,gBAAgB,CAAA;YACjC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK;YACV,gGAAgG;YAChG,IAAI,CAAA,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CACjF,CAAA;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAA;QACjE,mQAAmQ;QACnQ,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAE1C,MAAM,QAAQ,GAAY,EAAE,CAAA;QAE5B,wfAAwf;QACxf,IACE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YACpC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,EACtC,CAAC;YACD,wDAAwD;YACxD,QAAQ,CAAC,IAAI,CACX,IAAI,KAAK,CACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,8BAA8B,EAAE;gBACtD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,MAAM,CAAC,aAAa,CAAC;aACtB,CAAC,CACH,CACF,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAA;QACxC,CAAC;QAED,sVAAsV;QACtV,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAA;YACtC,QAAQ,CAAC,IAAI,CACX,IAAI,KAAK,CACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAAE;gBACrD,MAAM,CAAC,aAAa,CAAC;aACtB,CAAC,CACH,CACF,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IAC7D,KAAK,CAAC,8BAA8B;QAG5C,IAAI,CAAC;YACH,OAAO,MAAM,yBAAyB,EAAE,CAAA;QAC1C,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,qEAAqE;YACrE,6RAA6R;YAC7R,IACE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBACpC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAC9B,CAAC;gBACD,wCAAwC;gBACxC,MAAM,CAAC,KAAK;gBACV,gGAAgG;gBAChG,IAAI,CAAA,8FAA8F,EAAE,EAAE,CACvG,CAAA;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iCAAiC,EAAE;gBACzD,eAAe,CAAC,EAAE,CAAC;aACpB,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAE,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAC3C,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC/B,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,YAAY,CACvD,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAC3C,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACzE,CAAC;CACF;AAlLc;IADZ,GAAG;qDAoCH"}
@@ -4,6 +4,7 @@ export declare const resetWrittenFiles: () => void;
4
4
  export declare const readPathFromGit: (forRef: FileGitRef, config: Config) => Promise<string>;
5
5
  export declare const pathExists: (path: string, config: Config) => Promise<boolean>;
6
6
  export declare const readDirs: (paths: string | string[], config: Config) => Promise<string[]>;
7
- export declare const grepContent: (pattern: string, path: string | string[], config: Config) => Promise<string[]>;
7
+ export declare const grepContentUnder: (pattern: string, path: string | string[], config: Config) => Promise<string[]>;
8
+ export declare const grepContentMatching: (pattern: string, pathspecs: string | string[], config: Config) => Promise<string[]>;
8
9
  export declare const contentIncludes: (pattern: string, path: string, config: Config) => Promise<boolean>;
9
10
  export declare const writeFile: (path: string, content: string, config: Config) => Promise<void>;
@@ -30,12 +30,16 @@ export const readDirs = async (paths, config) => {
30
30
  const gitAdapter = GitAdapter.getInstance(config);
31
31
  return await gitAdapter.getFilesPath(paths);
32
32
  };
33
- export const grepContent = async (pattern, path, config) => {
33
+ export const grepContentUnder = async (pattern, path, config) => {
34
34
  const gitAdapter = GitAdapter.getInstance(config);
35
- return await gitAdapter.gitGrep(pattern, path);
35
+ return await gitAdapter.grepUnderPaths(pattern, path);
36
+ };
37
+ export const grepContentMatching = async (pattern, pathspecs, config) => {
38
+ const gitAdapter = GitAdapter.getInstance(config);
39
+ return await gitAdapter.grepMatchingPathspecs(pattern, pathspecs);
36
40
  };
37
41
  export const contentIncludes = async (pattern, path, config) => {
38
- const results = await grepContent(pattern, path, config);
42
+ const results = await grepContentUnder(pattern, path, config);
39
43
  return results.length > 0;
40
44
  };
41
45
  export const writeFile = async (path, content, config) => {
@@ -1 +1 @@
1
- {"version":3,"file":"fsHelper.js","sourceRoot":"","sources":["../../src/utils/fsHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fsHelper.js","sourceRoot":"","sources":["../../src/utils/fsHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const sanitizeForMessage: (value: string) => string;
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+ // Untrusted values (a raw --source-dir value, an accepted source scope) get
3
+ // echoed back verbatim into error/warning messages. Neither is guaranteed
4
+ // printable: an ANSI escape sequence survives into a terminal, a newline is
5
+ // a legal git path character that would forge an extra log line, and a
6
+ // bidi override (Cf, e.g. U+202E) or line/paragraph separator (U+2028,
7
+ // U+2029) can reverse or restructure the rendered line in a bidi-aware
8
+ // viewer (terminals, the GitHub Actions log viewer, browsers) — a Trojan
9
+ // Source-style attack. Strip all of these before the value reaches a
10
+ // message string, and cap the length so a single value cannot blow out the
11
+ // message.
12
+ const CONTROL_CHARS_REGEX = /[\p{Cc}\p{Cf}\u2028\u2029]/gu;
13
+ const BACKSLASH_REGEX = /\\/g;
14
+ const MAX_MESSAGE_VALUE_LENGTH = 200;
15
+ const TRUNCATION_MARKER = '…';
16
+ // A fixed-width \xHH / \xHHHH escape is ambiguous: a 2-digit escape
17
+ // followed by two literal hex digits reads identically to a 4-digit one
18
+ // (e.g. escaping U+0006 next to a literal "00" and escaping U+0600 both
19
+ // produce "\x0600"), and astral format characters need a 5th digit anyway,
20
+ // so padding can never make every width uniform. The `\u{...}` delimited
21
+ // form is unambiguous at any width — the closing brace is the only valid
22
+ // terminator — and is itself valid ECMAScript escape syntax.
23
+ const escapeControlChar = (char) => {
24
+ // The regex only ever hands back a non-empty matched substring, so
25
+ // codePointAt(0) is guaranteed to resolve.
26
+ const codePoint = char.codePointAt(0);
27
+ return `\\u{${codePoint.toString(16)}}`;
28
+ };
29
+ export const sanitizeForMessage = (value) => {
30
+ // Truncate on code points (not UTF-16 code units) before escaping: a
31
+ // surrogate pair must never be split, and escaping only the already-
32
+ // capped substring guarantees every emitted \u{...} escape is complete —
33
+ // slicing an already-escaped string can otherwise cut mid-escape.
34
+ const codePoints = Array.from(value);
35
+ const isTruncated = codePoints.length > MAX_MESSAGE_VALUE_LENGTH;
36
+ const capped = isTruncated
37
+ ? codePoints.slice(0, MAX_MESSAGE_VALUE_LENGTH).join('')
38
+ : value;
39
+ // Escape literal backslashes first so a real control-char escape (which
40
+ // is introduced afterwards) can never be confused with one that was
41
+ // already present in the input — otherwise 'a\u{a}' and an actual
42
+ // newline would sanitize to the same string.
43
+ const escaped = capped
44
+ .replace(BACKSLASH_REGEX, '\\\\')
45
+ .replace(CONTROL_CHARS_REGEX, escapeControlChar);
46
+ return isTruncated ? `${escaped}${TRUNCATION_MARKER}` : escaped;
47
+ };
48
+ //# sourceMappingURL=messageSanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageSanitizer.js","sourceRoot":"","sources":["../../src/utils/messageSanitizer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,2EAA2E;AAC3E,WAAW;AACX,MAAM,mBAAmB,GAAG,8BAA8B,CAAA;AAC1D,MAAM,eAAe,GAAG,KAAK,CAAA;AAC7B,MAAM,wBAAwB,GAAG,GAAG,CAAA;AACpC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,oEAAoE;AACpE,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,mEAAmE;IACnE,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;IACtC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE;IAC1D,qEAAqE;IACrE,qEAAqE;IACrE,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,wBAAwB,CAAA;IAChE,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,KAAK,CAAA;IACT,wEAAwE;IACxE,oEAAoE;IACpE,kEAAkE;IAClE,6CAA6C;IAC7C,MAAM,OAAO,GAAG,MAAM;SACnB,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;SAChC,OAAO,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAA;IAClD,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AACjE,CAAC,CAAA"}
@@ -2,7 +2,6 @@ import type { Writable } from 'node:stream';
2
2
  import type { Config } from '../../types/config.js';
3
3
  import type { SharedFileMetadata } from '../../types/metadata.js';
4
4
  import { type CompareEntry } from './streamingDiff.js';
5
- import { type RootCapture } from './xmlEventReader.js';
6
5
  export type DiffOutcome = {
7
6
  manifests: {
8
7
  added: CompareEntry[];
@@ -24,4 +23,3 @@ export default class MetadataDiff {
24
23
  constructor(config: Config, inFileAttributes: Map<string, SharedFileMetadata>);
25
24
  run(path: string): Promise<DiffOutcome>;
26
25
  }
27
- export type { CompareEntry, RootCapture };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAKZ,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAiB5B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAEZ,MAAM;IACN,gBAAgB;IAFnC,YACmB,MAAc,EACd,gBAAiD;sBADjD,MAAM;gCACN,gBAAgB;IAChC,CAAC;IAGE,AAAN,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,qEAAqE;QACrE,kEAAkE;QAClE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAC7B,IAAI,CAAC,MAAM,CACZ,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAC/B,IAAI,CAAC,MAAM,CACZ,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAA;QACD,MAAM,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;QAC/D,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;QACnE,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,MAAM,WAAW,GAAuB,QAAQ;YAC9C,CAAC,CAAC,MAAM,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAA;QACR,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAC9C,OAAO;YACL,SAAS,EAAE;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAA;IACH,CAAC;CACF;AA1CO;IADL,GAAG;uCA0CH"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;AAKZ,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAe5B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAEZ,MAAM;IACN,gBAAgB;IAFnC,YACmB,MAAc,EACd,gBAAiD;sBADjD,MAAM;gCACN,gBAAgB;IAChC,CAAC;IAGE,AAAN,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,qEAAqE;QACrE,kEAAkE;QAClE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAC7B,IAAI,CAAC,MAAM,CACZ,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAC/B,IAAI,CAAC,MAAM,CACZ,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAA;QACD,MAAM,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;QAC/D,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;QACnE,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,MAAM,WAAW,GAAuB,QAAQ;YAC9C,CAAC,CAAC,MAAM,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAA;QACR,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAC9C,OAAO;YACL,SAAS,EAAE;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAA;IACH,CAAC;CACF;AA1CO;IADL,GAAG;uCA0CH"}
@@ -41,7 +41,6 @@ export declare class StreamingDiff {
41
41
  private readonly added;
42
42
  private readonly modified;
43
43
  private readonly deleted;
44
- private hasAnyChanges;
45
44
  private hasSurvivingChange;
46
45
  constructor(attributes: Map<string, SharedFileMetadata>, generateDelta: boolean);
47
46
  onFromElement: SubTypeElementHandler;
@@ -58,8 +57,7 @@ export declare class StreamingDiff {
58
57
  private retainSubTypeElement;
59
58
  private drainArrays;
60
59
  private drainObjectFingerprints;
61
- private drainKeyless;
62
- private drainUnknown;
60
+ private drainWholeBucket;
63
61
  private drainDeletions;
64
62
  private recordDeleted;
65
63
  private appendBounded;
@@ -49,7 +49,6 @@ export class StreamingDiff {
49
49
  added = [];
50
50
  modified = [];
51
51
  deleted = [];
52
- hasAnyChanges = false;
53
52
  hasSurvivingChange = false;
54
53
  constructor(attributes, generateDelta) {
55
54
  this.attributes = attributes;
@@ -119,8 +118,8 @@ export class StreamingDiff {
119
118
  finalize() {
120
119
  this.drainArrays();
121
120
  this.drainObjectFingerprints();
122
- this.drainKeyless();
123
- this.drainUnknown();
121
+ this.drainWholeBucket(this.passTwo.toKeyless, this.passOne.fromKeyless);
122
+ this.drainWholeBucket(this.passTwo.toUnknown, this.passOne.fromUnknown);
124
123
  this.drainDeletions();
125
124
  return {
126
125
  added: this.added,
@@ -130,14 +129,9 @@ export class StreamingDiff {
130
129
  };
131
130
  }
132
131
  buildWriter(rootCapture) {
133
- if (!this.generateDelta || !this.hasAnyChanges || !rootCapture) {
132
+ if (!this.generateDelta || !this.hasSurvivingChange || !rootCapture) {
134
133
  return undefined;
135
134
  }
136
- // No surviving children means the pruned output is just the empty
137
- // root tag, which legacy treated as "do not emit". Skipping here keeps
138
- // delete-only files out of the delta output entirely.
139
- if (this.prunedBySubType.size === 0)
140
- return undefined;
141
135
  const rootChildren = this.collectRootChildren(rootCapture);
142
136
  return async (out) => {
143
137
  // Per-file pruned XML retains the legacy trailing newline (matches
@@ -182,13 +176,11 @@ export class StreamingDiff {
182
176
  this.retainSubTypeElement(subType, element);
183
177
  }
184
178
  recordAdded(subType, member) {
185
- this.hasAnyChanges = true;
186
179
  if (this.isPackageable(subType)) {
187
180
  this.added.push({ type: this.xmlNameOf(subType), member });
188
181
  }
189
182
  }
190
183
  recordModified(subType, member) {
191
- this.hasAnyChanges = true;
192
184
  if (this.isPackageable(subType)) {
193
185
  this.modified.push({ type: this.xmlNameOf(subType), member });
194
186
  }
@@ -219,7 +211,6 @@ export class StreamingDiff {
219
211
  // Stryker disable next-line ArrayDeclaration -- equivalent: an injected default never matches a real toArr in deepEqual, so the change-detected outcome is identical
220
212
  const fromArr = this.passOne.fromArrays.get(subType) ?? [];
221
213
  if (!deepEqualJson(fromArr, toArr)) {
222
- this.hasAnyChanges = true;
223
214
  this.hasSurvivingChange = true;
224
215
  // Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
225
216
  if (this.generateDelta)
@@ -236,7 +227,6 @@ export class StreamingDiff {
236
227
  retained.push(element);
237
228
  }
238
229
  if (retained.length > 0) {
239
- this.hasAnyChanges = true;
240
230
  this.hasSurvivingChange = true;
241
231
  // Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
242
232
  if (this.generateDelta)
@@ -244,48 +234,22 @@ export class StreamingDiff {
244
234
  }
245
235
  }
246
236
  }
247
- drainKeyless() {
248
- for (const [subType, toArr] of this.passTwo.toKeyless.entries()) {
249
- // Stryker disable next-line ArrayDeclaration -- equivalent: an injected default never matches a real toArr in the changed/deepEqual computation, so the outcome is identical
250
- const fromArr = this.passOne.fromKeyless.get(subType) ?? [];
251
- // Stryker disable next-line ConditionalExpression -- killable in principle: forcing changed=false makes hasAnyChanges stay false and the writer short-circuits, leaving produced output empty (covered by the "drainKeyless deepEqual false path" test). The mutant is reported survived likely due to a stryker/vitest perTest analysis quirk; manual mutation simulation confirms the test fails under it.
252
- const changed = fromArr.length === 0 || !deepEqualJson(fromArr, toArr);
253
- if (changed)
254
- this.hasAnyChanges = true;
255
- // Legacy JsonTransformer retains keyless content unconditionally when
256
- // toMeta is non-empty (matches getPartialContentWithoutKey). Keep that
257
- // behavior for byte-equality. The retention also drives the parent
258
- // container manifest decision via hasSurvivingChange — a non-empty
259
- // keyless to-side keeps the parent in package.xml even when content
260
- // happens to match the from-side.
261
- /* v8 ignore start -- defensive: passTwo.toKeyless entries are populated only via appendBounded which always pushes at least one element, so toArr.length === 0 is unreachable */
262
- // Stryker disable next-line ConditionalExpression,EqualityOperator
263
- if (toArr.length > 0) {
264
- /* v8 ignore stop */
265
- this.hasSurvivingChange = true;
266
- // Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
267
- if (this.generateDelta)
268
- this.prunedBySubType.set(subType, toArr);
269
- }
270
- }
271
- }
272
- drainUnknown() {
273
- for (const [subType, toArr] of this.passTwo.toUnknown.entries()) {
237
+ drainWholeBucket(toBucket, fromBucket) {
238
+ for (const [subType, toArr] of toBucket.entries()) {
274
239
  // Stryker disable next-line ArrayDeclaration -- equivalent: an injected default never matches a real toArr in the changed/deepEqual computation, so the outcome is identical
275
- const fromArr = this.passOne.fromUnknown.get(subType) ?? [];
276
- // Stryker disable next-line ConditionalExpression -- killable in principle: forcing changed=false makes hasAnyChanges stay false and the writer short-circuits, leaving produced output empty (covered by the "drainUnknown deepEqual false" test). The mutant is reported survived likely due to a stryker/vitest perTest analysis quirk; manual mutation simulation confirms the test fails under it.
277
- const changed = fromArr.length === 0 || !deepEqualJson(fromArr, toArr);
240
+ const fromArr = fromBucket.get(subType) ?? [];
241
+ // An empty fromArr never deep-equals a non-empty toArr, so the
242
+ // absent-bucket case needs no dedicated guard.
243
+ const changed = !deepEqualJson(fromArr, toArr);
278
244
  if (changed)
279
- this.hasAnyChanges = true;
280
- /* v8 ignore start -- defensive: passTwo.toUnknown entries are populated only via appendBounded which always pushes at least one element, so toArr.length === 0 is unreachable */
281
- // Stryker disable next-line ConditionalExpression,EqualityOperator
282
- if (toArr.length > 0) {
283
- /* v8 ignore stop */
284
245
  this.hasSurvivingChange = true;
285
- // Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
286
- if (this.generateDelta)
287
- this.prunedBySubType.set(subType, toArr);
288
- }
246
+ // The pruned file must carry the container's scalar/identity tags
247
+ // alongside whichever children changed, otherwise the emitted XML is
248
+ // not deployable — so retention is unconditional even when the bucket
249
+ // content is byte-identical.
250
+ // Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
251
+ if (this.generateDelta)
252
+ this.prunedBySubType.set(subType, toArr);
289
253
  }
290
254
  }
291
255
  drainDeletions() {
@@ -308,8 +272,6 @@ export class StreamingDiff {
308
272
  }
309
273
  }
310
274
  recordDeleted(subType, member) {
311
- // Stryker disable next-line BooleanLiteral -- equivalent: a delete-only file has prunedBySubType empty, so buildWriter short-circuits via the second size===0 gate regardless of hasAnyChanges
312
- this.hasAnyChanges = true;
313
275
  this.deleted.push({ type: this.xmlNameOf(subType), member });
314
276
  }
315
277
  appendBounded(bucket, subType, element) {
@@ -1 +1 @@
1
- {"version":3,"file":"streamingDiff.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/streamingDiff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamingDiff.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/streamingDiff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ declare const PATHSPEC_BRAND: unique symbol;
2
+ export type Pathspec = string & {
3
+ readonly [PATHSPEC_BRAND]: true;
4
+ };
5
+ export type SourceDirRejectionReason = 'empty' | 'magic' | 'wildcard' | 'absolute' | 'escapes';
6
+ export type SourceDirRejection = Readonly<{
7
+ value: string;
8
+ reason: SourceDirRejectionReason;
9
+ }>;
10
+ export type ParsedSourceDirs = Readonly<{
11
+ pathspecs: Pathspec[];
12
+ rejections: SourceDirRejection[];
13
+ }>;
14
+ export declare const parseSourceDirs: (raw: string[]) => ParsedSourceDirs;
15
+ export {};
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+ import { isAbsolute } from 'node:path/posix';
3
+ import { sanitizePath, treatPathSep } from './fsUtils.js';
4
+ // Git pathspec magic prefix: ':(exclude)', ':!', ':(glob)', ':/', ':^' …
5
+ const MAGIC_PREFIX = ':';
6
+ const WILDCARD_CHARS_REGEX = /[*?[]/;
7
+ // Windows drive letter followed by a separator, e.g. 'C:/x' or 'C:\x'.
8
+ // `path.posix.isAbsolute` does not flag these once treatPathSep has run.
9
+ const WINDOWS_DRIVE_REGEX = /^[A-Za-z]:[\\/]/;
10
+ const TRAILING_SLASHES_REGEX = /\/+$/;
11
+ const PATH_SEGMENT_SEP = '/';
12
+ const PARENT_SEGMENT = '..';
13
+ // normalize('.') === '.', normalize('./') === './', normalize('././') === './'
14
+ const ROOT_PATHSPECS = new Set(['.', './']);
15
+ const WHOLE_REPOSITORY = '.';
16
+ const reject = (reason) => ({
17
+ ok: false,
18
+ reason,
19
+ });
20
+ const accept = (value) => ({
21
+ ok: true,
22
+ value: value,
23
+ });
24
+ // Steps 1-5 run on the raw value, before normalisation destroys the evidence
25
+ // they test for: a leading ':', a Windows drive letter, or a '..' segment
26
+ // all survive treatPathSep/normalize as an innocuous-looking literal —
27
+ // normalize('force-app/..') cancels straight down to '.', which is why the
28
+ // '..' check must see the segment before normalize resolves it away.
29
+ const hasParentSegment = (raw) => treatPathSep(raw).split(PATH_SEGMENT_SEP).includes(PARENT_SEGMENT);
30
+ const rejectRawValue = (raw) => {
31
+ if (raw === '')
32
+ return 'empty';
33
+ if (raw.startsWith(MAGIC_PREFIX))
34
+ return 'magic';
35
+ if (WILDCARD_CHARS_REGEX.test(raw))
36
+ return 'wildcard';
37
+ if (WINDOWS_DRIVE_REGEX.test(raw))
38
+ return 'absolute';
39
+ if (hasParentSegment(raw))
40
+ return 'escapes';
41
+ return undefined;
42
+ };
43
+ const canonicalise = (raw) => {
44
+ const rawRejection = rejectRawValue(raw);
45
+ if (rawRejection)
46
+ return reject(rawRejection);
47
+ const value = sanitizePath(raw);
48
+ if (isAbsolute(value))
49
+ return reject('absolute');
50
+ if (ROOT_PATHSPECS.has(value))
51
+ return accept(WHOLE_REPOSITORY);
52
+ return accept(value.replace(TRAILING_SLASHES_REGEX, ''));
53
+ };
54
+ export const parseSourceDirs = (raw) => {
55
+ const pathspecs = [];
56
+ const rejections = [];
57
+ const seen = new Set();
58
+ for (const value of raw) {
59
+ const result = canonicalise(value);
60
+ if (!result.ok) {
61
+ rejections.push({ value, reason: result.reason });
62
+ continue;
63
+ }
64
+ if (seen.has(result.value))
65
+ continue;
66
+ seen.add(result.value);
67
+ pathspecs.push(result.value);
68
+ }
69
+ return { pathspecs, rejections };
70
+ };
71
+ //# sourceMappingURL=pathspec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathspec.js","sourceRoot":"","sources":["../../src/utils/pathspec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import type { MetadataRepository } from '../metadata/MetadataRepository.js';
2
- import type { Work } from '../types/work.js';
3
- import type ChangeSet from './changeSet.js';
2
+ import type { Config } from '../types/config.js';
3
+ import type { RenameTriple } from './changeSet.js';
4
4
  import type { RenamePathPair } from './repoGitDiff.js';
5
5
  /**
6
6
  * Turns the `{ fromPath, toPath }` pairs git emitted for `-M` renames into
7
- * `ChangeSet.recordRename(type, from, to)` calls by re-using the handler
8
- * machinery to resolve each side to its Salesforce (type, member).
7
+ * `RenameTriple` values by re-using the handler machinery to resolve each
8
+ * side to its Salesforce (type, member).
9
9
  *
10
10
  * Pairs where metadata resolution fails (ignored path, unknown type) or where
11
11
  * the from/to side land on the same component are skipped — those reduce to
@@ -13,7 +13,7 @@ import type { RenamePathPair } from './repoGitDiff.js';
13
13
  */
14
14
  export default class RenameResolver {
15
15
  private readonly factory;
16
- constructor(work: Work, metadata: MetadataRepository);
17
- apply(changes: ChangeSet, pairs: readonly RenamePathPair[]): Promise<void>;
16
+ constructor(config: Config, metadata: MetadataRepository);
17
+ resolve(pairs: readonly RenamePathPair[]): Promise<readonly RenameTriple[]>;
18
18
  private _resolve;
19
19
  }