@accounter/modern-poalim-scraper
Version:
Modern scraper for Israeli banks (Hapoalim, Isracard, Max)
305 lines (304 loc) • 15.9 kB
TypeScript
import { z } from 'zod';
/**
* Invariants the bank's own data obeys across fields. They are what makes a
* half-understood response fail loudly instead of landing in the database as a
* plausible-looking row.
*/
declare const PoalimSecurityTransactionSchema: z.ZodObject<{
Security: z.ZodString;
TradeDate: z.ZodString;
ValueDate: z.ZodNullable<z.ZodString>;
SettlementDate: z.ZodNullable<z.ZodString>;
TradeType: z.ZodEnum<{
קניה: "קניה";
מכירה: "מכירה";
"\u05D3\u05D1\u05D9\u05D3\u05E0\u05D3 \u05EA\u05E9\u05DC\u05D5\u05DD": "דבידנד תשלום";
"\u05E8\u05D9\u05D1\u05D9\u05EA \u05EA\u05E9\u05DC\u05D5\u05DD": "ריבית תשלום";
פדיון: "פדיון";
"\u05D4\u05D8\u05D1\u05D4 \u05D7\u05DC\u05D5\u05E7\u05EA \u05DE\u05E0\u05D9\u05D5\u05EA": "הטבה חלוקת מניות";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D6\u05DB\u05D5\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF": "העברה לזכות הפקדון";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D7\u05D5\u05D1\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF": "העברה לחובת הפקדון";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D7\u05D5\u05D1\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF (\u05D3\u05D5 \u05E6\u05D3\u05D3\u05D9\u05EA)": "העברה לחובת הפקדון (דו צדדית)";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D6\u05DB\u05D5\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF (\u05D3\u05D5 \u05E6\u05D3\u05D3\u05D9\u05EA)": "העברה לזכות הפקדון (דו צדדית)";
}>;
TransactionType: z.ZodEnum<{
קניה: "קניה";
מכירה: "מכירה";
"\u05EA\u05E9\u05DC\u05D5\u05DE\u05D9\u05DD \u05D5\u05D0\u05D9\u05E8\u05D5\u05E2\u05D9 \u05D7\u05D1\u05E8\u05D4": "תשלומים ואירועי חברה";
העברות: "העברות";
}>;
NV: z.ZodNullable<z.ZodNumber>;
TradePrice: z.ZodNullable<z.ZodNumber>;
NetValueTradeCurrency: z.ZodNullable<z.ZodNumber>;
PaymentType: z.ZodNullable<z.ZodEnum<{
דיבידנד: "דיבידנד";
"\u05D3\u05D9\u05D1\u05D9\u05D3\u05E0\u05D3 \u05D1\u05E2\u05D9\u05DF": "דיבידנד בעין";
ריבית: "ריבית";
פידיון: "פידיון";
פקיעה: "פקיעה";
"\u05D0\u05D9\u05D7\u05D5\u05D3 \u05DE\u05E0\u05D9\u05D5\u05EA": "איחוד מניות";
"\u05D4\u05E6\u05E2\u05EA \u05E8\u05DB\u05E9 \u05DB\u05E4\u05D5\u05D9\u05D4": "הצעת רכש כפויה";
}>>;
PaymentDate: z.ZodNullable<z.ZodString>;
ExDate: z.ZodNullable<z.ZodString>;
CancelDate: z.ZodNullable<z.ZodString>;
Branch: z.ZodNumber;
Account: z.ZodNumber;
AccountName: z.ZodNullable<z.ZodString>;
ExecutingBranch: z.ZodNullable<z.ZodString>;
FinancialAccountBranch: z.ZodNullable<z.ZodString>;
FinancialAccountNumber: z.ZodNullable<z.ZodString>;
ISIN: z.ZodNullable<z.ZodString>;
Symbol: z.ZodString;
SymbolOSI: z.ZodNullable<z.ZodString>;
EngName: z.ZodString;
HebName: z.ZodString;
EngNameFull: z.ZodString;
HebNameFull: z.ZodString;
SecurityGroup: z.ZodEnum<{
"\u05DE\u05E0\u05D9\u05D5\u05EA \u05E0\u05D9\u05E2\"\u05D6": "מניות ניע\"ז";
"\u05D0\u05D2\"\u05D7 \u05DE\u05DE\u05E9\u05DC\u05EA\u05D9 \u05E0\u05D9\u05E2\"\u05D6": "אג\"ח ממשלתי ניע\"ז";
"\u05D0\u05D2\"\u05D7 \u05E7\u05D5\u05E0\u05E6\u05E8\u05E0\u05D9 \u05E0\u05D9\u05E2\"\u05D6": "אג\"ח קונצרני ניע\"ז";
"\u05EA\u05E2\u05D5\u05D3\u05EA \u05E1\u05DC ETF \u05E0\u05D9\u05E2\"\u05D6": "תעודת סל ETF ניע\"ז";
"\u05E7\u05E8\u05DF \u05E0\u05D0\u05DE\u05E0\u05D5\u05EA": "קרן נאמנות";
"\u05E7\u05E8\u05E0\u05D5\u05EA \u05E0\u05D0\u05DE\u05E0\u05D5\u05EA \u05D6\u05E8\u05D5\u05EA": "קרנות נאמנות זרות";
}>;
SecuritySubGroup: z.ZodNull;
IssueCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
IssuerCountry: z.ZodString;
IssuerCountryCode: z.ZodString;
IssuerExchange: z.ZodString;
ExchangeCountry: z.ZodString;
IsTradable: z.ZodEnum<{
סחיר: "סחיר";
}>;
IsUSEquity: z.ZodEnum<{
כן: "כן";
לא: "לא";
}>;
IsJumbo: z.ZodBoolean;
ImpliedAssetMult: z.ZodNumber;
ExpiryDate: z.ZodNull;
TradeCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
SettlementCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
CommissionsCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
PaymentCurrency: z.ZodNull;
TradeGrossValueTradeCurrency: z.ZodNumber;
TradeGrossValueNIS: z.ZodNumber;
NetValueNIS: z.ZodNumber;
NetValueSettlementCurrency: z.ZodNumber;
SettlementPrice: z.ZodNumber;
TradeCommissionPercent: z.ZodNumber;
TradeCommissionValueNIS: z.ZodNumber;
TradeCommissionValueTradeCurrency: z.ZodNumber;
AgentCommissionValueTradeCurrency: z.ZodNumber;
ManagementFeesPercent: z.ZodNumber;
ManagementFeesValueNIS: z.ZodNumber;
ManagementFeesValueTradeCurrency: z.ZodNumber;
IsraeTaxValue: z.ZodNumber;
IsraelTaxPercent: z.ZodNumber;
IsraelTaxValueByPaymentsSettlementCurrency: z.ZodNumber;
ForeignTaxPercent: z.ZodNumber;
ForeignTaxValueSettlementCurrency: z.ZodNumber;
CapitalTaxPercent: z.ZodNumber;
CapitalTaxValueSettlementCurrency: z.ZodNumber;
PostDeductionTaxValueNIS: z.ZodNumber;
PreviousActionsDeductions: z.ZodNumber;
PostActionDeductionBalance: z.ZodNumber;
NominalProfitLossNIS: z.ZodNumber;
NominalProfitLossLinkage: z.ZodNumber;
RealProfitLossNIS: z.ZodNumber;
AccumulatedInterest: z.ZodNumber;
FundPlusAccumulatedInerestValue: z.ZodNumber;
PeymentPecentage: z.ZodNumber;
PaymentLinkingValue: z.ZodNumber;
ExDateBalance: z.ZodNumber;
IssueCurrencyToTradeCurrencyRate: z.ZodNumber;
TradeCurrnecyRate: z.ZodNumber;
PersonalCurrencyRate: z.ZodNumber;
PaymentName: z.ZodNull;
OrderOrigin: z.ZodNullable<z.ZodString>;
OrderType: z.ZodNull;
OrderSubject: z.ZodNull;
OrderedNV: z.ZodNumber;
ExecutedNV: z.ZodNumber;
OrderedValue: z.ZodNumber;
ExecutionDate: z.ZodString;
LastTranactionDate: z.ZodNullable<z.ZodString>;
IsCancelTransaction: z.ZodEnum<{
כן: "כן";
לא: "לא";
}>;
}, z.core.$strict>;
/**
* Only `Account` is modelled. `PageState` is the bank's opaque paging cursor —
* it is carried through untouched (and unused: the endpoint is queried with an
* explicit date range rather than paged).
*/
export declare const HapoalimSecuritiesTransactionsSchema: z.ZodObject<{
Account: z.ZodObject<{
PageState: z.ZodOptional<z.ZodNullable<z.ZodString>>;
Execution: z.ZodDefault<z.ZodArray<z.ZodObject<{
Security: z.ZodString;
TradeDate: z.ZodString;
ValueDate: z.ZodNullable<z.ZodString>;
SettlementDate: z.ZodNullable<z.ZodString>;
TradeType: z.ZodEnum<{
קניה: "קניה";
מכירה: "מכירה";
"\u05D3\u05D1\u05D9\u05D3\u05E0\u05D3 \u05EA\u05E9\u05DC\u05D5\u05DD": "דבידנד תשלום";
"\u05E8\u05D9\u05D1\u05D9\u05EA \u05EA\u05E9\u05DC\u05D5\u05DD": "ריבית תשלום";
פדיון: "פדיון";
"\u05D4\u05D8\u05D1\u05D4 \u05D7\u05DC\u05D5\u05E7\u05EA \u05DE\u05E0\u05D9\u05D5\u05EA": "הטבה חלוקת מניות";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D6\u05DB\u05D5\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF": "העברה לזכות הפקדון";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D7\u05D5\u05D1\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF": "העברה לחובת הפקדון";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D7\u05D5\u05D1\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF (\u05D3\u05D5 \u05E6\u05D3\u05D3\u05D9\u05EA)": "העברה לחובת הפקדון (דו צדדית)";
"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D6\u05DB\u05D5\u05EA \u05D4\u05E4\u05E7\u05D3\u05D5\u05DF (\u05D3\u05D5 \u05E6\u05D3\u05D3\u05D9\u05EA)": "העברה לזכות הפקדון (דו צדדית)";
}>;
TransactionType: z.ZodEnum<{
קניה: "קניה";
מכירה: "מכירה";
"\u05EA\u05E9\u05DC\u05D5\u05DE\u05D9\u05DD \u05D5\u05D0\u05D9\u05E8\u05D5\u05E2\u05D9 \u05D7\u05D1\u05E8\u05D4": "תשלומים ואירועי חברה";
העברות: "העברות";
}>;
NV: z.ZodNullable<z.ZodNumber>;
TradePrice: z.ZodNullable<z.ZodNumber>;
NetValueTradeCurrency: z.ZodNullable<z.ZodNumber>;
PaymentType: z.ZodNullable<z.ZodEnum<{
דיבידנד: "דיבידנד";
"\u05D3\u05D9\u05D1\u05D9\u05D3\u05E0\u05D3 \u05D1\u05E2\u05D9\u05DF": "דיבידנד בעין";
ריבית: "ריבית";
פידיון: "פידיון";
פקיעה: "פקיעה";
"\u05D0\u05D9\u05D7\u05D5\u05D3 \u05DE\u05E0\u05D9\u05D5\u05EA": "איחוד מניות";
"\u05D4\u05E6\u05E2\u05EA \u05E8\u05DB\u05E9 \u05DB\u05E4\u05D5\u05D9\u05D4": "הצעת רכש כפויה";
}>>;
PaymentDate: z.ZodNullable<z.ZodString>;
ExDate: z.ZodNullable<z.ZodString>;
CancelDate: z.ZodNullable<z.ZodString>;
Branch: z.ZodNumber;
Account: z.ZodNumber;
AccountName: z.ZodNullable<z.ZodString>;
ExecutingBranch: z.ZodNullable<z.ZodString>;
FinancialAccountBranch: z.ZodNullable<z.ZodString>;
FinancialAccountNumber: z.ZodNullable<z.ZodString>;
ISIN: z.ZodNullable<z.ZodString>;
Symbol: z.ZodString;
SymbolOSI: z.ZodNullable<z.ZodString>;
EngName: z.ZodString;
HebName: z.ZodString;
EngNameFull: z.ZodString;
HebNameFull: z.ZodString;
SecurityGroup: z.ZodEnum<{
"\u05DE\u05E0\u05D9\u05D5\u05EA \u05E0\u05D9\u05E2\"\u05D6": "מניות ניע\"ז";
"\u05D0\u05D2\"\u05D7 \u05DE\u05DE\u05E9\u05DC\u05EA\u05D9 \u05E0\u05D9\u05E2\"\u05D6": "אג\"ח ממשלתי ניע\"ז";
"\u05D0\u05D2\"\u05D7 \u05E7\u05D5\u05E0\u05E6\u05E8\u05E0\u05D9 \u05E0\u05D9\u05E2\"\u05D6": "אג\"ח קונצרני ניע\"ז";
"\u05EA\u05E2\u05D5\u05D3\u05EA \u05E1\u05DC ETF \u05E0\u05D9\u05E2\"\u05D6": "תעודת סל ETF ניע\"ז";
"\u05E7\u05E8\u05DF \u05E0\u05D0\u05DE\u05E0\u05D5\u05EA": "קרן נאמנות";
"\u05E7\u05E8\u05E0\u05D5\u05EA \u05E0\u05D0\u05DE\u05E0\u05D5\u05EA \u05D6\u05E8\u05D5\u05EA": "קרנות נאמנות זרות";
}>;
SecuritySubGroup: z.ZodNull;
IssueCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
IssuerCountry: z.ZodString;
IssuerCountryCode: z.ZodString;
IssuerExchange: z.ZodString;
ExchangeCountry: z.ZodString;
IsTradable: z.ZodEnum<{
סחיר: "סחיר";
}>;
IsUSEquity: z.ZodEnum<{
כן: "כן";
לא: "לא";
}>;
IsJumbo: z.ZodBoolean;
ImpliedAssetMult: z.ZodNumber;
ExpiryDate: z.ZodNull;
TradeCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
SettlementCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
CommissionsCurrency: z.ZodEnum<{
"\u05D3\u05D5\u05DC\u05E8 \u05D0\u05E8\u05D4\"\u05D1": "דולר ארה\"ב";
"\u05E9\u05E7\u05DC \u05D7\u05D3\u05E9": "שקל חדש";
}>;
PaymentCurrency: z.ZodNull;
TradeGrossValueTradeCurrency: z.ZodNumber;
TradeGrossValueNIS: z.ZodNumber;
NetValueNIS: z.ZodNumber;
NetValueSettlementCurrency: z.ZodNumber;
SettlementPrice: z.ZodNumber;
TradeCommissionPercent: z.ZodNumber;
TradeCommissionValueNIS: z.ZodNumber;
TradeCommissionValueTradeCurrency: z.ZodNumber;
AgentCommissionValueTradeCurrency: z.ZodNumber;
ManagementFeesPercent: z.ZodNumber;
ManagementFeesValueNIS: z.ZodNumber;
ManagementFeesValueTradeCurrency: z.ZodNumber;
IsraeTaxValue: z.ZodNumber;
IsraelTaxPercent: z.ZodNumber;
IsraelTaxValueByPaymentsSettlementCurrency: z.ZodNumber;
ForeignTaxPercent: z.ZodNumber;
ForeignTaxValueSettlementCurrency: z.ZodNumber;
CapitalTaxPercent: z.ZodNumber;
CapitalTaxValueSettlementCurrency: z.ZodNumber;
PostDeductionTaxValueNIS: z.ZodNumber;
PreviousActionsDeductions: z.ZodNumber;
PostActionDeductionBalance: z.ZodNumber;
NominalProfitLossNIS: z.ZodNumber;
NominalProfitLossLinkage: z.ZodNumber;
RealProfitLossNIS: z.ZodNumber;
AccumulatedInterest: z.ZodNumber;
FundPlusAccumulatedInerestValue: z.ZodNumber;
PeymentPecentage: z.ZodNumber;
PaymentLinkingValue: z.ZodNumber;
ExDateBalance: z.ZodNumber;
IssueCurrencyToTradeCurrencyRate: z.ZodNumber;
TradeCurrnecyRate: z.ZodNumber;
PersonalCurrencyRate: z.ZodNumber;
PaymentName: z.ZodNull;
OrderOrigin: z.ZodNullable<z.ZodString>;
OrderType: z.ZodNull;
OrderSubject: z.ZodNull;
OrderedNV: z.ZodNumber;
ExecutedNV: z.ZodNumber;
OrderedValue: z.ZodNumber;
ExecutionDate: z.ZodString;
LastTranactionDate: z.ZodNullable<z.ZodString>;
IsCancelTransaction: z.ZodEnum<{
כן: "כן";
לא: "לא";
}>;
}, z.core.$strict>>>;
}, z.core.$strict>;
}, z.core.$strict>;
export type HapoalimSecuritiesTransactions = z.infer<typeof HapoalimSecuritiesTransactionsSchema>;
export type PoalimSecurityTransaction = z.infer<typeof PoalimSecurityTransactionSchema>;
/**
* Turns a failed parse into something a human can act on.
*
* The raw issue list points at `Account.Execution.37.TradeType`, which says
* nothing about *which* execution row that is. This walks back into the parsed
* input to name the security and trade date alongside each issue, and collapses
* the long tail so one bank-side change does not print 150 near-identical lines.
*/
export declare function describeSecuritiesTransactionsError(input: unknown, error: z.ZodError, maxIssues?: number): string;
export {};