Update Puppeter and other dependencies

This commit is contained in:
ngosang
2022-01-30 22:49:15 +01:00
parent bb7e82e6c4
commit fe6cfd75b8
7 changed files with 3590 additions and 4488 deletions

View File

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

View File

@@ -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');

View File

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

View File

@@ -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'});