From f653d154f2845008772c4623f5fe526823b16b5b Mon Sep 17 00:00:00 2001 From: ngosang Date: Sun, 13 Dec 2020 00:46:34 +0100 Subject: [PATCH] Fix TypeScript compilation and bump minor version --- package-lock.json | 2 +- package.json | 2 +- src/routes.ts | 9 +++++---- src/session.ts | 11 ++++++----- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 41f8a08..0a73196 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "flaresolverr", - "version": "1.1.2", + "version": "1.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a9d46a0..dcf4a8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flaresolverr", - "version": "1.1.2", + "version": "1.1.3", "description": "Proxy server to bypass Cloudflare protection.", "scripts": { "start": "node ./dist/index.js", diff --git a/src/routes.ts b/src/routes.ts index d6cad13..d5b4e84 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -2,9 +2,10 @@ import { v1 as UUIDv1 } from 'uuid' import sessions, { SessionsCacheItem } from './session' import { RequestContext } from './types' import log from './log' -import { Browser, SetCookie, Request, Page, Headers, HttpMethod, Overrides, Cookie } from 'puppeteer' +import { SetCookie, Request, Headers, HttpMethod, Overrides, Cookie } from 'puppeteer' import { TimeoutError } from 'puppeteer/Errors' import getCaptchaSolver, { CaptchaType } from './captcha' +import * as Puppeteer from "puppeteer-extra/dist/puppeteer"; export interface BaseAPICall { cmd: string @@ -70,7 +71,7 @@ type OverridesProps = const CHALLENGE_SELECTORS = ['#trk_jschal_js', '.ray_id', '.attack-box'] const TOKEN_INPUT_NAMES = ['g-recaptcha-response', 'h-captcha-response'] -async function interceptResponse(page: Page, callback: (payload: ChallengeResolutionT) => any) { +async function interceptResponse(page: Puppeteer.Page, callback: (payload: ChallengeResolutionT) => any) { const client = await page.target().createCDPSession(); await client.send('Fetch.enable', { patterns: [ @@ -116,7 +117,7 @@ async function interceptResponse(page: Page, callback: (payload: ChallengeResolu }); } -async function resolveChallenge(ctx: RequestContext, { url, maxTimeout, proxy, download, returnOnlyCookies }: BaseRequestAPICall, page: Page): Promise { +async function resolveChallenge(ctx: RequestContext, { url, maxTimeout, proxy, download, returnOnlyCookies }: BaseRequestAPICall, page: Puppeteer.Page): Promise { maxTimeout = maxTimeout || 60000 let status = 'ok' @@ -319,7 +320,7 @@ function mergeSessionWithParams({ defaults }: SessionsCacheItem, params: BaseReq return copy } -async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browser: Browser): Promise { +async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browser: Puppeteer.Browser): Promise { const page = await browser.newPage() // merge session defaults with params diff --git a/src/session.ts b/src/session.ts index 8b16d76..d29e796 100644 --- a/src/session.ts +++ b/src/session.ts @@ -3,10 +3,11 @@ import * as path from 'path' import * as fs from 'fs' import puppeteer from 'puppeteer-extra' -import { LaunchOptions, Browser, Headers, SetCookie } from 'puppeteer' +import { LaunchOptions, Headers, SetCookie } from 'puppeteer' import log from './log' import { deleteFolderRecursive, sleep, removeEmptyFields } from './utils' +import * as Puppeteer from "puppeteer-extra/dist/puppeteer"; interface SessionPageDefaults { headers?: Headers @@ -14,7 +15,7 @@ interface SessionPageDefaults { } export interface SessionsCacheItem { - browser: Browser + browser: Puppeteer.Browser userDataDir?: string defaults: SessionPageDefaults } @@ -77,7 +78,7 @@ export default { // TODO: sometimes browser instances are created and not connected to correctly. // how do we handle/quit those instances inside Docker? let launchTries = 3 - let browser; + let browser: Puppeteer.Browser; while (0 <= launchTries--) { try { @@ -90,7 +91,7 @@ export default { } } - if (!browser) { throw Error(`Failed to lanch browser 3 times in a row.`) } + if (!browser) { throw Error(`Failed to launch browser 3 times in a row.`) } if (cookies) { const page = await browser.newPage() @@ -98,7 +99,7 @@ export default { } sessionCache[id] = { - browser, + browser: browser, userDataDir: puppeteerOptions.userDataDir, defaults: removeEmptyFields({ userAgent,