mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-06-08 04:25:25 +00:00
Fix TypeScript compilation and bump minor version
This commit is contained in:
parent
ff6cb05ac6
commit
f653d154f2
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"description": "Proxy server to bypass Cloudflare protection.",
|
"description": "Proxy server to bypass Cloudflare protection.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node ./dist/index.js",
|
"start": "node ./dist/index.js",
|
||||||
|
@ -2,9 +2,10 @@ import { v1 as UUIDv1 } from 'uuid'
|
|||||||
import sessions, { SessionsCacheItem } from './session'
|
import sessions, { SessionsCacheItem } from './session'
|
||||||
import { RequestContext } from './types'
|
import { RequestContext } from './types'
|
||||||
import log from './log'
|
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 { TimeoutError } from 'puppeteer/Errors'
|
||||||
import getCaptchaSolver, { CaptchaType } from './captcha'
|
import getCaptchaSolver, { CaptchaType } from './captcha'
|
||||||
|
import * as Puppeteer from "puppeteer-extra/dist/puppeteer";
|
||||||
|
|
||||||
export interface BaseAPICall {
|
export interface BaseAPICall {
|
||||||
cmd: string
|
cmd: string
|
||||||
@ -70,7 +71,7 @@ type OverridesProps =
|
|||||||
const CHALLENGE_SELECTORS = ['#trk_jschal_js', '.ray_id', '.attack-box']
|
const CHALLENGE_SELECTORS = ['#trk_jschal_js', '.ray_id', '.attack-box']
|
||||||
const TOKEN_INPUT_NAMES = ['g-recaptcha-response', 'h-captcha-response']
|
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();
|
const client = await page.target().createCDPSession();
|
||||||
await client.send('Fetch.enable', {
|
await client.send('Fetch.enable', {
|
||||||
patterns: [
|
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
|
maxTimeout = maxTimeout || 60000
|
||||||
let status = 'ok'
|
let status = 'ok'
|
||||||
@ -319,7 +320,7 @@ function mergeSessionWithParams({ defaults }: SessionsCacheItem, params: BaseReq
|
|||||||
return copy
|
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()
|
const page = await browser.newPage()
|
||||||
|
|
||||||
// merge session defaults with params
|
// merge session defaults with params
|
||||||
|
@ -3,10 +3,11 @@ import * as path from 'path'
|
|||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
|
|
||||||
import puppeteer from 'puppeteer-extra'
|
import puppeteer from 'puppeteer-extra'
|
||||||
import { LaunchOptions, Browser, Headers, SetCookie } from 'puppeteer'
|
import { LaunchOptions, Headers, SetCookie } from 'puppeteer'
|
||||||
|
|
||||||
import log from './log'
|
import log from './log'
|
||||||
import { deleteFolderRecursive, sleep, removeEmptyFields } from './utils'
|
import { deleteFolderRecursive, sleep, removeEmptyFields } from './utils'
|
||||||
|
import * as Puppeteer from "puppeteer-extra/dist/puppeteer";
|
||||||
|
|
||||||
interface SessionPageDefaults {
|
interface SessionPageDefaults {
|
||||||
headers?: Headers
|
headers?: Headers
|
||||||
@ -14,7 +15,7 @@ interface SessionPageDefaults {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface SessionsCacheItem {
|
export interface SessionsCacheItem {
|
||||||
browser: Browser
|
browser: Puppeteer.Browser
|
||||||
userDataDir?: string
|
userDataDir?: string
|
||||||
defaults: SessionPageDefaults
|
defaults: SessionPageDefaults
|
||||||
}
|
}
|
||||||
@ -77,7 +78,7 @@ export default {
|
|||||||
// TODO: sometimes browser instances are created and not connected to correctly.
|
// TODO: sometimes browser instances are created and not connected to correctly.
|
||||||
// how do we handle/quit those instances inside Docker?
|
// how do we handle/quit those instances inside Docker?
|
||||||
let launchTries = 3
|
let launchTries = 3
|
||||||
let browser;
|
let browser: Puppeteer.Browser;
|
||||||
|
|
||||||
while (0 <= launchTries--) {
|
while (0 <= launchTries--) {
|
||||||
try {
|
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) {
|
if (cookies) {
|
||||||
const page = await browser.newPage()
|
const page = await browser.newPage()
|
||||||
@ -98,7 +99,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sessionCache[id] = {
|
sessionCache[id] = {
|
||||||
browser,
|
browser: browser,
|
||||||
userDataDir: puppeteerOptions.userDataDir,
|
userDataDir: puppeteerOptions.userDataDir,
|
||||||
defaults: removeEmptyFields({
|
defaults: removeEmptyFields({
|
||||||
userAgent,
|
userAgent,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user