israeli-bank-scrapers 1.10.4 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,6 +24,7 @@ Currently only the following banks are supported:
24
24
  - Beinleumi (Thanks to [@dudiventura](https://github.com/dudiventura) from the Intuit FDP OpenSource Team)
25
25
  - Massad
26
26
  - Yahav (Thanks to [@gczobel](https://github.com/gczobel))
27
+ - Beyhad Bishvilha - [ביחד בשבילך](https://www.hist.org.il/) (thanks [@esakal](https://github.com/esakal))
27
28
 
28
29
  # Prerequisites
29
30
  To use this you will need to have [Node.js](https://nodejs.org) >= 10.x installed.
@@ -282,6 +283,16 @@ const credentials = {
282
283
  ```
283
284
  This scraper supports fetching transaction from up to six months.
284
285
 
286
+ ## Beyhad Bishvilha
287
+ This scraper expects the following credentials object::
288
+ ```node
289
+ const credentials = {
290
+ id: <user identification number>,
291
+ password: <user password>
292
+ };
293
+ ```
294
+
295
+
285
296
  # Known projects
286
297
  These are the projects known to be using this module:
287
298
  - [Israeli YNAB updater](https://github.com/eshaham/israeli-ynab-updater) - A command line tool for exporting banks data to CSVs, formatted specifically for [YNAB](https://www.youneedabudget.com)
@@ -14,7 +14,8 @@ export declare enum CompanyTypes {
14
14
  mizrahi = "mizrahi",
15
15
  leumi = "leumi",
16
16
  massad = "massad",
17
- yahav = "yahav"
17
+ yahav = "yahav",
18
+ beyahadBishvilha = "beyahadBishvilha"
18
19
  }
19
20
  export declare const SCRAPERS: {
20
21
  hapoalim: {
@@ -77,4 +78,8 @@ export declare const SCRAPERS: {
77
78
  name: string;
78
79
  loginFields: string[];
79
80
  };
81
+ beyahadBishvilha: {
82
+ name: string;
83
+ loginFields: string[];
84
+ };
80
85
  };
@@ -26,6 +26,7 @@ exports.CompanyTypes = CompanyTypes;
26
26
  CompanyTypes["leumi"] = "leumi";
27
27
  CompanyTypes["massad"] = "massad";
28
28
  CompanyTypes["yahav"] = "yahav";
29
+ CompanyTypes["beyahadBishvilha"] = "beyahadBishvilha";
29
30
  })(CompanyTypes || (exports.CompanyTypes = CompanyTypes = {}));
30
31
 
31
32
  const SCRAPERS = {
@@ -90,7 +91,11 @@ const SCRAPERS = {
90
91
  [CompanyTypes.yahav]: {
91
92
  name: 'Bank Yahav',
92
93
  loginFields: ['username', 'nationalID', PASSWORD_FIELD]
94
+ },
95
+ [CompanyTypes.beyahadBishvilha]: {
96
+ name: 'Beyahad Bishvilha',
97
+ loginFields: ['id', PASSWORD_FIELD]
93
98
  }
94
99
  };
95
100
  exports.SCRAPERS = SCRAPERS;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFFTyxNQUFNQSxjQUFjLEdBQUcsVUFBdkI7O0lBRUtDLFk7OztXQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0dBQUFBLFksNEJBQUFBLFk7O0FBa0JMLE1BQU1DLFFBQVEsR0FBRztBQUN0QixHQUFDRCxZQUFZLENBQUNFLFFBQWQsR0FBeUI7QUFDdkJDLElBQUFBLElBQUksRUFBRSxlQURpQjtBQUV2QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlUsR0FESDtBQUt0QixHQUFDQyxZQUFZLENBQUNLLGdCQUFkLEdBQWlDO0FBQUU7QUFDakNGLElBQUFBLElBQUksRUFBRSxlQUR5QjtBQUUvQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRmtCLEdBTFg7QUFTdEIsR0FBQ0MsWUFBWSxDQUFDTSxLQUFkLEdBQXNCO0FBQ3BCSCxJQUFBQSxJQUFJLEVBQUUsWUFEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0FUQTtBQWF0QixHQUFDQyxZQUFZLENBQUNPLE9BQWQsR0FBd0I7QUFDdEJKLElBQUFBLElBQUksRUFBRSxjQURnQjtBQUV0QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlMsR0FiRjtBQWlCdEIsR0FBQ0MsWUFBWSxDQUFDUSxRQUFkLEdBQXlCO0FBQ3ZCTCxJQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUCxFQUF1QixLQUF2QjtBQUZVLEdBakJIO0FBcUJ0QixHQUFDQyxZQUFZLENBQUNTLFlBQWQsR0FBNkI7QUFDM0JOLElBQUFBLElBQUksRUFBRSxvQkFEcUI7QUFFM0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYUwsY0FBYjtBQUZjLEdBckJQO0FBeUJ0QixHQUFDQyxZQUFZLENBQUNVLFNBQWQsR0FBMEI7QUFBRTtBQUMxQlAsSUFBQUEsSUFBSSxFQUFFLFlBRGtCO0FBRXhCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGVyxHQXpCSjtBQTZCdEIsR0FBQ0MsWUFBWSxDQUFDVyxHQUFkLEdBQW9CO0FBQ2xCUixJQUFBQSxJQUFJLEVBQUUsS0FEWTtBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRkssR0E3QkU7QUFpQ3RCLEdBQUNDLFlBQVksQ0FBQ1ksT0FBZCxHQUF3QjtBQUN0QlQsSUFBQUEsSUFBSSxFQUFFLFVBRGdCO0FBRXRCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUyxHQWpDRjtBQXFDdEIsR0FBQ0MsWUFBWSxDQUFDYSxRQUFkLEdBQXlCO0FBQ3ZCVixJQUFBQSxJQUFJLEVBQUUsVUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBTyxhQUFQLEVBQXNCTCxjQUF0QjtBQUZVLEdBckNIO0FBeUN0QixHQUFDQyxZQUFZLENBQUNjLElBQWQsR0FBcUI7QUFDbkJYLElBQUFBLElBQUksRUFBRSxNQURhO0FBRW5CQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxJQUFELEVBQU8sYUFBUCxFQUFzQkwsY0FBdEI7QUFGTSxHQXpDQztBQTZDdEIsR0FBQ0MsWUFBWSxDQUFDZSxLQUFkLEdBQXNCO0FBQ3BCWixJQUFBQSxJQUFJLEVBQUUsT0FEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0E3Q0E7QUFpRHRCLEdBQUNDLFlBQVksQ0FBQ2dCLFNBQWQsR0FBMEI7QUFDeEJiLElBQUFBLElBQUksRUFBRSxXQURrQjtBQUV4QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlcsR0FqREo7QUFxRHRCLEdBQUNDLFlBQVksQ0FBQ2lCLE1BQWQsR0FBdUI7QUFDckJkLElBQUFBLElBQUksRUFBRSxRQURlO0FBRXJCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUSxHQXJERDtBQXlEdEIsR0FBQ0MsWUFBWSxDQUFDa0IsS0FBZCxHQUFzQjtBQUNwQmYsSUFBQUEsSUFBSSxFQUFFLFlBRGM7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYSxZQUFiLEVBQTJCTCxjQUEzQjtBQUZPO0FBekRBLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTk9USUNFOiBhdm9pZCBjaGFuZ2luZyBleHBvcnRlZCBrZXlzIGFzIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBhcGlcblxuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX0ZJRUxEID0gJ3Bhc3N3b3JkJztcblxuZXhwb3J0IGVudW0gQ29tcGFueVR5cGVzIHtcbiAgaGFwb2FsaW0gPSAnaGFwb2FsaW0nLFxuICBoYXBvYWxpbUJlT25saW5lID0gJ2hhcG9hbGltQmVPbmxpbmUnLFxuICBiZWlubGV1bWkgPSAnYmVpbmxldW1pJyxcbiAgdW5pb24gPSAndW5pb24nLFxuICBhbWV4ID0gJ2FtZXgnLFxuICBpc3JhY2FyZCA9ICdpc3JhY2FyZCcsXG4gIHZpc2FDYWwgPSAndmlzYUNhbCcsXG4gIG1heCA9ICdtYXgnLFxuICBsZXVtaUNhcmQgPSAnbGV1bWlDYXJkJyxcbiAgb3RzYXJIYWhheWFsID0gJ290c2FySGFoYXlhbCcsXG4gIGRpc2NvdW50ID0gJ2Rpc2NvdW50JyxcbiAgbWl6cmFoaSA9ICdtaXpyYWhpJyxcbiAgbGV1bWkgPSAnbGV1bWknLFxuICBtYXNzYWQgPSAnbWFzc2FkJyxcbiAgeWFoYXYgPSAneWFoYXYnXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JBUEVSUyA9IHtcbiAgW0NvbXBhbnlUeXBlcy5oYXBvYWxpbV06IHtcbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZV06IHsgLy8gVE9ETyByZW1vdmUgaW4gTWFqb3IgdmVyc2lvblxuICAgIG5hbWU6ICdCYW5rIEhhcG9hbGltJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VyQ29kZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmFuayBMZXVtaScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWl6cmFoaV06IHtcbiAgICBuYW1lOiAnTWl6cmFoaSBCYW5rJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5kaXNjb3VudF06IHtcbiAgICBuYW1lOiAnRGlzY291bnQgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRCwgJ251bSddLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm90c2FySGFoYXlhbF06IHtcbiAgICBuYW1lOiAnQmFuayBPdHNhciBIYWhheWFsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaUNhcmRdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnTGV1bWkgQ2FyZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWF4XToge1xuICAgIG5hbWU6ICdNYXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnZpc2FDYWxdOiB7XG4gICAgbmFtZTogJ1Zpc2EgQ2FsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5pc3JhY2FyZF06IHtcbiAgICBuYW1lOiAnSXNyYWNhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmFtZXhdOiB7XG4gICAgbmFtZTogJ0FtZXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnVuaW9uXToge1xuICAgIG5hbWU6ICdVbmlvbicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmVpbmxldW1pXToge1xuICAgIG5hbWU6ICdCZWlubGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1hc3NhZF06IHtcbiAgICBuYW1lOiAnTWFzc2FkJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy55YWhhdl06IHtcbiAgICBuYW1lOiAnQmFuayBZYWhhdicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCAnbmF0aW9uYWxJRCcsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbn07XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiIsImJleWFoYWRCaXNodmlsaGEiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRU8sTUFBTUEsY0FBYyxHQUFHLFVBQXZCOztJQUVLQyxZOzs7V0FBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0dBQUFBLFksNEJBQUFBLFk7O0FBbUJMLE1BQU1DLFFBQVEsR0FBRztBQUN0QixHQUFDRCxZQUFZLENBQUNFLFFBQWQsR0FBeUI7QUFDdkJDLElBQUFBLElBQUksRUFBRSxlQURpQjtBQUV2QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlUsR0FESDtBQUt0QixHQUFDQyxZQUFZLENBQUNLLGdCQUFkLEdBQWlDO0FBQUU7QUFDakNGLElBQUFBLElBQUksRUFBRSxlQUR5QjtBQUUvQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRmtCLEdBTFg7QUFTdEIsR0FBQ0MsWUFBWSxDQUFDTSxLQUFkLEdBQXNCO0FBQ3BCSCxJQUFBQSxJQUFJLEVBQUUsWUFEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0FUQTtBQWF0QixHQUFDQyxZQUFZLENBQUNPLE9BQWQsR0FBd0I7QUFDdEJKLElBQUFBLElBQUksRUFBRSxjQURnQjtBQUV0QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlMsR0FiRjtBQWlCdEIsR0FBQ0MsWUFBWSxDQUFDUSxRQUFkLEdBQXlCO0FBQ3ZCTCxJQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUCxFQUF1QixLQUF2QjtBQUZVLEdBakJIO0FBcUJ0QixHQUFDQyxZQUFZLENBQUNTLFlBQWQsR0FBNkI7QUFDM0JOLElBQUFBLElBQUksRUFBRSxvQkFEcUI7QUFFM0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYUwsY0FBYjtBQUZjLEdBckJQO0FBeUJ0QixHQUFDQyxZQUFZLENBQUNVLFNBQWQsR0FBMEI7QUFBRTtBQUMxQlAsSUFBQUEsSUFBSSxFQUFFLFlBRGtCO0FBRXhCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGVyxHQXpCSjtBQTZCdEIsR0FBQ0MsWUFBWSxDQUFDVyxHQUFkLEdBQW9CO0FBQ2xCUixJQUFBQSxJQUFJLEVBQUUsS0FEWTtBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRkssR0E3QkU7QUFpQ3RCLEdBQUNDLFlBQVksQ0FBQ1ksT0FBZCxHQUF3QjtBQUN0QlQsSUFBQUEsSUFBSSxFQUFFLFVBRGdCO0FBRXRCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUyxHQWpDRjtBQXFDdEIsR0FBQ0MsWUFBWSxDQUFDYSxRQUFkLEdBQXlCO0FBQ3ZCVixJQUFBQSxJQUFJLEVBQUUsVUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBTyxhQUFQLEVBQXNCTCxjQUF0QjtBQUZVLEdBckNIO0FBeUN0QixHQUFDQyxZQUFZLENBQUNjLElBQWQsR0FBcUI7QUFDbkJYLElBQUFBLElBQUksRUFBRSxNQURhO0FBRW5CQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxJQUFELEVBQU8sYUFBUCxFQUFzQkwsY0FBdEI7QUFGTSxHQXpDQztBQTZDdEIsR0FBQ0MsWUFBWSxDQUFDZSxLQUFkLEdBQXNCO0FBQ3BCWixJQUFBQSxJQUFJLEVBQUUsT0FEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0E3Q0E7QUFpRHRCLEdBQUNDLFlBQVksQ0FBQ2dCLFNBQWQsR0FBMEI7QUFDeEJiLElBQUFBLElBQUksRUFBRSxXQURrQjtBQUV4QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlcsR0FqREo7QUFxRHRCLEdBQUNDLFlBQVksQ0FBQ2lCLE1BQWQsR0FBdUI7QUFDckJkLElBQUFBLElBQUksRUFBRSxRQURlO0FBRXJCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUSxHQXJERDtBQXlEdEIsR0FBQ0MsWUFBWSxDQUFDa0IsS0FBZCxHQUFzQjtBQUNwQmYsSUFBQUEsSUFBSSxFQUFFLFlBRGM7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYSxZQUFiLEVBQTJCTCxjQUEzQjtBQUZPLEdBekRBO0FBNkR0QixHQUFDQyxZQUFZLENBQUNtQixnQkFBZCxHQUFpQztBQUMvQmhCLElBQUFBLElBQUksRUFBRSxtQkFEeUI7QUFFL0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUDtBQUZrQjtBQTdEWCxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVElDRTogYXZvaWQgY2hhbmdpbmcgZXhwb3J0ZWQga2V5cyBhcyB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBwdWJsaWMgYXBpXG5cbmV4cG9ydCBjb25zdCBQQVNTV09SRF9GSUVMRCA9ICdwYXNzd29yZCc7XG5cbmV4cG9ydCBlbnVtIENvbXBhbnlUeXBlcyB7XG4gIGhhcG9hbGltID0gJ2hhcG9hbGltJyxcbiAgaGFwb2FsaW1CZU9ubGluZSA9ICdoYXBvYWxpbUJlT25saW5lJyxcbiAgYmVpbmxldW1pID0gJ2JlaW5sZXVtaScsXG4gIHVuaW9uID0gJ3VuaW9uJyxcbiAgYW1leCA9ICdhbWV4JyxcbiAgaXNyYWNhcmQgPSAnaXNyYWNhcmQnLFxuICB2aXNhQ2FsID0gJ3Zpc2FDYWwnLFxuICBtYXggPSAnbWF4JyxcbiAgbGV1bWlDYXJkID0gJ2xldW1pQ2FyZCcsXG4gIG90c2FySGFoYXlhbCA9ICdvdHNhckhhaGF5YWwnLFxuICBkaXNjb3VudCA9ICdkaXNjb3VudCcsXG4gIG1penJhaGkgPSAnbWl6cmFoaScsXG4gIGxldW1pID0gJ2xldW1pJyxcbiAgbWFzc2FkID0gJ21hc3NhZCcsXG4gIHlhaGF2ID0gJ3lhaGF2JyxcbiAgYmV5YWhhZEJpc2h2aWxoYSA9ICdiZXlhaGFkQmlzaHZpbGhhJ1xufVxuXG5leHBvcnQgY29uc3QgU0NSQVBFUlMgPSB7XG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1dOiB7XG4gICAgbmFtZTogJ0JhbmsgSGFwb2FsaW0nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJDb2RlJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmhhcG9hbGltQmVPbmxpbmVdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWldOiB7XG4gICAgbmFtZTogJ0JhbmsgTGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1penJhaGldOiB7XG4gICAgbmFtZTogJ01penJhaGkgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuZGlzY291bnRdOiB7XG4gICAgbmFtZTogJ0Rpc2NvdW50IEJhbmsnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTEQsICdudW0nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWxdOiB7XG4gICAgbmFtZTogJ0JhbmsgT3RzYXIgSGFoYXlhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWlDYXJkXTogeyAvLyBUT0RPIHJlbW92ZSBpbiBNYWpvciB2ZXJzaW9uXG4gICAgbmFtZTogJ0xldW1pIENhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1heF06IHtcbiAgICBuYW1lOiAnTWF4JyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy52aXNhQ2FsXToge1xuICAgIG5hbWU6ICdWaXNhIENhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaXNyYWNhcmRdOiB7XG4gICAgbmFtZTogJ0lzcmFjYXJkJyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5hbWV4XToge1xuICAgIG5hbWU6ICdBbWV4JyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy51bmlvbl06IHtcbiAgICBuYW1lOiAnVW5pb24nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmJlaW5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmVpbmxldW1pJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5tYXNzYWRdOiB7XG4gICAgbmFtZTogJ01hc3NhZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMueWFoYXZdOiB7XG4gICAgbmFtZTogJ0JhbmsgWWFoYXYnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgJ25hdGlvbmFsSUQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYV06IHtcbiAgICBuYW1lOiAnQmV5YWhhZCBCaXNodmlsaGEnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxufTtcbiJdfQ==
@@ -24,7 +24,7 @@ export interface LoginOptions {
24
24
  selector: string;
25
25
  value: string;
26
26
  }[];
27
- submitButtonSelector: string;
27
+ submitButtonSelector: string | (() => Promise<void>);
28
28
  preAction?: () => Promise<Frame | void>;
29
29
  postAction?: () => Promise<void>;
30
30
  possibleResults: PossibleLoginResults;
@@ -33,6 +33,10 @@ export interface LoginOptions {
33
33
  declare class BaseScraperWithBrowser extends BaseScraper {
34
34
  protected browser: Browser;
35
35
  protected page: Page;
36
+ protected getViewPort(): {
37
+ width: number;
38
+ height: number;
39
+ };
36
40
  initialize(): Promise<void>;
37
41
  navigateTo(url: string, page?: Page, timeout?: number): Promise<void>;
38
42
  getLoginOptions(_credentials: ScraperCredentials): LoginOptions;
@@ -129,6 +129,13 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
129
129
  _defineProperty(this, "page", void 0);
130
130
  }
131
131
 
132
+ getViewPort() {
133
+ return {
134
+ width: VIEWPORT_WIDTH,
135
+ height: VIEWPORT_HEIGHT
136
+ };
137
+ }
138
+
132
139
  async initialize() {
133
140
  debug('initialize scraper');
134
141
  this.emitProgress(_baseScraper.ScaperProgressTypes.Initializing);
@@ -181,10 +188,11 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
181
188
  await this.options.preparePage(this.page);
182
189
  }
183
190
 
184
- debug(`set viewport to width ${VIEWPORT_WIDTH}, height ${VIEWPORT_HEIGHT}`);
191
+ const viewport = this.getViewPort();
192
+ debug(`set viewport to width ${viewport.width}, height ${viewport.height}`);
185
193
  await this.page.setViewport({
186
- width: VIEWPORT_WIDTH,
187
- height: VIEWPORT_HEIGHT
194
+ width: viewport.width,
195
+ height: viewport.height
188
196
  });
189
197
  this.page.on('requestfailed', request => {
190
198
  var _request$failure;
@@ -250,7 +258,7 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
250
258
  if (loginOptions.checkReadiness) {
251
259
  debug('execute \'checkReadiness\' interceptor provided in login options');
252
260
  await loginOptions.checkReadiness();
253
- } else {
261
+ } else if (typeof loginOptions.submitButtonSelector === 'string') {
254
262
  debug('wait until submit button is available');
255
263
  await (0, _elementsInteractions.waitUntilElementFound)(this.page, loginOptions.submitButtonSelector);
256
264
  }
@@ -265,7 +273,13 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
265
273
  debug('fill login components input with relevant values');
266
274
  await this.fillInputs(loginFrameOrPage, loginOptions.fields);
267
275
  debug('click on login submit button');
268
- await (0, _elementsInteractions.clickButton)(loginFrameOrPage, loginOptions.submitButtonSelector);
276
+
277
+ if (typeof loginOptions.submitButtonSelector === 'string') {
278
+ await (0, _elementsInteractions.clickButton)(loginFrameOrPage, loginOptions.submitButtonSelector);
279
+ } else {
280
+ await loginOptions.submitButtonSelector();
281
+ }
282
+
269
283
  this.emitProgress(_baseScraper.ScaperProgressTypes.LoggingIn);
270
284
 
271
285
  if (loginOptions.postAction) {
@@ -305,4 +319,4 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
305
319
  }
306
320
 
307
321
  exports.BaseScraperWithBrowser = BaseScraperWithBrowser;
308
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImluaXRpYWxpemUiLCJJbml0aWFsaXppbmciLCJlbnYiLCJvcHRpb25zIiwidmVyYm9zZSIsIkRFQlVHIiwicHJvY2VzcyIsImJyb3dzZXIiLCJleGVjdXRhYmxlUGF0aCIsInVuZGVmaW5lZCIsImFyZ3MiLCJoZWFkbGVzcyIsInNob3dCcm93c2VyIiwicHVwcGV0ZWVyIiwibGF1bmNoIiwicHJlcGFyZUJyb3dzZXIiLCJwYWdlcyIsImxlbmd0aCIsIm5ld1BhZ2UiLCJwcmVwYXJlUGFnZSIsInNldFZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJvbiIsInJlcXVlc3QiLCJmYWlsdXJlIiwiZXJyb3JUZXh0IiwidXJsIiwibmF2aWdhdGVUbyIsInRpbWVvdXQiLCJwYWdlVG9Vc2UiLCJyZXNwb25zZSIsImdvdG8iLCJzdGF0dXMiLCJnZXRMb2dpbk9wdGlvbnMiLCJfY3JlZGVudGlhbHMiLCJjb21wYW55SWQiLCJmaWxsSW5wdXRzIiwicGFnZU9yRnJhbWUiLCJmaWVsZHMiLCJtb2RpZmllZCIsImlucHV0Iiwic2hpZnQiLCJzZWxlY3RvciIsImxvZ2luIiwiY3JlZGVudGlhbHMiLCJsb2dpbk9wdGlvbnMiLCJ1c2VyQWdlbnQiLCJzZXRVc2VyQWdlbnQiLCJsb2dpblVybCIsImNoZWNrUmVhZGluZXNzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJsb2dpbkZyYW1lT3JQYWdlIiwicHJlQWN0aW9uIiwiTG9nZ2luZ0luIiwicG9zdEFjdGlvbiIsImN1cnJlbnQiLCJwb3NzaWJsZVJlc3VsdHMiLCJ0ZXJtaW5hdGUiLCJfc3VjY2VzcyIsIlRlcm1pbmF0aW5nIiwic3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgiLCJzY3JlZW5zaG90IiwicGF0aCIsImZ1bGxQYWdlIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBS0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRUEsTUFBTUEsY0FBYyxHQUFHLElBQXZCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEdBQXhCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEdBQWxCO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLDJCQUFULENBQWQ7SUFFS0MsZ0I7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLEtBQUFBLGdCOztBQUtMLE1BQU07QUFDSkMsRUFBQUEsT0FESTtBQUNLQyxFQUFBQSxPQURMO0FBQ2NDLEVBQUFBO0FBRGQsSUFFRkMsOEJBRko7QUFBQSxNQUNnQ0MsSUFEaEMsNEJBRUlELDhCQUZKOztBQUdPLE1BQU1F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QU47QUFJRDs7QUFFRCxRQUFJLENBQUMsS0FBS3pELE9BQVYsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxVQUFNLEtBQUtBLE9BQUwsQ0FBYTBELEtBQWIsRUFBTjtBQUNEOztBQTNLOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHVwcGV0ZWVyLCB7IEJyb3dzZXIsIEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuaW1wb3J0IHtcbiAgU2NyYXBlckVycm9yVHlwZXMsXG4gIEJhc2VTY3JhcGVyLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NhcGVyUHJvZ3Jlc3NUeXBlcyxcbiAgU2NyYXBlckNyZWRlbnRpYWxzLFxufSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsLCB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBjbGlja0J1dHRvbiwgZmlsbElucHV0LCB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBWSUVXUE9SVF9XSURUSCA9IDEwMjQ7XG5jb25zdCBWSUVXUE9SVF9IRUlHSFQgPSA3Njg7XG5jb25zdCBPS19TVEFUVVMgPSAyMDA7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInKTtcblxuZW51bSBMb2dpbkJhc2VSZXN1bHRzIHtcbiAgU3VjY2VzcyA9ICdTVUNDRVNTJyxcbiAgVW5rbm93bkVycm9yID0gJ1VOS05PV05fRVJST1InXG59XG5cbmNvbnN0IHtcbiAgVGltZW91dCwgR2VuZXJpYywgR2VuZXJhbCwgLi4ucmVzdFxufSA9IFNjcmFwZXJFcnJvclR5cGVzO1xuZXhwb3J0IGNvbnN0IExvZ2luUmVzdWx0cyA9IHtcbiAgLi4ucmVzdCxcbiAgLi4uTG9naW5CYXNlUmVzdWx0cyxcbn07XG5cbmV4cG9ydCB0eXBlIExvZ2luUmVzdWx0cyA9IEV4Y2x1ZGU8U2NyYXBlckVycm9yVHlwZXMsXG5TY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0XG58IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWNcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbD4gfCBMb2dpbkJhc2VSZXN1bHRzO1xuXG5leHBvcnQgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHtcbiAgW2tleSBpbiBMb2dpblJlc3VsdHNdPzogKHN0cmluZyB8IFJlZ0V4cCB8ICgob3B0aW9ucz86IHsgcGFnZT86IFBhZ2V9KSA9PiBQcm9taXNlPGJvb2xlYW4+KSlbXVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbk9wdGlvbnMge1xuICBsb2dpblVybDogc3RyaW5nO1xuICBjaGVja1JlYWRpbmVzcz86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIGZpZWxkczoge3NlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W107XG4gIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBzdHJpbmc7XG4gIHByZUFjdGlvbj86ICgpID0+IFByb21pc2U8RnJhbWUgfCB2b2lkPjtcbiAgcG9zdEFjdGlvbj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHBvc3NpYmxlUmVzdWx0czogUG9zc2libGVMb2dpblJlc3VsdHM7XG4gIHVzZXJBZ2VudD86IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0S2V5QnlWYWx1ZShvYmplY3Q6IFBvc3NpYmxlTG9naW5SZXN1bHRzLCB2YWx1ZTogc3RyaW5nLCBwYWdlOiBQYWdlKTogUHJvbWlzZTxMb2dpblJlc3VsdHM+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgY29uZGl0aW9ucyA9IG9iamVjdFtrZXldO1xuXG4gICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgY29uZGl0aW9ucykge1xuICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICBpZiAoY29uZGl0aW9uIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvbi50ZXN0KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBjb25kaXRpb24oeyBwYWdlLCB2YWx1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IGNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoTG9naW5SZXN1bHRzLlVua25vd25FcnJvcik7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxvZ2luUmVzdWx0KHNjcmFwZXI6IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIGxvZ2luUmVzdWx0OiBMb2dpblJlc3VsdHMpIHtcbiAgc3dpdGNoIChsb2dpblJlc3VsdCkge1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLlN1Y2Nlc3M6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luU3VjY2Vzcyk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkOlxuICAgIGNhc2UgTG9naW5SZXN1bHRzLlVua25vd25FcnJvcjpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogbG9naW5SZXN1bHQgPT09IExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQgPyBTY3JhcGVyRXJyb3JUeXBlcy5JbnZhbGlkUGFzc3dvcmQgOlxuICAgICAgICAgIFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gICAgICAgIGVycm9yTWVzc2FnZTogYExvZ2luIGZhaWxlZCB3aXRoICR7bG9naW5SZXN1bHR9IGVycm9yYCxcbiAgICAgIH07XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmQ6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGxvZ2luIHJlc3VsdCBcIiR7bG9naW5SZXN1bHR9XCJgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmFsRXJyb3IoKTogU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbCxcbiAgfTtcbn1cblxuY2xhc3MgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciBleHRlbmRzIEJhc2VTY3JhcGVyIHtcbiAgLy8gTk9USUNFIC0gaXQgaXMgZGlzY291cmFnZSB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgYnJvd3NlciE6IEJyb3dzZXI7XG5cbiAgLy8gTk9USUNFIC0gaXQgaXMgZGlzY291cmFnZSB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgcGFnZSE6IFBhZ2U7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBkZWJ1ZygnaW5pdGlhbGl6ZSBzY3JhcGVyJyk7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuXG4gICAgbGV0IGVudjogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgIGVudiA9IHsgREVCVUc6ICcqJywgLi4ucHJvY2Vzcy5lbnYgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9wdGlvbnMuYnJvd3NlciAhPT0gbnVsbCkge1xuICAgICAgZGVidWcoJ3VzZSBjdXN0b20gYnJvd3NlciBpbnN0YW5jZSBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSB0aGlzLm9wdGlvbnMuYnJvd3NlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhlY3V0YWJsZVBhdGggPSB0aGlzLm9wdGlvbnMuZXhlY3V0YWJsZVBhdGggfHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgYXJncyA9IHRoaXMub3B0aW9ucy5hcmdzIHx8IFtdO1xuXG4gICAgICBjb25zdCBoZWFkbGVzcyA9ICF0aGlzLm9wdGlvbnMuc2hvd0Jyb3dzZXI7XG4gICAgICBkZWJ1ZyhgbGF1bmNoIGEgYnJvd3NlciB3aXRoIGhlYWRsZXNzIG1vZGUgPSAke2hlYWRsZXNzfWApO1xuICAgICAgdGhpcy5icm93c2VyID0gYXdhaXQgcHVwcGV0ZWVyLmxhdW5jaCh7XG4gICAgICAgIGVudixcbiAgICAgICAgaGVhZGxlc3MsXG4gICAgICAgIGV4ZWN1dGFibGVQYXRoLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmVwYXJlQnJvd3Nlcikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlcGFyZUJyb3dzZXJcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5vcHRpb25zLnByZXBhcmVCcm93c2VyKHRoaXMuYnJvd3Nlcik7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmJyb3dzZXIpIHtcbiAgICAgIGRlYnVnKCdmYWlsZWQgdG8gaW5pdGlhdGUgYSBicm93c2VyLCBleGl0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXMgPSBhd2FpdCB0aGlzLmJyb3dzZXIucGFnZXMoKTtcbiAgICBpZiAocGFnZXMubGVuZ3RoKSB7XG4gICAgICBkZWJ1ZygnYnJvd3NlciBoYXMgYWxyZWFkeSBwYWdlcyBvcGVuLCB1c2UgdGhlIGZpcnN0IG9uZScpO1xuICAgICAgW3RoaXMucGFnZV0gPSBwYWdlcztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ2NyZWF0ZSBhIG5ldyBicm93c2VyIHBhZ2UnKTtcbiAgICAgIHRoaXMucGFnZSA9IGF3YWl0IHRoaXMuYnJvd3Nlci5uZXdQYWdlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmVwYXJlUGFnZSkge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlcGFyZVBhZ2VcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5vcHRpb25zLnByZXBhcmVQYWdlKHRoaXMucGFnZSk7XG4gICAgfVxuXG4gICAgZGVidWcoYHNldCB2aWV3cG9ydCB0byB3aWR0aCAke1ZJRVdQT1JUX1dJRFRIfSwgaGVpZ2h0ICR7VklFV1BPUlRfSEVJR0hUfWApO1xuICAgIGF3YWl0IHRoaXMucGFnZS5zZXRWaWV3cG9ydCh7XG4gICAgICB3aWR0aDogVklFV1BPUlRfV0lEVEgsXG4gICAgICBoZWlnaHQ6IFZJRVdQT1JUX0hFSUdIVCxcbiAgICB9KTtcblxuICAgIHRoaXMucGFnZS5vbigncmVxdWVzdGZhaWxlZCcsIChyZXF1ZXN0KSA9PiB7XG4gICAgICBkZWJ1ZygnUmVxdWVzdCBmYWlsZWQ6ICVzICVzJywgcmVxdWVzdC5mYWlsdXJlKCk/LmVycm9yVGV4dCwgcmVxdWVzdC51cmwoKSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuYXZpZ2F0ZVRvKHVybDogc3RyaW5nLCBwYWdlPzogUGFnZSwgdGltZW91dD86IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhZ2VUb1VzZSA9IHBhZ2UgfHwgdGhpcy5wYWdlO1xuXG4gICAgaWYgKCFwYWdlVG9Vc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0geyAuLi4odGltZW91dCA9PT0gbnVsbCA/IG51bGwgOiB7IHRpbWVvdXQgfSkgfTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBhZ2VUb1VzZS5nb3RvKHVybCwgb3B0aW9ucyk7XG5cbiAgICAvLyBub3RlOiByZXNwb25zZSB3aWxsIGJlIG51bGwgd2hlbiBuYXZpZ2F0aW5nIHRvIHNhbWUgdXJsIHdoaWxlIGNoYW5naW5nIHRoZSBoYXNoIHBhcnQuIHRoZSBjb25kaXRpb24gYmVsb3cgd2lsbCBhbHdheXMgYWNjZXB0IG51bGwgYXMgdmFsaWQgcmVzdWx0LlxuICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCAmJiAocmVzcG9uc2UgPT09IHVuZGVmaW5lZCB8fCByZXNwb25zZS5zdGF0dXMoKSAhPT0gT0tfU1RBVFVTKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciB3aGlsZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gdXJsICR7dXJsfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgZ2V0TG9naW5PcHRpb25zKF9jcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKTogTG9naW5PcHRpb25zIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGdldExvZ2luT3B0aW9ucygpIGlzIG5vdCBjcmVhdGVkIGluICR7dGhpcy5vcHRpb25zLmNvbXBhbnlJZH1gKTtcbiAgfVxuXG4gIGFzeW5jIGZpbGxJbnB1dHMocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgZmllbGRzOiB7IHNlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtb2RpZmllZCA9IFsuLi5maWVsZHNdO1xuICAgIGNvbnN0IGlucHV0ID0gbW9kaWZpZWQuc2hpZnQoKTtcblxuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgZmlsbElucHV0KHBhZ2VPckZyYW1lLCBpbnB1dC5zZWxlY3RvciwgaW5wdXQudmFsdWUpO1xuICAgIGlmIChtb2RpZmllZC5sZW5ndGgpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmlsbElucHV0cyhwYWdlT3JGcmFtZSwgbW9kaWZpZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvZ2luKGNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGlmICghY3JlZGVudGlhbHMgfHwgIXRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUdlbmVyYWxFcnJvcigpO1xuICAgIH1cblxuICAgIGRlYnVnKCdleGVjdXRlIGxvZ2luIHByb2Nlc3MnKTtcbiAgICBjb25zdCBsb2dpbk9wdGlvbnMgPSB0aGlzLmdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFscyk7XG5cbiAgICBpZiAobG9naW5PcHRpb25zLnVzZXJBZ2VudCkge1xuICAgICAgZGVidWcoJ3NldCBjdXN0b20gdXNlciBhZ2VudCBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0VXNlckFnZW50KGxvZ2luT3B0aW9ucy51c2VyQWdlbnQpO1xuICAgIH1cblxuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byBsb2dpbiB1cmwnKTtcbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8obG9naW5PcHRpb25zLmxvZ2luVXJsKTtcbiAgICBpZiAobG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdjaGVja1JlYWRpbmVzc1xcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMuY2hlY2tSZWFkaW5lc3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3dhaXQgdW50aWwgc3VibWl0IGJ1dHRvbiBpcyBhdmFpbGFibGUnKTtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgbGV0IGxvZ2luRnJhbWVPclBhZ2U6IChQYWdlIHwgRnJhbWUgfCBudWxsKSA9IHRoaXMucGFnZTtcbiAgICBpZiAobG9naW5PcHRpb25zLnByZUFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlQWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGxvZ2luRnJhbWVPclBhZ2UgPSBhd2FpdCBsb2dpbk9wdGlvbnMucHJlQWN0aW9uKCkgfHwgdGhpcy5wYWdlO1xuICAgIH1cblxuICAgIGRlYnVnKCdmaWxsIGxvZ2luIGNvbXBvbmVudHMgaW5wdXQgd2l0aCByZWxldmFudCB2YWx1ZXMnKTtcbiAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMobG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLmZpZWxkcyk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIGxvZ2luIHN1Ym1pdCBidXR0b24nKTtcbiAgICBhd2FpdCBjbGlja0J1dHRvbihsb2dpbkZyYW1lT3JQYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9nZ2luZ0luKTtcblxuICAgIGlmIChsb2dpbk9wdGlvbnMucG9zdEFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncG9zdEFjdGlvblxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMucG9zdEFjdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1Zygnd2FpdCBmb3IgcGFnZSBuYXZpZ2F0aW9uJyk7XG4gICAgICBhd2FpdCB3YWl0Rm9yTmF2aWdhdGlvbih0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIGRlYnVnKCdjaGVjayBsb2dpbiByZXN1bHQnKTtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZ2V0Q3VycmVudFVybCh0aGlzLnBhZ2UsIHRydWUpO1xuICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZ2V0S2V5QnlWYWx1ZShsb2dpbk9wdGlvbnMucG9zc2libGVSZXN1bHRzLCBjdXJyZW50LCB0aGlzLnBhZ2UpO1xuICAgIGRlYnVnKGBoYW5kbGUgbG9naW4gcmVzdWx0cyAke2xvZ2luUmVzdWx0fWApO1xuICAgIHJldHVybiBoYW5kbGVMb2dpblJlc3VsdCh0aGlzLCBsb2dpblJlc3VsdCk7XG4gIH1cblxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICBkZWJ1ZyhgdGVybWluYXRpbmcgYnJvd3NlciB3aXRoIHN1Y2Nlc3MgPSAke19zdWNjZXNzfWApO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuVGVybWluYXRpbmcpO1xuXG4gICAgaWYgKCFfc3VjY2VzcyAmJiAhIXRoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCkge1xuICAgICAgZGVidWcoYGNyZWF0ZSBhIHNuYXBzaG90IGJlZm9yZSB0ZXJtaW5hdGVkIGluICR7dGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRofWApO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLnNjcmVlbnNob3Qoe1xuICAgICAgICBwYXRoOiB0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgsXG4gICAgICAgIGZ1bGxQYWdlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmJyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmJyb3dzZXIuY2xvc2UoKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIH07XG4iXX0=
322
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJpbml0aWFsaXplIiwiSW5pdGlhbGl6aW5nIiwiZW52Iiwib3B0aW9ucyIsInZlcmJvc2UiLCJERUJVRyIsInByb2Nlc3MiLCJicm93c2VyIiwiZXhlY3V0YWJsZVBhdGgiLCJ1bmRlZmluZWQiLCJhcmdzIiwiaGVhZGxlc3MiLCJzaG93QnJvd3NlciIsInB1cHBldGVlciIsImxhdW5jaCIsInByZXBhcmVCcm93c2VyIiwicGFnZXMiLCJsZW5ndGgiLCJuZXdQYWdlIiwicHJlcGFyZVBhZ2UiLCJ2aWV3cG9ydCIsInNldFZpZXdwb3J0Iiwib24iLCJyZXF1ZXN0IiwiZmFpbHVyZSIsImVycm9yVGV4dCIsInVybCIsIm5hdmlnYXRlVG8iLCJ0aW1lb3V0IiwicGFnZVRvVXNlIiwicmVzcG9uc2UiLCJnb3RvIiwic3RhdHVzIiwiZ2V0TG9naW5PcHRpb25zIiwiX2NyZWRlbnRpYWxzIiwiY29tcGFueUlkIiwiZmlsbElucHV0cyIsInBhZ2VPckZyYW1lIiwiZmllbGRzIiwibW9kaWZpZWQiLCJpbnB1dCIsInNoaWZ0Iiwic2VsZWN0b3IiLCJsb2dpbiIsImNyZWRlbnRpYWxzIiwibG9naW5PcHRpb25zIiwidXNlckFnZW50Iiwic2V0VXNlckFnZW50IiwibG9naW5VcmwiLCJjaGVja1JlYWRpbmVzcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwibG9naW5GcmFtZU9yUGFnZSIsInByZUFjdGlvbiIsIkxvZ2dpbmdJbiIsInBvc3RBY3Rpb24iLCJjdXJyZW50IiwicG9zc2libGVSZXN1bHRzIiwidGVybWluYXRlIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoIiwic2NyZWVuc2hvdCIsInBhdGgiLCJmdWxsUGFnZSIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUtBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVBLE1BQU1BLGNBQWMsR0FBRyxJQUF2QjtBQUNBLE1BQU1DLGVBQWUsR0FBRyxHQUF4QjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxHQUFsQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUywyQkFBVCxDQUFkO0lBRUtDLGdCOztXQUFBQSxnQjtBQUFBQSxFQUFBQSxnQjtBQUFBQSxFQUFBQSxnQjtHQUFBQSxnQixLQUFBQSxnQjs7QUFLTCxNQUFNO0FBQ0pDLEVBQUFBLE9BREk7QUFDS0MsRUFBQUEsT0FETDtBQUNjQyxFQUFBQTtBQURkLElBRUZDLDhCQUZKO0FBQUEsTUFDZ0NDLElBRGhD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TTJFLFNBQU4sQ0FBZ0JDLFFBQWhCLEVBQW1DO0FBQ2pDdEcsSUFBQUEsS0FBSyxDQUFFLHNDQUFxQ3NHLFFBQVMsRUFBaEQsQ0FBTDtBQUNBLFNBQUsxRSxZQUFMLENBQWtCQyxpQ0FBb0IwRSxXQUF0Qzs7QUFFQSxRQUFJLENBQUNELFFBQUQsSUFBYSxDQUFDLENBQUMsS0FBS3ZELE9BQUwsQ0FBYXlELDBCQUFoQyxFQUE0RDtBQUMxRHhHLE1BQUFBLEtBQUssQ0FBRSwwQ0FBeUMsS0FBSytDLE9BQUwsQ0FBYXlELDBCQUEyQixFQUFuRixDQUFMO0FBQ0EsWUFBTSxLQUFLN0YsSUFBTCxDQUFVOEYsVUFBVixDQUFxQjtBQUN6QkMsUUFBQUEsSUFBSSxFQUFFLEtBQUszRCxPQUFMLENBQWF5RCwwQkFETTtBQUV6QkcsUUFBQUEsUUFBUSxFQUFFO0FBRmUsT0FBckIsQ0FBTjtBQUlEOztBQUVELFFBQUksQ0FBQyxLQUFLeEQsT0FBVixFQUFtQjtBQUNqQjtBQUNEOztBQUVELFVBQU0sS0FBS0EsT0FBTCxDQUFheUQsS0FBYixFQUFOO0FBQ0Q7O0FBdkw4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwdXBwZXRlZXIsIHsgQnJvd3NlciwgRnJhbWUsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuXG5pbXBvcnQge1xuICBTY3JhcGVyRXJyb3JUeXBlcyxcbiAgQmFzZVNjcmFwZXIsIFNjYXBlclNjcmFwaW5nUmVzdWx0LCBTY2FwZXJQcm9ncmVzc1R5cGVzLFxuICBTY3JhcGVyQ3JlZGVudGlhbHMsXG59IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7IGdldEN1cnJlbnRVcmwsIHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGNsaWNrQnV0dG9uLCBmaWxsSW5wdXQsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IFZJRVdQT1JUX1dJRFRIID0gMTAyNDtcbmNvbnN0IFZJRVdQT1JUX0hFSUdIVCA9IDc2ODtcbmNvbnN0IE9LX1NUQVRVUyA9IDIwMDtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3NlcicpO1xuXG5lbnVtIExvZ2luQmFzZVJlc3VsdHMge1xuICBTdWNjZXNzID0gJ1NVQ0NFU1MnLFxuICBVbmtub3duRXJyb3IgPSAnVU5LTk9XTl9FUlJPUidcbn1cblxuY29uc3Qge1xuICBUaW1lb3V0LCBHZW5lcmljLCBHZW5lcmFsLCAuLi5yZXN0XG59ID0gU2NyYXBlckVycm9yVHlwZXM7XG5leHBvcnQgY29uc3QgTG9naW5SZXN1bHRzID0ge1xuICAuLi5yZXN0LFxuICAuLi5Mb2dpbkJhc2VSZXN1bHRzLFxufTtcblxuZXhwb3J0IHR5cGUgTG9naW5SZXN1bHRzID0gRXhjbHVkZTxTY3JhcGVyRXJyb3JUeXBlcyxcblNjcmFwZXJFcnJvclR5cGVzLlRpbWVvdXRcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpY1xufCBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsPiB8IExvZ2luQmFzZVJlc3VsdHM7XG5cbmV4cG9ydCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge1xuICBba2V5IGluIExvZ2luUmVzdWx0c10/OiAoc3RyaW5nIHwgUmVnRXhwIHwgKChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IFByb21pc2U8Ym9vbGVhbj4pKVtdXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIGxvZ2luVXJsOiBzdHJpbmc7XG4gIGNoZWNrUmVhZGluZXNzPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZmllbGRzOiB7c2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXTtcbiAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IHN0cmluZyB8ICgoKSA9PiBQcm9taXNlPHZvaWQ+KTtcbiAgcHJlQWN0aW9uPzogKCkgPT4gUHJvbWlzZTxGcmFtZSB8IHZvaWQ+O1xuICBwb3N0QWN0aW9uPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcG9zc2libGVSZXN1bHRzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cztcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRLZXlCeVZhbHVlKG9iamVjdDogUG9zc2libGVMb2dpblJlc3VsdHMsIHZhbHVlOiBzdHJpbmcsIHBhZ2U6IFBhZ2UpOiBQcm9taXNlPExvZ2luUmVzdWx0cz4ge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBjb25kaXRpb25zID0gb2JqZWN0W2tleV07XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25zKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIGlmIChjb25kaXRpb24gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmVzdWx0ID0gY29uZGl0aW9uLnRlc3QodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbmRpdGlvbih7IHBhZ2UsIHZhbHVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gY29uZGl0aW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlTG9naW5SZXN1bHQoc2NyYXBlcjogQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgbG9naW5SZXN1bHQ6IExvZ2luUmVzdWx0cykge1xuICBzd2l0Y2ggKGxvZ2luUmVzdWx0KSB7XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuU3VjY2VzczpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9naW5TdWNjZXNzKTtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQ6XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpbkZhaWxlZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBsb2dpblJlc3VsdCA9PT0gTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCA/IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCA6XG4gICAgICAgICAgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbCxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBgTG9naW4gZmFpbGVkIHdpdGggJHtsb2dpblJlc3VsdH0gZXJyb3JgLFxuICAgICAgfTtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZDpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuQ2hhbmdlUGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuQ2hhbmdlUGFzc3dvcmQsXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgbG9naW4gcmVzdWx0IFwiJHtsb2dpblJlc3VsdH1cImApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyYWxFcnJvcigpOiBTY2FwZXJTY3JhcGluZ1Jlc3VsdCB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsLFxuICB9O1xufVxuXG5jbGFzcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIGV4dGVuZHMgQmFzZVNjcmFwZXIge1xuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlIHRvIHVzZSBiYW5nICghKSBpbiBnZW5lcmFsLiBJdCBpcyB1c2VkIGhlcmUgYmVjYXVzZVxuICAvLyBhbGwgdGhlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyBiYXNlIGFzc3VtZSBpcyBpdCBtYW5kYXRvcnkuXG4gIHByb3RlY3RlZCBicm93c2VyITogQnJvd3NlcjtcblxuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlIHRvIHVzZSBiYW5nICghKSBpbiBnZW5lcmFsLiBJdCBpcyB1c2VkIGhlcmUgYmVjYXVzZVxuICAvLyBhbGwgdGhlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyBiYXNlIGFzc3VtZSBpcyBpdCBtYW5kYXRvcnkuXG4gIHByb3RlY3RlZCBwYWdlITogUGFnZTtcblxuICBwcm90ZWN0ZWQgZ2V0Vmlld1BvcnQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBWSUVXUE9SVF9XSURUSCxcbiAgICAgIGhlaWdodDogVklFV1BPUlRfSEVJR0hULFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGRlYnVnKCdpbml0aWFsaXplIHNjcmFwZXInKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkluaXRpYWxpemluZyk7XG5cbiAgICBsZXQgZW52OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgZW52ID0geyBERUJVRzogJyonLCAuLi5wcm9jZXNzLmVudiB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmJyb3dzZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSBudWxsKSB7XG4gICAgICBkZWJ1ZygndXNlIGN1c3RvbSBicm93c2VyIGluc3RhbmNlIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IHRoaXMub3B0aW9ucy5icm93c2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGVjdXRhYmxlUGF0aCA9IHRoaXMub3B0aW9ucy5leGVjdXRhYmxlUGF0aCB8fCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5vcHRpb25zLmFyZ3MgfHwgW107XG5cbiAgICAgIGNvbnN0IGhlYWRsZXNzID0gIXRoaXMub3B0aW9ucy5zaG93QnJvd3NlcjtcbiAgICAgIGRlYnVnKGBsYXVuY2ggYSBicm93c2VyIHdpdGggaGVhZGxlc3MgbW9kZSA9ICR7aGVhZGxlc3N9YCk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSBhd2FpdCBwdXBwZXRlZXIubGF1bmNoKHtcbiAgICAgICAgZW52LFxuICAgICAgICBoZWFkbGVzcyxcbiAgICAgICAgZXhlY3V0YWJsZVBhdGgsXG4gICAgICAgIGFyZ3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVCcm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlQnJvd3NlclxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIodGhpcy5icm93c2VyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgZGVidWcoJ2ZhaWxlZCB0byBpbml0aWF0ZSBhIGJyb3dzZXIsIGV4aXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMuYnJvd3Nlci5wYWdlcygpO1xuICAgIGlmIChwYWdlcy5sZW5ndGgpIHtcbiAgICAgIGRlYnVnKCdicm93c2VyIGhhcyBhbHJlYWR5IHBhZ2VzIG9wZW4sIHVzZSB0aGUgZmlyc3Qgb25lJyk7XG4gICAgICBbdGhpcy5wYWdlXSA9IHBhZ2VzO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygnY3JlYXRlIGEgbmV3IGJyb3dzZXIgcGFnZScpO1xuICAgICAgdGhpcy5wYWdlID0gYXdhaXQgdGhpcy5icm93c2VyLm5ld1BhZ2UoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVQYWdlKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlUGFnZVxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UodGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld1BvcnQoKTtcbiAgICBkZWJ1Zyhgc2V0IHZpZXdwb3J0IHRvIHdpZHRoICR7dmlld3BvcnQud2lkdGh9LCBoZWlnaHQgJHt2aWV3cG9ydC5oZWlnaHR9YCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLnNldFZpZXdwb3J0KHtcbiAgICAgIHdpZHRoOiB2aWV3cG9ydC53aWR0aCxcbiAgICAgIGhlaWdodDogdmlld3BvcnQuaGVpZ2h0LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wYWdlLm9uKCdyZXF1ZXN0ZmFpbGVkJywgKHJlcXVlc3QpID0+IHtcbiAgICAgIGRlYnVnKCdSZXF1ZXN0IGZhaWxlZDogJXMgJXMnLCByZXF1ZXN0LmZhaWx1cmUoKT8uZXJyb3JUZXh0LCByZXF1ZXN0LnVybCgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcsIHBhZ2U/OiBQYWdlLCB0aW1lb3V0PzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFnZVRvVXNlID0gcGFnZSB8fCB0aGlzLnBhZ2U7XG5cbiAgICBpZiAoIXBhZ2VUb1VzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLih0aW1lb3V0ID09PSBudWxsID8gbnVsbCA6IHsgdGltZW91dCB9KSB9O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcGFnZVRvVXNlLmdvdG8odXJsLCBvcHRpb25zKTtcblxuICAgIC8vIG5vdGU6IHJlc3BvbnNlIHdpbGwgYmUgbnVsbCB3aGVuIG5hdmlnYXRpbmcgdG8gc2FtZSB1cmwgd2hpbGUgY2hhbmdpbmcgdGhlIGhhc2ggcGFydC4gdGhlIGNvbmRpdGlvbiBiZWxvdyB3aWxsIGFsd2F5cyBhY2NlcHQgbnVsbCBhcyB2YWxpZCByZXN1bHQuXG4gICAgaWYgKHJlc3BvbnNlICE9PSBudWxsICYmIChyZXNwb25zZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3BvbnNlLnN0YXR1cygpICE9PSBPS19TVEFUVVMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHdoaWxlIHRyeWluZyB0byBuYXZpZ2F0ZSB0byB1cmwgJHt1cmx9YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBnZXRMb2dpbk9wdGlvbnMoX2NyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBMb2dpbk9wdGlvbnMge1xuICAgIHRocm93IG5ldyBFcnJvcihgZ2V0TG9naW5PcHRpb25zKCkgaXMgbm90IGNyZWF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG5cbiAgYXN5bmMgZmlsbElucHV0cyhwYWdlT3JGcmFtZTogUGFnZSB8IEZyYW1lLCBmaWVsZHM6IHsgc2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZGlmaWVkID0gWy4uLmZpZWxkc107XG4gICAgY29uc3QgaW5wdXQgPSBtb2RpZmllZC5zaGlmdCgpO1xuXG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBmaWxsSW5wdXQocGFnZU9yRnJhbWUsIGlucHV0LnNlbGVjdG9yLCBpbnB1dC52YWx1ZSk7XG4gICAgaWYgKG1vZGlmaWVkLmxlbmd0aCkge1xuICAgICAgYXdhaXQgdGhpcy5maWxsSW5wdXRzKHBhZ2VPckZyYW1lLCBtb2RpZmllZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgaWYgKCFjcmVkZW50aWFscyB8fCAhdGhpcy5wYWdlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlR2VuZXJhbEVycm9yKCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2V4ZWN1dGUgbG9naW4gcHJvY2VzcycpO1xuICAgIGNvbnN0IGxvZ2luT3B0aW9ucyA9IHRoaXMuZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzKTtcblxuICAgIGlmIChsb2dpbk9wdGlvbnMudXNlckFnZW50KSB7XG4gICAgICBkZWJ1Zygnc2V0IGN1c3RvbSB1c2VyIGFnZW50IHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zZXRVc2VyQWdlbnQobG9naW5PcHRpb25zLnVzZXJBZ2VudCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIGxvZ2luIHVybCcpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhsb2dpbk9wdGlvbnMubG9naW5VcmwpO1xuICAgIGlmIChsb2dpbk9wdGlvbnMuY2hlY2tSZWFkaW5lc3MpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ2NoZWNrUmVhZGluZXNzXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5jaGVja1JlYWRpbmVzcygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlYnVnKCd3YWl0IHVudGlsIHN1Ym1pdCBidXR0b24gaXMgYXZhaWxhYmxlJyk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIH1cblxuICAgIGxldCBsb2dpbkZyYW1lT3JQYWdlOiAoUGFnZSB8IEZyYW1lIHwgbnVsbCkgPSB0aGlzLnBhZ2U7XG4gICAgaWYgKGxvZ2luT3B0aW9ucy5wcmVBY3Rpb24pIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZUFjdGlvblxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBsb2dpbkZyYW1lT3JQYWdlID0gYXdhaXQgbG9naW5PcHRpb25zLnByZUFjdGlvbigpIHx8IHRoaXMucGFnZTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnZmlsbCBsb2dpbiBjb21wb25lbnRzIGlucHV0IHdpdGggcmVsZXZhbnQgdmFsdWVzJyk7XG4gICAgYXdhaXQgdGhpcy5maWxsSW5wdXRzKGxvZ2luRnJhbWVPclBhZ2UsIGxvZ2luT3B0aW9ucy5maWVsZHMpO1xuICAgIGRlYnVnKCdjbGljayBvbiBsb2dpbiBzdWJtaXQgYnV0dG9uJyk7XG4gICAgaWYgKHR5cGVvZiBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBhd2FpdCBjbGlja0J1dHRvbihsb2dpbkZyYW1lT3JQYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IoKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwb3N0QWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCd3YWl0IGZvciBwYWdlIG5hdmlnYXRpb24nKTtcbiAgICAgIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHRoaXMucGFnZSk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2NoZWNrIGxvZ2luIHJlc3VsdCcpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBnZXRDdXJyZW50VXJsKHRoaXMucGFnZSwgdHJ1ZSk7XG4gICAgY29uc3QgbG9naW5SZXN1bHQgPSBhd2FpdCBnZXRLZXlCeVZhbHVlKGxvZ2luT3B0aW9ucy5wb3NzaWJsZVJlc3VsdHMsIGN1cnJlbnQsIHRoaXMucGFnZSk7XG4gICAgZGVidWcoYGhhbmRsZSBsb2dpbiByZXN1bHRzICR7bG9naW5SZXN1bHR9YCk7XG4gICAgcmV0dXJuIGhhbmRsZUxvZ2luUmVzdWx0KHRoaXMsIGxvZ2luUmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIHRlcm1pbmF0ZShfc3VjY2VzczogYm9vbGVhbikge1xuICAgIGRlYnVnKGB0ZXJtaW5hdGluZyBicm93c2VyIHdpdGggc3VjY2VzcyA9ICR7X3N1Y2Nlc3N9YCk7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5UZXJtaW5hdGluZyk7XG5cbiAgICBpZiAoIV9zdWNjZXNzICYmICEhdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoKSB7XG4gICAgICBkZWJ1ZyhgY3JlYXRlIGEgc25hcHNob3QgYmVmb3JlIHRlcm1pbmF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGh9YCk7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2Uuc2NyZWVuc2hvdCh7XG4gICAgICAgIHBhdGg6IHRoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCxcbiAgICAgICAgZnVsbFBhZ2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5jbG9zZSgpO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfTtcbiJdfQ==
@@ -76,7 +76,7 @@ export interface ScaperOptions {
76
76
  */
77
77
  preparePage?: (page: Page) => Promise<void>;
78
78
  /**
79
- * if set, store a screnshot if failed to scrape. Used for debug purposes
79
+ * if set, store a screenshot if failed to scrape. Used for debug purposes
80
80
  */
81
81
  storeFailureScreenShotPath?: string;
82
82
  }
@@ -134,4 +134,4 @@ class BaseScraper {
134
134
  }
135
135
 
136
136
  exports.BaseScraper = BaseScraper;
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0FBSUEsTUFBTUEsZUFBZSxHQUFHLGlCQUF4QjtJQUVZQyxpQjs7O1dBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0dBQUFBLGlCLGlDQUFBQSxpQjs7SUFnR0FDLG1COzs7V0FBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7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Q0QsR0F6RHNCLENBMkR2Qjs7O0FBQ0EsUUFBTUosU0FBTixDQUFnQkssUUFBaEIsRUFBbUM7QUFDakMsU0FBS2pCLFlBQUwsQ0FBa0JkLG1CQUFtQixDQUFDZ0MsV0FBdEM7QUFDRDs7QUFFRGxCLEVBQUFBLFlBQVksQ0FBQ21CLElBQUQsRUFBNEI7QUFDdEMsU0FBS0MsSUFBTCxDQUFVcEMsZUFBVixFQUEyQjtBQUFFbUMsTUFBQUE7QUFBRixLQUEzQjtBQUNEOztBQUVEQyxFQUFBQSxJQUFJLENBQUNDLFNBQUQsRUFBb0JDLE9BQXBCLEVBQWtEO0FBQ3BELFNBQUtDLFlBQUwsQ0FBa0JILElBQWxCLENBQXVCQyxTQUF2QixFQUFrQyxLQUFLeEIsT0FBTCxDQUFhbUIsU0FBL0MsRUFBMERNLE9BQTFEO0FBQ0Q7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFpQztBQUN6QyxTQUFLRixZQUFMLENBQWtCRyxFQUFsQixDQUFxQjFDLGVBQXJCLEVBQXNDeUMsSUFBdEM7QUFDRDs7QUExRXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IEJyb3dzZXIsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgVGltZW91dEVycm9yIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uc0FjY291bnQgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBTQ1JBUEVfUFJPR1JFU1MgPSAnU0NSQVBFX1BST0dSRVNTJztcblxuZXhwb3J0IGVudW0gU2NyYXBlckVycm9yVHlwZXMge1xuICBJbnZhbGlkUGFzc3dvcmQgPSdJTlZBTElEX1BBU1NXT1JEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgVGltZW91dCA9ICdUSU1FT1VUJyxcbiAgQWNjb3VudEJsb2NrZWQgPSAnQUNDT1VOVF9CTE9DS0VEJyxcbiAgR2VuZXJpYyA9ICdHRU5FUklDJyxcbiAgR2VuZXJhbCA9ICdHRU5FUkFMX0VSUk9SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXBlckxvZ2luUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBhY2NvdW50cz86IFRyYW5zYWN0aW9uc0FjY291bnRbXTtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCB0eXBlIFNjcmFwZXJDcmVkZW50aWFscyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVuc2hvdCBpZiBmYWlsZWQgdG8gc2NyYXBlLiBVc2VkIGZvciBkZWJ1ZyBwdXJwb3Nlc1xuICAgKi9cbiAgc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNjYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yUmVzdWx0KGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMsIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0LCBlcnJvck1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmljRXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsIGVycm9yTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2NyYXBlciB7XG4gIHByaXZhdGUgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBTY2FwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0FBSUEsTUFBTUEsZUFBZSxHQUFHLGlCQUF4QjtJQUVZQyxpQjs7O1dBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0dBQUFBLGlCLGlDQUFBQSxpQjs7SUFpR0FDLG1COzs7V0FBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7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Q0QsR0F6RHNCLENBMkR2Qjs7O0FBQ0EsUUFBTUosU0FBTixDQUFnQkssUUFBaEIsRUFBbUM7QUFDakMsU0FBS2pCLFlBQUwsQ0FBa0JkLG1CQUFtQixDQUFDZ0MsV0FBdEM7QUFDRDs7QUFFRGxCLEVBQUFBLFlBQVksQ0FBQ21CLElBQUQsRUFBNEI7QUFDdEMsU0FBS0MsSUFBTCxDQUFVcEMsZUFBVixFQUEyQjtBQUFFbUMsTUFBQUE7QUFBRixLQUEzQjtBQUNEOztBQUVEQyxFQUFBQSxJQUFJLENBQUNDLFNBQUQsRUFBb0JDLE9BQXBCLEVBQWtEO0FBQ3BELFNBQUtDLFlBQUwsQ0FBa0JILElBQWxCLENBQXVCQyxTQUF2QixFQUFrQyxLQUFLeEIsT0FBTCxDQUFhbUIsU0FBL0MsRUFBMERNLE9BQTFEO0FBQ0Q7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFpQztBQUN6QyxTQUFLRixZQUFMLENBQWtCRyxFQUFsQixDQUFxQjFDLGVBQXJCLEVBQXNDeUMsSUFBdEM7QUFDRDs7QUExRXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IEJyb3dzZXIsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgVGltZW91dEVycm9yIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uc0FjY291bnQgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBTQ1JBUEVfUFJPR1JFU1MgPSAnU0NSQVBFX1BST0dSRVNTJztcblxuZXhwb3J0IGVudW0gU2NyYXBlckVycm9yVHlwZXMge1xuICBJbnZhbGlkUGFzc3dvcmQgPSdJTlZBTElEX1BBU1NXT1JEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgVGltZW91dCA9ICdUSU1FT1VUJyxcbiAgQWNjb3VudEJsb2NrZWQgPSAnQUNDT1VOVF9CTE9DS0VEJyxcbiAgR2VuZXJpYyA9ICdHRU5FUklDJyxcbiAgR2VuZXJhbCA9ICdHRU5FUkFMX0VSUk9SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXBlckxvZ2luUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBhY2NvdW50cz86IFRyYW5zYWN0aW9uc0FjY291bnRbXTtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCB0eXBlIFNjcmFwZXJDcmVkZW50aWFscyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVlbnNob3QgaWYgZmFpbGVkIHRvIHNjcmFwZS4gVXNlZCBmb3IgZGVidWcgcHVycG9zZXNcbiAgICovXG4gIHN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBlbnVtIFNjYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yUmVzdWx0KGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMsIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0LCBlcnJvck1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmljRXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsIGVycm9yTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2NyYXBlciB7XG4gIHByaXZhdGUgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBTY2FwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { BaseScraperWithBrowser, PossibleLoginResults } from './base-scraper-with-browser';
2
+ import { ScraperCredentials } from './base-scraper';
3
+ import { Transaction } from '../transactions';
4
+ declare class BeyahadBishvilhaScraper extends BaseScraperWithBrowser {
5
+ protected getViewPort(): {
6
+ width: number;
7
+ height: number;
8
+ };
9
+ getLoginOptions(credentials: ScraperCredentials): {
10
+ loginUrl: string;
11
+ fields: {
12
+ selector: string;
13
+ value: string;
14
+ }[];
15
+ submitButtonSelector: () => Promise<void>;
16
+ possibleResults: PossibleLoginResults;
17
+ };
18
+ fetchData(): Promise<{
19
+ success: boolean;
20
+ accounts: {
21
+ accountNumber: any;
22
+ balance: number;
23
+ txns: Transaction[];
24
+ }[];
25
+ }>;
26
+ }
27
+ export default BeyahadBishvilhaScraper;
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.description");
4
+
5
+ require("core-js/modules/es.array.iterator");
6
+
7
+ require("core-js/modules/es.promise");
8
+
9
+ require("core-js/modules/es.string.replace");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _moment = _interopRequireDefault(require("moment"));
17
+
18
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
19
+
20
+ var _transactions = require("../transactions");
21
+
22
+ var _elementsInteractions = require("../helpers/elements-interactions");
23
+
24
+ var _debug = require("../helpers/debug");
25
+
26
+ var _transactions2 = require("../helpers/transactions");
27
+
28
+ var _constants = require("../constants");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ const debug = (0, _debug.getDebug)('beyahadBishvilha');
33
+ const DATE_FORMAT = 'DD/MM/YY';
34
+ const LOGIN_URL = 'https://www.hist.org.il/login';
35
+ const SUCCESS_URL = 'https://www.hist.org.il/';
36
+ const CARD_URL = 'https://www.hist.org.il/card/balanceAndUses';
37
+
38
+ function getAmountData(amountStr) {
39
+ const amountStrCln = amountStr.replace(',', '');
40
+ let currency = null;
41
+ let amount = null;
42
+
43
+ if (amountStrCln.includes(_constants.SHEKEL_CURRENCY_SYMBOL)) {
44
+ amount = parseFloat(amountStrCln.replace(_constants.SHEKEL_CURRENCY_SYMBOL, ''));
45
+ currency = _constants.SHEKEL_CURRENCY;
46
+ } else if (amountStrCln.includes(_constants.DOLLAR_CURRENCY_SYMBOL)) {
47
+ amount = parseFloat(amountStrCln.replace(_constants.DOLLAR_CURRENCY_SYMBOL, ''));
48
+ currency = _constants.DOLLAR_CURRENCY;
49
+ } else if (amountStrCln.includes(_constants.EURO_CURRENCY_SYMBOL)) {
50
+ amount = parseFloat(amountStrCln.replace(_constants.EURO_CURRENCY_SYMBOL, ''));
51
+ currency = _constants.EURO_CURRENCY;
52
+ } else {
53
+ const parts = amountStrCln.split(' ');
54
+ [currency] = parts;
55
+ amount = parseFloat(parts[1]);
56
+ }
57
+
58
+ return {
59
+ amount,
60
+ currency
61
+ };
62
+ }
63
+
64
+ function convertTransactions(txns) {
65
+ debug(`convert ${txns.length} raw transactions to official Transaction structure`);
66
+ return txns.map(txn => {
67
+ const chargedAmountTuple = getAmountData(txn.chargedAmount || '');
68
+ const txnProcessedDate = (0, _moment.default)(txn.date, DATE_FORMAT);
69
+ const result = {
70
+ type: _transactions.TransactionTypes.Normal,
71
+ status: _transactions.TransactionStatuses.Completed,
72
+ date: txnProcessedDate.toISOString(),
73
+ processedDate: txnProcessedDate.toISOString(),
74
+ originalAmount: chargedAmountTuple.amount,
75
+ originalCurrency: chargedAmountTuple.currency,
76
+ chargedAmount: chargedAmountTuple.amount,
77
+ chargedCurrency: chargedAmountTuple.currency,
78
+ description: txn.description || '',
79
+ memo: '',
80
+ identifier: txn.identifier
81
+ };
82
+ return result;
83
+ });
84
+ }
85
+
86
+ async function fetchTransactions(page, options) {
87
+ await page.goto(CARD_URL);
88
+ await (0, _elementsInteractions.waitUntilElementFound)(page, '.react-loading.hide', false);
89
+ const defaultStartMoment = (0, _moment.default)().subtract(1, 'years');
90
+ const startDate = options.startDate || defaultStartMoment.toDate();
91
+
92
+ const startMoment = _moment.default.max(defaultStartMoment, (0, _moment.default)(startDate));
93
+
94
+ const accountNumber = await (0, _elementsInteractions.pageEval)(page, '.wallet-details div:nth-of-type(2)', null, element => {
95
+ return element.innerText.replace('מספר כרטיס ', '');
96
+ });
97
+ const balance = await (0, _elementsInteractions.pageEval)(page, '.wallet-details div:nth-of-type(4) > span:nth-of-type(2)', null, element => {
98
+ return element.innerText;
99
+ });
100
+ debug('fetch raw transactions from page');
101
+ const rawTransactions = await (0, _elementsInteractions.pageEvalAll)(page, '.transaction-container, .transaction-component-container', [], items => {
102
+ return items.map(el => {
103
+ const columns = el.querySelectorAll('.transaction-item > span');
104
+
105
+ if (columns.length === 7) {
106
+ return {
107
+ date: columns[0].innerText,
108
+ identifier: columns[1].innerText,
109
+ description: columns[3].innerText,
110
+ type: columns[5].innerText,
111
+ chargedAmount: columns[6].innerText
112
+ };
113
+ }
114
+
115
+ return null;
116
+ });
117
+ });
118
+ debug(`fetched ${rawTransactions.length} raw transactions from page`);
119
+ const accountTransactions = convertTransactions(rawTransactions.filter(item => !!item));
120
+ debug('filer out old transactions');
121
+ const txns = (0, _transactions2.filterOldTransactions)(accountTransactions, startMoment, false);
122
+ debug(`found ${txns.length} valid transactions out of ${accountTransactions.length} transactions for account ending with ${accountNumber.substring(accountNumber.length - 2)}`);
123
+ return {
124
+ accountNumber,
125
+ balance: getAmountData(balance).amount,
126
+ txns
127
+ };
128
+ }
129
+
130
+ function getPossibleLoginResults() {
131
+ const urls = {};
132
+ urls[_baseScraperWithBrowser.LoginResults.Success] = [SUCCESS_URL];
133
+ urls[_baseScraperWithBrowser.LoginResults.ChangePassword] = []; // TODO
134
+
135
+ urls[_baseScraperWithBrowser.LoginResults.InvalidPassword] = []; // TODO
136
+
137
+ urls[_baseScraperWithBrowser.LoginResults.UnknownError] = []; // TODO
138
+
139
+ return urls;
140
+ }
141
+
142
+ function createLoginFields(credentials) {
143
+ return [{
144
+ selector: '#loginId',
145
+ value: credentials.id
146
+ }, {
147
+ selector: '#loginPassword',
148
+ value: credentials.password
149
+ }];
150
+ }
151
+
152
+ class BeyahadBishvilhaScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
153
+ getViewPort() {
154
+ return {
155
+ width: 1500,
156
+ height: 800
157
+ };
158
+ }
159
+
160
+ getLoginOptions(credentials) {
161
+ return {
162
+ loginUrl: LOGIN_URL,
163
+ fields: createLoginFields(credentials),
164
+ submitButtonSelector: async () => {
165
+ const [button] = await this.page.$x("//button[contains(., 'התחבר')]");
166
+
167
+ if (button) {
168
+ await button.click();
169
+ }
170
+ },
171
+ possibleResults: getPossibleLoginResults()
172
+ };
173
+ }
174
+
175
+ async fetchData() {
176
+ const account = await fetchTransactions(this.page, this.options);
177
+ return {
178
+ success: true,
179
+ accounts: [account]
180
+ };
181
+ }
182
+
183
+ }
184
+
185
+ var _default = BeyahadBishvilhaScraper;
186
+ exports.default = _default;
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiTE9HSU5fVVJMIiwiU1VDQ0VTU19VUkwiLCJDQVJEX1VSTCIsImdldEFtb3VudERhdGEiLCJhbW91bnRTdHIiLCJhbW91bnRTdHJDbG4iLCJyZXBsYWNlIiwiY3VycmVuY3kiLCJhbW91bnQiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImxlbmd0aCIsIm1hcCIsInR4biIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJ0eG5Qcm9jZXNzZWREYXRlIiwiZGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibWVtbyIsImlkZW50aWZpZXIiLCJmZXRjaFRyYW5zYWN0aW9ucyIsInBhZ2UiLCJvcHRpb25zIiwiZ290byIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJhY2NvdW50TnVtYmVyIiwiZWxlbWVudCIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJpdGVtcyIsImVsIiwiY29sdW1ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiZmlsdGVyIiwiaXRlbSIsInN1YnN0cmluZyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsIkludmFsaWRQYXNzd29yZCIsIlVua25vd25FcnJvciIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwiaWQiLCJwYXNzd29yZCIsIkJleWFoYWRCaXNodmlsaGFTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiYnV0dG9uIiwiJHgiLCJjbGljayIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsImFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBUUEsTUFBTUEsS0FBSyxHQUFHLHFCQUFTLGtCQUFULENBQWQ7QUFFQSxNQUFNQyxXQUFXLEdBQUcsVUFBcEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsK0JBQWxCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDBCQUFwQjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw2Q0FBakI7O0FBVUEsU0FBU0MsYUFBVCxDQUF1QkMsU0FBdkIsRUFBMEM7QUFDeEMsUUFBTUMsWUFBWSxHQUFHRCxTQUFTLENBQUNFLE9BQVYsQ0FBa0IsR0FBbEIsRUFBdUIsRUFBdkIsQ0FBckI7QUFDQSxNQUFJQyxRQUF1QixHQUFHLElBQTlCO0FBQ0EsTUFBSUMsTUFBcUIsR0FBRyxJQUE1Qjs7QUFDQSxNQUFJSCxZQUFZLENBQUNJLFFBQWIsQ0FBc0JDLGlDQUF0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TEMsTUFBQUEsUUFBUSxFQUFFLENBQUNGLE9BQUQ7QUFGTCxLQUFQO0FBSUQ7O0FBNUIwRDs7ZUErQjlDZCx1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY3JhcGVyQ3JlZGVudGlhbHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBwYWdlRXZhbCwgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBET0xMQVJfQ1VSUkVOQ1ksXG4gIERPTExBUl9DVVJSRU5DWV9TWU1CT0wsIEVVUk9fQ1VSUkVOQ1ksXG4gIEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLFxuICBTSEVLRUxfQ1VSUkVOQ1ksXG4gIFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2JleWFoYWRCaXNodmlsaGEnKTtcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVknO1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsL2xvZ2luJztcbmNvbnN0IFNVQ0NFU1NfVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsLyc7XG5jb25zdCBDQVJEX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC9jYXJkL2JhbGFuY2VBbmRVc2VzJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGRhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBzdHJpbmc7XG4gIGlkZW50aWZpZXI6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0QW1vdW50RGF0YShhbW91bnRTdHI6IHN0cmluZykge1xuICBjb25zdCBhbW91bnRTdHJDbG4gPSBhbW91bnRTdHIucmVwbGFjZSgnLCcsICcnKTtcbiAgbGV0IGN1cnJlbmN5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgbGV0IGFtb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKERPTExBUl9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRVVST19DVVJSRU5DWTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwYXJ0cyA9IGFtb3VudFN0ckNsbi5zcGxpdCgnICcpO1xuICAgIFtjdXJyZW5jeV0gPSBwYXJ0cztcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KHBhcnRzWzFdKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgY2hhcmdlZEFtb3VudFR1cGxlID0gZ2V0QW1vdW50RGF0YSh0eG4uY2hhcmdlZEFtb3VudCB8fCAnJyk7XG4gICAgY29uc3QgdHhuUHJvY2Vzc2VkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGRhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBjaGFyZ2VkQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86ICcnLFxuICAgICAgaWRlbnRpZmllcjogdHhuLmlkZW50aWZpZXIsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjYXBlck9wdGlvbnMpIHtcbiAgYXdhaXQgcGFnZS5nb3RvKENBUkRfVVJMKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucmVhY3QtbG9hZGluZy5oaWRlJywgZmFsc2UpO1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsICcud2FsbGV0LWRldGFpbHMgZGl2Om50aC1vZi10eXBlKDIpJywgbnVsbCwgKGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5pbm5lclRleHQucmVwbGFjZSgn157Xodek16gg15vXqNeY15nXoSAnLCAnJyk7XG4gIH0pO1xuXG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCAnLndhbGxldC1kZXRhaWxzIGRpdjpudGgtb2YtdHlwZSg0KSA+IHNwYW46bnRoLW9mLXR5cGUoMiknLCBudWxsLCAoZWxlbWVudCkgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgZGVidWcoJ2ZldGNoIHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlJyk7XG5cbiAgY29uc3QgcmF3VHJhbnNhY3Rpb25zOiAoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXSA9IGF3YWl0IHBhZ2VFdmFsQWxsPChTY3JhcGVkVHJhbnNhY3Rpb24gfCBudWxsKVtdPihwYWdlLCAnLnRyYW5zYWN0aW9uLWNvbnRhaW5lciwgLnRyYW5zYWN0aW9uLWNvbXBvbmVudC1jb250YWluZXInLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgY29uc3QgY29sdW1uczogTm9kZUxpc3RPZjxIVE1MU3BhbkVsZW1lbnQ+ID0gZWwucXVlcnlTZWxlY3RvckFsbCgnLnRyYW5zYWN0aW9uLWl0ZW0gPiBzcGFuJyk7XG4gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICBpZGVudGlmaWVyOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgdHlwZTogY29sdW1uc1s1XS5pbm5lclRleHQsXG4gICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1s2XS5pbm5lclRleHQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfSk7XG4gIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcblxuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zID0gY29udmVydFRyYW5zYWN0aW9ucyhyYXdUcmFuc2FjdGlvbnMuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pIGFzIFNjcmFwZWRUcmFuc2FjdGlvbltdKTtcblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IGZpbHRlck9sZFRyYW5zYWN0aW9ucyhhY2NvdW50VHJhbnNhY3Rpb25zLCBzdGFydE1vbWVudCwgZmFsc2UpO1xuICBkZWJ1ZyhgZm91bmQgJHt0eG5zLmxlbmd0aH0gdmFsaWQgdHJhbnNhY3Rpb25zIG91dCBvZiAke2FjY291bnRUcmFuc2FjdGlvbnMubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgZW5kaW5nIHdpdGggJHthY2NvdW50TnVtYmVyLnN1YnN0cmluZyhhY2NvdW50TnVtYmVyLmxlbmd0aCAtIDIpfWApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICBiYWxhbmNlOiBnZXRBbW91bnREYXRhKGJhbGFuY2UpLmFtb3VudCxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtdOyAvLyBUT0RPXG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbXTsgLy8gVE9ET1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjbG9naW5JZCcsIHZhbHVlOiBjcmVkZW50aWFscy5pZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjbG9naW5QYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5jbGFzcyBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcm90ZWN0ZWQgZ2V0Vmlld1BvcnQoKTogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDE1MDAsXG4gICAgICBoZWlnaHQ6IDgwMCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgW2J1dHRvbl0gPSBhd2FpdCB0aGlzLnBhZ2UuJHgoXCIvL2J1dHRvbltjb250YWlucyguLCAn15TXqteX15HXqCcpXVwiKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzOiBbYWNjb3VudF0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.promise");
4
+
5
+ require("core-js/modules/es.string.trim");
6
+
7
+ var _beyahadBishvilha = _interopRequireDefault(require("./beyahad-bishvilha"));
8
+
9
+ var _testsUtils = require("../tests/tests-utils");
10
+
11
+ var _definitions = require("../definitions");
12
+
13
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+
21
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
+
23
+ const COMPANY_ID = 'beyahadBishvilha'; // TODO this property should be hard-coded in the provider
24
+
25
+ const testsConfig = (0, _testsUtils.getTestsConfig)();
26
+ describe('Beyahad Bishvilha scraper', () => {
27
+ beforeAll(() => {
28
+ (0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
29
+ });
30
+ test('should expose login fields in scrapers constant', () => {
31
+ expect(_definitions.SCRAPERS.beyahadBishvilha).toBeDefined();
32
+ expect(_definitions.SCRAPERS.beyahadBishvilha.loginFields).toContain('id');
33
+ expect(_definitions.SCRAPERS.beyahadBishvilha.loginFields).toContain('password');
34
+ });
35
+ (0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
36
+ const options = _objectSpread({}, testsConfig.options, {
37
+ companyId: COMPANY_ID
38
+ });
39
+
40
+ const scraper = new _beyahadBishvilha.default(options);
41
+ const result = await scraper.scrape({
42
+ id: 'e10s12',
43
+ password: '3f3ss3d'
44
+ });
45
+ expect(result).toBeDefined();
46
+ expect(result.success).toBeFalsy();
47
+ expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
48
+ });
49
+ (0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID)('should scrape transactions"', async () => {
50
+ const options = _objectSpread({}, testsConfig.options, {
51
+ companyId: COMPANY_ID
52
+ });
53
+
54
+ const scraper = new _beyahadBishvilha.default(options);
55
+ const result = await scraper.scrape(testsConfig.credentials.beyahadBishvilha);
56
+ expect(result).toBeDefined();
57
+ const error = `${result.errorType || ''} ${result.errorMessage || ''}`.trim();
58
+ expect(error).toBe('');
59
+ expect(result.success).toBeTruthy();
60
+ (0, _testsUtils.exportTransactions)(COMPANY_ID, result.accounts || []);
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50ZXN0LnRzIl0sIm5hbWVzIjpbIkNPTVBBTllfSUQiLCJ0ZXN0c0NvbmZpZyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwidGVzdCIsImV4cGVjdCIsIlNDUkFQRVJTIiwiYmV5YWhhZEJpc2h2aWxoYSIsInRvQmVEZWZpbmVkIiwibG9naW5GaWVsZHMiLCJ0b0NvbnRhaW4iLCJjb25maWciLCJjb21wYW55QVBJIiwiaW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsImNvbXBhbnlJZCIsInNjcmFwZXIiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsInJlc3VsdCIsInNjcmFwZSIsImlkIiwicGFzc3dvcmQiLCJzdWNjZXNzIiwidG9CZUZhbHN5IiwiZXJyb3JUeXBlIiwidG9CZSIsIkxvZ2luUmVzdWx0cyIsIkludmFsaWRQYXNzd29yZCIsImNyZWRlbnRpYWxzIiwiZXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJ0cmltIiwidG9CZVRydXRoeSIsImFjY291bnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLFVBQVUsR0FBRyxrQkFBbkIsQyxDQUF1Qzs7QUFDdkMsTUFBTUMsV0FBVyxHQUFHLGlDQUFwQjtBQUVBQyxRQUFRLENBQUMsMkJBQUQsRUFBOEIsTUFBTTtBQUMxQ0MsRUFBQUEsU0FBUyxDQUFDLE1BQU07QUFDZCwwQ0FEYyxDQUNRO0FBQ3ZCLEdBRlEsQ0FBVDtBQUlBQyxFQUFBQSxJQUFJLENBQUMsaURBQUQsRUFBb0QsTUFBTTtBQUM1REMsSUFBQUEsTUFBTSxDQUFDQyxzQkFBU0MsZ0JBQVYsQ0FBTixDQUFrQ0MsV0FBbEM7QUFDQUgsSUFBQUEsTUFBTSxDQUFDQyxzQkFBU0MsZ0JBQVQsQ0FBMEJFLFdBQTNCLENBQU4sQ0FBOENDLFNBQTlDLENBQXdELElBQXhEO0FBQ0FMLElBQUFBLE1BQU0sQ0FBQ0Msc0JBQVNDLGdCQUFULENBQTBCRSxXQUEzQixDQUFOLENBQThDQyxTQUE5QyxDQUF3RCxVQUF4RDtBQUNELEdBSkcsQ0FBSjtBQU1BLHVDQUFvQlYsVUFBcEIsRUFBaUNXLE1BQUQsSUFBWUEsTUFBTSxDQUFDQyxVQUFQLENBQWtCQyxlQUE5RCxFQUErRSx1Q0FBL0UsRUFBd0gsWUFBWTtBQUNsSSxVQUFNQyxPQUFPLHFCQUNSYixXQUFXLENBQUNhLE9BREo7QUFFWEMsTUFBQUEsU0FBUyxFQUFFZjtBQUZBLE1BQWI7O0FBS0EsVUFBTWdCLE9BQU8sR0FBRyxJQUFJQyx5QkFBSixDQUE0QkgsT0FBNUIsQ0FBaEI7QUFFQSxVQUFNSSxNQUFNLEdBQUcsTUFBTUYsT0FBTyxDQUFDRyxNQUFSLENBQWU7QUFBRUMsTUFBQUEsRUFBRSxFQUFFLFFBQU47QUFBZ0JDLE1BQUFBLFFBQVEsRUFBRTtBQUExQixLQUFmLENBQXJCO0FBRUFoQixJQUFBQSxNQUFNLENBQUNhLE1BQUQsQ0FBTixDQUFlVixXQUFmO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ2EsTUFBTSxDQUFDSSxPQUFSLENBQU4sQ0FBdUJDLFNBQXZCO0FBQ0FsQixJQUFBQSxNQUFNLENBQUNhLE1BQU0sQ0FBQ00sU0FBUixDQUFOLENBQXlCQyxJQUF6QixDQUE4QkMscUNBQWFDLGVBQTNDO0FBQ0QsR0FiRDtBQWVBLHVDQUFvQjNCLFVBQXBCLEVBQWdDLDZCQUFoQyxFQUErRCxZQUFZO0FBQ3pFLFVBQU1jLE9BQU8scUJBQ1JiLFdBQVcsQ0FBQ2EsT0FESjtBQUVYQyxNQUFBQSxTQUFTLEVBQUVmO0FBRkEsTUFBYjs7QUFLQSxVQUFNZ0IsT0FBTyxHQUFHLElBQUlDLHlCQUFKLENBQTRCSCxPQUE1QixDQUFoQjtBQUNBLFVBQU1JLE1BQU0sR0FBRyxNQUFNRixPQUFPLENBQUNHLE1BQVIsQ0FBZWxCLFdBQVcsQ0FBQzJCLFdBQVosQ0FBd0JyQixnQkFBdkMsQ0FBckI7QUFDQUYsSUFBQUEsTUFBTSxDQUFDYSxNQUFELENBQU4sQ0FBZVYsV0FBZjtBQUNBLFVBQU1xQixLQUFLLEdBQUksR0FBRVgsTUFBTSxDQUFDTSxTQUFQLElBQW9CLEVBQUcsSUFBR04sTUFBTSxDQUFDWSxZQUFQLElBQXVCLEVBQUcsRUFBdkQsQ0FBeURDLElBQXpELEVBQWQ7QUFDQTFCLElBQUFBLE1BQU0sQ0FBQ3dCLEtBQUQsQ0FBTixDQUFjSixJQUFkLENBQW1CLEVBQW5CO0FBQ0FwQixJQUFBQSxNQUFNLENBQUNhLE1BQU0sQ0FBQ0ksT0FBUixDQUFOLENBQXVCVSxVQUF2QjtBQUVBLHdDQUFtQmhDLFVBQW5CLEVBQStCa0IsTUFBTSxDQUFDZSxRQUFQLElBQW1CLEVBQWxEO0FBQ0QsR0FkRDtBQWVELENBekNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZnJvbSAnLi9iZXlhaGFkLWJpc2h2aWxoYSc7XG5pbXBvcnQge1xuICBtYXliZVRlc3RDb21wYW55QVBJLCBleHRlbmRBc3luY1RpbWVvdXQsIGdldFRlc3RzQ29uZmlnLCBleHBvcnRUcmFuc2FjdGlvbnMsXG59IGZyb20gJy4uL3Rlc3RzL3Rlc3RzLXV0aWxzJztcbmltcG9ydCB7IFNDUkFQRVJTIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcblxuY29uc3QgQ09NUEFOWV9JRCA9ICdiZXlhaGFkQmlzaHZpbGhhJzsgLy8gVE9ETyB0aGlzIHByb3BlcnR5IHNob3VsZCBiZSBoYXJkLWNvZGVkIGluIHRoZSBwcm92aWRlclxuY29uc3QgdGVzdHNDb25maWcgPSBnZXRUZXN0c0NvbmZpZygpO1xuXG5kZXNjcmliZSgnQmV5YWhhZCBCaXNodmlsaGEgc2NyYXBlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBleHRlbmRBc3luY1RpbWVvdXQoKTsgLy8gVGhlIGRlZmF1bHQgdGltZW91dCBpcyA1IHNlY29uZHMgcGVyIGFzeW5jIHRlc3QsIHRoaXMgZnVuY3Rpb24gZXh0ZW5kcyB0aGUgdGltZW91dCB2YWx1ZVxuICB9KTtcblxuICB0ZXN0KCdzaG91bGQgZXhwb3NlIGxvZ2luIGZpZWxkcyBpbiBzY3JhcGVycyBjb25zdGFudCcsICgpID0+IHtcbiAgICBleHBlY3QoU0NSQVBFUlMuYmV5YWhhZEJpc2h2aWxoYSkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoU0NSQVBFUlMuYmV5YWhhZEJpc2h2aWxoYS5sb2dpbkZpZWxkcykudG9Db250YWluKCdpZCcpO1xuICAgIGV4cGVjdChTQ1JBUEVSUy5iZXlhaGFkQmlzaHZpbGhhLmxvZ2luRmllbGRzKS50b0NvbnRhaW4oJ3Bhc3N3b3JkJyk7XG4gIH0pO1xuXG4gIG1heWJlVGVzdENvbXBhbnlBUEkoQ09NUEFOWV9JRCwgKGNvbmZpZykgPT4gY29uZmlnLmNvbXBhbnlBUEkuaW52YWxpZFBhc3N3b3JkKSgnc2hvdWxkIGZhaWwgb24gaW52YWxpZCB1c2VyL3Bhc3N3b3JkXCInLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIC4uLnRlc3RzQ29uZmlnLm9wdGlvbnMsXG4gICAgICBjb21wYW55SWQ6IENPTVBBTllfSUQsXG4gICAgfTtcblxuICAgIGNvbnN0IHNjcmFwZXIgPSBuZXcgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIob3B0aW9ucyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSh7IGlkOiAnZTEwczEyJywgcGFzc3dvcmQ6ICczZjNzczNkJyB9KTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QocmVzdWx0LmVycm9yVHlwZSkudG9CZShMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkKTtcbiAgfSk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDT01QQU5ZX0lEKSgnc2hvdWxkIHNjcmFwZSB0cmFuc2FjdGlvbnNcIicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyYXBlciA9IG5ldyBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcihvcHRpb25zKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSh0ZXN0c0NvbmZpZy5jcmVkZW50aWFscy5iZXlhaGFkQmlzaHZpbGhhKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIGNvbnN0IGVycm9yID0gYCR7cmVzdWx0LmVycm9yVHlwZSB8fCAnJ30gJHtyZXN1bHQuZXJyb3JNZXNzYWdlIHx8ICcnfWAudHJpbSgpO1xuICAgIGV4cGVjdChlcnJvcikudG9CZSgnJyk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlVHJ1dGh5KCk7XG5cbiAgICBleHBvcnRUcmFuc2FjdGlvbnMoQ09NUEFOWV9JRCwgcmVzdWx0LmFjY291bnRzIHx8IFtdKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -12,4 +12,5 @@ import BeinleumiScraper from './beinleumi';
12
12
  import MassadScraper from './massad';
13
13
  import YahavScraper from './yahav';
14
14
  import { ScaperOptions } from './base-scraper';
15
- export default function createScraper(options: ScaperOptions): HapoalimScraper | OtsarHahayalScraper | LeumiScraper | DiscountScraper | MaxScraper | VisaCalScraper | IsracardScraper | AmexScraper | MizrahiScraper | UnionBankScraper | BeinleumiScraper | MassadScraper | YahavScraper;
15
+ import BeyahadBishvilhaScraper from './beyahad-bishvilha';
16
+ export default function createScraper(options: ScaperOptions): HapoalimScraper | OtsarHahayalScraper | LeumiScraper | DiscountScraper | MaxScraper | VisaCalScraper | IsracardScraper | AmexScraper | MizrahiScraper | UnionBankScraper | BeinleumiScraper | MassadScraper | YahavScraper | BeyahadBishvilhaScraper;
@@ -33,6 +33,8 @@ var _yahav = _interopRequireDefault(require("./yahav"));
33
33
 
34
34
  var _definitions = require("../definitions");
35
35
 
36
+ var _beyahadBishvilha = _interopRequireDefault(require("./beyahad-bishvilha"));
37
+
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
39
 
38
40
  function createScraper(options) {
@@ -48,6 +50,9 @@ function createScraper(options) {
48
50
  case _definitions.CompanyTypes.leumi:
49
51
  return new _leumi.default(options);
50
52
 
53
+ case _definitions.CompanyTypes.beyahadBishvilha:
54
+ return new _beyahadBishvilha.default(options);
55
+
51
56
  case _definitions.CompanyTypes.mizrahi:
52
57
  return new _mizrahi.default(options);
53
58
 
@@ -90,4 +95,4 @@ function createScraper(options) {
90
95
  throw new Error(`unknown company id ${options.companyId}`);
91
96
  }
92
97
  }
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBK0M7QUFDNUQsVUFBUUEsT0FBTyxDQUFDQyxTQUFoQjtBQUNFLFNBQUtDLDBCQUFhQyxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JKLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFHLGdCQUFsQjtBQUNFO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLHdEQUFiO0FBQ0EsYUFBTyxJQUFJSCxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYU0sS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJULE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFRLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQlgsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVUsUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CYixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhWSxZQUFsQjtBQUNFLGFBQU8sSUFBSUMscUJBQUosQ0FBd0JmLE9BQXhCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFjLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQmpCLE9BQW5CLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFnQixTQUFsQjtBQUNFO0FBQ0FaLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLDRDQUFiO0FBQ0EsYUFBTyxJQUFJWSxZQUFKLENBQWVuQixPQUFmLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFrQixHQUFsQjtBQUNFLGFBQU8sSUFBSUQsWUFBSixDQUFlbkIsT0FBZixDQUFQOztBQUNGLFNBQUtFLDBCQUFhbUIsUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CdEIsT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYXFCLElBQWxCO0FBQ0UsYUFBTyxJQUFJQyxhQUFKLENBQWdCeEIsT0FBaEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYXVCLEtBQWxCO0FBQ0UsYUFBTyxJQUFJQyxrQkFBSixDQUFxQjFCLE9BQXJCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWF5QixTQUFsQjtBQUNFLGFBQU8sSUFBSUMsa0JBQUosQ0FBcUI1QixPQUFyQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhMkIsTUFBbEI7QUFDRSxhQUFPLElBQUlDLGVBQUosQ0FBa0I5QixPQUFsQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhNkIsS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJoQyxPQUFqQixDQUFQOztBQUNGO0FBQ0UsWUFBTSxJQUFJaUMsS0FBSixDQUFXLHNCQUFxQmpDLE9BQU8sQ0FBQ0MsU0FBVSxFQUFsRCxDQUFOO0FBcENKO0FBc0NEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhcG9hbGltU2NyYXBlciBmcm9tICcuL2hhcG9hbGltJztcbmltcG9ydCBPdHNhckhhaGF5YWxTY3JhcGVyIGZyb20gJy4vb3RzYXItaGFoYXlhbCc7XG5pbXBvcnQgTGV1bWlTY3JhcGVyIGZyb20gJy4vbGV1bWknO1xuaW1wb3J0IERpc2NvdW50U2NyYXBlciBmcm9tICcuL2Rpc2NvdW50JztcbmltcG9ydCBNYXhTY3JhcGVyIGZyb20gJy4vbWF4JztcbmltcG9ydCBWaXNhQ2FsU2NyYXBlciBmcm9tICcuL3Zpc2EtY2FsJztcbmltcG9ydCBJc3JhY2FyZFNjcmFwZXIgZnJvbSAnLi9pc3JhY2FyZCc7XG5pbXBvcnQgQW1leFNjcmFwZXIgZnJvbSAnLi9hbWV4JztcbmltcG9ydCBNaXpyYWhpU2NyYXBlciBmcm9tICcuL21penJhaGknO1xuaW1wb3J0IFVuaW9uQmFua1NjcmFwZXIgZnJvbSAnLi91bmlvbi1iYW5rJztcbmltcG9ydCBCZWlubGV1bWlTY3JhcGVyIGZyb20gJy4vYmVpbmxldW1pJztcbmltcG9ydCBNYXNzYWRTY3JhcGVyIGZyb20gJy4vbWFzc2FkJztcbmltcG9ydCBZYWhhdlNjcmFwZXIgZnJvbSAnLi95YWhhdic7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTY3JhcGVyKG9wdGlvbnM6IFNjYXBlck9wdGlvbnMpIHtcbiAgc3dpdGNoIChvcHRpb25zLmNvbXBhbnlJZCkge1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmhhcG9hbGltOlxuICAgICAgcmV0dXJuIG5ldyBIYXBvYWxpbVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZTpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJoYXBvYWxpbUJlT25saW5lIGlzIGRlcHJlY2F0ZWQsIHVzZSAnaGFwb2FsaW0nIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5sZXVtaTpcbiAgICAgIHJldHVybiBuZXcgTGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1penJhaGk6XG4gICAgICByZXR1cm4gbmV3IE1penJhaGlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmRpc2NvdW50OlxuICAgICAgcmV0dXJuIG5ldyBEaXNjb3VudFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMub3RzYXJIYWhheWFsOlxuICAgICAgcmV0dXJuIG5ldyBPdHNhckhhaGF5YWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnZpc2FDYWw6XG4gICAgICByZXR1cm4gbmV3IFZpc2FDYWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pQ2FyZDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJsZXVtaUNhcmQgaXMgZGVwcmVjYXRlZCwgdXNlICdtYXgnIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWF4OlxuICAgICAgcmV0dXJuIG5ldyBNYXhTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmlzcmFjYXJkOlxuICAgICAgcmV0dXJuIG5ldyBJc3JhY2FyZFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYW1leDpcbiAgICAgIHJldHVybiBuZXcgQW1leFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudW5pb246XG4gICAgICByZXR1cm4gbmV3IFVuaW9uQmFua1NjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmVpbmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBCZWlubGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1hc3NhZDpcbiAgICAgIHJldHVybiBuZXcgTWFzc2FkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy55YWhhdjpcbiAgICAgIHJldHVybiBuZXcgWWFoYXZTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gY29tcGFueSBpZCAke29wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsImJleWFoYWRCaXNodmlsaGEiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBK0M7QUFDNUQsVUFBUUEsT0FBTyxDQUFDQyxTQUFoQjtBQUNFLFNBQUtDLDBCQUFhQyxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JKLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFHLGdCQUFsQjtBQUNFO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLHdEQUFiO0FBQ0EsYUFBTyxJQUFJSCxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYU0sS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJULE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFRLGdCQUFsQjtBQUNFLGFBQU8sSUFBSUMseUJBQUosQ0FBNEJYLE9BQTVCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFVLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQmIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVksUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CZixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhYyxZQUFsQjtBQUNFLGFBQU8sSUFBSUMscUJBQUosQ0FBd0JqQixPQUF4QixDQUFQOztBQUNGLFNBQUtFLDBCQUFhZ0IsT0FBbEI7QUFDRSxhQUFPLElBQUlDLGdCQUFKLENBQW1CbkIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYWtCLFNBQWxCO0FBQ0U7QUFDQWQsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsNENBQWI7QUFDQSxhQUFPLElBQUljLFlBQUosQ0FBZXJCLE9BQWYsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYW9CLEdBQWxCO0FBQ0UsYUFBTyxJQUFJRCxZQUFKLENBQWVyQixPQUFmLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFxQixRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0J4QixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhdUIsSUFBbEI7QUFDRSxhQUFPLElBQUlDLGFBQUosQ0FBZ0IxQixPQUFoQixDQUFQOztBQUNGLFNBQUtFLDBCQUFheUIsS0FBbEI7QUFDRSxhQUFPLElBQUlDLGtCQUFKLENBQXFCNUIsT0FBckIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYTJCLFNBQWxCO0FBQ0UsYUFBTyxJQUFJQyxrQkFBSixDQUFxQjlCLE9BQXJCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWE2QixNQUFsQjtBQUNFLGFBQU8sSUFBSUMsZUFBSixDQUFrQmhDLE9BQWxCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWErQixLQUFsQjtBQUNFLGFBQU8sSUFBSUMsY0FBSixDQUFpQmxDLE9BQWpCLENBQVA7O0FBQ0Y7QUFDRSxZQUFNLElBQUltQyxLQUFKLENBQVcsc0JBQXFCbkMsT0FBTyxDQUFDQyxTQUFVLEVBQWxELENBQU47QUF0Q0o7QUF3Q0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSGFwb2FsaW1TY3JhcGVyIGZyb20gJy4vaGFwb2FsaW0nO1xuaW1wb3J0IE90c2FySGFoYXlhbFNjcmFwZXIgZnJvbSAnLi9vdHNhci1oYWhheWFsJztcbmltcG9ydCBMZXVtaVNjcmFwZXIgZnJvbSAnLi9sZXVtaSc7XG5pbXBvcnQgRGlzY291bnRTY3JhcGVyIGZyb20gJy4vZGlzY291bnQnO1xuaW1wb3J0IE1heFNjcmFwZXIgZnJvbSAnLi9tYXgnO1xuaW1wb3J0IFZpc2FDYWxTY3JhcGVyIGZyb20gJy4vdmlzYS1jYWwnO1xuaW1wb3J0IElzcmFjYXJkU2NyYXBlciBmcm9tICcuL2lzcmFjYXJkJztcbmltcG9ydCBBbWV4U2NyYXBlciBmcm9tICcuL2FtZXgnO1xuaW1wb3J0IE1penJhaGlTY3JhcGVyIGZyb20gJy4vbWl6cmFoaSc7XG5pbXBvcnQgVW5pb25CYW5rU2NyYXBlciBmcm9tICcuL3VuaW9uLWJhbmsnO1xuaW1wb3J0IEJlaW5sZXVtaVNjcmFwZXIgZnJvbSAnLi9iZWlubGV1bWknO1xuaW1wb3J0IE1hc3NhZFNjcmFwZXIgZnJvbSAnLi9tYXNzYWQnO1xuaW1wb3J0IFlhaGF2U2NyYXBlciBmcm9tICcuL3lhaGF2JztcbmltcG9ydCB7IFNjYXBlck9wdGlvbnMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBDb21wYW55VHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZnJvbSAnLi9iZXlhaGFkLWJpc2h2aWxoYSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNjcmFwZXIob3B0aW9uczogU2NhcGVyT3B0aW9ucykge1xuICBzd2l0Y2ggKG9wdGlvbnMuY29tcGFueUlkKSB7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW06XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5oYXBvYWxpbUJlT25saW5lOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImhhcG9hbGltQmVPbmxpbmUgaXMgZGVwcmVjYXRlZCwgdXNlICdoYXBvYWxpbScgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgSGFwb2FsaW1TY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBMZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYTpcbiAgICAgIHJldHVybiBuZXcgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWl6cmFoaTpcbiAgICAgIHJldHVybiBuZXcgTWl6cmFoaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuZGlzY291bnQ6XG4gICAgICByZXR1cm4gbmV3IERpc2NvdW50U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWw6XG4gICAgICByZXR1cm4gbmV3IE90c2FySGFoYXlhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudmlzYUNhbDpcbiAgICAgIHJldHVybiBuZXcgVmlzYUNhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubGV1bWlDYXJkOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImxldW1pQ2FyZCBpcyBkZXByZWNhdGVkLCB1c2UgJ21heCcgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgTWF4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5tYXg6XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaXNyYWNhcmQ6XG4gICAgICByZXR1cm4gbmV3IElzcmFjYXJkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5hbWV4OlxuICAgICAgcmV0dXJuIG5ldyBBbWV4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy51bmlvbjpcbiAgICAgIHJldHVybiBuZXcgVW5pb25CYW5rU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5iZWlubGV1bWk6XG4gICAgICByZXR1cm4gbmV3IEJlaW5sZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWFzc2FkOlxuICAgICAgcmV0dXJuIG5ldyBNYXNzYWRTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnlhaGF2OlxuICAgICAgcmV0dXJuIG5ldyBZYWhhdlNjcmFwZXIob3B0aW9ucyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBjb21wYW55IGlkICR7b3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -26,7 +26,7 @@ export interface Transaction {
26
26
  /**
27
27
  * sometimes called Asmachta
28
28
  */
29
- identifier?: number;
29
+ identifier?: string | number;
30
30
  /**
31
31
  * ISO date string
32
32
  */
@@ -19,4 +19,4 @@ exports.TransactionStatuses = TransactionStatuses;
19
19
  TransactionStatuses["Completed"] = "completed";
20
20
  TransactionStatuses["Pending"] = "pending";
21
21
  })(TransactionStatuses || (exports.TransactionStatuses = TransactionStatuses = {}));
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/OiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogc3RyaW5nIHwgbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/OiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "1.10.4",
3
+ "version": "1.11.0",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {