cloakbrowser 0.4.4 → 0.4.6

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/cli.d.ts CHANGED
@@ -4,9 +4,10 @@
4
4
  *
5
5
  * Usage:
6
6
  * npx cloakbrowser install # Download binary (with progress)
7
- * npx cloakbrowser info # Show binary version, path, platform
7
+ * npx cloakbrowser info # Environment + binary diagnostics
8
+ * npx cloakbrowser doctor # Alias for info
8
9
  * npx cloakbrowser update # Check for and download newer binary
9
10
  * npx cloakbrowser clear-cache # Remove cached binaries
10
11
  */
11
- export {};
12
+ export declare function collectDiagnostics(quick: boolean): Promise<Record<string, unknown>>;
12
13
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AA+IH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6DzF"}
package/dist/cli.js CHANGED
@@ -4,34 +4,276 @@
4
4
  *
5
5
  * Usage:
6
6
  * npx cloakbrowser install # Download binary (with progress)
7
- * npx cloakbrowser info # Show binary version, path, platform
7
+ * npx cloakbrowser info # Environment + binary diagnostics
8
+ * npx cloakbrowser doctor # Alias for info
8
9
  * npx cloakbrowser update # Check for and download newer binary
9
10
  * npx cloakbrowser clear-cache # Remove cached binaries
10
11
  */
11
- import { ensureBinary, binaryInfo, checkForUpdate, clearCache } from "./download.js";
12
- import { getLocalBinaryOverride, getCacheDir } from "./config.js";
12
+ import { ensureBinary, checkForUpdate, clearCache } from "./download.js";
13
+ import { getLocalBinaryOverride, getCacheDir, getPlatformTag, getBinaryPath, getBinaryDir, getEffectiveVersion, normalizeRequestedVersion, CHROMIUM_VERSION, } from "./config.js";
14
+ import { windowsFontsPresent } from "./fonts.js";
15
+ import { resolveLicenseKey, validateLicense, getProLatestVersion } from "./license.js";
16
+ import { execFileSync } from "node:child_process";
17
+ import { createRequire } from "node:module";
18
+ import { pathToFileURL } from "node:url";
13
19
  import fs from "node:fs";
20
+ import os from "node:os";
21
+ import path from "node:path";
22
+ const UPGRADE_HINT = "→ Add a license key for the latest Pro binary: https://cloakbrowser.dev";
14
23
  const USAGE = `Usage: cloakbrowser <command>
15
24
 
16
25
  Commands:
17
26
  install Download the Chromium binary
18
- info Show binary version, path, and platform
27
+ info Environment + binary diagnostics (--quick, --json)
28
+ doctor Alias for info
19
29
  update Check for and download a newer binary
20
30
  clear-cache Remove all cached binaries`;
21
31
  async function cmdInstall() {
22
32
  const binaryPath = await ensureBinary();
23
33
  console.log(binaryPath);
24
34
  }
