UNPKG

@accounter/israeli-vat-scraper

Version:
45 lines (35 loc) 1.43 kB
import type { Page } from 'puppeteer'; import { waitForSelectorPlus } from '../utils/page-util.js'; import type { Logger, UserCredentials } from '../utils/types.js'; const _creds: UserCredentials = { vatNumber: '', userCode: '', userPass: '', }; export const getEnvCredentials = (): UserCredentials => { return { vatNumber: process.env['VAT_NUM'] as string, userCode: process.env['USER_CODE'] as string, userPass: process.env['USER_PASS'] as string, }; }; export const updateCredentials = (credentials: UserCredentials): void => { _creds.vatNumber = credentials.vatNumber; _creds.userCode = credentials.userCode; _creds.userPass = credentials.userPass; }; export const login = async (page: Page, logger: Logger): Promise<void> => { try { await page.goto('https://www.misim.gov.il/emdvhmfrt/wLogOnMaam.aspx', { waitUntil: ['networkidle2', 'domcontentloaded'], }); await waitForSelectorPlus(page, '#LogonMaam1_EmTwbCtlLogonMaam_BtnSubmit', logger); await page.type('#LogonMaam1_EmTwbCtlLogonMaam_TxtMisOsek', _creds.vatNumber); await page.type('#LogonMaam1_EmTwbCtlLogonMaam_TxtKodUser', _creds.userCode); await page.type('#LogonMaam1_EmTwbCtlLogonMaam_TxtPassword', _creds.userPass); await page.click('#LogonMaam1_EmTwbCtlLogonMaam_BtnSubmit'); return; } catch (e) { throw new Error(`login - ${(e as Error)?.message || e}`, { cause: e }); } };