UNPKG

israeli-bank-scrapers

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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJKU09OX0NPTlRFTlRfVFlQRSIsImdldEpzb25IZWFkZXJzIiwiQWNjZXB0IiwiZmV0Y2hHZXQiLCJ1cmwiLCJleHRyYUhlYWRlcnMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwicmVxdWVzdCIsIm1ldGhvZCIsImZldGNoUmVzdWx0Iiwibm9kZUZldGNoIiwic3RhdHVzIiwiRXJyb3IiLCJqc29uIiwiZmV0Y2hQb3N0IiwiZGF0YSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwiZmV0Y2hHcmFwaHFsIiwicXVlcnkiLCJ2YXJpYWJsZXMiLCJvcGVyYXRpb25OYW1lIiwiZXJyb3JzIiwibGVuZ3RoIiwibWVzc2FnZSIsImZldGNoR2V0V2l0aGluUGFnZSIsInBhZ2UiLCJldmFsdWF0ZSIsImlubmVyVXJsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwidGhlbiIsImNhdGNoIiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsImlubmVyRGF0YSIsImlubmVyRXh0cmFIZWFkZXJzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZmV0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5vZGVGZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCB7IHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5cbmNvbnN0IEpTT05fQ09OVEVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuXG5mdW5jdGlvbiBnZXRKc29uSGVhZGVycygpIHtcbiAgcmV0dXJuIHtcbiAgICBBY2NlcHQ6IEpTT05fQ09OVEVOVF9UWVBFLFxuICAgICdDb250ZW50LVR5cGUnOiBKU09OX0NPTlRFTlRfVFlQRSxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoR2V0PFRSZXN1bHQ+KHVybDogc3RyaW5nLCBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgbGV0IGhlYWRlcnMgPSBnZXRKc29uSGVhZGVycygpO1xuICBpZiAoZXh0cmFIZWFkZXJzKSB7XG4gICAgaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oaGVhZGVycywgZXh0cmFIZWFkZXJzKTtcbiAgfVxuICBjb25zdCByZXF1ZXN0ID0ge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVycyxcbiAgfTtcbiAgY29uc3QgZmV0Y2hSZXN1bHQgPSBhd2FpdCBub2RlRmV0Y2godXJsLCByZXF1ZXN0KTtcblxuICBpZiAoZmV0Y2hSZXN1bHQuc3RhdHVzICE9PSAyMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHNlbmRpbmcgYSByZXF1ZXN0IHRvIHRoZSBpbnN0aXR1dGUgc2VydmVyIHJldHVybmVkIHdpdGggc3RhdHVzIGNvZGUgJHtmZXRjaFJlc3VsdC5zdGF0dXN9YCk7XG4gIH1cblxuICByZXR1cm4gZmV0Y2hSZXN1bHQuanNvbigpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hQb3N0KHVybDogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkge1xuICBjb25zdCByZXF1ZXN0ID0ge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgLi4uZ2V0SnNvbkhlYWRlcnMoKSwgLi4uZXh0cmFIZWFkZXJzIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gIH07XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuICByZXR1cm4gcmVzdWx0Lmpzb24oKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoR3JhcGhxbDxUUmVzdWx0PihcbiAgdXJsOiBzdHJpbmcsXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgZXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4pOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0KHVybCwgeyBvcGVyYXRpb25OYW1lOiBudWxsLCBxdWVyeSwgdmFyaWFibGVzIH0sIGV4dHJhSGVhZGVycyk7XG4gIGlmIChyZXN1bHQuZXJyb3JzPy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0LmVycm9yc1swXS5tZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmRhdGEgYXMgUHJvbWlzZTxUUmVzdWx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZldGNoR2V0V2l0aGluUGFnZTxUUmVzdWx0PihwYWdlOiBQYWdlLCB1cmw6IHN0cmluZyk6IFByb21pc2U8VFJlc3VsdCB8IG51bGw+IHtcbiAgcmV0dXJuIHBhZ2UuZXZhbHVhdGUoaW5uZXJVcmwgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZmV0Y2goaW5uZXJVcmwsIHtcbiAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQuanNvbigpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlID0+IHtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9LCB1cmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hQb3N0V2l0aGluUGFnZTxUUmVzdWx0PihcbiAgcGFnZTogUGFnZSxcbiAgdXJsOiBzdHJpbmcsXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICByZXR1cm4gcGFnZS5ldmFsdWF0ZShcbiAgICAoaW5uZXJVcmw6IHN0cmluZywgaW5uZXJEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBpbm5lckV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PikgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFRSZXN1bHQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGZldGNoKGlubmVyVXJsLCB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoaW5uZXJEYXRhKSxcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItb2JqZWN0LXNwcmVhZFxuICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04JyB9LFxuICAgICAgICAgICAgaW5uZXJFeHRyYUhlYWRlcnMsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICAgICAgICAvLyBObyBjb250ZW50IHJlc3BvbnNlXG4gICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5qc29uKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICB1cmwsXG4gICAgZGF0YSxcbiAgICBleHRyYUhlYWRlcnMsXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBbUMsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHbkMsTUFBTUcsaUJBQWlCLEdBQUcsa0JBQWtCO0FBRTVDLFNBQVNDLGNBQWNBLENBQUEsRUFBRztFQUN4QixPQUFPO0lBQ0xDLE1BQU0sRUFBRUYsaUJBQWlCO0lBQ3pCLGNBQWMsRUFBRUE7RUFDbEIsQ0FBQztBQUNIO0FBRU8sZUFBZUcsUUFBUUEsQ0FBVUMsR0FBVyxFQUFFQyxZQUFpQyxFQUFvQjtFQUN4RyxJQUFJQyxPQUFPLEdBQUdMLGNBQWMsQ0FBQyxDQUFDO0VBQzlCLElBQUlJLFlBQVksRUFBRTtJQUNoQkMsT0FBTyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsT0FBTyxFQUFFRCxZQUFZLENBQUM7RUFDaEQ7RUFDQSxNQUFNSSxPQUFPLEdBQUc7SUFDZEMsTUFBTSxFQUFFLEtBQUs7SUFDYko7RUFDRixDQUFDO0VBQ0QsTUFBTUssV0FBVyxHQUFHLE1BQU0sSUFBQUMsa0JBQVMsRUFBQ1IsR0FBRyxFQUFFSyxPQUFPLENBQUM7RUFFakQsSUFBSUUsV0FBVyxDQUFDRSxNQUFNLEtBQUssR0FBRyxFQUFFO0lBQzlCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHVFQUF1RUgsV0FBVyxDQUFDRSxNQUFNLEVBQUUsQ0FBQztFQUM5RztFQUVBLE9BQU9GLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDLENBQUM7QUFDM0I7QUFFTyxlQUFlQyxTQUFTQSxDQUFDWixHQUFXLEVBQUVhLElBQXlCLEVBQUVaLFlBQWlDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDOUcsTUFBTUksT0FBTyxHQUFHO0lBQ2RDLE1BQU0sRUFBRSxNQUFNO0lBQ2RKLE9BQU8sRUFBRTtNQUFFLEdBQUdMLGNBQWMsQ0FBQyxDQUFDO01BQUUsR0FBR0k7SUFBYSxDQUFDO0lBQ2pEYSxJQUFJLEVBQUVDLElBQUksQ0FBQ0MsU0FBUyxDQUFDSCxJQUFJO0VBQzNCLENBQUM7RUFDRCxNQUFNSSxNQUFNLEdBQUcsTUFBTSxJQUFBVCxrQkFBUyxFQUFDUixHQUFHLEVBQUVLLE9BQU8sQ0FBQztFQUM1QyxPQUFPWSxNQUFNLENBQUNOLElBQUksQ0FBQyxDQUFDO0FBQ3RCO0FBRU8sZUFBZU8sWUFBWUEsQ0FDaENsQixHQUFXLEVBQ1htQixLQUFhLEVBQ2JDLFNBQWtDLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZDbkIsWUFBaUMsR0FBRyxDQUFDLENBQUMsRUFDcEI7RUFDbEIsTUFBTWdCLE1BQU0sR0FBRyxNQUFNTCxTQUFTLENBQUNaLEdBQUcsRUFBRTtJQUFFcUIsYUFBYSxFQUFFLElBQUk7SUFBRUYsS0FBSztJQUFFQztFQUFVLENBQUMsRUFBRW5CLFlBQVksQ0FBQztFQUM1RixJQUFJZ0IsTUFBTSxDQUFDSyxNQUFNLEVBQUVDLE1BQU0sRUFBRTtJQUN6QixNQUFNLElBQUliLEtBQUssQ0FBQ08sTUFBTSxDQUFDSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNFLE9BQU8sQ0FBQztFQUMzQztFQUNBLE9BQU9QLE1BQU0sQ0FBQ0osSUFBSTtBQUNwQjtBQUVPLFNBQVNZLGtCQUFrQkEsQ0FBVUMsSUFBVSxFQUFFMUIsR0FBVyxFQUEyQjtFQUM1RixPQUFPMEIsSUFBSSxDQUFDQyxRQUFRLENBQUNDLFFBQVEsSUFBSTtJQUMvQixPQUFPLElBQUlDLE9BQU8sQ0FBaUIsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDdERDLEtBQUssQ0FBQ0osUUFBUSxFQUFFO1FBQ2RLLFdBQVcsRUFBRTtNQUNmLENBQUMsQ0FBQyxDQUNDQyxJQUFJLENBQUNqQixNQUFNLElBQUk7UUFDZCxJQUFJQSxNQUFNLENBQUNSLE1BQU0sS0FBSyxHQUFHLEVBQUU7VUFDekJxQixPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxNQUFNO1VBQ0xBLE9BQU8sQ0FBQ2IsTUFBTSxDQUFDTixJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hCO01BQ0YsQ0FBQyxDQUFDLENBQ0R3QixLQUFLLENBQUMxQyxDQUFDLElBQUk7UUFDVnNDLE1BQU0sQ0FBQ3RDLENBQUMsQ0FBQztNQUNYLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztFQUNKLENBQUMsRUFBRU8sR0FBRyxDQUFDO0FBQ1Q7QUFFTyxTQUFTb0MsbUJBQW1CQSxDQUNqQ1YsSUFBVSxFQUNWMUIsR0FBVyxFQUNYYSxJQUF5QixFQUN6QlosWUFBaUMsR0FBRyxDQUFDLENBQUMsRUFDYjtFQUN6QixPQUFPeUIsSUFBSSxDQUFDQyxRQUFRLENBQ2xCLENBQUNDLFFBQWdCLEVBQUVTLFNBQThCLEVBQUVDLGlCQUFzQyxLQUFLO0lBQzVGLE9BQU8sSUFBSVQsT0FBTyxDQUFpQixDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUN0REMsS0FBSyxDQUFDSixRQUFRLEVBQUU7UUFDZHRCLE1BQU0sRUFBRSxNQUFNO1FBQ2RRLElBQUksRUFBRUMsSUFBSSxDQUFDQyxTQUFTLENBQUNxQixTQUFTLENBQUM7UUFDL0JKLFdBQVcsRUFBRSxTQUFTO1FBQ3RCO1FBQ0EvQixPQUFPLEVBQUVDLE1BQU0sQ0FBQ0MsTUFBTSxDQUNwQjtVQUFFLGNBQWMsRUFBRTtRQUFtRCxDQUFDLEVBQ3RFa0MsaUJBQ0Y7TUFDRixDQUFDLENBQUMsQ0FDQ0osSUFBSSxDQUFDakIsTUFBTSxJQUFJO1FBQ2QsSUFBSUEsTUFBTSxDQUFDUixNQUFNLEtBQUssR0FBRyxFQUFFO1VBQ3pCO1VBQ0FxQixPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxNQUFNO1VBQ0xBLE9BQU8sQ0FBQ2IsTUFBTSxDQUFDTixJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hCO01BQ0YsQ0FBQyxDQUFDLENBQ0R3QixLQUFLLENBQUMxQyxDQUFDLElBQUk7UUFDVnNDLE1BQU0sQ0FBQ3RDLENBQUMsQ0FBQztNQUNYLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztFQUNKLENBQUMsRUFDRE8sR0FBRyxFQUNIYSxJQUFJLEVBQ0paLFlBQ0YsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119