mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-06-08 12:35:30 +00:00
Update Puppeter and other dependencies
This commit is contained in:
parent
bb7e82e6c4
commit
fe6cfd75b8
@ -71,8 +71,7 @@ This is the recommended way for macOS users and for developers.
|
||||
* Run `export PUPPETEER_PRODUCT=firefox` (Linux/macOS) or `set PUPPETEER_PRODUCT=firefox` (Windows).
|
||||
* Run `npm install` command to install FlareSolverr dependencies.
|
||||
* Run `node node_modules/puppeteer/install.js` to install Firefox.
|
||||
* Run `npm run build` command to compile TypeScript code.
|
||||
* Run `npm start` command to start FlareSolverr.
|
||||
* Run `npm start` command to compile TypeScript code and start FlareSolverr.
|
||||
|
||||
### Systemd service
|
||||
|
||||
|
8011
package-lock.json
generated
8011
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@ -3,7 +3,7 @@
|
||||
"version": "2.1.0",
|
||||
"description": "Proxy server to bypass Cloudflare protection.",
|
||||
"scripts": {
|
||||
"start": "node ./dist/server.js",
|
||||
"start": "tsc && node ./dist/server.js",
|
||||
"build": "tsc",
|
||||
"dev": "nodemon -e ts --exec ts-node src/server.ts",
|
||||
"package": "node build-binaries.js",
|
||||
@ -23,7 +23,7 @@
|
||||
"body-parser": "^1.19.0",
|
||||
"console-log-level": "^1.4.1",
|
||||
"express": "^4.17.1",
|
||||
"puppeteer": "^3.3.0",
|
||||
"puppeteer": "^13.1.2",
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -31,13 +31,13 @@
|
||||
"@types/body-parser": "^1.19.1",
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/jest": "^27.0.2",
|
||||
"@types/node": "^14.17.27",
|
||||
"@types/puppeteer": "^3.0.6",
|
||||
"@types/node": "^16.11.7",
|
||||
"@types/puppeteer": "^5.4.4",
|
||||
"@types/supertest": "^2.0.11",
|
||||
"@types/uuid": "^8.3.1",
|
||||
"archiver": "^5.3.0",
|
||||
"nodemon": "^2.0.13",
|
||||
"pkg": "^5.3.3",
|
||||
"pkg": "^4.4.9",
|
||||
"supertest": "^6.1.6",
|
||||
"ts-jest": "^27.0.7",
|
||||
"ts-node": "^10.3.0",
|
||||
|
@ -1,6 +1,5 @@
|
||||
// todo: avoid puppeter objects
|
||||
import {SetCookie, Headers, HttpMethod} from 'puppeteer'
|
||||
import {Request, Response} from 'express';
|
||||
import {Protocol} from "devtools-protocol";
|
||||
|
||||
import log from '../services/log'
|
||||
import {browserRequest, ChallengeResolutionResultT, ChallengeResolutionT} from "../services/solver";
|
||||
@ -20,11 +19,11 @@ export interface Proxy {
|
||||
|
||||
export interface V1RequestBase {
|
||||
cmd: string
|
||||
cookies?: SetCookie[],
|
||||
cookies?: Protocol.Network.CookieParam[],
|
||||
maxTimeout?: number
|
||||
proxy?: Proxy
|
||||
session: string
|
||||
headers?: Headers // deprecated v2, not used
|
||||
headers?: Record<string, string> // deprecated v2, not used
|
||||
userAgent?: string // deprecated v2, not used
|
||||
}
|
||||
|
||||
@ -33,7 +32,7 @@ interface V1RequestSession extends V1RequestBase {
|
||||
|
||||
export interface V1Request extends V1RequestBase {
|
||||
url: string
|
||||
method?: HttpMethod
|
||||
method?: string
|
||||
postData?: string
|
||||
returnOnlyCookies?: boolean
|
||||
download?: boolean // deprecated v2, not used
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {Page, Response} from 'puppeteer'
|
||||
import {Page, HTTPResponse} from 'puppeteer'
|
||||
|
||||
import log from "../services/log";
|
||||
|
||||
@ -14,7 +14,7 @@ const CHALLENGE_SELECTORS = [
|
||||
];
|
||||
const CAPTCHA_SELECTORS = ['input[name="cf_captcha_kind"]'];
|
||||
|
||||
export default async function resolveChallenge(url: string, page: Page, response: Response): Promise<Response> {
|
||||
export default async function resolveChallenge(url: string, page: Page, response: HTTPResponse): Promise<HTTPResponse> {
|
||||
|
||||
// look for challenge and return fast if not detected
|
||||
let cfDetected = response.headers().server && response.headers().server.startsWith('cloudflare');
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {v1 as UUIDv1} from 'uuid'
|
||||
import * as path from 'path'
|
||||
import {SetCookie, Browser} from 'puppeteer'
|
||||
import {Browser} from 'puppeteer'
|
||||
import {Protocol} from "devtools-protocol";
|
||||
|
||||
import log from './log'
|
||||
import {Proxy} from "../controllers/v1";
|
||||
@ -20,7 +21,7 @@ interface SessionsCache {
|
||||
|
||||
export interface SessionCreateOptions {
|
||||
oneTimeSession: boolean
|
||||
cookies?: SetCookie[],
|
||||
cookies?: Protocol.Network.CookieParam[],
|
||||
maxTimeout?: number
|
||||
proxy?: Proxy
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {Response, Headers, Page} from 'puppeteer'
|
||||
import {Page, HTTPResponse} from 'puppeteer'
|
||||
const Timeout = require('await-timeout');
|
||||
|
||||
import log from './log'
|
||||
@ -11,7 +11,7 @@ const sessions = require('./sessions')
|
||||
export interface ChallengeResolutionResultT {
|
||||
url: string
|
||||
status: number,
|
||||
headers?: Headers,
|
||||
headers?: Record<string, string>,
|
||||
response: string,
|
||||
cookies: object[]
|
||||
userAgent: string
|
||||
@ -64,7 +64,7 @@ async function resolveChallenge(params: V1Request, session: SessionsCacheItem):
|
||||
|
||||
// go to the page
|
||||
log.debug(`Navigating to... ${params.url}`)
|
||||
let response: Response = await gotoPage(params, page);
|
||||
let response: HTTPResponse = await gotoPage(params, page);
|
||||
|
||||
// set cookies
|
||||
if (params.cookies) {
|
||||
@ -128,8 +128,8 @@ async function resolveChallenge(params: V1Request, session: SessionsCacheItem):
|
||||
}
|
||||
}
|
||||
|
||||
async function gotoPage(params: V1Request, page: Page): Promise<Response> {
|
||||
let response: Response;
|
||||
async function gotoPage(params: V1Request, page: Page): Promise<HTTPResponse> {
|
||||
let response: HTTPResponse;
|
||||
if (params.method != 'POST') {
|
||||
response = await page.goto(params.url, {waitUntil: 'domcontentloaded'});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user