israeli-bank-scrapers-core
Version:
Provide scrapers for all major Israeli banks and credit card companies
58 lines (57 loc) • 2.29 kB
TypeScript
import { type Frame, type Page, type PuppeteerLifeCycleEvent } from 'puppeteer-core';
import { BaseScraper } from './base-scraper';
import { ScraperErrorTypes } from './errors';
import { type ScraperCredentials, type ScraperScrapingResult } from './interface';
declare enum LoginBaseResults {
Success = "SUCCESS",
UnknownError = "UNKNOWN_ERROR"
}
export declare const LoginResults: {
Success: LoginBaseResults.Success;
UnknownError: LoginBaseResults.UnknownError;
TwoFactorRetrieverMissing: ScraperErrorTypes.TwoFactorRetrieverMissing;
InvalidPassword: ScraperErrorTypes.InvalidPassword;
ChangePassword: ScraperErrorTypes.ChangePassword;
AccountBlocked: ScraperErrorTypes.AccountBlocked;
};
export type LoginResults = Exclude<ScraperErrorTypes, ScraperErrorTypes.Timeout | ScraperErrorTypes.Generic | ScraperErrorTypes.General> | LoginBaseResults;
export type PossibleLoginResults = {
[key in LoginResults]?: (string | RegExp | ((options?: {
page?: Page;
}) => Promise<boolean>))[];
};
export interface LoginOptions {
loginUrl: string;
checkReadiness?: () => Promise<void>;
fields: {
selector: string;
value: string;
}[];
submitButtonSelector: string | (() => Promise<void>);
preAction?: () => Promise<Frame | void>;
postAction?: () => Promise<void>;
possibleResults: PossibleLoginResults;
userAgent?: string;
waitUntil?: PuppeteerLifeCycleEvent;
}
declare class BaseScraperWithBrowser<TCredentials extends ScraperCredentials> extends BaseScraper<TCredentials> {
private cleanups;
private defaultViewportSize;
protected page: Page;
protected getViewPort(): {
width: number;
height: number;
};
initialize(): Promise<void>;
private initializePage;
navigateTo(url: string, waitUntil?: PuppeteerLifeCycleEvent | undefined, retries?: number): Promise<void>;
getLoginOptions(_credentials: ScraperCredentials): LoginOptions;
fillInputs(pageOrFrame: Page | Frame, fields: {
selector: string;
value: string;
}[]): Promise<void>;
login(credentials: ScraperCredentials): Promise<ScraperScrapingResult>;
terminate(_success: boolean): Promise<void>;
private handleLoginResult;
}
export { BaseScraperWithBrowser };