From f81bdfbd27f51ab699c26a47d7f00b874c1ce848 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Thu, 26 Mar 2026 08:39:57 +0100 Subject: [PATCH 1/3] prefer dash for binary options --- packages/browser/src/fetch.ts | 6 +++--- packages/browser/src/serve.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/browser/src/fetch.ts b/packages/browser/src/fetch.ts index b56007f..6872de4 100644 --- a/packages/browser/src/fetch.ts +++ b/packages/browser/src/fetch.ts @@ -58,9 +58,9 @@ export const fetch = (url: string, options: LightpandaFetchOptions = defaultOpti const executablePath = getExecutablePath() const flags = [ { flag: `--dump ${dumpOptions?.type ?? 'html'}`, condition: dump }, - { flag: '--insecure_disable_tls_host_verification', condition: disableHostVerification }, - { flag: '--obey_robots', condition: obeyRobots }, - { flag: `--http_proxy ${httpProxy}`, condition: httpProxy }, + { flag: '--insecure-disable-tls-host-verification', condition: disableHostVerification }, + { flag: '--obey-robots', condition: obeyRobots }, + { flag: `--http-proxy ${httpProxy}`, condition: httpProxy }, ] .map(f => (f.condition ? f.flag : '')) .join(' ') diff --git a/packages/browser/src/serve.ts b/packages/browser/src/serve.ts index 5762316..e4b0019 100644 --- a/packages/browser/src/serve.ts +++ b/packages/browser/src/serve.ts @@ -62,16 +62,16 @@ export const serve = (options: LightpandaServeOptions = defaultOptions) => { { flag: '--port', value: port }, { flag: '--timeout', value: timeout }, { - flag: '--insecure_disable_tls_host_verification', + flag: '--insecure-disable-tls-host-verification', value: disableHostVerification, flagOnly: true, }, { - flag: '--obey_robots', + flag: '--obey-robots', value: obeyRobots, flagOnly: true, }, - { flag: '--http_proxy', value: httpProxy }, + { flag: '--http-proxy', value: httpProxy }, ] .flatMap(f => (f.value ? [f.flag, !f.flagOnly ? f.value.toString() : ''] : '')) .filter(f => f !== '') From 628f133588cfd32ca8ec921ae833d8230fd917bd Mon Sep 17 00:00:00 2001 From: Nicolas Rigaudiere Date: Mon, 27 Apr 2026 09:30:30 +0200 Subject: [PATCH 2/3] chore: upgrade node 22 --- packages/browser/package.json | 6 +++++- packages/browser/tsconfig.json | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/browser/package.json b/packages/browser/package.json index 1bd6a97..74110bc 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -35,6 +35,10 @@ "url": "https://github.com/lightpanda-io/node-packages/issues" }, "homepage": "https://github.com/lightpanda-io/node-packages/tree/main/packages/browser#readme", + "engines": { + "node": "22.16", + "yarn": "4.9" + }, "devDependencies": { "@biomejs/biome": "^1.9.4", "@types/node": "22.15.32", @@ -46,4 +50,4 @@ "dependencies": { "yargs": "^18.0.0" } -} +} \ No newline at end of file diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index c021005..c827e2f 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -1,12 +1,16 @@ { "compilerOptions": { - "module": "esnext", + "module": "nodenext", + "moduleResolution": "nodenext", + "types": ["node"], "esModuleInterop": true, "target": "es6", - "moduleResolution": "node", "resolveJsonModule": true, "sourceMap": true, "outDir": "dist", + "declaration": true, + "composite": true, + "declarationMap": true, "paths": { "lightpanda/*": ["./src/*"], "scripts/*": ["./scripts/*"] From f1cc150bcd059a3fb4ba47bf8b4af0014afc7ff8 Mon Sep 17 00:00:00 2001 From: Nicolas Rigaudiere Date: Mon, 27 Apr 2026 09:30:51 +0200 Subject: [PATCH 3/3] fix: typecheck --- packages/browser/src/download.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/browser/src/download.ts b/packages/browser/src/download.ts index 43b31a7..d4790a5 100644 --- a/packages/browser/src/download.ts +++ b/packages/browser/src/download.ts @@ -39,13 +39,19 @@ const PLATFORMS = { arm64: 'aarch64-linux', }, } +const CURRENT_PLATFORM = platform as 'darwin' | 'linux' +const CURRENT_ARCH = arch as 'arm64' | 'x64' /** * Download Lightpanda's binary * @returns {Promise} */ export const download = async (): Promise => { - const platformPath = PLATFORMS?.[platform]?.[arch] + if (!['linux', 'darwin'].includes(platform)) { + throw new Error('Architecture or platform is not compatible with Lightpanda') + } + + const platformPath = PLATFORMS?.[CURRENT_PLATFORM]?.[CURRENT_ARCH] if (!existsSync(DEFAULT_CACHE_FOLDER)) { mkdirSync(DEFAULT_CACHE_FOLDER, { recursive: true }) @@ -91,7 +97,7 @@ export const download = async (): Promise => { } return '' - } catch (e) { + } catch (e: any) { throw new Error(e) } }