@fern-api/replay 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/FernignoreMigrator.d.ts +1 -7
- package/dist/FernignoreMigrator.d.ts.map +1 -1
- package/dist/FernignoreMigrator.js +1 -7
- package/dist/FernignoreMigrator.js.map +1 -1
- package/dist/LockfileManager.d.ts +3 -0
- package/dist/LockfileManager.d.ts.map +1 -1
- package/dist/LockfileManager.js +12 -0
- package/dist/LockfileManager.js.map +1 -1
- package/dist/ReplayApplicator.d.ts +9 -15
- package/dist/ReplayApplicator.d.ts.map +1 -1
- package/dist/ReplayApplicator.js +71 -30
- package/dist/ReplayApplicator.js.map +1 -1
- package/dist/ReplayDetector.d.ts +1 -5
- package/dist/ReplayDetector.d.ts.map +1 -1
- package/dist/ReplayDetector.js +8 -8
- package/dist/ReplayDetector.js.map +1 -1
- package/dist/ReplayService.d.ts +24 -16
- package/dist/ReplayService.d.ts.map +1 -1
- package/dist/ReplayService.js +206 -39
- package/dist/ReplayService.js.map +1 -1
- package/dist/cli.js +46 -23
- package/dist/cli.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +2 -0
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +8 -20
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/git/CommitDetection.d.ts +1 -7
- package/dist/git/CommitDetection.d.ts.map +1 -1
- package/dist/git/CommitDetection.js +2 -10
- package/dist/git/CommitDetection.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/ReplayService.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ export interface ConflictDetail {
|
|
|
4
4
|
patchMessage: string;
|
|
5
5
|
reason?: string;
|
|
6
6
|
files: FileResult[];
|
|
7
|
+
/** Files that applied cleanly in a patch that also had conflicts. */
|
|
8
|
+
cleanFiles?: string[];
|
|
7
9
|
}
|
|
8
10
|
export interface ReplayReport {
|
|
9
|
-
flow: "first-generation" | "no-patches" | "normal-regeneration";
|
|
11
|
+
flow: "first-generation" | "no-patches" | "normal-regeneration" | "skip-application";
|
|
10
12
|
patchesDetected: number;
|
|
11
13
|
patchesApplied: number;
|
|
12
14
|
patchesWithConflicts: number;
|
|
@@ -15,7 +17,9 @@ export interface ReplayReport {
|
|
|
15
17
|
patchesRepointed?: number;
|
|
16
18
|
patchesContentRebased?: number;
|
|
17
19
|
patchesKeptAsUserOwned?: number;
|
|
20
|
+
patchesPartiallyApplied?: number;
|
|
18
21
|
patchesConflictResolved?: number;
|
|
22
|
+
patchesRefreshed?: number;
|
|
19
23
|
conflicts: FileResult[];
|
|
20
24
|
conflictDetails?: ConflictDetail[];
|
|
21
25
|
wouldApply?: StoredPatch[];
|
|
@@ -30,6 +34,8 @@ export interface ReplayOptions {
|
|
|
30
34
|
cliVersion?: string;
|
|
31
35
|
/** Generator versions for commit metadata */
|
|
32
36
|
generatorVersions?: Record<string, string>;
|
|
37
|
+
/** Commit generation + update lockfile, skip detection/application */
|
|
38
|
+
skipApplication?: boolean;
|
|
33
39
|
}
|
|
34
40
|
export declare class ReplayService {
|
|
35
41
|
private git;
|
|
@@ -45,14 +51,6 @@ export declare class ReplayService {
|
|
|
45
51
|
runReplay(options?: ReplayOptions): Promise<ReplayReport>;
|
|
46
52
|
/**
|
|
47
53
|
* Sync the lockfile after a divergent PR was squash-merged.
|
|
48
|
-
*
|
|
49
|
-
* When a divergent PR is merged, the lockfile's current_generation is stale
|
|
50
|
-
* (points to gen N while the code is at gen N+1). This method:
|
|
51
|
-
* 1. Adds the real generation (from the tag) to the lockfile
|
|
52
|
-
* 2. Updates current_generation to point to it
|
|
53
|
-
* 3. Clears existing patches (superseded — they'll be re-detected via tree diff)
|
|
54
|
-
* 4. Saves the lockfile
|
|
55
|
-
*
|
|
56
54
|
* Call this BEFORE runReplay() when the CLI detects a merged divergent PR.
|
|
57
55
|
*/
|
|
58
56
|
syncFromDivergentMerge(generationCommitSha: string, options?: {
|
|
@@ -67,6 +65,12 @@ export declare class ReplayService {
|
|
|
67
65
|
* First generation - just create lockfile, no patches to apply.
|
|
68
66
|
*/
|
|
69
67
|
private handleFirstGeneration;
|
|
68
|
+
/**
|
|
69
|
+
* Skip-application mode: commit the generation and update the lockfile
|
|
70
|
+
* but don't detect or apply patches. Sets a marker so the next normal
|
|
71
|
+
* run skips revert detection in preGenerationRebase().
|
|
72
|
+
*/
|
|
73
|
+
private handleSkipApplication;
|
|
70
74
|
/**
|
|
71
75
|
* No existing patches - detect new ones and apply if any.
|
|
72
76
|
*/
|
|
@@ -82,14 +86,18 @@ export declare class ReplayService {
|
|
|
82
86
|
*/
|
|
83
87
|
private rebasePatches;
|
|
84
88
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
89
|
+
* For conflict patches with mixed results (some files merged, some conflicted),
|
|
90
|
+
* check if the cleanly merged files were absorbed by the generator (empty diff).
|
|
91
|
+
* If so, remove them from patch.files so they don't pollute the pre-generation
|
|
92
|
+
* rebase conflict marker check (`git grep <<<<<<< -- ...patch.files`).
|
|
88
93
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
* Non-absorbed clean files stay in patch.files — removing them would lose
|
|
95
|
+
* the customization on the next generation.
|
|
96
|
+
*/
|
|
97
|
+
private trimAbsorbedFiles;
|
|
98
|
+
/**
|
|
99
|
+
* Pre-generation rebase: update patches using the customer's current state.
|
|
100
|
+
* Called BEFORE commitGeneration() while HEAD has customer code.
|
|
93
101
|
*/
|
|
94
102
|
private preGenerationRebase;
|
|
95
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplayService.d.ts","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAoB,YAAY,EAAgB,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExG,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ReplayService.d.ts","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAoB,YAAY,EAAgB,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExG,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,kBAAkB,GAAG,YAAY,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC1B,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAS;gBAGtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY;IAWzB;;OAEG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiB/D;;;OAGG;IACG,sBAAsB,CACxB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAC9E,OAAO,CAAC,IAAI,CAAC;IAwBhB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;YACW,qBAAqB;IA+BnC;;;;OAIG;YACW,qBAAqB;IAsCnC;;OAEG;YACW,2BAA2B;IA8DzC;;OAEG;YACW,wBAAwB;IA6EtC;;;;OAIG;YACW,aAAa;IAmH3B;;;;;;;;OAQG;YACW,iBAAiB;IA8C/B;;;OAGG;YACW,mBAAmB;IAwGjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,WAAW;CA+CtB"}
|
package/dist/ReplayService.js
CHANGED
|
@@ -26,6 +26,9 @@ export class ReplayService {
|
|
|
26
26
|
* Run the full replay flow.
|
|
27
27
|
*/
|
|
28
28
|
async runReplay(options) {
|
|
29
|
+
if (options?.skipApplication) {
|
|
30
|
+
return this.handleSkipApplication(options);
|
|
31
|
+
}
|
|
29
32
|
const flow = this.determineFlow();
|
|
30
33
|
switch (flow) {
|
|
31
34
|
case "first-generation":
|
|
@@ -38,14 +41,6 @@ export class ReplayService {
|
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Sync the lockfile after a divergent PR was squash-merged.
|
|
41
|
-
*
|
|
42
|
-
* When a divergent PR is merged, the lockfile's current_generation is stale
|
|
43
|
-
* (points to gen N while the code is at gen N+1). This method:
|
|
44
|
-
* 1. Adds the real generation (from the tag) to the lockfile
|
|
45
|
-
* 2. Updates current_generation to point to it
|
|
46
|
-
* 3. Clears existing patches (superseded — they'll be re-detected via tree diff)
|
|
47
|
-
* 4. Saves the lockfile
|
|
48
|
-
*
|
|
49
44
|
* Call this BEFORE runReplay() when the CLI detects a merged divergent PR.
|
|
50
45
|
*/
|
|
51
46
|
async syncFromDivergentMerge(generationCommitSha, options) {
|
|
@@ -111,6 +106,45 @@ export class ReplayService {
|
|
|
111
106
|
conflicts: [],
|
|
112
107
|
};
|
|
113
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Skip-application mode: commit the generation and update the lockfile
|
|
111
|
+
* but don't detect or apply patches. Sets a marker so the next normal
|
|
112
|
+
* run skips revert detection in preGenerationRebase().
|
|
113
|
+
*/
|
|
114
|
+
async handleSkipApplication(options) {
|
|
115
|
+
const commitOpts = options ? {
|
|
116
|
+
cliVersion: options.cliVersion ?? "unknown",
|
|
117
|
+
generatorVersions: options.generatorVersions ?? {},
|
|
118
|
+
} : undefined;
|
|
119
|
+
await this.committer.commitGeneration("Update SDK (replay skipped)", commitOpts);
|
|
120
|
+
const genRecord = await this.committer.createGenerationRecord(commitOpts);
|
|
121
|
+
if (this.lockManager.exists()) {
|
|
122
|
+
this.lockManager.read();
|
|
123
|
+
this.lockManager.addGeneration(genRecord);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.lockManager.initializeInMemory(genRecord);
|
|
127
|
+
}
|
|
128
|
+
this.lockManager.setReplaySkippedAt(new Date().toISOString());
|
|
129
|
+
this.lockManager.save();
|
|
130
|
+
// Commit the lockfile update so it's pushed with the branch.
|
|
131
|
+
// Without this, the marker and generation record stay in the
|
|
132
|
+
// working tree and are lost when GithubStep pushes.
|
|
133
|
+
if (!options?.stageOnly) {
|
|
134
|
+
await this.committer.commitReplay(0);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
await this.committer.stageAll();
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
flow: "skip-application",
|
|
141
|
+
patchesDetected: 0,
|
|
142
|
+
patchesApplied: 0,
|
|
143
|
+
patchesWithConflicts: 0,
|
|
144
|
+
patchesSkipped: 0,
|
|
145
|
+
conflicts: [],
|
|
146
|
+
};
|
|
147
|
+
}
|
|
114
148
|
/**
|
|
115
149
|
* No existing patches - detect new ones and apply if any.
|
|
116
150
|
*/
|
|
@@ -135,6 +169,9 @@ export class ReplayService {
|
|
|
135
169
|
} : undefined;
|
|
136
170
|
await this.committer.commitGeneration("Update SDK", commitOpts);
|
|
137
171
|
const genRecord = await this.committer.createGenerationRecord(commitOpts);
|
|
172
|
+
// Add generation to lockfile BEFORE applying patches so the applicator
|
|
173
|
+
// can read the current generation's tree hash for rename detection.
|
|
174
|
+
this.lockManager.addGeneration(genRecord);
|
|
138
175
|
let results = [];
|
|
139
176
|
if (newPatches.length > 0) {
|
|
140
177
|
results = await this.applicator.applyPatches(newPatches);
|
|
@@ -143,7 +180,6 @@ export class ReplayService {
|
|
|
143
180
|
// This prevents recurring conflicts on subsequent regenerations.
|
|
144
181
|
const rebaseCounts = await this.rebasePatches(results, genRecord.commit_sha);
|
|
145
182
|
// Save lockfile BEFORE commit — lockfile is source of truth.
|
|
146
|
-
this.lockManager.addGeneration(genRecord);
|
|
147
183
|
for (const patch of newPatches) {
|
|
148
184
|
if (!rebaseCounts.absorbedPatchIds.has(patch.id)) {
|
|
149
185
|
this.lockManager.addPatch(patch);
|
|
@@ -183,11 +219,20 @@ export class ReplayService {
|
|
|
183
219
|
warnings: warnings.length > 0 ? warnings : undefined,
|
|
184
220
|
};
|
|
185
221
|
}
|
|
186
|
-
// Pre-generation rebase: update stale
|
|
187
|
-
// resolved state. At this point HEAD still has the customer's code — the
|
|
188
|
-
// generator output is in the working tree but not yet committed.
|
|
222
|
+
// Pre-generation rebase: update stale/modified patches while HEAD has customer code.
|
|
189
223
|
let existingPatches = this.lockManager.getPatches();
|
|
190
224
|
const preRebaseCounts = await this.preGenerationRebase(existingPatches);
|
|
225
|
+
// Dedup patches by content hash after pre-generation rebase.
|
|
226
|
+
existingPatches = this.lockManager.getPatches();
|
|
227
|
+
const seenHashes = new Set();
|
|
228
|
+
for (const p of existingPatches) {
|
|
229
|
+
if (seenHashes.has(p.content_hash)) {
|
|
230
|
+
this.lockManager.removePatch(p.id);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
seenHashes.add(p.content_hash);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
191
236
|
existingPatches = this.lockManager.getPatches();
|
|
192
237
|
const newPatches = await this.detector.detectNewPatches();
|
|
193
238
|
const warnings = [...this.detector.warnings];
|
|
@@ -198,11 +243,13 @@ export class ReplayService {
|
|
|
198
243
|
} : undefined;
|
|
199
244
|
await this.committer.commitGeneration("Update SDK", commitOpts);
|
|
200
245
|
const genRecord = await this.committer.createGenerationRecord(commitOpts);
|
|
246
|
+
// Add generation to lockfile BEFORE applying patches so the applicator
|
|
247
|
+
// can read the current generation's tree hash for rename detection.
|
|
248
|
+
this.lockManager.addGeneration(genRecord);
|
|
201
249
|
const results = await this.applicator.applyPatches(allPatches);
|
|
202
250
|
// Rebase cleanly applied patches to the current generation.
|
|
203
251
|
const rebaseCounts = await this.rebasePatches(results, genRecord.commit_sha);
|
|
204
252
|
// Save lockfile BEFORE commit — lockfile is source of truth.
|
|
205
|
-
this.lockManager.addGeneration(genRecord);
|
|
206
253
|
for (const patch of newPatches) {
|
|
207
254
|
if (!rebaseCounts.absorbedPatchIds.has(patch.id)) {
|
|
208
255
|
this.lockManager.addPatch(patch);
|
|
@@ -230,12 +277,33 @@ export class ReplayService {
|
|
|
230
277
|
let repointed = 0;
|
|
231
278
|
let contentRebased = 0;
|
|
232
279
|
let keptAsUserOwned = 0;
|
|
233
|
-
// Track content hashes
|
|
234
|
-
// When incremental patches (e.g., commit A adds method, commit B renames it)
|
|
235
|
-
// are both rebased, they capture the same cumulative diff and become redundant.
|
|
280
|
+
// Track content hashes to deduplicate converging incremental patches.
|
|
236
281
|
const seenContentHashes = new Set();
|
|
237
282
|
const absorbedPatchIds = new Set();
|
|
283
|
+
// Pre-pass: Update patch.files with resolved (renamed) paths from application.
|
|
284
|
+
// This ensures downstream operations (user-owned check, git diff, git show)
|
|
285
|
+
// use the current file paths rather than stale pre-rename paths.
|
|
238
286
|
for (const result of results) {
|
|
287
|
+
if (result.resolvedFiles && Object.keys(result.resolvedFiles).length > 0) {
|
|
288
|
+
const patch = result.patch;
|
|
289
|
+
const updatedFiles = patch.files.map(f => result.resolvedFiles[f] ?? f);
|
|
290
|
+
patch.files = updatedFiles;
|
|
291
|
+
try {
|
|
292
|
+
this.lockManager.updatePatch(patch.id, { files: updatedFiles });
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// New patches aren't in lockfile yet — in-memory update sufficient
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
for (const result of results) {
|
|
300
|
+
if (result.status === "conflict" && result.fileResults) {
|
|
301
|
+
// For conflict patches with mixed results, trim any clean files
|
|
302
|
+
// that were absorbed by the generator. This prevents absorbed files
|
|
303
|
+
// from poisoning the pre-generation rebase conflict marker check.
|
|
304
|
+
await this.trimAbsorbedFiles(result, currentGenSha);
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
239
307
|
// Only rebase cleanly applied patches.
|
|
240
308
|
// Conflicted patches keep their old base_generation so they retry.
|
|
241
309
|
if (result.status !== "applied")
|
|
@@ -245,14 +313,7 @@ export class ReplayService {
|
|
|
245
313
|
if (patch.base_generation === currentGenSha)
|
|
246
314
|
continue;
|
|
247
315
|
try {
|
|
248
|
-
// Check if any files
|
|
249
|
-
// be "absorbed" by the generator. Three cases:
|
|
250
|
-
// 1. File doesn't exist in the gen commit tree (truly new file)
|
|
251
|
-
// 2. File is protected by .fernignore (preserved during gen wipe,
|
|
252
|
-
// so it exists in the gen tree, but the generator didn't produce it)
|
|
253
|
-
// 3. File IS .fernignore itself (always preserved during gen wipe,
|
|
254
|
-
// but doesn't list itself in its own patterns)
|
|
255
|
-
// In all cases, git diff returns empty, but removing the patch is wrong.
|
|
316
|
+
// Check if any files are user-owned (new, .fernignore-protected, or .fernignore itself).
|
|
256
317
|
const fernignorePatterns = this.readFernignorePatterns();
|
|
257
318
|
const isUserOwned = await Promise.all(patch.files.map(async (file) => {
|
|
258
319
|
// .fernignore itself is always user-owned
|
|
@@ -315,23 +376,120 @@ export class ReplayService {
|
|
|
315
376
|
return { absorbed, repointed, contentRebased, keptAsUserOwned, absorbedPatchIds };
|
|
316
377
|
}
|
|
317
378
|
/**
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
379
|
+
* For conflict patches with mixed results (some files merged, some conflicted),
|
|
380
|
+
* check if the cleanly merged files were absorbed by the generator (empty diff).
|
|
381
|
+
* If so, remove them from patch.files so they don't pollute the pre-generation
|
|
382
|
+
* rebase conflict marker check (`git grep <<<<<<< -- ...patch.files`).
|
|
321
383
|
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
|
|
325
|
-
|
|
384
|
+
* Non-absorbed clean files stay in patch.files — removing them would lose
|
|
385
|
+
* the customization on the next generation.
|
|
386
|
+
*/
|
|
387
|
+
async trimAbsorbedFiles(result, currentGenSha) {
|
|
388
|
+
const cleanFiles = result.fileResults
|
|
389
|
+
.filter((f) => f.status === "merged")
|
|
390
|
+
.map((f) => f.file);
|
|
391
|
+
if (cleanFiles.length === 0)
|
|
392
|
+
return;
|
|
393
|
+
const patch = result.patch;
|
|
394
|
+
const fernignorePatterns = this.readFernignorePatterns();
|
|
395
|
+
// Filter to only generator-produced clean files (not user-owned)
|
|
396
|
+
const generatorCleanFiles = [];
|
|
397
|
+
for (const file of cleanFiles) {
|
|
398
|
+
if (file === ".fernignore")
|
|
399
|
+
continue;
|
|
400
|
+
if (fernignorePatterns.some((p) => file === p || minimatch(file, p)))
|
|
401
|
+
continue;
|
|
402
|
+
const content = await this.git.showFile(currentGenSha, file);
|
|
403
|
+
if (content === null)
|
|
404
|
+
continue; // user-owned new file
|
|
405
|
+
generatorCleanFiles.push(file);
|
|
406
|
+
}
|
|
407
|
+
if (generatorCleanFiles.length === 0)
|
|
408
|
+
return;
|
|
409
|
+
// Check which clean files have an empty diff (absorbed by generator)
|
|
410
|
+
const absorbedFiles = new Set();
|
|
411
|
+
for (const file of generatorCleanFiles) {
|
|
412
|
+
try {
|
|
413
|
+
const diff = await this.git.exec(["diff", currentGenSha, "--", file]).catch(() => null);
|
|
414
|
+
if (!diff || !diff.trim()) {
|
|
415
|
+
absorbedFiles.add(file);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
// If diff fails, leave the file in the patch
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
if (absorbedFiles.size === 0)
|
|
423
|
+
return;
|
|
424
|
+
// Remove absorbed files from the patch's file list
|
|
425
|
+
const remainingFiles = patch.files.filter((f) => !absorbedFiles.has(f));
|
|
426
|
+
if (remainingFiles.length === patch.files.length)
|
|
427
|
+
return; // nothing changed
|
|
428
|
+
try {
|
|
429
|
+
this.lockManager.updatePatch(patch.id, { files: remainingFiles });
|
|
430
|
+
}
|
|
431
|
+
catch {
|
|
432
|
+
// New patches aren't in lockfile yet — update in-memory only
|
|
433
|
+
patch.files = remainingFiles;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Pre-generation rebase: update patches using the customer's current state.
|
|
438
|
+
* Called BEFORE commitGeneration() while HEAD has customer code.
|
|
326
439
|
*/
|
|
327
440
|
async preGenerationRebase(patches) {
|
|
328
441
|
const lock = this.lockManager.read();
|
|
329
442
|
const currentGen = lock.current_generation;
|
|
443
|
+
// If the previous run was skip-application, clear the marker and
|
|
444
|
+
// skip all revert detection. Patches are preserved as-is.
|
|
445
|
+
if (this.lockManager.isReplaySkipped()) {
|
|
446
|
+
this.lockManager.clearReplaySkippedAt();
|
|
447
|
+
return { conflictResolved: 0, conflictAbsorbed: 0, contentRefreshed: 0 };
|
|
448
|
+
}
|
|
330
449
|
let conflictResolved = 0;
|
|
331
450
|
let conflictAbsorbed = 0;
|
|
451
|
+
let contentRefreshed = 0;
|
|
332
452
|
for (const patch of patches) {
|
|
333
|
-
if (patch.base_generation === currentGen)
|
|
453
|
+
if (patch.base_generation === currentGen) {
|
|
454
|
+
// Content refresh: check if user modified their customization
|
|
455
|
+
// since the last replay commit.
|
|
456
|
+
try {
|
|
457
|
+
const diff = await this.git.exec(["diff", currentGen, "HEAD", "--", ...patch.files]).catch(() => null);
|
|
458
|
+
if (diff === null)
|
|
459
|
+
continue;
|
|
460
|
+
if (!diff.trim()) {
|
|
461
|
+
// User reverted all customizations in this patch
|
|
462
|
+
this.lockManager.removePatch(patch.id);
|
|
463
|
+
contentRefreshed++;
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
const newContentHash = this.detector.computeContentHash(diff);
|
|
467
|
+
if (newContentHash !== patch.content_hash) {
|
|
468
|
+
// User changed their customization — update patch content
|
|
469
|
+
// and recalculate the files list (some files may no longer differ)
|
|
470
|
+
const filesOutput = await this.git.exec(["diff", "--name-only", currentGen, "HEAD", "--", ...patch.files]).catch(() => null);
|
|
471
|
+
const newFiles = filesOutput
|
|
472
|
+
? filesOutput.trim().split("\n").filter(Boolean)
|
|
473
|
+
.filter((f) => !f.startsWith(".fern/"))
|
|
474
|
+
: patch.files;
|
|
475
|
+
if (newFiles.length === 0) {
|
|
476
|
+
this.lockManager.removePatch(patch.id);
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
this.lockManager.updatePatch(patch.id, {
|
|
480
|
+
patch_content: diff,
|
|
481
|
+
content_hash: newContentHash,
|
|
482
|
+
files: newFiles,
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
contentRefreshed++;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
catch {
|
|
489
|
+
// If anything fails, leave the patch unchanged
|
|
490
|
+
}
|
|
334
491
|
continue;
|
|
492
|
+
}
|
|
335
493
|
try {
|
|
336
494
|
// Check for unresolved conflict markers in HEAD
|
|
337
495
|
const markerFiles = await this.git.exec(["grep", "-l", "<<<<<<<", "HEAD", "--", ...patch.files]).catch(() => "");
|
|
@@ -361,7 +519,7 @@ export class ReplayService {
|
|
|
361
519
|
// If anything fails, leave the patch unchanged
|
|
362
520
|
}
|
|
363
521
|
}
|
|
364
|
-
return { conflictResolved, conflictAbsorbed };
|
|
522
|
+
return { conflictResolved, conflictAbsorbed, contentRefreshed };
|
|
365
523
|
}
|
|
366
524
|
/**
|
|
367
525
|
* Read .fernignore patterns from the output directory.
|
|
@@ -382,25 +540,34 @@ export class ReplayService {
|
|
|
382
540
|
buildReport(flow, patches, results, options, warnings, rebaseCounts, preRebaseCounts) {
|
|
383
541
|
const conflictResults = results.filter((r) => r.status === "conflict");
|
|
384
542
|
const conflictDetails = conflictResults
|
|
385
|
-
.map((r) =>
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
543
|
+
.map((r) => {
|
|
544
|
+
const conflictFiles = r.fileResults?.filter((f) => f.status === "conflict") ?? [];
|
|
545
|
+
const cleanFiles = r.fileResults?.filter((f) => f.status === "merged").map((f) => f.file) ?? [];
|
|
546
|
+
return {
|
|
547
|
+
patchId: r.patch.id,
|
|
548
|
+
patchMessage: r.patch.original_message,
|
|
549
|
+
reason: r.conflictReason,
|
|
550
|
+
files: conflictFiles,
|
|
551
|
+
cleanFiles: cleanFiles.length > 0 ? cleanFiles : undefined,
|
|
552
|
+
};
|
|
553
|
+
})
|
|
391
554
|
.filter((d) => d.files.length > 0);
|
|
555
|
+
const partialCount = conflictDetails.filter((d) => d.cleanFiles && d.cleanFiles.length > 0).length;
|
|
392
556
|
return {
|
|
393
557
|
flow,
|
|
394
558
|
patchesDetected: patches.length,
|
|
395
559
|
patchesApplied: results.filter((r) => r.status === "applied").length,
|
|
396
560
|
patchesWithConflicts: conflictResults.length,
|
|
397
561
|
patchesSkipped: results.filter((r) => r.status === "skipped").length,
|
|
562
|
+
patchesPartiallyApplied: partialCount > 0 ? partialCount : undefined,
|
|
398
563
|
patchesAbsorbed: rebaseCounts && rebaseCounts.absorbed > 0 ? rebaseCounts.absorbed : undefined,
|
|
399
564
|
patchesRepointed: rebaseCounts && rebaseCounts.repointed > 0 ? rebaseCounts.repointed : undefined,
|
|
400
565
|
patchesContentRebased: rebaseCounts && rebaseCounts.contentRebased > 0 ? rebaseCounts.contentRebased : undefined,
|
|
401
566
|
patchesKeptAsUserOwned: rebaseCounts && rebaseCounts.keptAsUserOwned > 0 ? rebaseCounts.keptAsUserOwned : undefined,
|
|
402
567
|
patchesConflictResolved: preRebaseCounts && (preRebaseCounts.conflictResolved + preRebaseCounts.conflictAbsorbed) > 0
|
|
403
568
|
? preRebaseCounts.conflictResolved + preRebaseCounts.conflictAbsorbed : undefined,
|
|
569
|
+
patchesRefreshed: preRebaseCounts && preRebaseCounts.contentRefreshed > 0
|
|
570
|
+
? preRebaseCounts.contentRefreshed : undefined,
|
|
404
571
|
conflicts: conflictResults
|
|
405
572
|
.flatMap((r) => r.fileResults?.filter((f) => f.status === "conflict") ?? []),
|
|
406
573
|
conflictDetails: conflictDetails.length > 0 ? conflictDetails : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplayService.js","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAsCvD,MAAM,OAAO,aAAa;IACd,GAAG,CAAY;IACf,QAAQ,CAAiB;IACzB,UAAU,CAAmB;IAC7B,SAAS,CAAkB;IAC3B,WAAW,CAAkB;IAC7B,SAAS,CAAS;IAE1B,YACI,SAAiB,EACjB,OAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAuB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAElC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,kBAAkB;gBACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC/C,KAAK,YAAY;gBACb,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,sBAAsB,CACxB,mBAA2B,EAC3B,OAA6E;QAE7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,CACd,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAC1E,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,MAAM,GAAqB;YAC7B,UAAU,EAAE,mBAAmB;YAC/B,SAAS,EAAE,QAAQ;YACnB,SAAS;YACT,WAAW,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS;YAC7C,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE;SACvD,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7B,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACvD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO;gBACH,IAAI,EAAE,kBAAkB;gBACxB,eAAe,EAAE,CAAC;gBAClB,cAAc,EAAE,CAAC;gBACjB,oBAAoB,EAAE,CAAC;gBACvB,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,EAAE;aAChB,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;YAC3C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;SACrD,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO;YACH,IAAI,EAAE,kBAAkB;YACxB,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;YACjB,oBAAoB,EAAE,CAAC;YACvB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,EAAE;SAChB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,2BAA2B,CAAC,OAAuB;QAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO;gBACH,IAAI,EAAE,YAAY;gBAClB,eAAe,EAAE,UAAU,CAAC,MAAM;gBAClC,cAAc,EAAE,CAAC;gBACjB,oBAAoB,EAAE,CAAC;gBACvB,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;YAC3C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;SACrD,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,4DAA4D;QAC5D,iEAAiE;QACjE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAE7E,6DAA6D;QAC7D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAC3D,CAAC,MAAM,CAAC;gBACT,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChG,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CAAC,OAAuB;QAC1D,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,UAAU,CAAC,CAAC;YACvD,OAAO;gBACH,IAAI,EAAE,qBAAqB;gBAC3B,eAAe,EAAE,UAAU,CAAC,MAAM;gBAClC,cAAc,EAAE,CAAC;gBACjB,oBAAoB,EAAE,CAAC;gBACvB,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC;QACN,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACxE,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAEhD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,UAAU,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;YAC3C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;SACrD,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/D,4DAA4D;QAC5D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAE7E,6DAA6D;QAC7D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAC3D,CAAC,MAAM,CAAC;YACT,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAC1H,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,OAAuB,EAAE,aAAqB;QACtE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,gEAAgE;QAChE,6EAA6E;QAC7E,gFAAgF;QAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,uCAAuC;YACvC,mEAAmE;YACnE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAE3B,kDAAkD;YAClD,IAAI,KAAK,CAAC,eAAe,KAAK,aAAa;gBAAE,SAAS;YAEtD,IAAI,CAAC;gBACD,gEAAgE;gBAChE,+CAA+C;gBAC/C,kEAAkE;gBAClE,oEAAoE;gBACpE,0EAA0E;gBAC1E,qEAAqE;gBACrE,oDAAoD;gBACpD,yEAAyE;gBACzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACzD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBAC3B,0CAA0C;oBAC1C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;wBACzB,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,gDAAgD;oBAChD,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,qDAAqD;oBACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBAC7D,OAAO,OAAO,KAAK,IAAI,CAAC;gBAC5B,CAAC,CAAC,CACL,CAAC;gBACF,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEpD,IAAI,iBAAiB,EAAE,CAAC;oBACpB,gEAAgE;oBAChE,2DAA2D;oBAC3D,gDAAgD;oBAChD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;wBACnC,eAAe,EAAE,aAAa;qBACjC,CAAC,CAAC;oBACH,eAAe,EAAE,CAAC;oBAClB,SAAS;gBACb,CAAC;gBAED,2DAA2D;gBAC3D,uCAAuC;gBACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC7B,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK;iBAC9C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAErB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBACxB,oEAAoE;oBACpE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACvC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/B,QAAQ,EAAE,CAAC;oBACX,SAAS;gBACb,CAAC;gBAED,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAE9D,gEAAgE;gBAChE,+DAA+D;gBAC/D,2CAA2C;gBAC3C,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACvC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/B,QAAQ,EAAE,CAAC;oBACX,SAAS;gBACb,CAAC;gBACD,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAEtC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;oBACnC,eAAe,EAAE,aAAa;oBAC9B,aAAa,EAAE,IAAI;oBACnB,YAAY,EAAE,cAAc;iBAC/B,CAAC,CAAC;gBACH,cAAc,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACL,sEAAsE;YAC1E,CAAC;QACL,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACtF,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,mBAAmB,CAC7B,OAAsB;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,eAAe,KAAK,UAAU;gBAAE,SAAS;YAEnD,IAAI,CAAC;gBACD,gDAAgD;gBAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CACnC,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAC1D,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAElB,IAAI,WAAW,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAEjC,mEAAmE;gBACnE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC5B,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CACrD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAEpB,4DAA4D;gBAC5D,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAE5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBACf,qDAAqD;oBACrD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACvC,gBAAgB,EAAE,CAAC;oBACnB,SAAS;gBACb,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;oBACnC,eAAe,EAAE,UAAU;oBAC3B,aAAa,EAAE,IAAI;oBACnB,YAAY,EAAE,cAAc;iBAC/B,CAAC,CAAC;gBACH,gBAAgB,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACL,+CAA+C;YACnD,CAAC;QACL,CAAC;QAED,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3C,OAAO,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;aACvC,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,WAAW,CACf,IAA+D,EAC/D,OAAsB,EACtB,OAAuB,EACvB,OAAuB,EACvB,QAAmB,EACnB,YAAsI,EACtI,eAAwE;QAExE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,eAAe;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;YACnB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;YACtC,MAAM,EAAE,CAAC,CAAC,cAAc;YACxB,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;SACrE,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,OAAO;YACH,IAAI;YACJ,eAAe,EAAE,OAAO,CAAC,MAAM;YAC/B,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YACpE,oBAAoB,EAAE,eAAe,CAAC,MAAM;YAC5C,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YACpE,eAAe,EAAE,YAAY,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC9F,gBAAgB,EAAE,YAAY,IAAI,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACjG,qBAAqB,EAAE,YAAY,IAAI,YAAY,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YAChH,sBAAsB,EAAE,YAAY,IAAI,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACnH,uBAAuB,EAAE,eAAe,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBACjH,CAAC,CAAC,eAAe,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YACrF,SAAS,EAAE,eAAe;iBACrB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YAChF,eAAe,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACzE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACjD,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACN,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"ReplayService.js","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"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"}
|