cloakbrowser 0.4.7 → 0.4.9

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/download.js CHANGED
@@ -12,7 +12,9 @@ import { extract as tarExtract } from "tar";
12
12
  import { BINARY_SIGNING_PUBKEYS, CHROMIUM_VERSION, DOWNLOAD_BASE_URL, GITHUB_API_URL, GITHUB_DOWNLOAD_BASE_URL, WRAPPER_VERSION, checkPlatformAvailable, getArchiveExt, getArchiveName, getBinaryDir, getBinaryPath, getCacheDir, getChromiumVersion, getDownloadUrl, getEffectiveVersion, getFallbackDownloadUrl, getLocalBinaryOverride, getPlatformTag, normalizeRequestedVersion, versionNewer, } from "./config.js";
13
13
  import { resolveLicenseKey, validateLicense, getProLatestVersion } from "./license.js";
14
14
  const DOWNLOAD_TIMEOUT_MS = 600_000; // 10 minutes
15
- const UPDATE_CHECK_INTERVAL_MS = 3_600_000; // 1 hour
15
+ // Seconds, matching the Python/.NET `.last_update_check` marker format so the
16
+ // three wrappers share one cache dir without corrupting each other's rate limit.
17
+ const UPDATE_CHECK_INTERVAL_SEC = 3600; // 1 hour
16
18
  // Free-tier welcome banner re-show interval (3 days, in seconds). Free users see
17
19
  // the Pro upsell again after this gap; Pro users see it only once (see showWelcome).
18
20
  // Seconds (not ms) so the shared marker is consistent with the Python/.NET wrappers.
