@@ -19,41 +19,12 @@ import {
1919} from './utils/zip-options' ;
2020
2121type Diff = ( oldSource ?: Buffer , newSource ?: Buffer ) => Buffer ;
22- type HpatchCover = {
23- oldPos : number | string | bigint ;
24- newPos : number | string | bigint ;
25- len : number | string | bigint ;
26- } ;
27- type HpatchCompatiblePlan = {
28- covers ?: HpatchCover [ ] ;
29- } ;
30- type HdiffWithCoversOptions = {
31- mode ?: 'replace' | 'merge' | 'native-coalesce' ;
32- } ;
3322type HdiffModule = {
3423 diff ?: Diff ;
35- diffWithCovers ?: (
36- oldSource : Buffer ,
37- newSource : Buffer ,
38- covers : HpatchCover [ ] ,
39- options ?: HdiffWithCoversOptions ,
40- ) => { diff ?: Buffer } ;
4124} ;
4225type BsdiffModule = {
4326 diff ?: Diff ;
4427} ;
45- type ChiffModule = {
46- hpatchCompatiblePlanResult ?: (
47- oldSource : Buffer ,
48- newSource : Buffer ,
49- ) => HpatchCompatiblePlan ;
50- hpatchApproximatePlanResult ?: (
51- oldSource : Buffer ,
52- newSource : Buffer ,
53- ) => HpatchCompatiblePlan ;
54- } ;
55- type ChiffHpatchPolicy = 'off' | 'costed' ;
56- type ChiffHpatchExactPolicy = 'off' | 'on' ;
5728type EntryMap = Record < string , { crc32 : number ; fileName : string } > ;
5829type CrcMap = Record < number , string > ;
5930type CopyMap = Record < string , string > ;
@@ -86,121 +57,6 @@ const loadModule = <T>(pkgName: string): T | undefined => {
8657
8758const hdiff = loadModule < HdiffModule > ( 'node-hdiffpatch' ) ;
8859const bsdiff = loadModule < BsdiffModule > ( 'node-bsdiff' ) ;
89- const chiff = loadModule < ChiffModule > ( '@chiff/node' ) ;
90-
91- // Structured covers are experimental and can be expensive on real Hermes input.
92- // Keep native hdiff as the default unless the server explicitly opts in.
93- function resolveChiffHpatchPolicy ( policy ?: unknown ) : ChiffHpatchPolicy {
94- const value = String (
95- policy ?? process . env . RNU_CHIFF_HPATCH_POLICY ?? 'off' ,
96- ) . toLowerCase ( ) ;
97- if (
98- value === 'costed' ||
99- value === 'on' ||
100- value === 'true' ||
101- value === '1'
102- ) {
103- return 'costed' ;
104- }
105- return 'off' ;
106- }
107-
108- function resolveChiffHpatchMinNativeBytes ( value ?: unknown ) : number {
109- const raw = value ?? process . env . RNU_CHIFF_HPATCH_MIN_NATIVE_BYTES ?? 4096 ;
110- const parsed = Number ( raw ) ;
111- if ( ! Number . isFinite ( parsed ) || parsed < 0 ) {
112- return 4096 ;
113- }
114- return Math . floor ( parsed ) ;
115- }
116-
117- function resolveChiffHpatchExactPolicy ( policy ?: unknown ) : ChiffHpatchExactPolicy {
118- const value = String (
119- policy ?? process . env . RNU_CHIFF_HPATCH_EXACT_COVERS ?? 'off' ,
120- ) . toLowerCase ( ) ;
121- if ( value === 'on' || value === 'true' || value === '1' ) {
122- return 'on' ;
123- }
124- return 'off' ;
125- }
126-
127- function createChiffAwareHdiff (
128- hdiffModule : HdiffModule ,
129- chiffModule : ChiffModule | undefined ,
130- policy : ChiffHpatchPolicy ,
131- minNativeBytes : number ,
132- exactPolicy : ChiffHpatchExactPolicy ,
133- ) : Diff {
134- const baseDiff = hdiffModule . diff ;
135- if ( ! baseDiff ) {
136- throw new Error ( t ( 'nodeHdiffpatchRequired' , { scriptName } ) ) ;
137- }
138-
139- if ( policy === 'off' ) {
140- return baseDiff ;
141- }
142-
143- return ( oldSource ?: Buffer , newSource ?: Buffer ) => {
144- const nativeDiff = baseDiff ( oldSource , newSource ) ;
145- if ( ! oldSource || ! newSource || ! hdiffModule . diffWithCovers ) {
146- return nativeDiff ;
147- }
148-
149- let bestDiff = nativeDiff ;
150- const tryDiffWithCovers = (
151- covers : HpatchCover [ ] ,
152- mode : 'replace' | 'merge' | 'native-coalesce' ,
153- ) => {
154- try {
155- const result = hdiffModule . diffWithCovers ?.(
156- oldSource ,
157- newSource ,
158- covers ,
159- { mode } ,
160- ) ;
161- if (
162- Buffer . isBuffer ( result ?. diff ) &&
163- result . diff . length < bestDiff . length
164- ) {
165- bestDiff = result . diff ;
166- }
167- } catch { }
168- } ;
169-
170- tryDiffWithCovers ( [ ] , 'native-coalesce' ) ;
171-
172- if ( nativeDiff . length < minNativeBytes ) {
173- return bestDiff ;
174- }
175-
176- try {
177- const approximatePlan = chiffModule ?. hpatchApproximatePlanResult ?.(
178- oldSource ,
179- newSource ,
180- ) ;
181- if ( Array . isArray ( approximatePlan ?. covers ) ) {
182- tryDiffWithCovers ( approximatePlan . covers , 'merge' ) ;
183- }
184- } catch { }
185-
186- if (
187- exactPolicy === 'off' ||
188- ! chiffModule ?. hpatchCompatiblePlanResult
189- ) {
190- return bestDiff ;
191- }
192-
193- try {
194- const plan = chiffModule . hpatchCompatiblePlanResult ( oldSource , newSource ) ;
195- if ( Array . isArray ( plan . covers ) ) {
196- tryDiffWithCovers ( plan . covers , 'replace' ) ;
197- tryDiffWithCovers ( plan . covers , 'merge' ) ;
198- }
199- } catch { }
200-
201- return bestDiff ;
202- } ;
203- }
20460
20561function basename ( fn : string ) : string | undefined {
20662 const m = / ^ ( .+ \/ ) [ ^ \/ ] + \/ ? $ / . exec ( fn ) ;
@@ -473,10 +329,6 @@ async function diffFromPackage(
473329type DiffCommandOptions = {
474330 customDiff ?: Diff ;
475331 customHdiffModule ?: HdiffModule ;
476- customChiffModule ?: ChiffModule ;
477- chiffHpatchPolicy ?: ChiffHpatchPolicy ;
478- chiffHpatchMinNativeBytes ?: number | string ;
479- chiffHpatchExactCovers ?: ChiffHpatchExactPolicy | boolean | string | number ;
480332 [ key : string ] : any ;
481333} ;
482334
@@ -493,13 +345,7 @@ function resolveDiffImplementation(
493345 if ( ! hdiffModule ?. diff ) {
494346 throw new Error ( t ( 'nodeHdiffpatchRequired' , { scriptName } ) ) ;
495347 }
496- return createChiffAwareHdiff (
497- hdiffModule ,
498- options . customChiffModule ?? chiff ,
499- resolveChiffHpatchPolicy ( options . chiffHpatchPolicy ) ,
500- resolveChiffHpatchMinNativeBytes ( options . chiffHpatchMinNativeBytes ) ,
501- resolveChiffHpatchExactPolicy ( options . chiffHpatchExactCovers ) ,
502- ) ;
348+ return hdiffModule . diff ;
503349 }
504350
505351 if ( ! bsdiff ?. diff ) {
0 commit comments