25
- function cmdInfo() {
26
- const info = binaryInfo();
35
+ function moduleAvailable(name) {
36
+ try {
37
+ createRequire(import.meta.url).resolve(name);
38
+ return true;
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ /** Launch `<binary> --version` to prove it runs. */
45
+ function binaryVersion(binaryPath) {
46
+ try {
47
+ const out = execFileSync(binaryPath, ["--version"], {
48
+ encoding: "utf8",
49
+ timeout: 10000,
50
+ killSignal: "SIGKILL",
51
+ });
52
+ return { ok: true, version: out.trim(), error: "" };
53
+ }
54
+ catch (err) {
55
+ const e = err;
56
+ const stderr = e.stderr ? e.stderr.toString().trim() : "";
57
+ return { ok: false, version: "", error: stderr || e.message || String(err) };
58
+ }
59
+ }
60
+ /** Linux-only: ldd the binary and return missing .so names. */
61
+ function missingSharedLibs(binaryPath) {
62
+ if (os.platform() !== "linux")
63
+ return [];
64
+ let out;
65
+ try {
66
+ // -- so a path starting with - isn't read as a flag by ldd
67
+ out = execFileSync("ldd", ["--", binaryPath], {
68
+ encoding: "utf8",
69
+ timeout: 10000,
70
+ killSignal: "SIGKILL",
71
+ });
72
+ }
73
+ catch (err) {
74
+ // ldd commonly exits non-zero when libraries are missing; execFileSync throws
75
+ // but the listing we need is on err.stdout. Fall back to it rather than drop it.
76
+ const e = err;
77
+ if (!e.stdout)
78
+ return [];
79
+ out = e.stdout.toString();
80
+ }
81
+ return out
82
+ .split("\n")
83
+ .filter((l) => l.includes("=> not found"))
84
+ .map((l) => l.split("=>")[0].trim());
85
+ }
86
+ /** Resolve + validate the license the way ensureBinary does. */
87
+ async function resolveLicense() {
88
+ let key = resolveLicenseKey();
89
+ // ensureBinary disables Pro routing when a custom download URL is set, so the
90
+ // diagnostic must report free too (matches download.ts).
91
+ if (process.env.CLOAKBROWSER_DOWNLOAD_URL)
92
+ key = undefined;
93
+ if (!key)
94
+ return { license: { tier: "free" }, entitledPro: false };
95
+ try {
96
+ const lic = await validateLicense(key);
97
+ if (lic === null)
98
+ return { license: { tier: "unknown", error: "could not validate" }, entitledPro: false };
99
+ if (lic.valid)
100
+ return { license: { tier: lic.plan, valid: true, expires: lic.expires }, entitledPro: true };
101
+ return { license: { tier: "invalid", valid: false }, entitledPro: false };
102
+ }
103
+ catch (err) {
104
+ return { license: { tier: "unknown", error: err.message }, entitledPro: false };
105
+ }
106
+ }
107
+ /** Describe the binary ensureBinary would actually launch (no download). */
108
+ async function effectiveBinary(entitledPro) {
27
109
  const override = getLocalBinaryOverride();
28
- console.log(`Version: ${info.version}`);
29
- console.log(`Platform: ${info.platform}`);
30
- console.log(`Binary: ${info.binaryPath}`);
31
- console.log(`Installed: ${info.installed}`);
32
- console.log(`Cache: ${info.cacheDir}`);
33
110
  if (override) {
34
- console.log(`Override: ${override} (CLOAKBROWSER_BINARY_PATH)`);
111
+ return {
112
+ version: null,
113
+ tier: "override",
114
+ bundled_version: CHROMIUM_VERSION,
115
+ path: override,
116
+ installed: fs.existsSync(override),
117
+ cache_dir: null,
118
+ override,
119
+ };
120
+ }
121
+ const requested = normalizeRequestedVersion();
122
+ let version;
123
+ if (requested) {
124
+ version = requested;
125
+ }
126
+ else if (entitledPro) {
127
+ // Mirror ensureBinary: a Pro launch resolves the latest Pro version over the
128
+ // network. Without this a fresh Pro user (no cached marker) would see the free
129
+ // base version paired with the -pro path, which never ships.
130
+ version = (await getProLatestVersion()) || getEffectiveVersion(true);
131
+ }
132
+ else {
133
+ version = getEffectiveVersion(false);
134
+ }
135
+ const binPath = getBinaryPath(version, entitledPro);
136
+ return {
137
+ version,
138
+ tier: entitledPro ? "pro" : "free",
139
+ bundled_version: CHROMIUM_VERSION,
140
+ path: binPath,
141
+ installed: fs.existsSync(binPath),
142
+ cache_dir: getBinaryDir(version, entitledPro),
143
+ override: null,
144
+ };
145
+ }
146
+ export async function collectDiagnostics(quick) {
147
+ const diag = {};
148
+ diag.environment = {
149
+ node: process.version,
150
+ os: os.type(),
151
+ arch: os.arch(),
152
+ };
153
+ // Resolve the license up front — it decides which binary actually launches
154
+ // (ensureBinary only uses the Pro binary when a key validates).
155
+ const { license, entitledPro } = await resolveLicense();
156
+ try {
157
+ diag.environment.platform_tag = getPlatformTag();
158
+ }
159
+ catch (err) {
160
+ diag.environment.platform_tag = `unavailable (${err.message})`;
161
+ }
162
+ try {
163
+ diag.binary = await effectiveBinary(entitledPro);
164
+ }
165
+ catch (err) {
166
+ diag.binary = { error: err.message };
167
+ }
168
+ // Launch test (skipped by --quick or when the binary is not installed).
169
+ const binPath = diag.binary.path;
170
+ const installed = diag.binary.installed;
171
+ if (quick) {
172
+ diag.launch = { tested: false, reason: "skipped (--quick)" };
173
+ }
174
+ else if (!binPath || !(installed || fs.existsSync(binPath))) {
175
+ diag.launch = { tested: false, reason: "binary not installed" };
176
+ }
177
+ else {
178
+ const { ok, version, error } = binaryVersion(binPath);
179
+ diag.launch = { tested: true, ok, version, error };
180
+ if (!ok)
181
+ diag.launch.missing_libs = missingSharedLibs(binPath);
182
+ }
183
+ // Windows-font probe — only meaningful on a Linux host spoofing Windows.
184
+ // Omitted entirely off Linux, where it carries no signal.
185
+ if (os.platform() === "linux") {
186
+ const present = windowsFontsPresent();
187
+ diag.fonts = {
188
+ windows_fonts: present === true ? "ok" : present === false ? "missing" : "unknown",
189
+ };
190
+ }
191
+ diag.license = license;
192
+ // GeoIP DB — presence only, never downloads.
193
+ const dbPath = path.join(getCacheDir(), "geoip", "GeoLite2-City.mmdb");
194
+ diag.geoip = { db_present: fs.existsSync(dbPath), path: dbPath };
195
+ // Optional peer deps.
196
+ diag.modules = {
197
+ "playwright-core": moduleAvailable("playwright-core"),
198
+ "puppeteer-core": moduleAvailable("puppeteer-core"),
199
+ "mmdb-lib": moduleAvailable("mmdb-lib"),
200
+ };
201
+ return diag;
202
+ }
203
+ function printDiagnostics(diag) {
204
+ const env = diag.environment;
205
+ console.log("CloakBrowser diagnostics");
206
+ console.log(`Node: ${env.node}`);
207
+ console.log(`OS: ${env.os} ${env.arch}`);
208
+ console.log(`Platform: ${env.platform_tag ?? "unknown"}`);
209
+ const binary = diag.binary;
210
+ if (binary.error) {
211
+ console.log(`Binary: unavailable (${binary.error})`);
212
+ }
213
+ else {
214
+ if (binary.tier === "override") {
215
+ console.log("Version: set via CLOAKBROWSER_BINARY_PATH (see Launch line)");
216
+ }
217
+ else {
218
+ console.log(`Version: ${binary.version} (${binary.tier})`);
219
+ }
220
+ console.log(`Binary: ${binary.path}`);
221
+ console.log(`Installed: ${binary.installed}`);
222
+ if (binary.cache_dir)
223
+ console.log(`Cache: ${binary.cache_dir}`);
224
+ if (binary.override) {
225
+ console.log(`Override: ${binary.override} (CLOAKBROWSER_BINARY_PATH)`);
226
+ }
227
+ }
228
+ const launch = diag.launch;
229
+ if (!launch.tested) {
230
+ console.log(`Launch: ${launch.reason}`);
231
+ }
232
+ else if (launch.ok) {
233
+ console.log(`Launch: ✓ ${launch.version}`);
234
+ }
235
+ else {
236
+ console.log(`Launch: ✗ failed — ${launch.error}`);
237
+ for (const lib of launch.missing_libs ?? []) {
238
+ console.log(` missing: ${lib}`);
239
+ }
240
+ if ((launch.missing_libs ?? []).length) {
241
+ console.log(" → install the missing system libraries (e.g. apt-get install)");
242
+ }
243
+ }
244
+ if (diag.fonts) {
245
+ const fonts = diag.fonts.windows_fonts;
246
+ console.log(`Win fonts: ${fonts}`);
247
+ if (fonts === "missing") {
248
+ console.log(" → spoofing Windows on Linux without Windows fonts; install msttcorefonts");
249
+ }
250
+ }
251
+ const lic = diag.license;
252
+ if (lic.tier === "free") {
253
+ console.log("License: Free");
254
+ console.log(` ${UPGRADE_HINT}`);
255
+ }
256
+ else if (lic.error) {
257
+ console.log(`License: ${lic.tier} (${lic.error})`);
258
+ }
259
+ else {
260
+ console.log(`License: ${lic.tier}`);
261
+ }
262
+ console.log(`GeoIP DB: ${diag.geoip.db_present ? "present" : "not downloaded (optional)"}`);
263
+ console.log("Modules:");
264
+ for (const [label, available] of Object.entries(diag.modules)) {
265
+ console.log(` ${label}: ${available ? "ok" : "missing"}`);
266
+ }
267
+ }
268
+ async function cmdInfo(args) {
269
+ const quick = args.includes("--quick") || args.includes("--no-launch");
270
+ const asJson = args.includes("--json");
271
+ const diag = await collectDiagnostics(quick);
272
+ if (asJson) {
273
+ console.log(JSON.stringify(diag, null, 2));
274
+ }
275
+ else {
276
+ printDiagnostics(diag);
35
277
  }
36
278
  }
37
279
  async function cmdUpdate() {
@@ -55,6 +297,7 @@ function cmdClearCache() {
55
297
  }
56
298
  async function main() {
57
299
  const command = process.argv[2];
300
+ const rest = process.argv.slice(3);
58
301
  if (!command || command === "--help" || command === "-h") {
59
302
  console.log(USAGE);
60
303
  process.exit(command ? 0 : 2);
@@ -65,7 +308,8 @@ async function main() {
65
308
  await cmdInstall();
66
309
  break;
67
310
  case "info":
68
- cmdInfo();
311
+ case "doctor":
312
+ await cmdInfo(rest);
69
313
  break;
70
314
  case "update":
71
315
  await cmdUpdate();
@@ -85,5 +329,9 @@ async function main() {
85
329
  process.exit(1);
86
330
  }
87
331
  }
88
- main();
332
+ // Only run when invoked as the CLI entry point — not when imported by tests.
333
+ const invokedPath = process.argv[1];
334
+ if (invokedPath && import.meta.url === pathToFileURL(invokedPath).href) {
335
+ main();
336
+ }
89
337
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -25,6 +25,14 @@ export declare function getEffectiveVersion(pro?: boolean): string;
25
25
  export declare function parseVersion(v: string): number[];
26
26
  export declare function versionNewer(a: string, b: string): boolean;
27
27
  export declare function getLocalBinaryOverride(): string | undefined;
28
+ export declare const HEADLESS_NO_VIEWPORT_MIN_VERSION: string | null;
29
+ /**
30
+ * Whether headless can launch without an emulated viewport on the resolved
31
+ * binary. Only binaries at or above HEADLESS_NO_VIEWPORT_MIN_VERSION qualify;
32
+ * older ones keep DEFAULT_VIEWPORT. A local override binary
33
+ * (CLOAKBROWSER_BINARY_PATH) is unknown-version, so stay on the safe path.
34
+ */
35
+ export declare function binarySupportsHeadlessNoViewport(licenseKey?: string, browserVersion?: string): boolean;
28
36
  export declare const IGNORE_DEFAULT_ARGS: string[];
29
37
  export declare const DEFAULT_VIEWPORT: {
30
38
  width: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,QAAA,IAAI,eAAe,QAAU,CAAC;AAU9B,OAAO,EAAE,eAAe,EAAE,CAAC;AAQ3B,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAC;AAWF,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAE1C,CAAC;AAkBF,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY9E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAmBvC;AAKD,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAGlE;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CASnE;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C;AAKD,eAAO,MAAM,iBAAiB,QAEF,CAAC;AAE7B,eAAO,MAAM,cAAc,+DACmC,CAAC;AAE/D,eAAO,MAAM,wBAAwB,8DACwB,CAAC;AAE9D,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,UAAQ,GAAG,MAAM,CAwCvD;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;AAQD,eAAO,MAAM,mBAAmB,UAAyD,CAAC;AAU1F,eAAO,MAAM,gBAAgB;;;CAA+B,CAAC;AAE7D,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAmBhD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,QAAA,IAAI,eAAe,QAAU,CAAC;AAU9B,OAAO,EAAE,eAAe,EAAE,CAAC;AAQ3B,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAC;AAWF,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAE1C,CAAC;AAkBF,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY9E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAmBvC;AAKD,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAGlE;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CASnE;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C;AAKD,eAAO,MAAM,iBAAiB,QAEF,CAAC;AAE7B,eAAO,MAAM,cAAc,+DACmC,CAAC;AAE/D,eAAO,MAAM,wBAAwB,8DACwB,CAAC;AAE9D,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,UAAQ,GAAG,MAAM,CAwCvD;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;AAUD,eAAO,MAAM,gCAAgC,EAAE,MAAM,GAAG,IAAyB,CAAC;AAElF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CA8BT;AAQD,eAAO,MAAM,mBAAmB,UAAyD,CAAC;AAU1F,eAAO,MAAM,gBAAgB;;;CAA+B,CAAC;AAE7D,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAmBhD"}
package/dist/config.js CHANGED
@@ -6,6 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import { fileURLToPath } from "node:url";
9
+ import { resolveLicenseKey } from "./license.js";
9
10
  // Read wrapper version from package.json (single source of truth)
10
11
  let WRAPPER_VERSION = "0.0.0";
11
12
  try {
@@ -212,6 +213,58 @@ export function getLocalBinaryOverride() {
212
213
  return process.env.CLOAKBROWSER_BINARY_PATH || undefined;
213
214
  }
214
215
  // ---------------------------------------------------------------------------
216
+ // Headless viewport handling by binary version
217
+ // ---------------------------------------------------------------------------
218
+ // First Chromium build that reports coherent headless dimensions without an
219
+ // emulated viewport. On these binaries the wrapper launches headless with no
220
+ // viewport; older binaries need a fixed DEFAULT_VIEWPORT to stay coherent.
221
+ // null => not shipped yet; feature off, behavior byte-identical to today.
222
+ // TODO: set to the chromium version string that first ships it.
223
+ export const HEADLESS_NO_VIEWPORT_MIN_VERSION = "148.0.7778.215.4";
224
+ /**
225
+ * Whether headless can launch without an emulated viewport on the resolved
226
+ * binary. Only binaries at or above HEADLESS_NO_VIEWPORT_MIN_VERSION qualify;
227
+ * older ones keep DEFAULT_VIEWPORT. A local override binary
228
+ * (CLOAKBROWSER_BINARY_PATH) is unknown-version, so stay on the safe path.
229
+ */
230
+ export function binarySupportsHeadlessNoViewport(licenseKey, browserVersion) {
231
+ if (HEADLESS_NO_VIEWPORT_MIN_VERSION === null)
232
+ return false;
233
+ // A declared version (browserVersion arg OR CLOAKBROWSER_VERSION env) wins even
234
+ // under a local override — the caller asserts the version (also how internal builds
235
+ // opt in). Only an override with no declared version stays on the safe path.
236
+ let declared;
237
+ try {
238
+ declared = normalizeRequestedVersion(browserVersion);
239
+ }
240
+ catch {
241
+ declared = undefined;
242
+ }
243
+ let version;
244
+ if (declared) {
245
+ version = declared;
246
+ }
247
+ else if (getLocalBinaryOverride()) {
248
+ return false;
249
+ }
250
+ else {
251
+ // Full resolution (param > env > ~/.cloakbrowser/license.key) — mirrors Python
252
+ // and .NET; a bare env/param check would miss file-based Pro keys.
253
+ const pro = Boolean(resolveLicenseKey(licenseKey));
254
+ version = getEffectiveVersion(pro);
255
+ }
256
+ try {
257
+ // Fail safe (feature OFF) on a malformed version — parseVersion yields NaN
258
+ // instead of throwing, so guard explicitly (Python/.NET throw + fail OFF).
259
+ if (parseVersion(version).some(Number.isNaN))
260
+ return false;
261
+ return !versionNewer(HEADLESS_NO_VIEWPORT_MIN_VERSION, version);
262
+ }
263
+ catch {
264
+ return false;
265
+ }
266
+ }
267
+ // ---------------------------------------------------------------------------
215
268
  // Playwright default args to suppress — these leak automation signals.
216
269
  // --enable-automation: exposes navigator.webdriver = true
217
270
  // --enable-unsafe-swiftshader: forces software WebGL rendering via SwiftShader,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Mirrors Python cloakbrowser/download.py.
5
5
  */
6
6
  import type { BinaryInfo } from "./types.js";
7
+ export declare const WELCOME_FREE_INTERVAL_SEC: number;
7
8
  /**
8
9
  * A downloaded binary could not be authenticated (bad/missing signature,
9
10
  * version mismatch, or checksum failure). Distinct from transient
@@ -32,6 +33,15 @@ export declare function clearCache(): void;
32
33
  export declare function binaryInfo(browserVersion?: string): BinaryInfo;
33
34
  /** Manually check for a newer Chromium version. Returns new version or null. */
34
35
  export declare function checkForUpdate(): Promise<string | null>;
36
+ /**
37
+ * Whether the welcome banner should be shown now. Pro: once ever (only when
38
+ * the marker is absent). Free: re-show when the marker is absent or its
39
+ * timestamp is older than WELCOME_FREE_INTERVAL_MS. Unreadable or legacy empty
40
+ * markers count as stale (due).
41
+ *
42
+ * @internal Exported for testing only.
43
+ */
44
+ export declare function welcomeDue(marker: string, pro: boolean): boolean;
35
45
  /** @internal Exported for testing only. */
36
46
  export declare function verifyDownloadChecksum(filePath: string, version?: string): Promise<void>;
37
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgC7C;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6GhG;AAED,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,IAAI,CAMjC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAqB9D;AAED,gFAAgF;AAChF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc7D;AAqFD,2CAA2C;AAC3C,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE9F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQhE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,aAAa,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CA2BrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,CAyCxF;AAED,2CAA2C;AAC3C,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAuB1F;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhE;AAsKD,2CAA2C;AAC3C,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDxF;AA4ID,2CAA2C;AAC3C,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BvE;AAaD,2CAA2C;AAC3C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,2CAA2C;AAC3C,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBxD"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+B7C,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAM1D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6GhG;AAED,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,IAAI,CAMjC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAqB9D;AAED,gFAAgF;AAChF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc7D;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAUhE;AAiFD,2CAA2C;AAC3C,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE9F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQhE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,aAAa,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CA2BrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,CAyCxF;AAED,2CAA2C;AAC3C,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAuB1F;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhE;AAsKD,2CAA2C;AAC3C,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDxF;AA4ID,2CAA2C;AAC3C,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BvE;AAaD,2CAA2C;AAC3C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,2CAA2C;AAC3C,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBxD"}
package/dist/download.js CHANGED
@@ -13,6 +13,11 @@ import { BINARY_SIGNING_PUBKEYS, CHROMIUM_VERSION, DOWNLOAD_BASE_URL, GITHUB_API
13
13
  import { resolveLicenseKey, validateLicense, getProLatestVersion } from "./license.js";
14
14
  const DOWNLOAD_TIMEOUT_MS = 600_000; // 10 minutes
15
15
  const UPDATE_CHECK_INTERVAL_MS = 3_600_000; // 1 hour
16
+ // Free-tier welcome banner re-show interval (3 days, in seconds). Free users see
17
+ // the Pro upsell again after this gap; Pro users see it only once (see showWelcome).
18
+ // Seconds (not ms) so the shared marker is consistent with the Python/.NET wrappers.
19
+ // @internal Exported for testing only.
20
+ export const WELCOME_FREE_INTERVAL_SEC = 3 * 24 * 60 * 60;
16
21
  // Pro Chromium major shown in the welcome banner. Bump at each Pro major release
17
22
  // (no local constant to derive it from — the live Pro version comes from the
18
23
  // network, which we don't call just to print a banner). Mirrors download.py.
@@ -181,9 +186,32 @@ export async function checkForUpdate() {
181
186
  // ---------------------------------------------------------------------------
182
187
  // Welcome message (shown once per install)
183
188
  // ---------------------------------------------------------------------------
189
+ /**
190
+ * Whether the welcome banner should be shown now. Pro: once ever (only when
191
+ * the marker is absent). Free: re-show when the marker is absent or its
192
+ * timestamp is older than WELCOME_FREE_INTERVAL_MS. Unreadable or legacy empty
193
+ * markers count as stale (due).
194
+ *
195
+ * @internal Exported for testing only.
196
+ */
197
+ export function welcomeDue(marker, pro) {
198
+ if (!fs.existsSync(marker))
199
+ return true;
200
+ if (pro)
201
+ return false;
202
+ try {
203
+ const last = parseInt(fs.readFileSync(marker, "utf8").trim(), 10);
204
+ if (Number.isNaN(last))
205
+ return true;
206
+ return Math.floor(Date.now() / 1000) - last >= WELCOME_FREE_INTERVAL_SEC;
207
+ }
208
+ catch {
209
+ return true;
210
+ }
211
+ }
184
212
  function showWelcome(pro = false) {
185
213
  const marker = path.join(getCacheDir(), ".welcome_shown");
186
- if (fs.existsSync(marker))
214
+ if (!welcomeDue(marker, pro))
187
215
  return;
188
216
  console.error();
189
217
  console.error(" CloakBrowser — stealth Chromium for automation");
@@ -203,7 +231,7 @@ function showWelcome(pro = false) {
203
231
  console.error();
204
232
  try {
205
233
  fs.mkdirSync(getCacheDir(), { recursive: true });
206
- fs.writeFileSync(marker, "");
234
+ fs.writeFileSync(marker, String(Math.floor(Date.now() / 1000)));
207
235
  }
208
236
  catch {
209
237
  // Non-fatal