@@ -151,12 +153,12 @@ export function binaryInfo(browserVersion) {
151
153
  // browserVersion (or CLOAKBROWSER_VERSION) pins the reported version so the
152
154
  // info matches what a pinned launch actually runs, instead of latest.
153
155
  const requested = normalizeRequestedVersion(browserVersion);
154
- // Prefer Pro only if a Pro binary actually exists on disk.
156
+ // Prefer Pro only if a Pro binary actually exists on disk. getEffectiveVersion
157
+ // returns null for Pro when nothing is cached (it never falls back to free).
155
158
  const proVersion = requested ?? getEffectiveVersion(true);
156
- const proPath = getBinaryPath(proVersion, true);
157
- const isPro = fs.existsSync(proPath) && isExecutable(proPath);
159
+ const isPro = proBinaryReady(proVersion);
158
160
  const effective = isPro ? proVersion : (requested ?? getEffectiveVersion(false));
159
- const binaryPath = isPro ? proPath : getBinaryPath(effective, false);
161
+ const binaryPath = isPro ? getBinaryPath(proVersion, true) : getBinaryPath(effective, false);
160
162
  return {
161
163
  version: effective,
162
164
  bundledVersion: CHROMIUM_VERSION,
@@ -183,6 +185,31 @@ export async function checkForUpdate() {
183
185
  writeVersionMarker(latest);
184
186
  return latest;
185
187
  }
188
+ /**
189
+ * Move a Pro install to the server's latest stable. Blocks until complete.
190
+ * Returns the new version when a newer Pro build is downloaded or an
191
+ * already-cached newer build is activated, else null (already up to date or the
192
+ * server could not be reached). Requires a valid Pro license key.
193
+ */
194
+ export async function checkForProUpdate(licenseKey) {
195
+ const latest = await getProLatestVersion();
196
+ if (!latest)
197
+ return null;
198
+ const effective = getEffectiveVersion(true);
199
+ if (effective && !versionNewer(latest, effective) && proBinaryReady(effective)) {
200
+ // Already on the latest cached Pro build.
201
+ return null;
202
+ }
203
+ if (!proBinaryReady(latest)) {
204
+ console.log(`[cloakbrowser] Downloading Pro Chromium ${latest}...`);
205
+ await downloadProBinary(latest, licenseKey);
206
+ if (!fs.existsSync(getBinaryPath(latest, true))) {
207
+ throw new Error(`Pro download completed but binary not found at: ${getBinaryPath(latest, true)}`);
208
+ }
209
+ }
210
+ writeProVersionMarker(latest);
211
+ return latest;
212
+ }
186
213
  // ---------------------------------------------------------------------------
187
214
  // Welcome message (shown once per install)
188
215
  // ---------------------------------------------------------------------------
@@ -225,7 +252,7 @@ function showWelcome(pro = false) {
225
252
  const freeMajor = CHROMIUM_VERSION.split(".")[0];
226
253
  console.error(` Running free tier (v${freeMajor}). ` +
227
254
  `Pro = latest binary (v${PRO_MAJOR}) + newest anti-bot patches.`);
228
- console.error(" Stay ahead of detection → https://cloakbrowser.dev");
255
+ console.error(" Try Pro free for 7 days → https://cloakbrowser.dev");
229
256
  }
230
257
  console.error(" Star us if CloakBrowser helps your project!");
231
258
  console.error();
@@ -548,53 +575,115 @@ async function downloadFile(url, dest, headers) {
548
575
  // ---------------------------------------------------------------------------
549
576
  // Pro binary download
550
577
  // ---------------------------------------------------------------------------
578
+ /** True when a cached, executable Pro binary exists for `version`. */
579
+ function proBinaryReady(version) {
580
+ if (!version)
581
+ return false;
582
+ const p = getBinaryPath(version, true);
583
+ return fs.existsSync(p) && isExecutable(p);
584
+ }
585
+ /** Atomically write the latest Pro version marker for this platform. */
586
+ function writeProVersionMarker(version) {
587
+ const cacheDir = getCacheDir();
588
+ fs.mkdirSync(cacheDir, { recursive: true });
589
+ const marker = path.join(cacheDir, `latest_pro_version_${getPlatformTag()}`);
590
+ const tmp = `${marker}.tmp`;
591
+ fs.writeFileSync(tmp, version);
592
+ fs.renameSync(tmp, marker);
593
+ }
594
+ // A valid Pro license NEVER falls back to the free binary. If the latest Pro build
595
+ // cannot be resolved or downloaded and no cached Pro binary exists, the error is
596
+ // thrown rather than silently launching the free tier.
551
597
  async function ensureProBinary(licenseKey, requestedVersion) {
552
- let version;
598
+ // Pinned: launch the exact requested version, no server cross-check, no marker
599
+ // write (a rollback pin must not stick future unpinned launches).
553
600
  if (requestedVersion) {
554
- const requestedPath = getBinaryPath(requestedVersion, true);
555
- if (fs.existsSync(requestedPath) && isExecutable(requestedPath)) {
556
- showWelcome(true);
557
- return requestedPath;
558
- }
559
- version = requestedVersion;
560
- }
561
- else {
562
- const effective = getEffectiveVersion(true);
563
- const effectivePath = getBinaryPath(effective, true);
564
- if (fs.existsSync(effectivePath) && isExecutable(effectivePath)) {
601
+ if (proBinaryReady(requestedVersion)) {
565
602
  showWelcome(true);
566
- maybeTriggerProUpdateCheck(licenseKey);
567
- return effectivePath;
603
+ return getBinaryPath(requestedVersion, true);
568
604
  }
569
- const latest = await getProLatestVersion();
570
- if (!latest) {
571
- throw new Error("Could not determine latest Pro version from server");
605
+ console.log(`[cloakbrowser] Downloading Pro Chromium ${requestedVersion} for ${getPlatformTag()}...`);
606
+ await downloadProBinary(requestedVersion, licenseKey);
607
+ const p = getBinaryPath(requestedVersion, true);
608
+ if (!fs.existsSync(p)) {
609
+ throw new Error(`Pro download completed but binary not found at: ${p}`);
572
610
  }
611
+ showWelcome(true);
612
+ return p;
613
+ }
614
+ // Unpinned: track the server's latest stable.
615
+ const effective = getEffectiveVersion(true);
616
+ // Honor CLOAKBROWSER_AUTO_UPDATE=false the way the free path does: frozen AND a
617
+ // cached Pro build present → keep it, skip the server check. With no cached build
618
+ // we must still fetch one — a valid Pro license never launches the free binary.
619
+ // (The `update` CLI ignores this and always acts.)
620
+ const frozen = (process.env.CLOAKBROWSER_AUTO_UPDATE ?? "").toLowerCase() === "false";
621
+ if (frozen && proBinaryReady(effective)) {
622
+ showWelcome(true);
623
+ return getBinaryPath(effective, true);
624
+ }
625
+ // getProLatestVersion() is rate-limited to one network call per hour and returns
626
+ // a cached string in between, so this foreground check stays cheap steady-state.
627
+ const latest = await getProLatestVersion();
628
+ // Prefer the server's latest when it is newer than — or replaces a missing —
629
+ // the cached build. Otherwise stay on the cached Pro binary (fast, offline-ok).
630
+ let version;
631
+ if (latest &&
632
+ (!proBinaryReady(effective) || // also covers effective === null
633
+ versionNewer(latest, effective))) {
573
634
  version = latest;
574
635
  }
575
- const versionPath = getBinaryPath(version, true);
576
- if (fs.existsSync(versionPath) && isExecutable(versionPath)) {
636
+ else {
637
+ version = effective;
638
+ }
639
+ if (version === null) {
640
+ // Valid Pro license but nothing resolvable (server unreachable AND no cached
641
+ // Pro build). Never downgrade to the free binary — fail loudly.
642
+ throw new Error("Could not determine latest Pro version from server");
643
+ }
644
+ if (proBinaryReady(version)) {
645
+ // Advance the marker if this cached build is newer than what the marker names,
646
+ // so `info` (and a later server-outage launch) reflect the build we actually
647
+ // launch — never a stale marker.
648
+ if (version !== effective) {
649
+ try {
650
+ writeProVersionMarker(version);
651
+ }
652
+ catch {
653
+ // Non-fatal
654
+ }
655
+ }
577
656
  showWelcome(true);
578
- return versionPath;
657
+ return getBinaryPath(version, true);
658
+ }
659
+ // `version` (the server latest) needs downloading. On failure, fall back to a
660
+ // cached Pro build if we have one — never the free binary.
661
+ try {
662
+ console.log(`[cloakbrowser] Downloading Pro Chromium ${version} for ${getPlatformTag()}...`);
663
+ await downloadProBinary(version, licenseKey);
664
+ }
665
+ catch (err) {
666
+ // A tampering signal must surface verbatim — never mask it behind the
667
+ // cached-Pro fallback, which is only for transient download failures.
668
+ if (err instanceof BinaryVerificationError)
669
+ throw err;
670
+ if (proBinaryReady(effective)) {
671
+ console.log(`[cloakbrowser] Pro update to ${version} failed; launching cached Pro binary ${effective}`);
672
+ showWelcome(true);
673
+ return getBinaryPath(effective, true);
674
+ }
675
+ throw err;
579
676
  }
580
- console.log(`[cloakbrowser] Downloading Pro Chromium ${version} for ${getPlatformTag()}...`);
581
- await downloadProBinary(version, licenseKey);
582
677
  const downloadedPath = getBinaryPath(version, true);
583
678
  if (!fs.existsSync(downloadedPath)) {
584
679
  throw new Error(`Pro download completed but binary not found at: ${downloadedPath}`);
585
680
  }
586
- // Write Pro version marker only for unpinned latest resolution. A rollback
587
- // pin must not make future unpinned launches stick to the old build.
588
- if (!requestedVersion) {
589
- try {
590
- const cacheDir = getCacheDir();
591
- fs.mkdirSync(cacheDir, { recursive: true });
592
- const marker = path.join(cacheDir, `latest_pro_version_${getPlatformTag()}`);
593
- fs.writeFileSync(marker, version);
594
- }
595
- catch {
596
- // Non-fatal
597
- }
681
+ // Advance the marker so future unpinned launches use this build.
682
+ try {
683
+ writeProVersionMarker(version);
684
+ }
685
+ catch {
686
+ // Non-fatal
598
687
  }
599
688
  showWelcome(true);
600
689
  return downloadedPath;
@@ -813,7 +902,7 @@ function shouldCheckForUpdate() {
813
902
  const checkFile = path.join(getCacheDir(), ".last_update_check");
814
903
  try {
815
904
  const lastCheck = Number(fs.readFileSync(checkFile, "utf-8").trim());
816
- if (Date.now() - lastCheck < UPDATE_CHECK_INTERVAL_MS)
905
+ if (Math.floor(Date.now() / 1000) - lastCheck < UPDATE_CHECK_INTERVAL_SEC)
817
906
  return false;
818
907
  }
819
908
  catch {
@@ -888,7 +977,7 @@ async function checkAndDownloadUpdate() {
888
977
  // Record check timestamp first (rate limiting)
889
978
  const cacheDir = getCacheDir();
890
979
  fs.mkdirSync(cacheDir, { recursive: true });
891
- fs.writeFileSync(path.join(cacheDir, ".last_update_check"), String(Date.now()));
980
+ fs.writeFileSync(path.join(cacheDir, ".last_update_check"), String(Math.floor(Date.now() / 1000)));
892
981
  const platformVersion = getChromiumVersion();
893
982
  const latest = await getLatestChromiumVersion();
894
983
  if (!latest || !versionNewer(latest, platformVersion))
@@ -920,36 +1009,4 @@ function maybeTriggerUpdateCheck() {
920
1009
  return;
921
1010
  checkAndDownloadUpdate().catch(() => { });
922
1011
  }
923
- function maybeTriggerProUpdateCheck(licenseKey) {
924
- const checkFile = path.join(getCacheDir(), ".last_pro_update_check");
925
- try {
926
- if (fs.existsSync(checkFile)) {
927
- const lastCheck = parseFloat(fs.readFileSync(checkFile, "utf-8").trim());
928
- if (Date.now() - lastCheck * 1000 < UPDATE_CHECK_INTERVAL_MS)
929
- return;
930
- }
931
- }
932
- catch {
933
- // unreadable — proceed
934
- }
935
- (async () => {
936
- try {
937
- fs.mkdirSync(path.dirname(checkFile), { recursive: true });
938
- fs.writeFileSync(checkFile, String(Date.now() / 1000));
939
- const latest = await getProLatestVersion();
940
- if (!latest)
941
- return;
942
- if (fs.existsSync(getBinaryPath(latest, true)))
943
- return;
944
- console.log(`[cloakbrowser] Newer Pro binary available: ${latest}. Downloading in background...`);
945
- await downloadProBinary(latest, licenseKey);
946
- const marker = path.join(getCacheDir(), `latest_pro_version_${getPlatformTag()}`);
947
- fs.writeFileSync(marker, latest);
948
- console.log(`[cloakbrowser] Pro background update complete: ${latest} ready. Will use on next launch.`);
949
- }
950
- catch (err) {
951
- // non-fatal
952
- }
953
- })();
954
- }
955
1012
  //# sourceMappingURL=download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
package/dist/fonts.d.ts CHANGED
@@ -1,13 +1,22 @@
1
+ export declare const WINDOWS_FONT_TELLS: string[];
2
+ export declare const OFFICE_FONT_TELLS: string[];
1
3
  /**
2
- * Probe for Windows fonts via fc-list.
4
+ * Count how many tell-tale fonts are installed, via fc-list.
3
5
  *
4
- * Tri-state: true if any tell-tale font is installed, false if none found,
5
- * null if it can't be determined (fc-list missing or errored). Callers must
6
- * NOT warn on null only an explicit false means "no Windows fonts".
6
+ * Returns the number present (0..tells.length), or null if it can't be
7
+ * determined (fc-list missing or errored). Callers must NOT treat null as
8
+ * zero null means "unknown", 0 means "genuinely none installed".
9
+ */
10
+ export declare function countFontsPresent(tells: string[]): number | null;
11
+ /**
12
+ * True if ALL Windows OS fonts are installed, false if any are missing, null
13
+ * if unknown. Strict: a partial set is treated as incomplete, since the font
14
+ * install is atomic and a missing font degrades the Windows persona.
7
15
  */
8
16
  export declare function windowsFontsPresent(): boolean | null;
9
17
  /**
10
- * Warn once when spoofing Windows on a Linux host with no Windows fonts.
18
+ * Warn once when spoofing Windows on a Linux host without the full Windows
19
+ * font set.
11
20
  *
12
21
  * Best-effort and silent on error — never throws. Gated by an in-process flag
13
22
  * plus a cache-dir marker so it fires at most once per environment. Suppress
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,IAAI,CAWpD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAmChE"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,kBAAkB,UAS9B,CAAC;AAMF,eAAO,MAAM,iBAAiB,UAW7B,CAAC;AAIF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAWhE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAmChE"}
package/dist/fonts.js CHANGED
@@ -11,26 +11,45 @@ import fs from "node:fs";
11
11
  import os from "node:os";
12
12
  import path from "node:path";
13
13
  import { getCacheDir } from "./config.js";
14
- // Microsoft-proprietary fonts that signal a real Windows install (absent from
15
- // ttf-mscorefonts-installer). Keep in sync with issue #395 and
16
- // docs/chrome40-fpjs-font-minimum-set-investigation.md.
17
- const WINDOWS_FONT_TELLS = [
14
+ // Windows OS fonts ship with Windows itself, so their absence on a
15
+ // Windows-spoofing Linux host degrades results. The two monospace fonts
16
+ // (Consolas + Courier New) are part of the recommended set so the generic
17
+ // `monospace` family resolves to a Windows font. See issue #395.
18
+ export const WINDOWS_FONT_TELLS = [
18
19
  "Segoe UI",
19
20
  "Segoe UI Light",
20
21
  "Calibri",
21
22
  "Marlett",
22
23
  "MS UI Gothic",
23
24
  "Franklin Gothic",
25
+ "Consolas",
26
+ "Courier New",
27
+ ];
28
+ // MS Office supplemental fonts, installed as one atomic block by every Office
29
+ // install. Roughly half of real Windows machines have this pack and half do
30
+ // not, so its absence is a perfectly normal Windows setup, NOT a problem —
31
+ // reported as an informational signal only, never a warning.
32
+ export const OFFICE_FONT_TELLS = [
33
+ "MT Extra",
34
+ "Century",
35
+ "Century Gothic",
36
+ "MS Reference Specialty",
37
+ "Wingdings 2",
38
+ "Wingdings 3",
39
+ "Book Antiqua",
40
+ "Bookshelf Symbol 7",
41
+ "Monotype Corsiva",
42
+ "Bookman Old Style",
24
43
  ];
25
44
  let fontWarningChecked = false;
26
45
  /**
27
- * Probe for Windows fonts via fc-list.
46
+ * Count how many tell-tale fonts are installed, via fc-list.
28
47
  *
29
- * Tri-state: true if any tell-tale font is installed, false if none found,
30
- * null if it can't be determined (fc-list missing or errored). Callers must
31
- * NOT warn on null only an explicit false means "no Windows fonts".
48
+ * Returns the number present (0..tells.length), or null if it can't be
49
+ * determined (fc-list missing or errored). Callers must NOT treat null as
50
+ * zero null means "unknown", 0 means "genuinely none installed".
32
51
  */
33
- export function windowsFontsPresent() {
52
+ export function countFontsPresent(tells) {
34
53
  let listing;
35
54
  try {
36
55
  // maxBuffer 16 MB: a host with a large font set can produce an fc-list
@@ -41,10 +60,20 @@ export function windowsFontsPresent() {
41
60
  catch {
42
61
  return null;
43
62
  }
44
- return WINDOWS_FONT_TELLS.some((f) => listing.includes(f.toLowerCase()));
63
+ return tells.filter((f) => listing.includes(f.toLowerCase())).length;
64
+ }
65
+ /**
66
+ * True if ALL Windows OS fonts are installed, false if any are missing, null
67
+ * if unknown. Strict: a partial set is treated as incomplete, since the font
68
+ * install is atomic and a missing font degrades the Windows persona.
69
+ */
70
+ export function windowsFontsPresent() {
71
+ const n = countFontsPresent(WINDOWS_FONT_TELLS);
72
+ return n === null ? null : n === WINDOWS_FONT_TELLS.length;
45
73
  }
46
74
  /**
47
- * Warn once when spoofing Windows on a Linux host with no Windows fonts.
75
+ * Warn once when spoofing Windows on a Linux host without the full Windows
76
+ * font set.
48
77
  *
49
78
  * Best-effort and silent on error — never throws. Gated by an in-process flag
50
79
  * plus a cache-dir marker so it fires at most once per environment. Suppress
@@ -75,9 +104,9 @@ export function maybeWarnWindowsFonts(chromeArgs) {
75
104
  return;
76
105
  const present = windowsFontsPresent();
77
106
  if (present === null || present === true)
78
- return; // present or undeterminable
79
- console.warn("[cloakbrowser] No Windows fonts found — installing them is strongly " +
80
- "advised for best results when spoofing Windows on Linux. " +
107
+ return; // full set present or undeterminable
108
+ console.warn("[cloakbrowser] Incomplete Windows font set — installing the full set " +
109
+ "is strongly advised for best results when spoofing Windows on Linux. " +
81
110
  "https://github.com/CloakHQ/cloakbrowser#font-setup-on-linux " +
82
111
  "(silence: CLOAKBROWSER_SUPPRESS_FONT_WARNING=1)");
83
112
  try {
package/dist/fonts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6CAA6C;AAC7C,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,wEAAwE;AACxE,yEAAyE;AACzE,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8EAA8E;AAC9E,+DAA+D;AAC/D,wDAAwD;AACxD,MAAM,kBAAkB,GAAG;IACzB,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,cAAc;IACd,iBAAiB;CAClB,CAAC;AAEF,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,uEAAuE;QACvE,yEAAyE;QACzE,mDAAmD;QACnD,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAoB;IACxD,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,kCAAkC;YAAE,OAAO;QAC3D,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;YAAE,OAAO;QACtC,yEAAyE;QACzE,qEAAqE;QACrE,IAAI,iBAAqC,CAAC;QAC1C,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;QACH,CAAC;QACD,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAClC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,4BAA4B;QAC9E,OAAO,CAAC,IAAI,CACV,sEAAsE;YACpE,2DAA2D;YAC3D,8DAA8D;YAC9D,iDAAiD,CACpD,CAAC;QACF,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
package/dist/geoip.d.ts CHANGED
@@ -19,19 +19,32 @@ export interface GeoResult {
19
19
  * Resolve timezone and locale from a proxy's IP address.
20
20
  * Returns `{ timezone, locale }` — either may be null on failure.
21
21
  * Never throws.
22
+ *
23
+ * When `proxyUrl` is falsy, the machine's own public IP is used instead
24
+ * (echo services queried directly, no proxy), so geoip works proxy-free.
22
25
  */
23
- export declare function resolveProxyGeo(proxyUrl: string): Promise<GeoResult>;
26
+ export declare function resolveProxyGeo(proxyUrl: string | null): Promise<GeoResult>;
24
27
  /** @internal Exported for testing. */
25
28
  export declare function resolveProxyIp(proxyUrl: string): Promise<string | null>;
26
29
  /**
27
- * Auto-fill timezone/locale from proxy IP when geoip is enabled.
30
+ * Auto-fill timezone/locale from the egress IP when geoip is enabled.
28
31
  * Also returns exitIp as a free bonus (reused for WebRTC spoofing).
32
+ *
33
+ * With a proxy the egress IP is the proxy's exit IP; with no proxy it is
34
+ * the machine's own public IP, so geoip works proxy-free too.
29
35
  */
30
36
  export declare function maybeResolveGeoip(options: LaunchOptions): Promise<{
31
37
  timezone?: string;
32
38
  locale?: string;
33
39
  exitIp?: string;
34
40
  }>;
41
+ /**
42
+ * Append `--fingerprint-webrtc-ip=<exitIp>` unless the user already set the flag.
43
+ * The exit IP comes free from the geoip lookup; it spoofs the WebRTC IP to the
44
+ * egress IP. No-op when there is no exit IP or the flag is already present. This
45
+ * rule must stay identical across every launch path, so it lives in one place.
46
+ */
47
+ export declare function appendWebrtcExitIp(args: string[] | undefined, exitIp: string | undefined): string[] | undefined;
35
48
  /**
36
49
  * Replace --fingerprint-webrtc-ip=auto with the resolved proxy exit IP.
37
50
  * Returns args unchanged if no ``auto`` value is present.
@@ -1 +1 @@
1
- {"version":3,"file":"geoip.d.ts","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAerD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAuCpB;AA8BD,sCAAsC;AACtC,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAuND;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBlE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8B/B"}
1
+ {"version":3,"file":"geoip.d.ts","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqCrD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,SAAS,CAAC,CAgDpB;AA8BD,sCAAsC;AACtC,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAoOD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBlE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,EAAE,GAAG,SAAS,CAKtB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8B/B"}