Fix TypeScript compilation and bump minor version

This commit is contained in:
ngosang 2020-12-13 00:46:34 +01:00
parent ff6cb05ac6
commit f653d154f2
4 changed files with 13 additions and 11 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "flaresolverr",
"version": "1.1.2",
"version": "1.1.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -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",

View File

@ -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<ChallengeResolutionT | void> {
async function resolveChallenge(ctx: RequestContext, { url, maxTimeout, proxy, download, returnOnlyCookies }: BaseRequestAPICall, page: Puppeteer.Page): Promise<ChallengeResolutionT | void> {
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<Page> {
async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browser: Puppeteer.Browser): Promise<Puppeteer.Page> {
const page = await browser.newPage()
// merge session defaults with params

View File

@ -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,