sfdx-git-delta 7.0.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/adapter/GitAdapter.d.ts +15 -62
- package/lib/adapter/GitAdapter.js +376 -485
- package/lib/adapter/GitAdapter.js.map +1 -1
- package/lib/adapter/gitBlobReader.d.ts +8 -10
- package/lib/adapter/gitBlobReader.js.map +1 -1
- package/lib/adapter/ioExecutor.d.ts +4 -3
- package/lib/adapter/ioExecutor.js +22 -14
- package/lib/adapter/ioExecutor.js.map +1 -1
- package/lib/adapter/tsgitErrorMap.d.ts +7 -0
- package/lib/adapter/tsgitErrorMap.js +32 -0
- package/lib/adapter/tsgitErrorMap.js.map +1 -0
- package/lib/constant/gitConstants.d.ts +0 -2
- package/lib/constant/gitConstants.js +0 -8
- package/lib/constant/gitConstants.js.map +1 -1
- package/lib/constant/metadataConstants.d.ts +1 -0
- package/lib/constant/metadataConstants.js +1 -0
- package/lib/constant/metadataConstants.js.map +1 -1
- package/lib/main.js +1 -1
- package/lib/main.js.map +1 -1
- package/lib/post-processor/flowTranslationProcessor.js +2 -3
- package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
- package/lib/service/inFileHandler.js +4 -3
- package/lib/service/inFileHandler.js.map +1 -1
- package/lib/utils/metadataDiff/index.d.ts +0 -2
- package/lib/utils/metadataDiff/index.js.map +1 -1
- package/lib/utils/metadataDiff/streamingDiff.d.ts +1 -3
- package/lib/utils/metadataDiff/streamingDiff.js +16 -54
- package/lib/utils/metadataDiff/streamingDiff.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +22 -15
- package/lib/adapter/gitBatchCatFile.d.ts +0 -42
- package/lib/adapter/gitBatchCatFile.js +0 -203
- package/lib/adapter/gitBatchCatFile.js.map +0 -1
|
@@ -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.
|
|
123
|
-
this.
|
|
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.
|
|
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
|
-
|
|
248
|
-
for (const [subType, toArr] of
|
|
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 =
|
|
276
|
-
//
|
|
277
|
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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":"AAAA,YAAY,CAAA;AAMZ,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,iBAAiB,GAAG,SAAS,CAAA;AACnC,MAAM,kBAAkB,GAAG,UAAU,CAAA;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAmC/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,aAAa;IA4BL,UAAU;IACV,aAAa;IA5Bf,OAAO,GAAmB;QACzC,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAA;IACgB,OAAO,GAAmB;QACzC,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,SAAS,EAAE,IAAI,GAAG,EAAE;KACrB,CAAA;IACgB,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAA;IAClE,uEAAuE;IACvE,gEAAgE;IAChE,0DAA0D;IAC1D,0KAA0K;IACzJ,cAAc,GAAa,EAAE,CAAA;IAC7B,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,GAAmB,EAAE,CAAA;IAC1B,QAAQ,GAAmB,EAAE,CAAA;IAC7B,OAAO,GAAmB,EAAE,CAAA;IACrC,aAAa,GAAG,KAAK,CAAA;IACrB,kBAAkB,GAAG,KAAK,CAAA;IAElC,YACmB,UAA2C,EAC3C,aAAsB;0BADtB,UAAU;6BACV,aAAa;IAC7B,CAAC;IAEG,aAAa,GAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACjE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,6IAA6I;QAC7I,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;YACvE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAChC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACxC,OAAM;QACR,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAuB,CAAA;QACnD,yGAAyG;QACzG,kDAAkD;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAC5D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC,CAAA;IAEM,WAAW,GAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC/D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,sGAAsG;QACtG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC,CAAA;IAEO,YAAY,CAAC,OAAe;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAEM,QAAQ;QAIb,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;SAC3C,CAAA;IACH,CAAC;IAEM,WAAW,CAAC,WAA+B;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,kEAAkE;QAClE,uEAAuE;QACvE,sDAAsD;QACtD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;QAC1D,OAAO,KAAK,EAAE,GAAa,EAAE,EAAE;YAC7B,mEAAmE;YACnE,sEAAsE;YACtE,iDAAiD;YACjD,MAAM,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QACxD,CAAC,CAAA;IACH,CAAC;IAEO,mBAAmB,CAAC,YAAyB;QACnD,iSAAiS;QACjS,MAAM,OAAO,GAAwB,EAAE,CAAA;QACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAClD,iJAAiJ;YACjJ,kEAAkE;YAClE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAChD,oBAAoB;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,oBAAoB,CAC1B,OAAe,EACf,OAAmB,EACnB,QAAgB;QAEhB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAuB,CAAA;QACnD,yGAAyG;QACzG,kDAAkD;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,wXAAwX;QACxX,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC;YAAE,OAAM;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,MAAc;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,MAAc;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,0HAA0H;QAC1H,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;IAChD,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,mOAAmO;QACnO,oBAAoB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;IACpD,CAAC;IAEO,oBAAoB,CAAC,OAAe,EAAE,OAAmB;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,wOAAwO;QACxO,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAM;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,EAAE,CAAA;YACb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,qKAAqK;YACrK,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAC1D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC7B,KAAK,MAAM,CACT,OAAO,EACP,KAAK,EACN,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;YACvE,MAAM,QAAQ,GAAiB,EAAE,CAAA;YACjC,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,6KAA6K;YAC7K,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAC3D,6YAA6Y;YAC7Y,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACtE,IAAI,OAAO;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACtC,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,kCAAkC;YAClC,iLAAiL;YACjL,mEAAmE;YACnE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,oBAAoB;gBACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,6KAA6K;YAC7K,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAC3D,wYAAwY;YACxY,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACtE,IAAI,OAAO;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACtC,iLAAiL;YACjL,mEAAmE;YACnE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,oBAAoB;gBACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,wLAAwL;YACxL,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAQ;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAC1C,0HAA0H;YAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;YAClD,+GAA+G;YAC/G,kDAAkD;YAClD,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACpC,oBAAoB;YACpB,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAW,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,MAAc;QACnD,+LAA+L;QAC/L,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9D,CAAC;IAEO,aAAa,CACnB,MAAiC,EACjC,OAAe,EACf,OAAmB;QAEnB,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAA;YACT,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,uBAAuB,CAAC,OAAe,EAAE,OAAmB;QAClE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAA;YACT,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,OAAe;QACpD,IAAI,IAAI,GAAG,wBAAwB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"streamingDiff.js","sourceRoot":"","sources":["../../../src/utils/metadataDiff/streamingDiff.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAMZ,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,iBAAiB,GAAG,SAAS,CAAA;AACnC,MAAM,kBAAkB,GAAG,UAAU,CAAA;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAmC/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,aAAa;IA2BL,UAAU;IACV,aAAa;IA3Bf,OAAO,GAAmB;QACzC,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAA;IACgB,OAAO,GAAmB;QACzC,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,SAAS,EAAE,IAAI,GAAG,EAAE;KACrB,CAAA;IACgB,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAA;IAClE,uEAAuE;IACvE,gEAAgE;IAChE,0DAA0D;IAC1D,0KAA0K;IACzJ,cAAc,GAAa,EAAE,CAAA;IAC7B,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,GAAmB,EAAE,CAAA;IAC1B,QAAQ,GAAmB,EAAE,CAAA;IAC7B,OAAO,GAAmB,EAAE,CAAA;IACrC,kBAAkB,GAAG,KAAK,CAAA;IAElC,YACmB,UAA2C,EAC3C,aAAsB;0BADtB,UAAU;6BACV,aAAa;IAC7B,CAAC;IAEG,aAAa,GAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACjE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,6IAA6I;QAC7I,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;YACvE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAChC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACxC,OAAM;QACR,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAuB,CAAA;QACnD,yGAAyG;QACzG,kDAAkD;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAC5D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC,CAAA;IAEM,WAAW,GAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC/D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,sGAAsG;QACtG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC,CAAA;IAEO,YAAY,CAAC,OAAe;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAEM,QAAQ;QAIb,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACvE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACvE,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;SAC3C,CAAA;IACH,CAAC;IAEM,WAAW,CAAC,WAA+B;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;QAC1D,OAAO,KAAK,EAAE,GAAa,EAAE,EAAE;YAC7B,mEAAmE;YACnE,sEAAsE;YACtE,iDAAiD;YACjD,MAAM,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QACxD,CAAC,CAAA;IACH,CAAC;IAEO,mBAAmB,CAAC,YAAyB;QACnD,iSAAiS;QACjS,MAAM,OAAO,GAAwB,EAAE,CAAA;QACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAClD,iJAAiJ;YACjJ,kEAAkE;YAClE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAChD,oBAAoB;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,oBAAoB,CAC1B,OAAe,EACf,OAAmB,EACnB,QAAgB;QAEhB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAuB,CAAA;QACnD,yGAAyG;QACzG,kDAAkD;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,wXAAwX;QACxX,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC;YAAE,OAAM;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,MAAc;QACjD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,MAAc;QACpD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,0HAA0H;QAC1H,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;IAChD,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,mOAAmO;QACnO,oBAAoB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;IACpD,CAAC;IAEO,oBAAoB,CAAC,OAAe,EAAE,OAAmB;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,wOAAwO;QACxO,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAM;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,EAAE,CAAA;YACb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,qKAAqK;YACrK,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAC1D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC7B,KAAK,MAAM,CACT,OAAO,EACP,KAAK,EACN,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;YACvE,MAAM,QAAQ,GAAiB,EAAE,CAAA;YACjC,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBAC9B,yNAAyN;gBACzN,IAAI,IAAI,CAAC,aAAa;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,QAAmC,EACnC,UAAqC;QAErC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,6KAA6K;YAC7K,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAC7C,+DAA+D;YAC/D,+CAA+C;YAC/C,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC9C,IAAI,OAAO;gBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;YAC3C,kEAAkE;YAClE,qEAAqE;YACrE,sEAAsE;YACtE,6BAA6B;YAC7B,yNAAyN;YACzN,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,wLAAwL;YACxL,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAQ;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAC1C,0HAA0H;YAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA;YAClD,+GAA+G;YAC/G,kDAAkD;YAClD,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACpC,oBAAoB;YACpB,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAW,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,MAAc;QACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9D,CAAC;IAEO,aAAa,CACnB,MAAiC,EACjC,OAAe,EACf,OAAmB;QAEnB,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAA;YACT,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,uBAAuB,CAAC,OAAe,EAAE,OAAmB;QAClE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAA;YACT,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,OAAe;QACpD,IAAI,IAAI,GAAG,wBAAwB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sfdx-git-delta",
|
|
3
|
-
"version": "7.0
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "Generate the sfdx content in source format and destructive change from two git commits",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"salesforce",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"sf-plugin"
|
|
15
15
|
],
|
|
16
16
|
"engines": {
|
|
17
|
-
"node": ">=22.
|
|
17
|
+
"node": ">=22.22.1"
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
20
|
"/lib",
|
|
@@ -48,33 +48,32 @@
|
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@oclif/core": "4.
|
|
52
|
-
"@salesforce/core": "
|
|
53
|
-
"@salesforce/sf-plugins-core": "
|
|
54
|
-
"@salesforce/source-deploy-retrieve": "
|
|
51
|
+
"@oclif/core": "4.13.2",
|
|
52
|
+
"@salesforce/core": "^9.1.0",
|
|
53
|
+
"@salesforce/sf-plugins-core": "13.0.0",
|
|
54
|
+
"@salesforce/source-deploy-retrieve": "13.0.1",
|
|
55
|
+
"@scolladon/tsgit": "^3.2.1",
|
|
55
56
|
"ignore": "7.0.6",
|
|
56
|
-
"tar-stream": "3.2.0",
|
|
57
57
|
"txml": "6.0.0",
|
|
58
58
|
"zod": "4.4.3"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@biomejs/biome": "2.5.
|
|
61
|
+
"@biomejs/biome": "2.5.6",
|
|
62
62
|
"@commitlint/cli": "21.2.1",
|
|
63
63
|
"@commitlint/config-conventional": "21.2.0",
|
|
64
64
|
"@ls-lint/ls-lint": "2.3.1",
|
|
65
|
-
"@oclif/plugin-help": "6.2.
|
|
66
|
-
"@salesforce/cli-plugins-testkit": "5.3.
|
|
65
|
+
"@oclif/plugin-help": "6.2.55",
|
|
66
|
+
"@salesforce/cli-plugins-testkit": "5.3.64",
|
|
67
67
|
"@salesforce/dev-config": "4.3.3",
|
|
68
68
|
"@stryker-mutator/core": "9.6.1",
|
|
69
69
|
"@stryker-mutator/vitest-runner": "9.6.1",
|
|
70
|
-
"@types/node": "26.1.
|
|
71
|
-
"@types/tar-stream": "3.1.4",
|
|
70
|
+
"@types/node": "26.1.2",
|
|
72
71
|
"@vitest/coverage-v8": "4.1.10",
|
|
73
72
|
"husky": "9.1.7",
|
|
74
|
-
"knip": "6.
|
|
75
|
-
"lint-staged": "17.0
|
|
73
|
+
"knip": "6.31.0",
|
|
74
|
+
"lint-staged": "17.3.0",
|
|
76
75
|
"ls-engines": "0.10.1",
|
|
77
|
-
"oclif": "4.23.
|
|
76
|
+
"oclif": "4.23.29",
|
|
78
77
|
"shx": "0.4.0",
|
|
79
78
|
"ts-node": "10.9.2",
|
|
80
79
|
"typescript": "7.0.2",
|
|
@@ -82,6 +81,14 @@
|
|
|
82
81
|
"vitest": "4.1.10",
|
|
83
82
|
"wireit": "0.14.13"
|
|
84
83
|
},
|
|
84
|
+
"overrides": {
|
|
85
|
+
"@salesforce/source-deploy-retrieve": {
|
|
86
|
+
"minimatch": "^10.1.2"
|
|
87
|
+
},
|
|
88
|
+
"filelist": {
|
|
89
|
+
"minimatch": "^10.1.2"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
85
92
|
"scripts": {
|
|
86
93
|
"build": "wireit",
|
|
87
94
|
"clean": "wireit",
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { type ChildProcessWithoutNullStreams } from 'node:child_process';
|
|
2
|
-
import { type SpawnFn } from './gitBlobReader.js';
|
|
3
|
-
type PendingRequest = {
|
|
4
|
-
oid: string;
|
|
5
|
-
path: string;
|
|
6
|
-
allowStreamingEscalation: boolean;
|
|
7
|
-
resolve: (buf: Buffer) => void;
|
|
8
|
-
reject: (err: unknown) => void;
|
|
9
|
-
};
|
|
10
|
-
export type GitBatchCatFileOptions = {
|
|
11
|
-
sizeThreshold?: number;
|
|
12
|
-
spawnFn?: SpawnFn;
|
|
13
|
-
};
|
|
14
|
-
export declare class GitBatchCatFile {
|
|
15
|
-
protected readonly cwd: string;
|
|
16
|
-
protected process: ChildProcessWithoutNullStreams;
|
|
17
|
-
protected queue: PendingRequest[];
|
|
18
|
-
protected chunks: Buffer[];
|
|
19
|
-
protected totalLength: number;
|
|
20
|
-
protected pendingSize: number;
|
|
21
|
-
private readonly sizeThreshold;
|
|
22
|
-
private readonly spawnFn;
|
|
23
|
-
constructor(cwd: string, options?: GitBatchCatFileOptions);
|
|
24
|
-
getContent(oid: string, path: string): Promise<Buffer>;
|
|
25
|
-
/**
|
|
26
|
-
* Like getContent, but rejects with EscalateToStreamingSignal when the
|
|
27
|
-
* blob size (from the git cat-file header) is at or above SIZE_THRESHOLD.
|
|
28
|
-
* The subprocess is then recycled so queued reads keep flowing.
|
|
29
|
-
*/
|
|
30
|
-
getContentOrEscalate(oid: string, path: string): Promise<Buffer>;
|
|
31
|
-
close(): void;
|
|
32
|
-
private _enqueue;
|
|
33
|
-
protected _onData(chunk: Buffer): void;
|
|
34
|
-
protected _materializeBuffer(): Buffer;
|
|
35
|
-
protected _advance(buffer: Buffer, consumed: number): Buffer;
|
|
36
|
-
protected _processBuffer(): void;
|
|
37
|
-
private _parseHeader;
|
|
38
|
-
private _escalateHead;
|
|
39
|
-
private _recycleSubprocess;
|
|
40
|
-
private _spawnSubprocess;
|
|
41
|
-
}
|
|
42
|
-
export {};
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
import { spawn } from 'node:child_process';
|
|
3
|
-
import { getErrorMessage } from '../utils/errorUtils.js';
|
|
4
|
-
import { Logger, lazy } from '../utils/LoggingService.js';
|
|
5
|
-
import { EscalateToStreamingSignal, SIZE_THRESHOLD, } from './gitBlobReader.js';
|
|
6
|
-
export class GitBatchCatFile {
|
|
7
|
-
cwd;
|
|
8
|
-
process;
|
|
9
|
-
queue = [];
|
|
10
|
-
chunks = [];
|
|
11
|
-
totalLength = 0;
|
|
12
|
-
pendingSize = -1;
|
|
13
|
-
sizeThreshold;
|
|
14
|
-
spawnFn;
|
|
15
|
-
constructor(cwd, options = {}) {
|
|
16
|
-
this.cwd = cwd;
|
|
17
|
-
this.sizeThreshold = options.sizeThreshold ?? SIZE_THRESHOLD;
|
|
18
|
-
this.spawnFn = options.spawnFn ?? spawn;
|
|
19
|
-
this.process = this._spawnSubprocess();
|
|
20
|
-
}
|
|
21
|
-
async getContent(oid, path) {
|
|
22
|
-
return this._enqueue(oid, path, false);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Like getContent, but rejects with EscalateToStreamingSignal when the
|
|
26
|
-
* blob size (from the git cat-file header) is at or above SIZE_THRESHOLD.
|
|
27
|
-
* The subprocess is then recycled so queued reads keep flowing.
|
|
28
|
-
*/
|
|
29
|
-
async getContentOrEscalate(oid, path) {
|
|
30
|
-
return this._enqueue(oid, path, true);
|
|
31
|
-
}
|
|
32
|
-
close() {
|
|
33
|
-
if (!this.process.killed) {
|
|
34
|
-
this.process.stdin.end();
|
|
35
|
-
this.process.kill();
|
|
36
|
-
}
|
|
37
|
-
for (const entry of this.queue) {
|
|
38
|
-
entry.reject(new Error('GitBatchCatFile closed'));
|
|
39
|
-
}
|
|
40
|
-
this.queue = [];
|
|
41
|
-
}
|
|
42
|
-
_enqueue(oid, path, allowStreamingEscalation) {
|
|
43
|
-
return new Promise((resolve, reject) => {
|
|
44
|
-
this.queue.push({
|
|
45
|
-
oid,
|
|
46
|
-
path,
|
|
47
|
-
allowStreamingEscalation,
|
|
48
|
-
resolve,
|
|
49
|
-
reject,
|
|
50
|
-
});
|
|
51
|
-
this.process.stdin.write(`${oid}:${path}\n`);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
_onData(chunk) {
|
|
55
|
-
this.chunks.push(chunk);
|
|
56
|
-
this.totalLength += chunk.length;
|
|
57
|
-
this._processBuffer();
|
|
58
|
-
}
|
|
59
|
-
_materializeBuffer() {
|
|
60
|
-
// Stryker disable next-line ConditionalExpression -- equivalent: single-chunk fast path; flipping to false forces a Buffer.concat([oneBuffer], length) which returns the same logical bytes, so observably equivalent
|
|
61
|
-
if (this.chunks.length === 1)
|
|
62
|
-
return this.chunks[0];
|
|
63
|
-
const merged = Buffer.concat(this.chunks, this.totalLength);
|
|
64
|
-
// Stryker disable next-line ArrayDeclaration -- equivalent: assignment resets chunks to a single concat'd buffer; injecting a different initial value is overwritten on the next _onData chunk push
|
|
65
|
-
this.chunks = [merged];
|
|
66
|
-
return merged;
|
|
67
|
-
}
|
|
68
|
-
_advance(buffer, consumed) {
|
|
69
|
-
const rest = buffer.subarray(consumed);
|
|
70
|
-
// Stryker disable next-line ConditionalExpression -- equivalent: empty-vs-non-empty rest path; either branch leaves chunks consistent with totalLength=rest.length, and downstream _materializeBuffer concat handles both shapes identically
|
|
71
|
-
if (rest.length === 0) {
|
|
72
|
-
this.chunks = [];
|
|
73
|
-
this.totalLength = 0;
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this.chunks = [rest];
|
|
77
|
-
this.totalLength = rest.length;
|
|
78
|
-
}
|
|
79
|
-
return rest;
|
|
80
|
-
}
|
|
81
|
-
_processBuffer() {
|
|
82
|
-
let buffer = this._materializeBuffer();
|
|
83
|
-
// Stryker disable next-line BlockStatement -- equivalent: the loop is the entirety of header/body parsing; emptying it leaves the queue stuck unprocessed but the unit test surface only awaits resolutions that are already in flight, so the empty-body mutant manifests as a hang detected by stryker as Survived rather than killed cleanly
|
|
84
|
-
while (this.queue.length > 0) {
|
|
85
|
-
if (this.pendingSize === -1) {
|
|
86
|
-
const outcome = this._parseHeader(buffer);
|
|
87
|
-
if (outcome === 'need-more-data')
|
|
88
|
-
return;
|
|
89
|
-
buffer = outcome.remaining;
|
|
90
|
-
// Stryker disable next-line ConditionalExpression -- equivalent: the OR-chained reject/escalated continue is a tight loop optimisation; flipping to true continues on every header parse, which is a no-op when the only follow-up is the loop's queue.length re-check
|
|
91
|
-
if (outcome.action === 'reject' || outcome.action === 'escalated') {
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (buffer.length < this.pendingSize + 1)
|
|
96
|
-
return;
|
|
97
|
-
const content = Buffer.from(buffer.subarray(0, this.pendingSize));
|
|
98
|
-
buffer = this._advance(buffer, this.pendingSize + 1);
|
|
99
|
-
this.pendingSize = -1;
|
|
100
|
-
this.queue.shift().resolve(content);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
_parseHeader(buffer) {
|
|
104
|
-
const newlineIdx = buffer.indexOf(0x0a);
|
|
105
|
-
if (newlineIdx === -1)
|
|
106
|
-
return 'need-more-data';
|
|
107
|
-
const header = buffer.subarray(0, newlineIdx).toString();
|
|
108
|
-
const remaining = this._advance(buffer, newlineIdx + 1);
|
|
109
|
-
if (header.endsWith('missing')) {
|
|
110
|
-
this.queue.shift().reject(new Error(`Object not found: ${header}`));
|
|
111
|
-
return { remaining, action: 'reject' };
|
|
112
|
-
}
|
|
113
|
-
const parts = header.split(' ');
|
|
114
|
-
const parsedSize = Number.parseInt(parts[2], 10);
|
|
115
|
-
if (Number.isNaN(parsedSize)) {
|
|
116
|
-
this.queue.shift().reject(new Error(`Invalid header: ${header}`));
|
|
117
|
-
return { remaining, action: 'reject' };
|
|
118
|
-
}
|
|
119
|
-
const head = this.queue[0];
|
|
120
|
-
if (head.allowStreamingEscalation && parsedSize >= this.sizeThreshold) {
|
|
121
|
-
this._escalateHead(parsedSize);
|
|
122
|
-
return { remaining: Buffer.alloc(0), action: 'escalated' };
|
|
123
|
-
}
|
|
124
|
-
this.pendingSize = parsedSize;
|
|
125
|
-
// Stryker disable next-line StringLiteral -- equivalent: 'await-body' is an internal action token consumed by _processBuffer's outcome.action check; the string only matters for the inverse equality on 'reject'|'escalated' which the await-body branch falls through, so the literal name is unobservable
|
|
126
|
-
return { remaining, action: 'await-body' };
|
|
127
|
-
}
|
|
128
|
-
_escalateHead(size) {
|
|
129
|
-
const escalated = this.queue.shift();
|
|
130
|
-
escalated.reject(new EscalateToStreamingSignal(size, {
|
|
131
|
-
oid: escalated.oid,
|
|
132
|
-
path: escalated.path,
|
|
133
|
-
}));
|
|
134
|
-
const pending = this.queue.splice(0);
|
|
135
|
-
this._recycleSubprocess();
|
|
136
|
-
for (const request of pending) {
|
|
137
|
-
this.queue.push(request);
|
|
138
|
-
// Stryker disable next-line StringLiteral -- equivalent: the cat-file --batch protocol terminates each input with a newline; the test surface stubs stdin.write so the literal template is opaque past the call
|
|
139
|
-
this.process.stdin.write(`${request.oid}:${request.path}\n`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
_recycleSubprocess() {
|
|
143
|
-
const stale = this.process;
|
|
144
|
-
// Detach listeners BEFORE kill: Node may have already queued stdout
|
|
145
|
-
// `data` events for bytes read before the escalation header was
|
|
146
|
-
// parsed. Those events would still fire on `_onData` and corrupt the
|
|
147
|
-
// fresh subprocess's header state via the shared chunks/pendingSize
|
|
148
|
-
// fields.
|
|
149
|
-
stale.stdout.removeAllListeners('data');
|
|
150
|
-
// Stryker disable next-line StringLiteral -- equivalent: 'data' event name on stderr is symmetric with stdout; tests stub the EventEmitter shape so literal name swaps don't change the recycle's observable effect on the next subprocess
|
|
151
|
-
stale.stderr.removeAllListeners('data');
|
|
152
|
-
// Stryker disable next-line StringLiteral -- equivalent: 'close' event detachment ensures the prior subprocess close doesn't fire on the new process; the test surface verifies the new subprocess handles requests without checking the prior subprocess listener cleanup
|
|
153
|
-
stale.removeAllListeners('close');
|
|
154
|
-
// Stryker disable next-line StringLiteral -- equivalent: 'error' event detachment is symmetric with the others; the new subprocess installs its own listeners
|
|
155
|
-
stale.removeAllListeners('error');
|
|
156
|
-
if (!stale.killed) {
|
|
157
|
-
// Stryker disable next-line BlockStatement -- equivalent: the try/catch wraps a best-effort stdin.end() during recycle; emptying the body skips the close-stdin path but stale.kill() below still terminates the subprocess
|
|
158
|
-
try {
|
|
159
|
-
stale.stdin.end();
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// ignore broken pipe while recycling
|
|
163
|
-
}
|
|
164
|
-
stale.kill();
|
|
165
|
-
}
|
|
166
|
-
this.chunks = [];
|
|
167
|
-
this.totalLength = 0;
|
|
168
|
-
this.pendingSize = -1;
|
|
169
|
-
this.process = this._spawnSubprocess();
|
|
170
|
-
}
|
|
171
|
-
_spawnSubprocess() {
|
|
172
|
-
const child = this.spawnFn('git', ['cat-file', '--batch'], {
|
|
173
|
-
cwd: this.cwd,
|
|
174
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
175
|
-
});
|
|
176
|
-
child.stdout.on('data', (chunk) => this._onData(chunk));
|
|
177
|
-
// Stryker disable BlockStatement,StringLiteral,ArrowFunction -- equivalent: stderr/error listeners are observability-only; tests assert the protocol contract via stdout, not on the lazy log content
|
|
178
|
-
child.stderr.on('data', (chunk) => {
|
|
179
|
-
Logger.debug(lazy `GitBatchCatFile stderr: ${() => chunk.toString()}`);
|
|
180
|
-
});
|
|
181
|
-
child.on('error', (err) => {
|
|
182
|
-
Logger.debug(lazy `GitBatchCatFile process error: ${() => getErrorMessage(err)}`);
|
|
183
|
-
});
|
|
184
|
-
// Stryker restore BlockStatement,StringLiteral,ArrowFunction
|
|
185
|
-
child.on('close', (code) => {
|
|
186
|
-
// Stryker disable next-line ConditionalExpression -- equivalent: see v8 ignore — the close listener is bound to the active process by construction
|
|
187
|
-
/* v8 ignore next -- defensive: the close listener is bound to the active process; only fires for `this.process` in practice */
|
|
188
|
-
if (child !== this.process)
|
|
189
|
-
return;
|
|
190
|
-
// Stryker disable next-line ConditionalExpression,EqualityOperator -- equivalent: the close handler cleans up pending requests on non-zero exit when the queue is non-empty; flipping to true rejects on every close (including the recycle path) but the recycle clears queue first via _escalateHead, and flipping >= 0 is always true (queue.length is always >= 0) — both arms still reject pending entries with the same error
|
|
191
|
-
if (code !== 0 && this.queue.length > 0) {
|
|
192
|
-
const error = new Error(`git cat-file exited with code ${code}`);
|
|
193
|
-
for (const entry of this.queue) {
|
|
194
|
-
entry.reject(error);
|
|
195
|
-
}
|
|
196
|
-
// Stryker disable next-line ArrayDeclaration -- equivalent: queue reset; an injected initial element would be rejected by the next _enqueue or close, neither of which the test surface observes for the synthetic element
|
|
197
|
-
this.queue = [];
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
return child;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=gitBatchCatFile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitBatchCatFile.js","sourceRoot":"","sources":["../../src/adapter/gitBatchCatFile.ts"],"names":[],"mappings":"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"}
|