cloakbrowser 0.1.3 → 0.1.4
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/dist/config.d.ts +9 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -8
- package/dist/config.js.map +1 -1
- package/dist/download.d.ts +2 -0
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +132 -20
- package/dist/download.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -5,9 +5,15 @@
|
|
|
5
5
|
export declare const CHROMIUM_VERSION = "142.0.7444.175";
|
|
6
6
|
export declare function getPlatformTag(): string;
|
|
7
7
|
export declare function getCacheDir(): string;
|
|
8
|
-
export declare function getBinaryDir(): string;
|
|
9
|
-
export declare function getBinaryPath(): string;
|
|
10
|
-
export declare function
|
|
8
|
+
export declare function getBinaryDir(version?: string): string;
|
|
9
|
+
export declare function getBinaryPath(version?: string): string;
|
|
10
|
+
export declare function checkPlatformAvailable(): void;
|
|
11
|
+
export declare const DOWNLOAD_BASE_URL: string;
|
|
12
|
+
export declare const GITHUB_API_URL = "https://api.github.com/repos/CloakHQ/cloakbrowser/releases";
|
|
13
|
+
export declare function getDownloadUrl(version?: string): string;
|
|
14
|
+
export declare function getEffectiveVersion(): string;
|
|
15
|
+
export declare function parseVersion(v: string): number[];
|
|
16
|
+
export declare function versionNewer(a: string, b: string): boolean;
|
|
11
17
|
export declare function getLocalBinaryOverride(): string | undefined;
|
|
12
18
|
export declare function getDefaultStealthArgs(): string[];
|
|
13
19
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAgBjD,wBAAgB,cAAc,IAAI,MAAM,CAkBvC;AAKD,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAa7C;AAKD,eAAO,MAAM,iBAAiB,QAE+B,CAAC;AAE9D,eAAO,MAAM,cAAc,+DACmC,CAAC;AAE/D,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAgB5C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAKD,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAE3D;AAKD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAWhD"}
|
package/dist/config.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Stealth configuration and platform detection for cloakbrowser.
|
|
3
3
|
* Mirrors Python cloakbrowser/config.py.
|
|
4
4
|
*/
|
|
5
|
+
import fs from "node:fs";
|
|
5
6
|
import os from "node:os";
|
|
6
7
|
import path from "node:path";
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
@@ -17,6 +18,9 @@ const SUPPORTED_PLATFORMS = {
|
|
|
17
18
|
"darwin-arm64": "darwin-arm64",
|
|
18
19
|
"darwin-x64": "darwin-x64",
|
|
19
20
|
};
|
|
21
|
+
// Platforms with pre-built binaries available for download.
|
|
22
|
+
// Update this set as new platform builds are released.
|
|
23
|
+
const AVAILABLE_PLATFORMS = new Set(["linux-x64"]);
|
|
20
24
|
export function getPlatformTag() {
|
|
21
25
|
const platform = process.platform;
|
|
22
26
|
const arch = process.arch;
|
|
@@ -45,24 +49,70 @@ export function getCacheDir() {
|
|
|
45
49
|
return custom;
|
|
46
50
|
return path.join(os.homedir(), ".cloakbrowser");
|
|
47
51
|
}
|
|
48
|
-
export function getBinaryDir() {
|
|
49
|
-
return path.join(getCacheDir(), `chromium-${CHROMIUM_VERSION}`);
|
|
52
|
+
export function getBinaryDir(version) {
|
|
53
|
+
return path.join(getCacheDir(), `chromium-${version || CHROMIUM_VERSION}`);
|
|
50
54
|
}
|
|
51
|
-
export function getBinaryPath() {
|
|
52
|
-
const binaryDir = getBinaryDir();
|
|
55
|
+
export function getBinaryPath(version) {
|
|
56
|
+
const binaryDir = getBinaryDir(version);
|
|
53
57
|
if (process.platform === "darwin") {
|
|
54
58
|
return path.join(binaryDir, "Chromium.app", "Contents", "MacOS", "Chromium");
|
|
55
59
|
}
|
|
56
60
|
return path.join(binaryDir, "chrome");
|
|
57
61
|
}
|
|
62
|
+
export function checkPlatformAvailable() {
|
|
63
|
+
if (getLocalBinaryOverride())
|
|
64
|
+
return;
|
|
65
|
+
const tag = getPlatformTag(); // throws if unsupported entirely
|
|
66
|
+
if (!AVAILABLE_PLATFORMS.has(tag)) {
|
|
67
|
+
const available = [...AVAILABLE_PLATFORMS].sort().join(", ");
|
|
68
|
+
throw new Error(`CloakBrowser is in active development. ` +
|
|
69
|
+
`Pre-built binaries are currently only available for: ${available}.\n` +
|
|
70
|
+
`macOS and Windows builds are coming soon.\n\n` +
|
|
71
|
+
`To use CloakBrowser now, run in Docker (see README).`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
58
74
|
// ---------------------------------------------------------------------------
|
|
59
75
|
// Download URL
|
|
60
76
|
// ---------------------------------------------------------------------------
|
|
61
|
-
const DOWNLOAD_BASE_URL = process.env.CLOAKBROWSER_DOWNLOAD_URL ||
|
|
62
|
-
"https://github.com/CloakHQ/
|
|
63
|
-
export
|
|
77
|
+
export const DOWNLOAD_BASE_URL = process.env.CLOAKBROWSER_DOWNLOAD_URL ||
|
|
78
|
+
"https://github.com/CloakHQ/cloakbrowser/releases/download";
|
|
79
|
+
export const GITHUB_API_URL = "https://api.github.com/repos/CloakHQ/cloakbrowser/releases";
|
|
80
|
+
export function getDownloadUrl(version) {
|
|
81
|
+
const v = version || CHROMIUM_VERSION;
|
|
64
82
|
const tag = getPlatformTag();
|
|
65
|
-
return `${DOWNLOAD_BASE_URL}/v${
|
|
83
|
+
return `${DOWNLOAD_BASE_URL}/chromium-v${v}/cloakbrowser-${tag}.tar.gz`;
|
|
84
|
+
}
|
|
85
|
+
export function getEffectiveVersion() {
|
|
86
|
+
const marker = path.join(getCacheDir(), "latest_version");
|
|
87
|
+
try {
|
|
88
|
+
if (fs.existsSync(marker)) {
|
|
89
|
+
const version = fs.readFileSync(marker, "utf-8").trim();
|
|
90
|
+
if (version && versionNewer(version, CHROMIUM_VERSION)) {
|
|
91
|
+
const binary = getBinaryPath(version);
|
|
92
|
+
if (fs.existsSync(binary)) {
|
|
93
|
+
return version;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Marker unreadable — fall back to hardcoded
|
|
100
|
+
}
|
|
101
|
+
return CHROMIUM_VERSION;
|
|
102
|
+
}
|
|
103
|
+
export function parseVersion(v) {
|
|
104
|
+
return v.split(".").map(Number);
|
|
105
|
+
}
|
|
106
|
+
export function versionNewer(a, b) {
|
|
107
|
+
const va = parseVersion(a);
|
|
108
|
+
const vb = parseVersion(b);
|
|
109
|
+
for (let i = 0; i < Math.max(va.length, vb.length); i++) {
|
|
110
|
+
if ((va[i] ?? 0) > (vb[i] ?? 0))
|
|
111
|
+
return true;
|
|
112
|
+
if ((va[i] ?? 0) < (vb[i] ?? 0))
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
66
116
|
}
|
|
67
117
|
// ---------------------------------------------------------------------------
|
|
68
118
|
// Local binary override
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAC9E,MAAM,mBAAmB,GAA2B;IAClD,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,YAAY,EAAE,YAAY;CAC3B,CAAC;AAEF,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,8CAA8C;IAC9C,IAAI,GAAW,CAAC;IAChB,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK;QAAE,GAAG,GAAG,WAAW,CAAC;SACzD,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;QAAE,GAAG,GAAG,aAAa,CAAC;SAClE,IAAI,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,GAAG,GAAG,cAAc,CAAC;SACpE,IAAI,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;QAAE,GAAG,GAAG,YAAY,CAAC;SAChE,CAAC;QACJ,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,IAAI,IAAI,gBAAgB,SAAS,EAAE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,mBAAmB,CAAC,GAAG,CAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAC9E,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAClD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/download.d.ts
CHANGED
|
@@ -13,4 +13,6 @@ export declare function ensureBinary(): Promise<string>;
|
|
|
13
13
|
export declare function clearCache(): void;
|
|
14
14
|
/** Return info about the current binary installation. */
|
|
15
15
|
export declare function binaryInfo(): BinaryInfo;
|
|
16
|
+
/** Manually check for a newer Chromium version. Returns new version or null. */
|
|
17
|
+
export declare function checkForUpdate(): Promise<string | null>;
|
|
16
18
|
//# sourceMappingURL=download.d.ts.map
|
package/dist/download.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsB7C;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAmDpD;AAED,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,IAAI,CAMjC;AAED,yDAAyD;AACzD,wBAAgB,UAAU,IAAI,UAAU,CAWvC;AAED,gFAAgF;AAChF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc7D"}
|
package/dist/download.js
CHANGED
|
@@ -7,8 +7,9 @@ import fs from "node:fs";
|
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { createWriteStream } from "node:fs";
|
|
9
9
|
import { extract as tarExtract } from "tar";
|
|
10
|
-
import { CHROMIUM_VERSION, getBinaryDir, getBinaryPath, getDownloadUrl, getLocalBinaryOverride, getPlatformTag,
|
|
10
|
+
import { CHROMIUM_VERSION, GITHUB_API_URL, checkPlatformAvailable, getBinaryDir, getBinaryPath, getCacheDir, getDownloadUrl, getEffectiveVersion, getLocalBinaryOverride, getPlatformTag, versionNewer, } from "./config.js";
|
|
11
11
|
const DOWNLOAD_TIMEOUT_MS = 600_000; // 10 minutes
|
|
12
|
+
const UPDATE_CHECK_INTERVAL_MS = 3_600_000; // 1 hour
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
13
14
|
// Public API
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -26,20 +27,34 @@ export async function ensureBinary() {
|
|
|
26
27
|
console.log(`[cloakbrowser] Using local binary override: ${localOverride}`);
|
|
27
28
|
return localOverride;
|
|
28
29
|
}
|
|
29
|
-
//
|
|
30
|
-
|
|
30
|
+
// Fail fast if no binary available for this platform
|
|
31
|
+
checkPlatformAvailable();
|
|
32
|
+
// Check for auto-updated version first, then fall back to hardcoded
|
|
33
|
+
const effective = getEffectiveVersion();
|
|
34
|
+
const binaryPath = getBinaryPath(effective);
|
|
31
35
|
if (fs.existsSync(binaryPath) && isExecutable(binaryPath)) {
|
|
36
|
+
maybeTriggerUpdateCheck();
|
|
32
37
|
return binaryPath;
|
|
33
38
|
}
|
|
34
|
-
//
|
|
39
|
+
// Fall back to hardcoded version if effective version binary doesn't exist
|
|
40
|
+
if (effective !== CHROMIUM_VERSION) {
|
|
41
|
+
const fallbackPath = getBinaryPath();
|
|
42
|
+
if (fs.existsSync(fallbackPath) && isExecutable(fallbackPath)) {
|
|
43
|
+
maybeTriggerUpdateCheck();
|
|
44
|
+
return fallbackPath;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Download hardcoded version
|
|
35
48
|
console.log(`[cloakbrowser] Stealth Chromium ${CHROMIUM_VERSION} not found. Downloading for ${getPlatformTag()}...`);
|
|
36
49
|
await downloadAndExtract();
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
const downloadedPath = getBinaryPath();
|
|
51
|
+
if (!fs.existsSync(downloadedPath)) {
|
|
52
|
+
throw new Error(`Download completed but binary not found at expected path: ${downloadedPath}. ` +
|
|
39
53
|
`This may indicate a packaging issue. Please report at ` +
|
|
40
54
|
`https://github.com/CloakHQ/cloakbrowser/issues`);
|
|
41
55
|
}
|
|
42
|
-
|
|
56
|
+
maybeTriggerUpdateCheck();
|
|
57
|
+
return downloadedPath;
|
|
43
58
|
}
|
|
44
59
|
/** Remove all cached binaries. Forces re-download on next launch. */
|
|
45
60
|
export function clearCache() {
|
|
@@ -51,29 +66,46 @@ export function clearCache() {
|
|
|
51
66
|
}
|
|
52
67
|
/** Return info about the current binary installation. */
|
|
53
68
|
export function binaryInfo() {
|
|
54
|
-
const
|
|
69
|
+
const effective = getEffectiveVersion();
|
|
70
|
+
const binaryPath = getBinaryPath(effective);
|
|
55
71
|
return {
|
|
56
|
-
version:
|
|
72
|
+
version: effective,
|
|
57
73
|
platform: getPlatformTag(),
|
|
58
74
|
binaryPath,
|
|
59
75
|
installed: fs.existsSync(binaryPath),
|
|
60
|
-
cacheDir: getBinaryDir(),
|
|
61
|
-
downloadUrl: getDownloadUrl(),
|
|
76
|
+
cacheDir: getBinaryDir(effective),
|
|
77
|
+
downloadUrl: getDownloadUrl(effective),
|
|
62
78
|
};
|
|
63
79
|
}
|
|
80
|
+
/** Manually check for a newer Chromium version. Returns new version or null. */
|
|
81
|
+
export async function checkForUpdate() {
|
|
82
|
+
const latest = await getLatestChromiumVersion();
|
|
83
|
+
if (!latest || !versionNewer(latest, CHROMIUM_VERSION))
|
|
84
|
+
return null;
|
|
85
|
+
const binaryDir = getBinaryDir(latest);
|
|
86
|
+
if (fs.existsSync(binaryDir)) {
|
|
87
|
+
writeVersionMarker(latest);
|
|
88
|
+
return latest;
|
|
89
|
+
}
|
|
90
|
+
console.log(`[cloakbrowser] Downloading Chromium ${latest}...`);
|
|
91
|
+
await downloadAndExtract(latest);
|
|
92
|
+
writeVersionMarker(latest);
|
|
93
|
+
return latest;
|
|
94
|
+
}
|
|
64
95
|
// ---------------------------------------------------------------------------
|
|
65
96
|
// Internal helpers
|
|
66
97
|
// ---------------------------------------------------------------------------
|
|
67
|
-
async function downloadAndExtract() {
|
|
68
|
-
const url = getDownloadUrl();
|
|
69
|
-
const binaryDir = getBinaryDir();
|
|
98
|
+
async function downloadAndExtract(version) {
|
|
99
|
+
const url = getDownloadUrl(version);
|
|
100
|
+
const binaryDir = getBinaryDir(version);
|
|
101
|
+
const binaryPath = getBinaryPath(version);
|
|
70
102
|
// Create cache dir
|
|
71
103
|
fs.mkdirSync(path.dirname(binaryDir), { recursive: true });
|
|
72
104
|
// Download to temp file (atomic — no partial downloads in cache)
|
|
73
105
|
const tmpPath = path.join(path.dirname(binaryDir), `_download_${Date.now()}.tar.gz`);
|
|
74
106
|
try {
|
|
75
107
|
await downloadFile(url, tmpPath);
|
|
76
|
-
await extractArchive(tmpPath, binaryDir);
|
|
108
|
+
await extractArchive(tmpPath, binaryDir, binaryPath);
|
|
77
109
|
}
|
|
78
110
|
finally {
|
|
79
111
|
// Clean up temp file
|
|
@@ -131,7 +163,7 @@ async function downloadFile(url, dest) {
|
|
|
131
163
|
clearTimeout(timeout);
|
|
132
164
|
}
|
|
133
165
|
}
|
|
134
|
-
async function extractArchive(archivePath, destDir) {
|
|
166
|
+
async function extractArchive(archivePath, destDir, binaryPath) {
|
|
135
167
|
console.log(`[cloakbrowser] Extracting to ${destDir}`);
|
|
136
168
|
// Clean existing dir if partial download existed
|
|
137
169
|
if (fs.existsSync(destDir)) {
|
|
@@ -156,10 +188,10 @@ async function extractArchive(archivePath, destDir) {
|
|
|
156
188
|
// Flatten single subdirectory if needed
|
|
157
189
|
flattenSingleSubdir(destDir);
|
|
158
190
|
// Make binary executable
|
|
159
|
-
const
|
|
160
|
-
if (fs.existsSync(
|
|
161
|
-
fs.chmodSync(
|
|
162
|
-
console.log(`[cloakbrowser] Binary ready: ${
|
|
191
|
+
const bp = binaryPath || getBinaryPath();
|
|
192
|
+
if (fs.existsSync(bp)) {
|
|
193
|
+
fs.chmodSync(bp, 0o755);
|
|
194
|
+
console.log(`[cloakbrowser] Binary ready: ${bp}`);
|
|
163
195
|
}
|
|
164
196
|
}
|
|
165
197
|
/**
|
|
@@ -188,4 +220,84 @@ function isExecutable(filePath) {
|
|
|
188
220
|
return false;
|
|
189
221
|
}
|
|
190
222
|
}
|
|
223
|
+
// ---------------------------------------------------------------------------
|
|
224
|
+
// Auto-update
|
|
225
|
+
// ---------------------------------------------------------------------------
|
|
226
|
+
function shouldCheckForUpdate() {
|
|
227
|
+
if (process.env.CLOAKBROWSER_AUTO_UPDATE?.toLowerCase() === "false")
|
|
228
|
+
return false;
|
|
229
|
+
if (getLocalBinaryOverride())
|
|
230
|
+
return false;
|
|
231
|
+
if (process.env.CLOAKBROWSER_DOWNLOAD_URL)
|
|
232
|
+
return false;
|
|
233
|
+
const checkFile = path.join(getCacheDir(), ".last_update_check");
|
|
234
|
+
try {
|
|
235
|
+
const lastCheck = Number(fs.readFileSync(checkFile, "utf-8").trim());
|
|
236
|
+
if (Date.now() - lastCheck < UPDATE_CHECK_INTERVAL_MS)
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
/* file doesn't exist or unreadable */
|
|
241
|
+
}
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
244
|
+
async function getLatestChromiumVersion() {
|
|
245
|
+
try {
|
|
246
|
+
const resp = await fetch(`${GITHUB_API_URL}?per_page=10`, {
|
|
247
|
+
signal: AbortSignal.timeout(10_000),
|
|
248
|
+
});
|
|
249
|
+
if (!resp.ok)
|
|
250
|
+
return null;
|
|
251
|
+
const releases = (await resp.json());
|
|
252
|
+
for (const release of releases) {
|
|
253
|
+
if (release.tag_name.startsWith("chromium-v") && !release.draft) {
|
|
254
|
+
return release.tag_name.replace("chromium-v", "");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function writeVersionMarker(version) {
|
|
264
|
+
const cacheDir = getCacheDir();
|
|
265
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
266
|
+
const marker = path.join(cacheDir, "latest_version");
|
|
267
|
+
const tmp = `${marker}.tmp`;
|
|
268
|
+
fs.writeFileSync(tmp, version);
|
|
269
|
+
fs.renameSync(tmp, marker);
|
|
270
|
+
}
|
|
271
|
+
async function checkAndDownloadUpdate() {
|
|
272
|
+
try {
|
|
273
|
+
// Record check timestamp first (rate limiting)
|
|
274
|
+
const cacheDir = getCacheDir();
|
|
275
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
276
|
+
fs.writeFileSync(path.join(cacheDir, ".last_update_check"), String(Date.now()));
|
|
277
|
+
const latest = await getLatestChromiumVersion();
|
|
278
|
+
if (!latest || !versionNewer(latest, CHROMIUM_VERSION))
|
|
279
|
+
return;
|
|
280
|
+
// Already downloaded?
|
|
281
|
+
if (fs.existsSync(getBinaryDir(latest))) {
|
|
282
|
+
writeVersionMarker(latest);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
console.log(`[cloakbrowser] Newer Chromium available: ${latest} (current: ${CHROMIUM_VERSION}). Downloading in background...`);
|
|
286
|
+
await downloadAndExtract(latest);
|
|
287
|
+
writeVersionMarker(latest);
|
|
288
|
+
console.log(`[cloakbrowser] Background update complete: Chromium ${latest} ready. Will use on next launch.`);
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
// Background update failed — don't disrupt the user
|
|
292
|
+
if (process.env.DEBUG) {
|
|
293
|
+
console.error("[cloakbrowser] Background update failed:", err);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
function maybeTriggerUpdateCheck() {
|
|
298
|
+
if (!shouldCheckForUpdate())
|
|
299
|
+
return;
|
|
300
|
+
// Fire-and-forget — don't await
|
|
301
|
+
checkAndDownloadUpdate().catch(() => { });
|
|
302
|
+
}
|
|
191
303
|
//# sourceMappingURL=download.js.map
|
package/dist/download.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
export { launch, launchContext } from "./playwright.js";
|
|
18
|
-
export { ensureBinary, clearCache, binaryInfo } from "./download.js";
|
|
18
|
+
export { ensureBinary, clearCache, binaryInfo, checkForUpdate } from "./download.js";
|
|
19
19
|
export { CHROMIUM_VERSION, getDefaultStealthArgs } from "./config.js";
|
|
20
20
|
export type { LaunchOptions, LaunchContextOptions, BinaryInfo } from "./types.js";
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGtE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
// Launch functions (Playwright API)
|
|
18
18
|
export { launch, launchContext } from "./playwright.js";
|
|
19
19
|
// Binary management
|
|
20
|
-
export { ensureBinary, clearCache, binaryInfo } from "./download.js";
|
|
20
|
+
export { ensureBinary, clearCache, binaryInfo, checkForUpdate } from "./download.js";
|
|
21
21
|
// Config
|
|
22
22
|
export { CHROMIUM_VERSION, getDefaultStealthArgs } from "./config.js";
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,oCAAoC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExD,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,oCAAoC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExD,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErF,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloakbrowser",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Stealth Chromium that passes every bot detection test. Drop-in Playwright/Puppeteer replacement with source-level fingerprint patches.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|