brave-real-playwright-core 1.57.0-patch.1 → 1.57.0-patch.3
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/advanced-stealth.js +46 -59
- package/package.json +6 -6
- package/stealth-injection.js +45 -58
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 🦁 brave-real-playwright-core v1.57.0-patch.
|
|
1
|
+
# 🦁 brave-real-playwright-core v1.57.0-patch.3
|
|
2
2
|
|
|
3
3
|
**Based on Playwright Core v1.57.0**
|
|
4
4
|
|
|
@@ -48,7 +48,7 @@ await page.goto('https://bot-detector.rebrowser.net/');
|
|
|
48
48
|
|
|
49
49
|
- **playwright-core**: v1.57.0
|
|
50
50
|
- **rebrowser-patches**: Latest stealth optimizations
|
|
51
|
-
- **Brave optimization**: v1.57.0-patch.
|
|
51
|
+
- **Brave optimization**: v1.57.0-patch.3
|
|
52
52
|
|
|
53
53
|
## 🔗 Links
|
|
54
54
|
|
package/advanced-stealth.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
timingRange: '1-5ms',
|
|
6
6
|
stealthLevel: 'professional',
|
|
7
7
|
engine: 'playwright',
|
|
8
|
-
braveVersion: '1.57.0-patch.
|
|
8
|
+
braveVersion: '1.57.0-patch.3',
|
|
9
9
|
features: {
|
|
10
10
|
performanceOptimization: true,
|
|
11
11
|
navigatorSpoofing: true,
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
return Promise.resolve({
|
|
72
72
|
ok: true,
|
|
73
73
|
json: () => Promise.resolve([{
|
|
74
|
-
version: '
|
|
74
|
+
version: '143.0.7499.193',
|
|
75
75
|
time: new Date().toISOString()
|
|
76
76
|
}])
|
|
77
77
|
});
|
|
@@ -107,16 +107,11 @@
|
|
|
107
107
|
delete navigator.webdriver;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
get: () => undefined,
|
|
113
|
-
set: () => {},
|
|
114
|
-
configurable: false,
|
|
115
|
-
enumerable: false
|
|
116
|
-
});
|
|
110
|
+
|
|
111
|
+
|
|
117
112
|
|
|
118
113
|
// Additional webdriver property variations
|
|
119
|
-
const webdriverProps = ['
|
|
114
|
+
const webdriverProps = ['__webdriver__', '_webdriver', 'webDriver'];
|
|
120
115
|
webdriverProps.forEach(prop => {
|
|
121
116
|
if (prop in navigator) {
|
|
122
117
|
delete navigator[prop];
|
|
@@ -497,15 +492,15 @@
|
|
|
497
492
|
let bulletproofUserAgent;
|
|
498
493
|
if (isBraveOptimized) {
|
|
499
494
|
// Brave-optimized user agent (maximum stealth)
|
|
500
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
495
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
501
496
|
console.log('[🦁 BRAVE-STEALTH] Brave browser optimizations active - maximum stealth mode');
|
|
502
497
|
} else if (isChromeOptimized) {
|
|
503
498
|
// Chrome-optimized user agent
|
|
504
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
499
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
505
500
|
console.log('[🔵 CHROME-STEALTH] Chrome browser optimizations active');
|
|
506
501
|
} else {
|
|
507
502
|
// Default fallback user agent
|
|
508
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
503
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
509
504
|
console.log('[⚙️ DEFAULT-STEALTH] Using default browser stealth mode');
|
|
510
505
|
}
|
|
511
506
|
|
|
@@ -518,42 +513,13 @@
|
|
|
518
513
|
|
|
519
514
|
// COMPLETELY override appVersion
|
|
520
515
|
Object.defineProperty(navigator, 'appVersion', {
|
|
521
|
-
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
516
|
+
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36',
|
|
522
517
|
configurable: false,
|
|
523
518
|
enumerable: true
|
|
524
519
|
});
|
|
525
520
|
|
|
526
|
-
// BULLETPROOF webdriver property elimination
|
|
527
|
-
if ('webdriver' in navigator) {
|
|
528
|
-
delete navigator.webdriver;
|
|
529
|
-
}
|
|
530
521
|
|
|
531
|
-
//
|
|
532
|
-
Object.defineProperty(navigator, 'webdriver', {
|
|
533
|
-
get: () => undefined,
|
|
534
|
-
set: () => {},
|
|
535
|
-
configurable: false,
|
|
536
|
-
enumerable: false
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
// OVERRIDE Object.getOwnPropertyDescriptor to hide our modifications
|
|
540
|
-
const originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
541
|
-
Object.getOwnPropertyDescriptor = function(obj, prop) {
|
|
542
|
-
if (obj === navigator && prop === 'webdriver') {
|
|
543
|
-
return undefined;
|
|
544
|
-
}
|
|
545
|
-
return originalGetOwnPropertyDescriptor.call(this, obj, prop);
|
|
546
|
-
};
|
|
547
|
-
|
|
548
|
-
// OVERRIDE Object.getOwnPropertyNames to hide webdriver
|
|
549
|
-
const originalGetOwnPropertyNames = Object.getOwnPropertyNames;
|
|
550
|
-
Object.getOwnPropertyNames = function(obj) {
|
|
551
|
-
const props = originalGetOwnPropertyNames.call(this, obj);
|
|
552
|
-
if (obj === navigator) {
|
|
553
|
-
return props.filter(prop => prop !== 'webdriver');
|
|
554
|
-
}
|
|
555
|
-
return props;
|
|
556
|
-
};
|
|
522
|
+
// BULLETPROOF platform detection
|
|
557
523
|
|
|
558
524
|
// BULLETPROOF platform detection
|
|
559
525
|
Object.defineProperty(navigator, 'platform', {
|
|
@@ -587,13 +553,23 @@
|
|
|
587
553
|
});
|
|
588
554
|
})();
|
|
589
555
|
|
|
590
|
-
// Enhanced userAgentData with getHighEntropyValues method
|
|
591
|
-
|
|
592
|
-
|
|
556
|
+
// Enhanced userAgentData with getHighEntropyValues method - Singleton & Prototype
|
|
557
|
+
(function() {
|
|
558
|
+
// Aggressively delete existing userAgentData
|
|
559
|
+
try {
|
|
560
|
+
delete Navigator.prototype.userAgentData;
|
|
561
|
+
} catch {}
|
|
562
|
+
try {
|
|
563
|
+
if (navigator.hasOwnProperty('userAgentData')) {
|
|
564
|
+
delete navigator.userAgentData;
|
|
565
|
+
}
|
|
566
|
+
} catch {}
|
|
567
|
+
|
|
568
|
+
const userAgentDataInstance = {
|
|
593
569
|
brands: [
|
|
594
|
-
{ brand: 'Not_A Brand', version: '
|
|
595
|
-
{ brand: 'Chromium', version: '
|
|
596
|
-
{ brand: 'Google Chrome', version: '
|
|
570
|
+
{ brand: 'Not_A Brand', version: '24' },
|
|
571
|
+
{ brand: 'Chromium', version: '131' },
|
|
572
|
+
{ brand: 'Google Chrome', version: '131' }
|
|
597
573
|
],
|
|
598
574
|
mobile: false,
|
|
599
575
|
platform: 'Windows',
|
|
@@ -601,23 +577,34 @@
|
|
|
601
577
|
return Promise.resolve({
|
|
602
578
|
architecture: 'x86',
|
|
603
579
|
bitness: '64',
|
|
604
|
-
brands:
|
|
580
|
+
brands: userAgentDataInstance.brands,
|
|
605
581
|
fullVersionList: [
|
|
606
|
-
{ brand: 'Not_A Brand', version: '
|
|
607
|
-
{ brand: 'Chromium', version: '
|
|
608
|
-
{ brand: 'Google Chrome', version: '
|
|
582
|
+
{ brand: 'Not_A Brand', version: '143.0.7499.193' },
|
|
583
|
+
{ brand: 'Chromium', version: '143.0.7499.193' },
|
|
584
|
+
{ brand: 'Google Chrome', version: '143.0.7499.193' }
|
|
609
585
|
],
|
|
610
586
|
mobile: false,
|
|
611
587
|
model: '',
|
|
612
588
|
platform: 'Windows',
|
|
613
589
|
platformVersion: '10.0.0',
|
|
614
|
-
uaFullVersion: '
|
|
590
|
+
uaFullVersion: '143.0.7499.193'
|
|
615
591
|
});
|
|
592
|
+
},
|
|
593
|
+
toJSON: function() {
|
|
594
|
+
return {
|
|
595
|
+
brands: this.brands,
|
|
596
|
+
mobile: this.mobile,
|
|
597
|
+
platform: this.platform
|
|
598
|
+
};
|
|
616
599
|
}
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
Object.defineProperty(Navigator.prototype, 'userAgentData', {
|
|
603
|
+
get: () => userAgentDataInstance,
|
|
604
|
+
configurable: false,
|
|
605
|
+
enumerable: true
|
|
606
|
+
});
|
|
607
|
+
})();
|
|
621
608
|
|
|
622
609
|
|
|
623
610
|
console.log('[REBROWSER-STEALTH] ✅ Ultra-fast professional stealth mode activated');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-playwright-core",
|
|
3
|
-
"version": "1.57.0-patch.
|
|
3
|
+
"version": "1.57.0-patch.3",
|
|
4
4
|
"description": "Brave-optimized Playwright Core (v1.57.0) with comprehensive stealth patches and error stack sanitization",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"playwright",
|
|
@@ -48,16 +48,16 @@
|
|
|
48
48
|
],
|
|
49
49
|
"brave": {
|
|
50
50
|
"optimized": true,
|
|
51
|
-
"version": "1.57.0-patch.
|
|
51
|
+
"version": "1.57.0-patch.3",
|
|
52
52
|
"basedOn": {
|
|
53
53
|
"playwright-core": "1.57.0",
|
|
54
|
-
"patches-version": "1.57.0-patch.
|
|
55
|
-
"release-info": "Brave Playwright v1.57.0-patch.
|
|
54
|
+
"patches-version": "1.57.0-patch.3",
|
|
55
|
+
"release-info": "Brave Playwright v1.57.0-patch.3 based on Playwright Core v1.57.0"
|
|
56
56
|
},
|
|
57
57
|
"versionInfo": {
|
|
58
|
-
"braveVersion": "1.57.0-patch.
|
|
58
|
+
"braveVersion": "1.57.0-patch.3",
|
|
59
59
|
"playwrightVersion": "1.57.0",
|
|
60
|
-
"fullName": "Brave Playwright Core v1.57.0-patch.
|
|
60
|
+
"fullName": "Brave Playwright Core v1.57.0-patch.3 (Playwright 1.57.0)"
|
|
61
61
|
},
|
|
62
62
|
"features": [
|
|
63
63
|
"error-stack-sanitization",
|
package/stealth-injection.js
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
return Promise.resolve({
|
|
36
36
|
ok: true,
|
|
37
37
|
json: () => Promise.resolve([{
|
|
38
|
-
version: '
|
|
38
|
+
version: '143.0.7499.193',
|
|
39
39
|
time: new Date().toISOString()
|
|
40
40
|
}])
|
|
41
41
|
});
|
|
@@ -71,16 +71,11 @@
|
|
|
71
71
|
delete navigator.webdriver;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
get: () => undefined,
|
|
77
|
-
set: () => {},
|
|
78
|
-
configurable: false,
|
|
79
|
-
enumerable: false
|
|
80
|
-
});
|
|
74
|
+
|
|
75
|
+
|
|
81
76
|
|
|
82
77
|
// Additional webdriver property variations
|
|
83
|
-
const webdriverProps = ['
|
|
78
|
+
const webdriverProps = ['__webdriver__', '_webdriver', 'webDriver'];
|
|
84
79
|
webdriverProps.forEach(prop => {
|
|
85
80
|
if (prop in navigator) {
|
|
86
81
|
delete navigator[prop];
|
|
@@ -461,15 +456,15 @@
|
|
|
461
456
|
let bulletproofUserAgent;
|
|
462
457
|
if (isBraveOptimized) {
|
|
463
458
|
// Brave-optimized user agent (maximum stealth)
|
|
464
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
459
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
465
460
|
console.log('[🦁 BRAVE-STEALTH] Brave browser optimizations active - maximum stealth mode');
|
|
466
461
|
} else if (isChromeOptimized) {
|
|
467
462
|
// Chrome-optimized user agent
|
|
468
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
463
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
469
464
|
console.log('[🔵 CHROME-STEALTH] Chrome browser optimizations active');
|
|
470
465
|
} else {
|
|
471
466
|
// Default fallback user agent
|
|
472
|
-
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
467
|
+
bulletproofUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36';
|
|
473
468
|
console.log('[⚙️ DEFAULT-STEALTH] Using default browser stealth mode');
|
|
474
469
|
}
|
|
475
470
|
|
|
@@ -482,42 +477,13 @@
|
|
|
482
477
|
|
|
483
478
|
// COMPLETELY override appVersion
|
|
484
479
|
Object.defineProperty(navigator, 'appVersion', {
|
|
485
|
-
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
480
|
+
get: () => '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.7559.59 Safari/537.36',
|
|
486
481
|
configurable: false,
|
|
487
482
|
enumerable: true
|
|
488
483
|
});
|
|
489
484
|
|
|
490
|
-
// BULLETPROOF webdriver property elimination
|
|
491
|
-
if ('webdriver' in navigator) {
|
|
492
|
-
delete navigator.webdriver;
|
|
493
|
-
}
|
|
494
485
|
|
|
495
|
-
//
|
|
496
|
-
Object.defineProperty(navigator, 'webdriver', {
|
|
497
|
-
get: () => undefined,
|
|
498
|
-
set: () => {},
|
|
499
|
-
configurable: false,
|
|
500
|
-
enumerable: false
|
|
501
|
-
});
|
|
502
|
-
|
|
503
|
-
// OVERRIDE Object.getOwnPropertyDescriptor to hide our modifications
|
|
504
|
-
const originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
505
|
-
Object.getOwnPropertyDescriptor = function(obj, prop) {
|
|
506
|
-
if (obj === navigator && prop === 'webdriver') {
|
|
507
|
-
return undefined;
|
|
508
|
-
}
|
|
509
|
-
return originalGetOwnPropertyDescriptor.call(this, obj, prop);
|
|
510
|
-
};
|
|
511
|
-
|
|
512
|
-
// OVERRIDE Object.getOwnPropertyNames to hide webdriver
|
|
513
|
-
const originalGetOwnPropertyNames = Object.getOwnPropertyNames;
|
|
514
|
-
Object.getOwnPropertyNames = function(obj) {
|
|
515
|
-
const props = originalGetOwnPropertyNames.call(this, obj);
|
|
516
|
-
if (obj === navigator) {
|
|
517
|
-
return props.filter(prop => prop !== 'webdriver');
|
|
518
|
-
}
|
|
519
|
-
return props;
|
|
520
|
-
};
|
|
486
|
+
// BULLETPROOF platform detection
|
|
521
487
|
|
|
522
488
|
// BULLETPROOF platform detection
|
|
523
489
|
Object.defineProperty(navigator, 'platform', {
|
|
@@ -551,13 +517,23 @@
|
|
|
551
517
|
});
|
|
552
518
|
})();
|
|
553
519
|
|
|
554
|
-
// Enhanced userAgentData with getHighEntropyValues method
|
|
555
|
-
|
|
556
|
-
|
|
520
|
+
// Enhanced userAgentData with getHighEntropyValues method - Singleton & Prototype
|
|
521
|
+
(function() {
|
|
522
|
+
// Aggressively delete existing userAgentData
|
|
523
|
+
try {
|
|
524
|
+
delete Navigator.prototype.userAgentData;
|
|
525
|
+
} catch {}
|
|
526
|
+
try {
|
|
527
|
+
if (navigator.hasOwnProperty('userAgentData')) {
|
|
528
|
+
delete navigator.userAgentData;
|
|
529
|
+
}
|
|
530
|
+
} catch {}
|
|
531
|
+
|
|
532
|
+
const userAgentDataInstance = {
|
|
557
533
|
brands: [
|
|
558
|
-
{ brand: 'Not_A Brand', version: '
|
|
559
|
-
{ brand: 'Chromium', version: '
|
|
560
|
-
{ brand: 'Google Chrome', version: '
|
|
534
|
+
{ brand: 'Not_A Brand', version: '24' },
|
|
535
|
+
{ brand: 'Chromium', version: '131' },
|
|
536
|
+
{ brand: 'Google Chrome', version: '131' }
|
|
561
537
|
],
|
|
562
538
|
mobile: false,
|
|
563
539
|
platform: 'Windows',
|
|
@@ -565,23 +541,34 @@
|
|
|
565
541
|
return Promise.resolve({
|
|
566
542
|
architecture: 'x86',
|
|
567
543
|
bitness: '64',
|
|
568
|
-
brands:
|
|
544
|
+
brands: userAgentDataInstance.brands,
|
|
569
545
|
fullVersionList: [
|
|
570
|
-
{ brand: 'Not_A Brand', version: '
|
|
571
|
-
{ brand: 'Chromium', version: '
|
|
572
|
-
{ brand: 'Google Chrome', version: '
|
|
546
|
+
{ brand: 'Not_A Brand', version: '143.0.7499.193' },
|
|
547
|
+
{ brand: 'Chromium', version: '143.0.7499.193' },
|
|
548
|
+
{ brand: 'Google Chrome', version: '143.0.7499.193' }
|
|
573
549
|
],
|
|
574
550
|
mobile: false,
|
|
575
551
|
model: '',
|
|
576
552
|
platform: 'Windows',
|
|
577
553
|
platformVersion: '10.0.0',
|
|
578
|
-
uaFullVersion: '
|
|
554
|
+
uaFullVersion: '143.0.7499.193'
|
|
579
555
|
});
|
|
556
|
+
},
|
|
557
|
+
toJSON: function() {
|
|
558
|
+
return {
|
|
559
|
+
brands: this.brands,
|
|
560
|
+
mobile: this.mobile,
|
|
561
|
+
platform: this.platform
|
|
562
|
+
};
|
|
580
563
|
}
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
564
|
+
};
|
|
565
|
+
|
|
566
|
+
Object.defineProperty(Navigator.prototype, 'userAgentData', {
|
|
567
|
+
get: () => userAgentDataInstance,
|
|
568
|
+
configurable: false,
|
|
569
|
+
enumerable: true
|
|
570
|
+
});
|
|
571
|
+
})();
|
|
585
572
|
|
|
586
573
|
|
|
587
574
|
console.log('[REBROWSER-STEALTH] ✅ Ultra-fast professional stealth mode activated');
|