mirror of
https://github.com/germondai/trawl.git
synced 2026-08-17 12:11:23 +02:00
feat: scaffold shared types package
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "@trawl/types",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"main": "./src/index.ts",
|
||||
"types": "./src/index.ts",
|
||||
"scripts": {
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^6.0.3"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
export interface Cookie {
|
||||
name: string
|
||||
value: string
|
||||
domain: string
|
||||
path: string
|
||||
expires: number
|
||||
httpOnly: boolean
|
||||
secure: boolean
|
||||
sameSite?: string
|
||||
}
|
||||
|
||||
export interface ScrapeRequest {
|
||||
url: string
|
||||
maxTimeout?: number
|
||||
skipHttp?: boolean
|
||||
maxTier?: 1 | 2 | 3 | 4
|
||||
sessionId?: string
|
||||
}
|
||||
|
||||
export interface TierResult {
|
||||
tier: 1 | 2 | 3 | 4
|
||||
status: "success" | "blocked" | "needs-js" | "timeout" | "error" | "skipped"
|
||||
durationMs: number
|
||||
reason?: string
|
||||
}
|
||||
|
||||
export interface ScrapeResult {
|
||||
url: string
|
||||
html: string
|
||||
cookies: Cookie[]
|
||||
userAgent: string
|
||||
statusCode: number
|
||||
tier: 1 | 2 | 3 | 4
|
||||
sessionCached: boolean
|
||||
timings: TierResult[]
|
||||
totalMs: number
|
||||
captchasSolved?: string[] // captcha types solved during this request (e.g. ['turnstile', 'recaptcha-v2'])
|
||||
}
|
||||
|
||||
export interface SessionData {
|
||||
cookies: Cookie[]
|
||||
userAgent: string
|
||||
savedAt: number
|
||||
}
|
||||
|
||||
export interface PoolBrowser {
|
||||
id: number
|
||||
busy: boolean
|
||||
lastDomain?: string
|
||||
lastUsedAt?: number
|
||||
restartCount: number
|
||||
healthy: boolean
|
||||
}
|
||||
|
||||
export interface PoolStats {
|
||||
total: number
|
||||
busy: number
|
||||
available: number
|
||||
restarts: number
|
||||
avgRestarts: number
|
||||
}
|
||||
|
||||
export interface FlareSolverrRequest {
|
||||
cmd: "request.get" | "request.post"
|
||||
url: string
|
||||
maxTimeout?: number
|
||||
postData?: string
|
||||
headers?: Record<string, string>
|
||||
}
|
||||
|
||||
export interface FlareSolverrResponse {
|
||||
status: "ok" | "error"
|
||||
message: string
|
||||
startTimestamp: number
|
||||
endTimestamp: number
|
||||
version: "2.0.0"
|
||||
solution: {
|
||||
url: string
|
||||
status: number
|
||||
headers: Record<string, string>
|
||||
response: string
|
||||
cookies: Cookie[]
|
||||
userAgent: string
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
||||
Reference in New Issue
Block a user