UNPKG

israeli-bank-scrapers-core

Version:

Provide scrapers for all major Israeli banks and credit card companies

99 lines (98 loc) 11.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchGet = fetchGet; exports.fetchGetWithinPage = fetchGetWithinPage; exports.fetchGraphql = fetchGraphql; exports.fetchPost = fetchPost; exports.fetchPostWithinPage = fetchPostWithinPage; var _nodeFetch = _interopRequireDefault(require("node-fetch")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const JSON_CONTENT_TYPE = 'application/json'; function getJsonHeaders() { return { Accept: JSON_CONTENT_TYPE, 'Content-Type': JSON_CONTENT_TYPE }; } async function fetchGet(url, extraHeaders) { let headers = getJsonHeaders(); if (extraHeaders) { headers = Object.assign(headers, extraHeaders); } const request = { method: 'GET', headers }; const fetchResult = await (0, _nodeFetch.default)(url, request); if (fetchResult.status !== 200) { throw new Error(`sending a request to the institute server returned with status code ${fetchResult.status}`); } return fetchResult.json(); } async function fetchPost(url, data, extraHeaders = {}) { const request = { method: 'POST', headers: { ...getJsonHeaders(), ...extraHeaders }, body: JSON.stringify(data) }; const result = await (0, _nodeFetch.default)(url, request); return result.json(); } async function fetchGraphql(url, query, variables = {}, extraHeaders = {}) { const result = await fetchPost(url, { operationName: null, query, variables }, extraHeaders); if (result.errors?.length) { throw new Error(result.errors[0].message); } return result.data; } function fetchGetWithinPage(page, url) { return page.evaluate(innerUrl => { return new Promise((resolve, reject) => { fetch(innerUrl, { credentials: 'include' }).then(result => { if (result.status === 204) { resolve(null); } else { resolve(result.json()); } }).catch(e => { reject(e); }); }); }, url); } function fetchPostWithinPage(page, url, data, extraHeaders = {}) { return page.evaluate((innerUrl, innerData, innerExtraHeaders) => { return new Promise((resolve, reject) => { fetch(innerUrl, { method: 'POST', body: JSON.stringify(innerData), credentials: 'include', // eslint-disable-next-line prefer-object-spread headers: Object.assign({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, innerExtraHeaders) }).then(result => { if (result.status === 204) { // No content response resolve(null); } else { resolve(result.json()); } }).catch(e => { reject(e); }); }); }, url, data, extraHeaders); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJKU09OX0NPTlRFTlRfVFlQRSIsImdldEpzb25IZWFkZXJzIiwiQWNjZXB0IiwiZmV0Y2hHZXQiLCJ1cmwiLCJleHRyYUhlYWRlcnMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwicmVxdWVzdCIsIm1ldGhvZCIsImZldGNoUmVzdWx0Iiwibm9kZUZldGNoIiwic3RhdHVzIiwiRXJyb3IiLCJqc29uIiwiZmV0Y2hQb3N0IiwiZGF0YSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwiZmV0Y2hHcmFwaHFsIiwicXVlcnkiLCJ2YXJpYWJsZXMiLCJvcGVyYXRpb25OYW1lIiwiZXJyb3JzIiwibGVuZ3RoIiwibWVzc2FnZSIsImZldGNoR2V0V2l0aGluUGFnZSIsInBhZ2UiLCJldmFsdWF0ZSIsImlubmVyVXJsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwidGhlbiIsImNhdGNoIiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsImlubmVyRGF0YSIsImlubmVyRXh0cmFIZWFkZXJzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZmV0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5vZGVGZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCB7IHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlci1jb3JlJztcblxuY29uc3QgSlNPTl9DT05URU5UX1RZUEUgPSAnYXBwbGljYXRpb24vanNvbic7XG5cbmZ1bmN0aW9uIGdldEpzb25IZWFkZXJzKCkge1xuICByZXR1cm4ge1xuICAgIEFjY2VwdDogSlNPTl9DT05URU5UX1RZUEUsXG4gICAgJ0NvbnRlbnQtVHlwZSc6IEpTT05fQ09OVEVOVF9UWVBFLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXQ8VFJlc3VsdD4odXJsOiBzdHJpbmcsIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBsZXQgaGVhZGVycyA9IGdldEpzb25IZWFkZXJzKCk7XG4gIGlmIChleHRyYUhlYWRlcnMpIHtcbiAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBleHRyYUhlYWRlcnMpO1xuICB9XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzLFxuICB9O1xuICBjb25zdCBmZXRjaFJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuXG4gIGlmIChmZXRjaFJlc3VsdC5zdGF0dXMgIT09IDIwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIGluc3RpdHV0ZSBzZXJ2ZXIgcmV0dXJuZWQgd2l0aCBzdGF0dXMgY29kZSAke2ZldGNoUmVzdWx0LnN0YXR1c31gKTtcbiAgfVxuXG4gIHJldHVybiBmZXRjaFJlc3VsdC5qc29uKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBvc3QodXJsOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogeyAuLi5nZXRKc29uSGVhZGVycygpLCAuLi5leHRyYUhlYWRlcnMgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgfTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbm9kZUZldGNoKHVybCwgcmVxdWVzdCk7XG4gIHJldHVybiByZXN1bHQuanNvbigpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHcmFwaHFsPFRSZXN1bHQ+KFxuICB1cmw6IHN0cmluZyxcbiAgcXVlcnk6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaFBvc3QodXJsLCB7IG9wZXJhdGlvbk5hbWU6IG51bGwsIHF1ZXJ5LCB2YXJpYWJsZXMgfSwgZXh0cmFIZWFkZXJzKTtcbiAgaWYgKHJlc3VsdC5lcnJvcnM/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3JzWzBdLm1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YSBhcyBQcm9taXNlPFRSZXN1bHQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hHZXRXaXRoaW5QYWdlPFRSZXN1bHQ+KHBhZ2U6IFBhZ2UsIHVybDogc3RyaW5nKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICByZXR1cm4gcGFnZS5ldmFsdWF0ZShpbm5lclVybCA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRSZXN1bHQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBmZXRjaChpbm5lclVybCwge1xuICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5qc29uKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIHVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaFBvc3RXaXRoaW5QYWdlPFRSZXN1bHQ+KFxuICBwYWdlOiBQYWdlLFxuICB1cmw6IHN0cmluZyxcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgZXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4pOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gIHJldHVybiBwYWdlLmV2YWx1YXRlKFxuICAgIChpbm5lclVybDogc3RyaW5nLCBpbm5lckRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGlubmVyRXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8VFJlc3VsdCB8IG51bGw+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goaW5uZXJVcmwsIHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShpbm5lckRhdGEpLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1vYmplY3Qtc3ByZWFkXG4gICAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnIH0sXG4gICAgICAgICAgICBpbm5lckV4dHJhSGVhZGVycyxcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgICAgICAgIC8vIE5vIGNvbnRlbnQgcmVzcG9uc2VcbiAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0Lmpzb24oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHVybCxcbiAgICBkYXRhLFxuICAgIGV4dHJhSGVhZGVycyxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFtQyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUduQyxNQUFNRyxpQkFBaUIsR0FBRyxrQkFBa0I7QUFFNUMsU0FBU0MsY0FBY0EsQ0FBQSxFQUFHO0VBQ3hCLE9BQU87SUFDTEMsTUFBTSxFQUFFRixpQkFBaUI7SUFDekIsY0FBYyxFQUFFQTtFQUNsQixDQUFDO0FBQ0g7QUFFTyxlQUFlRyxRQUFRQSxDQUFVQyxHQUFXLEVBQUVDLFlBQWlDLEVBQW9CO0VBQ3hHLElBQUlDLE9BQU8sR0FBR0wsY0FBYyxDQUFDLENBQUM7RUFDOUIsSUFBSUksWUFBWSxFQUFFO0lBQ2hCQyxPQUFPLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDRixPQUFPLEVBQUVELFlBQVksQ0FBQztFQUNoRDtFQUNBLE1BQU1JLE9BQU8sR0FBRztJQUNkQyxNQUFNLEVBQUUsS0FBSztJQUNiSjtFQUNGLENBQUM7RUFDRCxNQUFNSyxXQUFXLEdBQUcsTUFBTSxJQUFBQyxrQkFBUyxFQUFDUixHQUFHLEVBQUVLLE9BQU8sQ0FBQztFQUVqRCxJQUFJRSxXQUFXLENBQUNFLE1BQU0sS0FBSyxHQUFHLEVBQUU7SUFDOUIsTUFBTSxJQUFJQyxLQUFLLENBQUMsdUVBQXVFSCxXQUFXLENBQUNFLE1BQU0sRUFBRSxDQUFDO0VBQzlHO0VB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