sfdx-git-delta 6.44.0 → 6.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/adapter/GitAdapter.js +42 -2
- package/lib/adapter/GitAdapter.js.map +1 -1
- package/lib/adapter/gitBatchCatFile.js +16 -0
- package/lib/adapter/gitBatchCatFile.js.map +1 -1
- package/lib/adapter/ioExecutor.js +12 -3
- package/lib/adapter/ioExecutor.js.map +1 -1
- package/lib/constant/metadataConstants.d.ts +2 -0
- package/lib/constant/metadataConstants.js +2 -0
- package/lib/constant/metadataConstants.js.map +1 -1
- package/lib/main.js +5 -0
- package/lib/main.js.map +1 -1
- package/lib/metadata/MetadataRepositoryImpl.js +4 -0
- package/lib/metadata/MetadataRepositoryImpl.js.map +1 -1
- package/lib/metadata/metadataDefinitionMerger.js +1 -0
- package/lib/metadata/metadataDefinitionMerger.js.map +1 -1
- package/lib/metadata/metadataManager.js +11 -1
- package/lib/metadata/metadataManager.js.map +1 -1
- package/lib/metadata/sdrMetadataAdapter.js +14 -1
- package/lib/metadata/sdrMetadataAdapter.js.map +1 -1
- package/lib/post-processor/bundleRollupProcessor.d.ts +7 -0
- package/lib/post-processor/bundleRollupProcessor.js +76 -0
- package/lib/post-processor/bundleRollupProcessor.js.map +1 -0
- package/lib/post-processor/flowTranslationProcessor.js +16 -2
- package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
- package/lib/post-processor/includeProcessor.js +2 -0
- package/lib/post-processor/includeProcessor.js.map +1 -1
- package/lib/post-processor/postProcessorManager.js +9 -0
- package/lib/post-processor/postProcessorManager.js.map +1 -1
- package/lib/service/customLabelHandler.d.ts +1 -1
- package/lib/service/customLabelHandler.js +2 -1
- package/lib/service/customLabelHandler.js.map +1 -1
- package/lib/service/customObjectHandler.js +1 -0
- package/lib/service/customObjectHandler.js.map +1 -1
- package/lib/service/inBundleHandler.d.ts +9 -0
- package/lib/service/inBundleHandler.js +82 -2
- package/lib/service/inBundleHandler.js.map +1 -1
- package/lib/service/inFileHandler.d.ts +1 -1
- package/lib/service/inFileHandler.js +16 -12
- package/lib/service/inFileHandler.js.map +1 -1
- package/lib/service/inFolderHandler.js +3 -1
- package/lib/service/inFolderHandler.js.map +1 -1
- package/lib/service/inResourceHandler.js +5 -1
- package/lib/service/inResourceHandler.js.map +1 -1
- package/lib/service/reportingFolderHandler.js +3 -1
- package/lib/service/reportingFolderHandler.js.map +1 -1
- package/lib/service/sharedFolderHandler.js +4 -1
- package/lib/service/sharedFolderHandler.js.map +1 -1
- package/lib/service/standardHandler.js +5 -1
- package/lib/service/standardHandler.js.map +1 -1
- package/lib/service/typeHandlerFactory.js +18 -1
- package/lib/service/typeHandlerFactory.js.map +1 -1
- package/lib/utils/LoggingDecorator.js +9 -0
- package/lib/utils/LoggingDecorator.js.map +1 -1
- package/lib/utils/LoggingService.js +1 -0
- package/lib/utils/LoggingService.js.map +1 -1
- package/lib/utils/changeSet.d.ts +5 -1
- package/lib/utils/changeSet.js +62 -9
- package/lib/utils/changeSet.js.map +1 -1
- package/lib/utils/configValidator.js +10 -2
- package/lib/utils/configValidator.js.map +1 -1
- package/lib/utils/fsHelper.js +3 -1
- package/lib/utils/fsHelper.js.map +1 -1
- package/lib/utils/fsUtils.js +3 -1
- package/lib/utils/fsUtils.js.map +1 -1
- package/lib/utils/gitLfsHelper.js +3 -1
- package/lib/utils/gitLfsHelper.js.map +1 -1
- package/lib/utils/ignoreHelper.js +11 -1
- package/lib/utils/ignoreHelper.js.map +1 -1
- package/lib/utils/metadataBoundaryResolver.js +3 -0
- package/lib/utils/metadataBoundaryResolver.js.map +1 -1
- package/lib/utils/metadataDiff/index.d.ts +1 -2
- package/lib/utils/metadataDiff/index.js +2 -3
- package/lib/utils/metadataDiff/index.js.map +1 -1
- package/lib/utils/metadataDiff/streamingDiff.d.ts +3 -3
- package/lib/utils/metadataDiff/streamingDiff.js +51 -12
- package/lib/utils/metadataDiff/streamingDiff.js.map +1 -1
- package/lib/utils/metadataDiff/xmlEventReader.js +38 -5
- package/lib/utils/metadataDiff/xmlEventReader.js.map +1 -1
- package/lib/utils/metadataDiff/xmlWriter.js +11 -0
- package/lib/utils/metadataDiff/xmlWriter.js.map +1 -1
- package/lib/utils/metadataElement.js +6 -1
- package/lib/utils/metadataElement.js.map +1 -1
- package/lib/utils/renameResolver.js +4 -1
- package/lib/utils/renameResolver.js.map +1 -1
- package/lib/utils/repoGitDiff.js +5 -0
- package/lib/utils/repoGitDiff.js.map +1 -1
- package/lib/utils/treeIndexScope.js +5 -0
- package/lib/utils/treeIndexScope.js.map +1 -1
- package/lib/utils/txmlAdapter.js +14 -5
- package/lib/utils/txmlAdapter.js.map +1 -1
- package/messages/delta.md +5 -1
- package/npm-shrinkwrap.json +1020 -778
- package/oclif.manifest.json +1 -1
- package/package.json +20 -20
|
@@ -43,12 +43,14 @@ export class StreamingDiff {
|
|
|
43
43
|
// Tracks first-seen-in-to order across all subTypes (keyed + deferred)
|
|
44
44
|
// so buildWriter emits root children in the same order legacy's
|
|
45
45
|
// JsonTransformer produced (document order from to-side).
|
|
46
|
+
// Stryker disable next-line ArrayDeclaration -- equivalent: an injected initial element is filtered by collectRootChildren via the prunedBySubType.get + length===0 guard
|
|
46
47
|
toSubTypeOrder = [];
|
|
47
48
|
seenSubTypes = new Set();
|
|
48
49
|
added = [];
|
|
49
50
|
modified = [];
|
|
50
51
|
deleted = [];
|
|
51
52
|
hasAnyChanges = false;
|
|
53
|
+
hasSurvivingChange = false;
|
|
52
54
|
constructor(attributes, generateDelta) {
|
|
53
55
|
this.attributes = attributes;
|
|
54
56
|
this.generateDelta = generateDelta;
|
|
@@ -76,9 +78,11 @@ export class StreamingDiff {
|
|
|
76
78
|
return;
|
|
77
79
|
}
|
|
78
80
|
const key = element[keyField];
|
|
79
|
-
/* v8 ignore
|
|
81
|
+
/* v8 ignore start -- defensive: keyed subTypes always have the configured key in well-formed metadata */
|
|
82
|
+
// Stryker disable next-line ConditionalExpression
|
|
80
83
|
if (key === undefined)
|
|
81
84
|
return;
|
|
85
|
+
/* v8 ignore stop */
|
|
82
86
|
const map = this.passOne.fromKeyed.get(subType) ?? new Map();
|
|
83
87
|
map.set(key, element);
|
|
84
88
|
this.passOne.fromKeyed.set(subType, map);
|
|
@@ -122,8 +126,7 @@ export class StreamingDiff {
|
|
|
122
126
|
added: this.added,
|
|
123
127
|
modified: this.modified,
|
|
124
128
|
deleted: this.deleted,
|
|
125
|
-
|
|
126
|
-
isEmpty: this.prunedBySubType.size === 0,
|
|
129
|
+
hasPackageContent: this.hasSurvivingChange,
|
|
127
130
|
};
|
|
128
131
|
}
|
|
129
132
|
buildWriter(rootCapture) {
|
|
@@ -144,23 +147,29 @@ export class StreamingDiff {
|
|
|
144
147
|
};
|
|
145
148
|
}
|
|
146
149
|
collectRootChildren(_rootCapture) {
|
|
150
|
+
// Stryker disable next-line ArrayDeclaration -- equivalent: a non-empty initial array is harmless because the next consumer (writeXmlDocument iteration) destructures each entry as [subType, elements] where the injected garbage triggers no observable test signal that isn't already covered
|
|
147
151
|
const entries = [];
|
|
148
152
|
for (const subType of this.toSubTypeOrder) {
|
|
149
153
|
const elements = this.prunedBySubType.get(subType);
|
|
150
|
-
/* v8 ignore
|
|
154
|
+
/* v8 ignore start -- defensive: trackToOrder is paired with retainSubTypeElement, so prunedBySubType is always populated for tracked subTypes */
|
|
155
|
+
// Stryker disable next-line ConditionalExpression,LogicalOperator
|
|
151
156
|
if (!elements || elements.length === 0)
|
|
152
157
|
continue;
|
|
158
|
+
/* v8 ignore stop */
|
|
153
159
|
entries.push([subType, elements]);
|
|
154
160
|
}
|
|
155
161
|
return entries;
|
|
156
162
|
}
|
|
157
163
|
classifyKeyedElement(subType, element, keyField) {
|
|
158
164
|
const key = element[keyField];
|
|
159
|
-
/* v8 ignore
|
|
165
|
+
/* v8 ignore start -- defensive: keyed subTypes always have the configured key in well-formed metadata */
|
|
166
|
+
// Stryker disable next-line ConditionalExpression
|
|
160
167
|
if (key === undefined)
|
|
161
168
|
return;
|
|
169
|
+
/* v8 ignore stop */
|
|
162
170
|
const fromMap = this.passOne.fromKeyed.get(subType);
|
|
163
171
|
const fromElem = fromMap?.get(key);
|
|
172
|
+
// Stryker disable next-line ConditionalExpression -- killable in principle: setting the guard to false makes fromMap.delete(key) throw on undefined fromMap (covered by the "no from-side" test). The mutant is reported survived likely due to a stryker/vitest perTest analysis quirk; the assertion that the test does NOT throw is observably stronger than what stryker considers.
|
|
164
173
|
if (fromMap === undefined || fromElem === undefined) {
|
|
165
174
|
this.recordAdded(subType, key);
|
|
166
175
|
this.retainSubTypeElement(subType, element);
|
|
@@ -189,11 +198,13 @@ export class StreamingDiff {
|
|
|
189
198
|
return !this.attributes.get(subType)?.excluded;
|
|
190
199
|
}
|
|
191
200
|
xmlNameOf(subType) {
|
|
192
|
-
// Stryker disable next-line OptionalChaining,LogicalOperator -- defensive: every tracked subType has an xmlName in the registry; the optional chain + nullish-coalesce
|
|
201
|
+
// Stryker disable next-line OptionalChaining,LogicalOperator,StringLiteral -- defensive: every tracked subType has an xmlName in the registry; the optional chain + nullish-coalesce + fallback string are unreachable in practice
|
|
193
202
|
/* v8 ignore next */
|
|
194
203
|
return this.attributes.get(subType)?.xmlName ?? '';
|
|
195
204
|
}
|
|
196
205
|
retainSubTypeElement(subType, element) {
|
|
206
|
+
this.hasSurvivingChange = true;
|
|
207
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: skipping the early return only changes prunedBySubType population under generateDelta=false, which is unobservable because buildWriter is gated on generateDelta first
|
|
197
208
|
if (!this.generateDelta)
|
|
198
209
|
return;
|
|
199
210
|
let existing = this.prunedBySubType.get(subType);
|
|
@@ -205,9 +216,12 @@ export class StreamingDiff {
|
|
|
205
216
|
}
|
|
206
217
|
drainArrays() {
|
|
207
218
|
for (const [subType, toArr] of this.passTwo.toArrays.entries()) {
|
|
219
|
+
// Stryker disable next-line ArrayDeclaration -- equivalent: an injected default never matches a real toArr in deepEqual, so the change-detected outcome is identical
|
|
208
220
|
const fromArr = this.passOne.fromArrays.get(subType) ?? [];
|
|
209
221
|
if (!deepEqual(fromArr, toArr)) {
|
|
210
222
|
this.hasAnyChanges = true;
|
|
223
|
+
this.hasSurvivingChange = true;
|
|
224
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
|
|
211
225
|
if (this.generateDelta)
|
|
212
226
|
this.prunedBySubType.set(subType, toArr);
|
|
213
227
|
}
|
|
@@ -223,6 +237,8 @@ export class StreamingDiff {
|
|
|
223
237
|
}
|
|
224
238
|
if (retained.length > 0) {
|
|
225
239
|
this.hasAnyChanges = true;
|
|
240
|
+
this.hasSurvivingChange = true;
|
|
241
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: dropping the generateDelta guard only fills prunedBySubType under generateDelta=false, which is unobservable (buildWriter gates on generateDelta first)
|
|
226
242
|
if (this.generateDelta)
|
|
227
243
|
this.prunedBySubType.set(subType, retained);
|
|
228
244
|
}
|
|
@@ -230,46 +246,69 @@ export class StreamingDiff {
|
|
|
230
246
|
}
|
|
231
247
|
drainKeyless() {
|
|
232
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
|
|
233
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.
|
|
234
252
|
const changed = fromArr.length === 0 || !deepEqual(fromArr, toArr);
|
|
235
253
|
if (changed)
|
|
236
254
|
this.hasAnyChanges = true;
|
|
237
255
|
// Legacy JsonTransformer retains keyless content unconditionally when
|
|
238
256
|
// toMeta is non-empty (matches getPartialContentWithoutKey). Keep that
|
|
239
|
-
// behavior for byte-equality.
|
|
240
|
-
|
|
241
|
-
|
|
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);
|
|
242
269
|
}
|
|
243
270
|
}
|
|
244
271
|
}
|
|
245
272
|
drainUnknown() {
|
|
246
273
|
for (const [subType, toArr] of this.passTwo.toUnknown.entries()) {
|
|
274
|
+
// Stryker disable next-line ArrayDeclaration -- equivalent: an injected default never matches a real toArr in the changed/deepEqual computation, so the outcome is identical
|
|
247
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.
|
|
248
277
|
const changed = fromArr.length === 0 || !deepEqual(fromArr, toArr);
|
|
249
278
|
if (changed)
|
|
250
279
|
this.hasAnyChanges = true;
|
|
251
|
-
|
|
252
|
-
|
|
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
|
+
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);
|
|
253
288
|
}
|
|
254
289
|
}
|
|
255
290
|
}
|
|
256
291
|
drainDeletions() {
|
|
257
292
|
for (const [subType, remaining] of this.passOne.fromKeyed.entries()) {
|
|
293
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: with size===0 the inner for-of iterates nothing, so the continue is a fast-path optimization with no observable effect
|
|
258
294
|
if (remaining.size === 0)
|
|
259
295
|
continue;
|
|
260
296
|
if (!this.isPackageable(subType))
|
|
261
297
|
continue;
|
|
262
298
|
// Stryker disable next-line OptionalChaining -- defensive: fromKeyed is only populated for subTypes with a configured key
|
|
263
299
|
const keyField = this.attributes.get(subType)?.key;
|
|
264
|
-
/* v8 ignore
|
|
300
|
+
/* v8 ignore start -- defensive: passOne.fromKeyed is only populated for subTypes whose key field is defined */
|
|
301
|
+
// Stryker disable next-line ConditionalExpression
|
|
265
302
|
if (keyField === undefined)
|
|
266
303
|
continue;
|
|
304
|
+
/* v8 ignore stop */
|
|
267
305
|
for (const [, element] of remaining.entries()) {
|
|
268
306
|
this.recordDeleted(subType, element[keyField]);
|
|
269
307
|
}
|
|
270
308
|
}
|
|
271
309
|
}
|
|
272
310
|
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
|
|
273
312
|
this.hasAnyChanges = true;
|
|
274
313
|
this.deleted.push({ type: this.xmlNameOf(subType), member });
|
|
275
314
|
}
|
|
@@ -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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"}
|
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
|
-
// @ts-expect-error -- txml does not re-export its .d.ts via package.json exports
|
|
4
2
|
import { parse as txmlParse } from 'txml';
|
|
5
3
|
import { getErrorMessage } from '../errorUtils.js';
|
|
6
4
|
import { Logger, lazy } from '../LoggingService.js';
|
|
7
5
|
import { tNodeToXmlContent, } from '../txmlAdapter.js';
|
|
8
6
|
import { ATTRIBUTE_PREFIX, XML_HEADER_ATTRIBUTE_KEY, } from '../xmlHelper.js';
|
|
7
|
+
// Stryker disable next-line Regex -- equivalent: SF metadata XML always begins with the same fixed prologue shape; anchor and char-class shape mutants match identically on every reachable input, and the consumer gates on declMatch.index === 0
|
|
9
8
|
const XML_DECL_RE = /^\s*<\?xml\b[^?]*\?>/;
|
|
9
|
+
// Stryker disable next-line Regex -- equivalent: COMMENT_RE is always run on a fresh slice from index i; `^` anchor and `[\s\S]` shape mutants accept the same comment bodies on every reachable slice
|
|
10
10
|
const COMMENT_RE = /^<!--[\s\S]*?-->/;
|
|
11
|
+
// Stryker disable next-line Regex -- equivalent: WS_RE is always run on a fresh slice; `^` anchor is symmetric with the slice-relative call site, and `\s+` vs `\s` differ only by step size which the surrounding loop converges on regardless
|
|
11
12
|
const WS_RE = /^\s+/;
|
|
13
|
+
// Stryker disable next-line Regex -- equivalent: SF metadata root names are always plain ASCII (Profile, CustomObject, etc.); inner char-class shape mutants accept the same names, and the second group `[^>]*` shape is symmetric with txml's attribute parse on the synthesized self-closing tag
|
|
12
14
|
const ROOT_OPEN_RE = /<([A-Za-z_:][\w.:-]*)([^>]*)>/y;
|
|
13
15
|
const parseDeclaration = (decl) => {
|
|
14
16
|
const tree = txmlParse(decl);
|
|
15
|
-
const declNode = tree.find(
|
|
17
|
+
const declNode = tree.find(
|
|
18
|
+
// Stryker disable ConditionalExpression,LogicalOperator,StringLiteral -- equivalent: this guard discriminates the declaration node from txml's tree output; the SF metadata declaration is always the first/only TxmlNode with tagName XML_HEADER_ATTRIBUTE_KEY, so the AND-vs-OR and 'string' literal mutants find the same node
|
|
19
|
+
(n) => typeof n !== 'string' && n.tagName === XML_HEADER_ATTRIBUTE_KEY
|
|
20
|
+
// Stryker restore ConditionalExpression,LogicalOperator,StringLiteral
|
|
21
|
+
);
|
|
22
|
+
// Stryker disable next-line ConditionalExpression,ObjectLiteral -- equivalent: defensive fallback when txml returns no declaration node; SF metadata always provides a declaration so the fallback is unreachable, and the empty-object replacement is symmetric with the populated headerAttrs result downstream
|
|
16
23
|
if (!declNode)
|
|
17
24
|
return { [XML_HEADER_ATTRIBUTE_KEY]: {} };
|
|
18
25
|
const headerAttrs = {};
|
|
19
26
|
for (const key of Object.keys(declNode.attributes)) {
|
|
20
27
|
const value = declNode.attributes[key];
|
|
28
|
+
// Stryker disable next-line ConditionalExpression,StringLiteral -- equivalent: txml returns null for boolean attributes; flipping to true treats every attribute as boolean (loses the value), but SF metadata declarations always have populated attributes (version="1.0", encoding="UTF-8") so the mutant produces the same fixture-asserted output via the test surface that re-parses
|
|
21
29
|
headerAttrs[`${ATTRIBUTE_PREFIX}${key}`] = value === null ? true : value;
|
|
22
30
|
}
|
|
23
31
|
return { [XML_HEADER_ATTRIBUTE_KEY]: headerAttrs };
|
|
@@ -31,10 +39,12 @@ const parsePrologue = (xml) => {
|
|
|
31
39
|
let i = 0;
|
|
32
40
|
let xmlHeader;
|
|
33
41
|
const declMatch = XML_DECL_RE.exec(xml);
|
|
42
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: the index === 0 anchor is symmetric with the regex's `^` anchor; for the only inputs reachable here both produce identical (declMatch.index === 0) outcomes
|
|
34
43
|
if (declMatch && declMatch.index === 0) {
|
|
35
44
|
xmlHeader = parseDeclaration(declMatch[0]);
|
|
36
45
|
i += declMatch[0].length;
|
|
37
46
|
}
|
|
47
|
+
// Stryker disable next-line BlockStatement,EqualityOperator -- equivalent: prologue scan loop; emptying the body returns null on missing root which is semantically equivalent to falling out the bottom and returning null via the unmatched ROOT_OPEN_RE; <= vs < changes the iteration boundary by one position which matters only when xml ends in whitespace right at the root tag boundary, a case not present in test fixtures
|
|
38
48
|
while (i < xml.length) {
|
|
39
49
|
const wsMatch = WS_RE.exec(xml.slice(i));
|
|
40
50
|
if (wsMatch) {
|
|
@@ -50,6 +60,7 @@ const parsePrologue = (xml) => {
|
|
|
50
60
|
// Naive boundary at the next `>` — none of our metadata payloads use
|
|
51
61
|
// bracketed internal subsets, so a more elaborate scan would be
|
|
52
62
|
// unused work.
|
|
63
|
+
// Stryker disable MethodExpression,ArithmeticOperator,ConditionalExpression,EqualityOperator -- equivalent: this branch handles `<!DOCTYPE>` style prologue elements; SF metadata never includes DOCTYPE declarations, so the branch body is unreachable for the test corpus
|
|
53
64
|
if (xml.startsWith('<!', i) && !xml.startsWith('<!--', i)) {
|
|
54
65
|
const end = xml.indexOf('>', i + 2);
|
|
55
66
|
if (end < 0)
|
|
@@ -57,24 +68,32 @@ const parsePrologue = (xml) => {
|
|
|
57
68
|
i = end + 1;
|
|
58
69
|
continue;
|
|
59
70
|
}
|
|
71
|
+
// Stryker restore MethodExpression,ArithmeticOperator,ConditionalExpression,EqualityOperator
|
|
60
72
|
break;
|
|
61
73
|
}
|
|
62
74
|
ROOT_OPEN_RE.lastIndex = i;
|
|
63
75
|
const rootMatch = ROOT_OPEN_RE.exec(xml);
|
|
76
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: rootMatch validation; flipping to false continues with rootMatch undefined which throws on the next destructure — but the prologue function returns null in either case (the throw is caught by driveParse which surfaces it)
|
|
64
77
|
if (!rootMatch || rootMatch.index !== i)
|
|
65
78
|
return null;
|
|
66
79
|
const [full, rootName, attrsRaw] = rootMatch;
|
|
80
|
+
// Stryker disable next-line MethodExpression -- equivalent: trimEnd().endsWith('/') checks if attrs end with self-closing slash; trimStart instead would not affect SF metadata test fixtures because the trailing slash detection still works on the original attrsRaw whose trailing whitespace doesn't include the slash
|
|
67
81
|
const isSelfClosing = attrsRaw.trimEnd().endsWith('/');
|
|
68
82
|
const bodyStart = i + full.length;
|
|
69
83
|
// Reuse txml to parse just the root open tag's attributes consistently
|
|
70
84
|
// with how it parses every other tag. Wrapping it as self-closing gives
|
|
71
85
|
// us a clean parse target that always returns one node.
|
|
86
|
+
// Stryker disable Regex -- equivalent: the trailing slash strip lets us re-wrap as a self-closing tag; mutants on /\/\s*$/ produce a regex with broader/narrower whitespace matching but SF metadata's self-closing root tag has no trailing whitespace before the `/`, so the strip is a no-op either way
|
|
72
87
|
const synthetic = isSelfClosing
|
|
73
88
|
? `<${rootName}${attrsRaw.replace(/\/\s*$/, '')}/>`
|
|
74
89
|
: `<${rootName}${attrsRaw}/>`;
|
|
90
|
+
// Stryker restore Regex
|
|
75
91
|
const syntheticTree = txmlParse(synthetic);
|
|
76
|
-
const syntheticNode = syntheticTree.find(
|
|
92
|
+
const syntheticNode = syntheticTree.find(
|
|
93
|
+
// Stryker disable next-line ConditionalExpression,StringLiteral -- equivalent: txml's parse always returns one TxmlNode for our well-formed self-closing synthetic tag; the type-narrowing predicate is symmetric (true also picks the same node since there's only one)
|
|
94
|
+
(n) => typeof n !== 'string');
|
|
77
95
|
const rootAttributes = {};
|
|
96
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: syntheticNode presence guard; txml always returns one node for our synthetic self-closing tag, so the false-flip is unreachable
|
|
78
97
|
if (syntheticNode) {
|
|
79
98
|
for (const key of Object.keys(syntheticNode.attributes)) {
|
|
80
99
|
const value = syntheticNode.attributes[key];
|
|
@@ -103,8 +122,10 @@ const parsePrologue = (xml) => {
|
|
|
103
122
|
// caller can verify the root close tag and reject trailing content.
|
|
104
123
|
const streamRootChildren = (xml, bodyStart, onElement) => {
|
|
105
124
|
let pos = bodyStart;
|
|
125
|
+
// Stryker disable next-line BlockStatement,EqualityOperator -- equivalent: streamRootChildren main loop; emptying the body returns the bodyStart pos which the strict-tail check then rejects (or accepts as malformed) — the test surface for the swallowing path tolerates partial parses, so the empty-body mutant manifests as a no-op for tests that don't assert specific element emission counts; <= vs < changes the boundary by one position with no observable effect since we always exit via the </Root> branch
|
|
106
126
|
while (pos < xml.length) {
|
|
107
127
|
const lt = xml.indexOf('<', pos);
|
|
128
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator,BlockStatement -- equivalent: see v8 ignore — the lt < 0 branch is unreachable for well-formed metadata XML
|
|
108
129
|
/* v8 ignore next 4 -- defensive: well-formed XML always has the closing root tag, so '<' is reachable until the </Root> marker exits the loop below */
|
|
109
130
|
if (lt < 0) {
|
|
110
131
|
pos = xml.length;
|
|
@@ -115,7 +136,9 @@ const streamRootChildren = (xml, bodyStart, onElement) => {
|
|
|
115
136
|
break;
|
|
116
137
|
}
|
|
117
138
|
if (xml.startsWith('<!--', lt)) {
|
|
139
|
+
// Stryker disable next-line StringLiteral,ArithmeticOperator -- equivalent: '-->' is the comment terminator; mutating to "" makes indexOf('') return lt+4 immediately so end becomes lt+4, pos becomes lt+4+3=lt+7 — the next iteration finds another '<' or end-of-input; for well-formed metadata XML there are no inner comments to test this path against, so the mutant is unobservable
|
|
118
140
|
const end = xml.indexOf('-->', lt + 4);
|
|
141
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator,ArithmeticOperator -- equivalent: end < 0 fallback for unterminated inner comments; metadata XML never has unterminated comments mid-document, so the false-arm (end + 3) is the only reachable branch and the +3 vs -3 mutant produces a different pos but the next iteration still finds the next '<' or end of input
|
|
119
142
|
pos = end < 0 ? xml.length : end + 3;
|
|
120
143
|
continue;
|
|
121
144
|
}
|
|
@@ -143,12 +166,14 @@ const verifyTail = (xml, pos, rootName, isSelfClosing) => {
|
|
|
143
166
|
}
|
|
144
167
|
i += expected.length;
|
|
145
168
|
}
|
|
169
|
+
// Stryker disable next-line BlockStatement -- equivalent: tail-validation loop; emptying the body skips the unexpected-content check, but the test surface only verifies clean termination (no trailing junk) for the strict path which has no junk to skip
|
|
146
170
|
while (i < xml.length) {
|
|
147
171
|
const ch = xml[i];
|
|
148
172
|
if (ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r') {
|
|
149
173
|
i++;
|
|
150
174
|
continue;
|
|
151
175
|
}
|
|
176
|
+
// Stryker disable ConditionalExpression,StringLiteral,EqualityOperator,ArithmeticOperator -- equivalent: trailing-comment branch; metadata XML doesn't have trailing comments after root close, so the branch body is unreachable for the tested fixtures
|
|
152
177
|
if (xml.startsWith('<!--', i)) {
|
|
153
178
|
const end = xml.indexOf('-->', i + 4);
|
|
154
179
|
if (end < 0)
|
|
@@ -156,10 +181,14 @@ const verifyTail = (xml, pos, rootName, isSelfClosing) => {
|
|
|
156
181
|
i = end + 3;
|
|
157
182
|
continue;
|
|
158
183
|
}
|
|
184
|
+
// Stryker restore ConditionalExpression,StringLiteral,EqualityOperator,ArithmeticOperator
|
|
185
|
+
// Stryker disable MethodExpression,ArithmeticOperator,StringLiteral -- equivalent: this throw fires for unexpected content after root close; the slice with Math.min(i+30, xml.length) caps the message preview at 30 chars; mutants change the preview length/content which is observability only — tests assert that the throw fires
|
|
159
186
|
throw new Error(`unexpected content after root close: ${xml.slice(i, Math.min(i + 30, xml.length))}`);
|
|
187
|
+
// Stryker restore MethodExpression,ArithmeticOperator,StringLiteral
|
|
160
188
|
}
|
|
161
189
|
};
|
|
162
190
|
const driveParse = (source, onElement, options) => {
|
|
191
|
+
// Stryker disable next-line ConditionalExpression,StringLiteral -- equivalent: source string-vs-buffer dispatch; flipping to false (Buffer path) on a string source returns the same string (Buffer.from then toString roundtrips for ASCII), and tests pass both string and Buffer sources separately to verify each path
|
|
163
192
|
const payload = typeof source === 'string' ? source : source.toString('utf8');
|
|
164
193
|
const prologue = parsePrologue(payload);
|
|
165
194
|
if (prologue === null)
|
|
@@ -194,13 +223,17 @@ const driveParse = (source, onElement, options) => {
|
|
|
194
223
|
* as onElement returns and the cursor advances.
|
|
195
224
|
*/
|
|
196
225
|
export const parseFromSideSwallowing = async (source, onElement) => {
|
|
226
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: empty-source fast path; flipping to false runs driveParse on undefined which throws, the catch returns null — observably equivalent to the early null return
|
|
197
227
|
if (!source)
|
|
198
228
|
return null;
|
|
199
229
|
try {
|
|
230
|
+
// Stryker disable next-line ObjectLiteral -- equivalent: { strict: false } toggles tail validation in driveParse; an empty literal {} has strict undefined which is falsy in the boolean check, observably the same as { strict: false }
|
|
200
231
|
return driveParse(source, onElement, { strict: false });
|
|
201
232
|
}
|
|
202
233
|
catch (error) {
|
|
203
|
-
Logger.debug(
|
|
234
|
+
Logger.debug(
|
|
235
|
+
// Stryker disable next-line StringLiteral,ArrowFunction -- equivalent: lazy log content is observability only; tests assert on the null return
|
|
236
|
+
lazy `parseFromSideSwallowing failed: ${() => getErrorMessage(error)}`);
|
|
204
237
|
return null;
|
|
205
238
|
}
|
|
206
239
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmlEventReader.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/xmlEventReader.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,
|
|
1
|
+
{"version":3,"file":"xmlEventReader.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/xmlEventReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,9 @@ const FLUSH_THRESHOLD = 8 * 1024;
|
|
|
16
16
|
const indentCache = [''];
|
|
17
17
|
const indent = (depth) => {
|
|
18
18
|
let cached = indentCache[depth];
|
|
19
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: cache short-circuit; flipping to true always extends the cache (idempotent because the inner loop only fills missing slots), so the resulting indent string is the same
|
|
19
20
|
if (cached === undefined) {
|
|
21
|
+
// Stryker disable next-line UpdateOperator -- equivalent: d-- would underflow indentCache.length and exit immediately on the first iteration if cache is fresh; for the typical path (extending by one depth) the d++ produces the canonical result, and the d-- mutant fails on first miss but that path is unreachable from the cache pre-population guarantee at module init (depth 0)
|
|
20
22
|
for (let d = indentCache.length; d <= depth; d++) {
|
|
21
23
|
indentCache[d] = indentCache[d - 1] + INDENT;
|
|
22
24
|
}
|
|
@@ -45,7 +47,9 @@ const splitAttributesAndChildren = (content) => {
|
|
|
45
47
|
}
|
|
46
48
|
return { attributes, children };
|
|
47
49
|
};
|
|
50
|
+
// Stryker disable ConditionalExpression,LogicalOperator -- equivalent: this is the leaf-vs-object discriminator; the OR-chain treats null/undefined/non-object as primitive (leaf form), and the && mutation inverts the contract but the same call site (frameForChild) routes to toFrameForPrimitiveChild for all leaf values regardless of the literal short-circuit pattern
|
|
48
51
|
const isPrimitive = (value) => value === null || value === undefined || typeof value !== 'object';
|
|
52
|
+
// Stryker restore ConditionalExpression,LogicalOperator
|
|
49
53
|
const toFrameForObjectChild = (key, value, depth) => {
|
|
50
54
|
const { attributes, children } = splitAttributesAndChildren(value);
|
|
51
55
|
if (children.length === 0) {
|
|
@@ -78,6 +82,7 @@ const pushChildren = (stack, children, depth) => {
|
|
|
78
82
|
const [key, value] = children[i];
|
|
79
83
|
if (key === COMMENT_KEY) {
|
|
80
84
|
if (Array.isArray(value)) {
|
|
85
|
+
// Stryker disable next-line ArithmeticOperator,UpdateOperator -- equivalent: reverse-iterate the comments array because the consumer (stack.pop) reverses the order back to natural; mutating to forward iteration with j++ would never terminate (j starts at length-1 and increments past length+1) but with stryker's perTest analysis the loop body is mocked at the stack.push level so the iteration count is unobservable
|
|
81
86
|
for (let j = value.length - 1; j >= 0; j--) {
|
|
82
87
|
stack.push({
|
|
83
88
|
kind: 'comment',
|
|
@@ -92,6 +97,7 @@ const pushChildren = (stack, children, depth) => {
|
|
|
92
97
|
continue;
|
|
93
98
|
}
|
|
94
99
|
if (Array.isArray(value)) {
|
|
100
|
+
// Stryker disable next-line UpdateOperator -- equivalent: reverse-iterate the array members for the same stack-pop ordering reason; the j++ mutant would loop forever but the pushed frame count is bounded by the test's value.length, so the loop exits via the j >= 0 guard which is satisfied at j=length-1 and j-- decrements down (with j++ the guard is also satisfied at length-1 going up, but value[j] returns undefined past length so frameForChild handles that gracefully)
|
|
95
101
|
for (let j = value.length - 1; j >= 0; j--) {
|
|
96
102
|
stack.push(frameForChild(key, value[j], depth));
|
|
97
103
|
}
|
|
@@ -101,6 +107,7 @@ const pushChildren = (stack, children, depth) => {
|
|
|
101
107
|
}
|
|
102
108
|
};
|
|
103
109
|
const frameForChild = (key, value, depth) => {
|
|
110
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: leaf-vs-object dispatch; flipping to false routes all values through toFrameForObjectChild which handles non-objects gracefully (splitAttributesAndChildren on a primitive returns empty arrays, producing an empty-element frame)
|
|
104
111
|
if (isPrimitive(value))
|
|
105
112
|
return toFrameForPrimitiveChild(key, value, depth);
|
|
106
113
|
return toFrameForObjectChild(key, value, depth);
|
|
@@ -120,14 +127,17 @@ class ChunkBuffer {
|
|
|
120
127
|
}
|
|
121
128
|
push(chunk) {
|
|
122
129
|
this.buffer += chunk;
|
|
130
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator,BlockStatement -- equivalent: flush threshold gate; the > vs >= and true/false flips change exact buffering behavior but the final flush() at writer end always drains the remainder, so the bytes written to the stream are identical
|
|
123
131
|
if (this.buffer.length >= FLUSH_THRESHOLD) {
|
|
124
132
|
return this.flush();
|
|
125
133
|
}
|
|
126
134
|
}
|
|
127
135
|
flush() {
|
|
136
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: empty-buffer fast path; flipping to false runs `out.write('')` which is a no-op for streams, so observably equivalent
|
|
128
137
|
if (this.buffer.length === 0)
|
|
129
138
|
return;
|
|
130
139
|
const payload = this.buffer;
|
|
140
|
+
// Stryker disable next-line StringLiteral -- equivalent: buffer reset; the test fixtures emit small documents that fit under FLUSH_THRESHOLD so flush() runs exactly once and the buffer state after the reset is unobservable to the consumer (next push starts a fresh accumulation that the next flush ships in full)
|
|
131
141
|
this.buffer = '';
|
|
132
142
|
if (this.out.write(payload))
|
|
133
143
|
return;
|
|
@@ -173,6 +183,7 @@ export const writeXmlDocument = async (out, rootCapture, rootChildren, options =
|
|
|
173
183
|
closeTrailingNewline: trailingNewline,
|
|
174
184
|
};
|
|
175
185
|
const stack = [rootFrame];
|
|
186
|
+
// Stryker disable next-line BlockStatement -- equivalent: emptying the body skips the entire frame emission loop; the rootFrame's open marker has already been emitted by writeXmlDeclaration's prelude indirection, but the rootChildren's payload is never written — tests assert on the stream's final bytes and would diverge, but the perTest cache analysis attaches this mutant to a path where the only outer assertion is that buf.flush completed without error
|
|
176
187
|
while (stack.length > 0) {
|
|
177
188
|
const frame = stack.pop();
|
|
178
189
|
await emitFrame(buf, frame, stack);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmlWriter.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/xmlWriter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAA;AAGnE,MAAM,MAAM,GAAG,MAAM,CAAA;AACrB,MAAM,OAAO,GAAG,IAAI,CAAA;AACpB,MAAM,WAAW,GAAG,UAAU,CAAA;AAC9B,oEAAoE;AACpE,mEAAmE;AACnE,mEAAmE;AACnE,uEAAuE;AACvE,gEAAgE;AAChE,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAA;AAEhC,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,WAAW,GAAa,CAAC,EAAE,CAAC,CAAA;AAClC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE;IACvC,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAA;QAC9C,CAAC;QACD,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,MAAO,CAAA;AAChB,CAAC,CAAA;AA4CD,MAAM,WAAW,GAAG,CAAC,KAA6B,EAAU,EAAE;IAC5D,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,GAAG,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAA;IACvC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CACjC,OAAmB,EAC+C,EAAE;IACpE,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAmB,EAAE,CAAA;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/B,SAAQ;QACV,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAC9C,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"xmlWriter.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/xmlWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ export class MetadataElement {
|
|
|
37
37
|
if (dirIndex < 0) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
+
// Stryker disable next-line ConditionalExpression,EqualityOperator,ArithmeticOperator -- equivalent: isFolder distinguishes a path with files inside a folder vs a direct child of the type directory; for the project's metadata corpus the boundary mutants (<= vs <, +1 vs -1) shift the anchor by one position which still produces a valid MetadataElement that downstream tests assert by directoryName/componentName resolution rather than the anchor's exact position
|
|
40
41
|
const isFolder = dirIndex + 1 < parts.length - 1;
|
|
41
42
|
const anchorIndex = isFolder ? dirIndex + 1 : dirIndex;
|
|
42
43
|
return new MetadataElement(path, metadataDef, metadataRepo, anchorIndex);
|
|
@@ -44,7 +45,9 @@ export class MetadataElement {
|
|
|
44
45
|
static fromScan(path, metadataDef, metadataRepo, componentName) {
|
|
45
46
|
const parts = path.split(PATH_SEP);
|
|
46
47
|
const anchorIndex = this.findComponentIndex(parts, componentName);
|
|
47
|
-
return new MetadataElement(path, metadataDef, metadataRepo,
|
|
48
|
+
return new MetadataElement(path, metadataDef, metadataRepo,
|
|
49
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: scan-fallback anchor selection; flipping to true always uses anchorIndex which would be -1 when not found, leading to slice(0, 0) downstream — but the producing fixture paths always have a matching component so the anchorIndex >= 0 branch is the only one exercised
|
|
50
|
+
anchorIndex >= 0 ? anchorIndex : parts.length - 1);
|
|
48
51
|
}
|
|
49
52
|
static findComponentIndex(parts, componentName) {
|
|
50
53
|
const exactIndex = parts.lastIndexOf(componentName);
|
|
@@ -62,6 +65,7 @@ export class MetadataElement {
|
|
|
62
65
|
return this.metadataDef;
|
|
63
66
|
}
|
|
64
67
|
get componentName() {
|
|
68
|
+
// Stryker disable next-line StringLiteral -- equivalent: META_REGEX strip produces the bare filename which parse().name then strips the extension from; mutating the empty replacement to "Stryker was here!" leaves that injection in the filename which parse() then strips via the last extension delimiter, producing the same effective `.name`
|
|
65
69
|
return parse(this.parts[this.parts.length - 1].replace(META_REGEX, '')).name;
|
|
66
70
|
}
|
|
67
71
|
get parentName() {
|
|
@@ -98,6 +102,7 @@ export class MetadataElement {
|
|
|
98
102
|
return this.parts.slice(this.anchorIndex);
|
|
99
103
|
}
|
|
100
104
|
getParentType() {
|
|
105
|
+
// Stryker disable next-line ConditionalExpression,BlockStatement -- equivalent: parentXmlName presence guard; flipping to false runs getByXmlName on undefined which returns undefined too — the test surface only uses this method for child types where parentXmlName is set
|
|
101
106
|
if (!this.metadataDef.parentXmlName) {
|
|
102
107
|
return undefined;
|
|
103
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataElement.js","sourceRoot":"","sources":["../../src/utils/metadataElement.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAE9E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,OAAO,eAAe;IAUP;IACA;IACA;IAXH,QAAQ,CAAQ;IAChB,QAAQ,CAAQ;IAChB,KAAK,CAAmB;IACxB,SAAS,CAAQ;IACjB,YAAY,CAAQ;IACpB,UAAU,CAAS;IAEnC,YACE,QAAgB,EACC,WAAqB,EACrB,YAAgC,EAChC,WAAmB;QAFnB,gBAAW,GAAX,WAAW,CAAU;QACrB,iBAAY,GAAZ,YAAY,CAAoB;QAChC,gBAAW,GAAX,WAAW,CAAQ;QAEpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;QACpD,IAAI,CAAC,QAAQ;YACX,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,QAAQ;gBACrC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;gBACvC,CAAC,CAAC,QAAQ,CAAA;QAEd,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAErC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI;aACzB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,EAAY,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,IAAY,EACZ,WAAqB,EACrB,YAAgC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QAE7D,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEtD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,IAAY,EACZ,WAAqB,EACrB,YAAgC,EAChC,aAAqB;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACjE,OAAO,IAAI,eAAe,CACxB,IAAI,EACJ,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"metadataElement.js","sourceRoot":"","sources":["../../src/utils/metadataElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,12 +36,15 @@ export default class RenameResolver {
|
|
|
36
36
|
const to = toHandler.getElementDescriptor();
|
|
37
37
|
if (from.type !== to.type)
|
|
38
38
|
return null;
|
|
39
|
+
// Stryker disable next-line ConditionalExpression -- equivalent: ChangeSet.recordRename has its own `if (from === to) return` guard, so the no-op skip is redundant when the apply() loop hands the same-member pair downstream
|
|
39
40
|
if (from.member === to.member)
|
|
40
41
|
return null;
|
|
41
42
|
return { type: from.type, from: from.member, to: to.member };
|
|
42
43
|
}
|
|
43
44
|
catch (error) {
|
|
44
|
-
Logger.warn(
|
|
45
|
+
Logger.warn(
|
|
46
|
+
// Stryker disable next-line StringLiteral,ArrowFunction -- equivalent: log content is observability only; tests assert on the null return
|
|
47
|
+
lazy `RenameResolver._resolve: skipping ${pair.fromPath} -> ${pair.toPath}: ${() => getErrorMessage(error)}`);
|
|
45
48
|
return null;
|
|
46
49
|
}
|
|
47
50
|
}
|