@tomerh2001/israeli-bank-scrapers 6.3.11

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.
Files changed (121) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +425 -0
  3. package/lib/assertNever.d.ts +1 -0
  4. package/lib/assertNever.js +10 -0
  5. package/lib/constants.d.ts +10 -0
  6. package/lib/constants.js +17 -0
  7. package/lib/definitions.d.ts +105 -0
  8. package/lib/definitions.js +116 -0
  9. package/lib/helpers/browser.d.ts +10 -0
  10. package/lib/helpers/browser.js +21 -0
  11. package/lib/helpers/dates.d.ts +2 -0
  12. package/lib/helpers/dates.js +22 -0
  13. package/lib/helpers/debug.d.ts +2 -0
  14. package/lib/helpers/debug.js +12 -0
  15. package/lib/helpers/elements-interactions.d.ts +17 -0
  16. package/lib/helpers/elements-interactions.js +111 -0
  17. package/lib/helpers/fetch.d.ts +6 -0
  18. package/lib/helpers/fetch.js +111 -0
  19. package/lib/helpers/navigation.d.ts +6 -0
  20. package/lib/helpers/navigation.js +39 -0
  21. package/lib/helpers/storage.d.ts +2 -0
  22. package/lib/helpers/storage.js +14 -0
  23. package/lib/helpers/transactions.d.ts +5 -0
  24. package/lib/helpers/transactions.js +47 -0
  25. package/lib/helpers/waiting.d.ts +13 -0
  26. package/lib/helpers/waiting.js +58 -0
  27. package/lib/index.d.ts +7 -0
  28. package/lib/index.js +85 -0
  29. package/lib/scrapers/amex.d.ts +6 -0
  30. package/lib/scrapers/amex.js +17 -0
  31. package/lib/scrapers/amex.test.d.ts +1 -0
  32. package/lib/scrapers/amex.test.js +49 -0
  33. package/lib/scrapers/base-beinleumi-group.d.ts +66 -0
  34. package/lib/scrapers/base-beinleumi-group.js +428 -0
  35. package/lib/scrapers/base-isracard-amex.d.ts +23 -0
  36. package/lib/scrapers/base-isracard-amex.js +324 -0
  37. package/lib/scrapers/base-scraper-with-browser.d.ts +57 -0
  38. package/lib/scrapers/base-scraper-with-browser.js +291 -0
  39. package/lib/scrapers/base-scraper-with-browser.test.d.ts +1 -0
  40. package/lib/scrapers/base-scraper-with-browser.test.js +53 -0
  41. package/lib/scrapers/base-scraper.d.ts +19 -0
  42. package/lib/scrapers/base-scraper.js +91 -0
  43. package/lib/scrapers/behatsdaa.d.ts +11 -0
  44. package/lib/scrapers/behatsdaa.js +113 -0
  45. package/lib/scrapers/behatsdaa.test.d.ts +1 -0
  46. package/lib/scrapers/behatsdaa.test.js +46 -0
  47. package/lib/scrapers/beinleumi.d.ts +7 -0
  48. package/lib/scrapers/beinleumi.js +15 -0
  49. package/lib/scrapers/beinleumi.test.d.ts +1 -0
  50. package/lib/scrapers/beinleumi.test.js +47 -0
  51. package/lib/scrapers/beyahad-bishvilha.d.ts +30 -0
  52. package/lib/scrapers/beyahad-bishvilha.js +149 -0
  53. package/lib/scrapers/beyahad-bishvilha.test.d.ts +1 -0
  54. package/lib/scrapers/beyahad-bishvilha.test.js +47 -0
  55. package/lib/scrapers/discount.d.ts +22 -0
  56. package/lib/scrapers/discount.js +120 -0
  57. package/lib/scrapers/discount.test.d.ts +1 -0
  58. package/lib/scrapers/discount.test.js +49 -0
  59. package/lib/scrapers/errors.d.ts +16 -0
  60. package/lib/scrapers/errors.js +32 -0
  61. package/lib/scrapers/factory.d.ts +2 -0
  62. package/lib/scrapers/factory.js +70 -0
  63. package/lib/scrapers/factory.test.d.ts +1 -0
  64. package/lib/scrapers/factory.test.js +19 -0
  65. package/lib/scrapers/hapoalim.d.ts +24 -0
  66. package/lib/scrapers/hapoalim.js +198 -0
  67. package/lib/scrapers/hapoalim.test.d.ts +1 -0
  68. package/lib/scrapers/hapoalim.test.js +47 -0
  69. package/lib/scrapers/interface.d.ts +186 -0
  70. package/lib/scrapers/interface.js +6 -0
  71. package/lib/scrapers/isracard.d.ts +6 -0
  72. package/lib/scrapers/isracard.js +17 -0
  73. package/lib/scrapers/isracard.test.d.ts +1 -0
  74. package/lib/scrapers/isracard.test.js +49 -0
  75. package/lib/scrapers/leumi.d.ts +21 -0
  76. package/lib/scrapers/leumi.js +200 -0
  77. package/lib/scrapers/leumi.test.d.ts +1 -0
  78. package/lib/scrapers/leumi.test.js +47 -0
  79. package/lib/scrapers/massad.d.ts +7 -0
  80. package/lib/scrapers/massad.js +15 -0
  81. package/lib/scrapers/max.d.ts +37 -0
  82. package/lib/scrapers/max.js +299 -0
  83. package/lib/scrapers/max.test.d.ts +1 -0
  84. package/lib/scrapers/max.test.js +64 -0
  85. package/lib/scrapers/mercantile.d.ts +20 -0
  86. package/lib/scrapers/mercantile.js +18 -0
  87. package/lib/scrapers/mercantile.test.d.ts +1 -0
  88. package/lib/scrapers/mercantile.test.js +45 -0
  89. package/lib/scrapers/mizrahi.d.ts +35 -0
  90. package/lib/scrapers/mizrahi.js +265 -0
  91. package/lib/scrapers/mizrahi.test.d.ts +1 -0
  92. package/lib/scrapers/mizrahi.test.js +56 -0
  93. package/lib/scrapers/one-zero-queries.d.ts +2 -0
  94. package/lib/scrapers/one-zero-queries.js +560 -0
  95. package/lib/scrapers/one-zero.d.ts +36 -0
  96. package/lib/scrapers/one-zero.js +238 -0
  97. package/lib/scrapers/one-zero.test.d.ts +1 -0
  98. package/lib/scrapers/one-zero.test.js +51 -0
  99. package/lib/scrapers/otsar-hahayal.d.ts +7 -0
  100. package/lib/scrapers/otsar-hahayal.js +15 -0
  101. package/lib/scrapers/otsar-hahayal.test.d.ts +1 -0
  102. package/lib/scrapers/otsar-hahayal.test.js +47 -0
  103. package/lib/scrapers/pagi.d.ts +7 -0
  104. package/lib/scrapers/pagi.js +15 -0
  105. package/lib/scrapers/pagi.test.d.ts +1 -0
  106. package/lib/scrapers/pagi.test.js +47 -0
  107. package/lib/scrapers/union-bank.d.ts +23 -0
  108. package/lib/scrapers/union-bank.js +242 -0
  109. package/lib/scrapers/union-bank.test.d.ts +1 -0
  110. package/lib/scrapers/union-bank.test.js +47 -0
  111. package/lib/scrapers/visa-cal.d.ts +20 -0
  112. package/lib/scrapers/visa-cal.js +318 -0
  113. package/lib/scrapers/visa-cal.test.d.ts +1 -0
  114. package/lib/scrapers/visa-cal.test.js +49 -0
  115. package/lib/scrapers/yahav.d.ts +25 -0
  116. package/lib/scrapers/yahav.js +247 -0
  117. package/lib/scrapers/yahav.test.d.ts +1 -0
  118. package/lib/scrapers/yahav.test.js +49 -0
  119. package/lib/transactions.d.ts +47 -0
  120. package/lib/transactions.js +17 -0
  121. package/package.json +91 -0
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ScraperProgressTypes = exports.SCRAPERS = exports.PASSWORD_FIELD = exports.CompanyTypes = void 0;
7
+ // NOTICE: avoid changing exported keys as they are part of the public api
8
+
9
+ const PASSWORD_FIELD = exports.PASSWORD_FIELD = 'password';
10
+ let CompanyTypes = exports.CompanyTypes = /*#__PURE__*/function (CompanyTypes) {
11
+ CompanyTypes["hapoalim"] = "hapoalim";
12
+ CompanyTypes["beinleumi"] = "beinleumi";
13
+ CompanyTypes["union"] = "union";
14
+ CompanyTypes["amex"] = "amex";
15
+ CompanyTypes["isracard"] = "isracard";
16
+ CompanyTypes["visaCal"] = "visaCal";
17
+ CompanyTypes["max"] = "max";
18
+ CompanyTypes["otsarHahayal"] = "otsarHahayal";
19
+ CompanyTypes["discount"] = "discount";
20
+ CompanyTypes["mercantile"] = "mercantile";
21
+ CompanyTypes["mizrahi"] = "mizrahi";
22
+ CompanyTypes["leumi"] = "leumi";
23
+ CompanyTypes["massad"] = "massad";
24
+ CompanyTypes["yahav"] = "yahav";
25
+ CompanyTypes["behatsdaa"] = "behatsdaa";
26
+ CompanyTypes["beyahadBishvilha"] = "beyahadBishvilha";
27
+ CompanyTypes["oneZero"] = "oneZero";
28
+ CompanyTypes["pagi"] = "pagi";
29
+ return CompanyTypes;
30
+ }({});
31
+ const SCRAPERS = exports.SCRAPERS = {
32
+ [CompanyTypes.hapoalim]: {
33
+ name: 'Bank Hapoalim',
34
+ loginFields: ['userCode', PASSWORD_FIELD]
35
+ },
36
+ [CompanyTypes.leumi]: {
37
+ name: 'Bank Leumi',
38
+ loginFields: ['username', PASSWORD_FIELD]
39
+ },
40
+ [CompanyTypes.mizrahi]: {
41
+ name: 'Mizrahi Bank',
42
+ loginFields: ['username', PASSWORD_FIELD]
43
+ },
44
+ [CompanyTypes.discount]: {
45
+ name: 'Discount Bank',
46
+ loginFields: ['id', PASSWORD_FIELD, 'num']
47
+ },
48
+ [CompanyTypes.mercantile]: {
49
+ name: 'Mercantile Bank',
50
+ loginFields: ['id', PASSWORD_FIELD, 'num']
51
+ },
52
+ [CompanyTypes.otsarHahayal]: {
53
+ name: 'Bank Otsar Hahayal',
54
+ loginFields: ['username', PASSWORD_FIELD]
55
+ },
56
+ [CompanyTypes.max]: {
57
+ name: 'Max',
58
+ loginFields: ['username', PASSWORD_FIELD]
59
+ },
60
+ [CompanyTypes.visaCal]: {
61
+ name: 'Visa Cal',
62
+ loginFields: ['username', PASSWORD_FIELD]
63
+ },
64
+ [CompanyTypes.isracard]: {
65
+ name: 'Isracard',
66
+ loginFields: ['id', 'card6Digits', PASSWORD_FIELD]
67
+ },
68
+ [CompanyTypes.amex]: {
69
+ name: 'Amex',
70
+ loginFields: ['id', 'card6Digits', PASSWORD_FIELD]
71
+ },
72
+ [CompanyTypes.union]: {
73
+ name: 'Union',
74
+ loginFields: ['username', PASSWORD_FIELD]
75
+ },
76
+ [CompanyTypes.beinleumi]: {
77
+ name: 'Beinleumi',
78
+ loginFields: ['username', PASSWORD_FIELD]
79
+ },
80
+ [CompanyTypes.massad]: {
81
+ name: 'Massad',
82
+ loginFields: ['username', PASSWORD_FIELD]
83
+ },
84
+ [CompanyTypes.yahav]: {
85
+ name: 'Bank Yahav',
86
+ loginFields: ['username', 'nationalID', PASSWORD_FIELD]
87
+ },
88
+ [CompanyTypes.beyahadBishvilha]: {
89
+ name: 'Beyahad Bishvilha',
90
+ loginFields: ['id', PASSWORD_FIELD]
91
+ },
92
+ [CompanyTypes.oneZero]: {
93
+ name: 'One Zero',
94
+ loginFields: ['email', PASSWORD_FIELD, 'otpCodeRetriever', 'phoneNumber', 'otpLongTermToken']
95
+ },
96
+ [CompanyTypes.behatsdaa]: {
97
+ name: 'Behatsdaa',
98
+ loginFields: ['id', PASSWORD_FIELD]
99
+ },
100
+ [CompanyTypes.pagi]: {
101
+ name: 'Pagi',
102
+ loginFields: ['username', PASSWORD_FIELD]
103
+ }
104
+ };
105
+ let ScraperProgressTypes = exports.ScraperProgressTypes = /*#__PURE__*/function (ScraperProgressTypes) {
106
+ ScraperProgressTypes["Initializing"] = "INITIALIZING";
107
+ ScraperProgressTypes["StartScraping"] = "START_SCRAPING";
108
+ ScraperProgressTypes["LoggingIn"] = "LOGGING_IN";
109
+ ScraperProgressTypes["LoginSuccess"] = "LOGIN_SUCCESS";
110
+ ScraperProgressTypes["LoginFailed"] = "LOGIN_FAILED";
111
+ ScraperProgressTypes["ChangePassword"] = "CHANGE_PASSWORD";
112
+ ScraperProgressTypes["EndScraping"] = "END_SCRAPING";
113
+ ScraperProgressTypes["Terminating"] = "TERMINATING";
114
+ return ScraperProgressTypes;
115
+ }({});
116
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsImV4cG9ydHMiLCJDb21wYW55VHlwZXMiLCJTQ1JBUEVSUyIsImhhcG9hbGltIiwibmFtZSIsImxvZ2luRmllbGRzIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJtZXJjYW50aWxlIiwib3RzYXJIYWhheWFsIiwibWF4IiwidmlzYUNhbCIsImlzcmFjYXJkIiwiYW1leCIsInVuaW9uIiwiYmVpbmxldW1pIiwibWFzc2FkIiwieWFoYXYiLCJiZXlhaGFkQmlzaHZpbGhhIiwib25lWmVybyIsImJlaGF0c2RhYSIsInBhZ2kiLCJTY3JhcGVyUHJvZ3Jlc3NUeXBlcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOT1RJQ0U6IGF2b2lkIGNoYW5naW5nIGV4cG9ydGVkIGtleXMgYXMgdGhleSBhcmUgcGFydCBvZiB0aGUgcHVibGljIGFwaVxuXG5leHBvcnQgY29uc3QgUEFTU1dPUkRfRklFTEQgPSAncGFzc3dvcmQnO1xuXG5leHBvcnQgZW51bSBDb21wYW55VHlwZXMge1xuICBoYXBvYWxpbSA9ICdoYXBvYWxpbScsXG4gIGJlaW5sZXVtaSA9ICdiZWlubGV1bWknLFxuICB1bmlvbiA9ICd1bmlvbicsXG4gIGFtZXggPSAnYW1leCcsXG4gIGlzcmFjYXJkID0gJ2lzcmFjYXJkJyxcbiAgdmlzYUNhbCA9ICd2aXNhQ2FsJyxcbiAgbWF4ID0gJ21heCcsXG4gIG90c2FySGFoYXlhbCA9ICdvdHNhckhhaGF5YWwnLFxuICBkaXNjb3VudCA9ICdkaXNjb3VudCcsXG4gIG1lcmNhbnRpbGUgPSAnbWVyY2FudGlsZScsXG4gIG1penJhaGkgPSAnbWl6cmFoaScsXG4gIGxldW1pID0gJ2xldW1pJyxcbiAgbWFzc2FkID0gJ21hc3NhZCcsXG4gIHlhaGF2ID0gJ3lhaGF2JyxcbiAgYmVoYXRzZGFhID0gJ2JlaGF0c2RhYScsXG4gIGJleWFoYWRCaXNodmlsaGEgPSAnYmV5YWhhZEJpc2h2aWxoYScsXG4gIG9uZVplcm8gPSAnb25lWmVybycsXG4gIHBhZ2kgPSAncGFnaScsXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JBUEVSUyA9IHtcbiAgW0NvbXBhbnlUeXBlcy5oYXBvYWxpbV06IHtcbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWldOiB7XG4gICAgbmFtZTogJ0JhbmsgTGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1penJhaGldOiB7XG4gICAgbmFtZTogJ01penJhaGkgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuZGlzY291bnRdOiB7XG4gICAgbmFtZTogJ0Rpc2NvdW50IEJhbmsnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTEQsICdudW0nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5tZXJjYW50aWxlXToge1xuICAgIG5hbWU6ICdNZXJjYW50aWxlIEJhbmsnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTEQsICdudW0nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWxdOiB7XG4gICAgbmFtZTogJ0JhbmsgT3RzYXIgSGFoYXlhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWF4XToge1xuICAgIG5hbWU6ICdNYXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnZpc2FDYWxdOiB7XG4gICAgbmFtZTogJ1Zpc2EgQ2FsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5pc3JhY2FyZF06IHtcbiAgICBuYW1lOiAnSXNyYWNhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmFtZXhdOiB7XG4gICAgbmFtZTogJ0FtZXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnVuaW9uXToge1xuICAgIG5hbWU6ICdVbmlvbicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmVpbmxldW1pXToge1xuICAgIG5hbWU6ICdCZWlubGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1hc3NhZF06IHtcbiAgICBuYW1lOiAnTWFzc2FkJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy55YWhhdl06IHtcbiAgICBuYW1lOiAnQmFuayBZYWhhdicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCAnbmF0aW9uYWxJRCcsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5iZXlhaGFkQmlzaHZpbGhhXToge1xuICAgIG5hbWU6ICdCZXlhaGFkIEJpc2h2aWxoYScsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMub25lWmVyb106IHtcbiAgICBuYW1lOiAnT25lIFplcm8nLFxuICAgIGxvZ2luRmllbGRzOiBbJ2VtYWlsJywgUEFTU1dPUkRfRklFTEQsICdvdHBDb2RlUmV0cmlldmVyJywgJ3Bob25lTnVtYmVyJywgJ290cExvbmdUZXJtVG9rZW4nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5iZWhhdHNkYWFdOiB7XG4gICAgbmFtZTogJ0JlaGF0c2RhYScsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMucGFnaV06IHtcbiAgICBuYW1lOiAnUGFnaScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG59O1xuXG5leHBvcnQgZW51bSBTY3JhcGVyUHJvZ3Jlc3NUeXBlcyB7XG4gIEluaXRpYWxpemluZyA9ICdJTklUSUFMSVpJTkcnLFxuICBTdGFydFNjcmFwaW5nID0gJ1NUQVJUX1NDUkFQSU5HJyxcbiAgTG9nZ2luZ0luID0gJ0xPR0dJTkdfSU4nLFxuICBMb2dpblN1Y2Nlc3MgPSAnTE9HSU5fU1VDQ0VTUycsXG4gIExvZ2luRmFpbGVkID0gJ0xPR0lOX0ZBSUxFRCcsXG4gIENoYW5nZVBhc3N3b3JkID0gJ0NIQU5HRV9QQVNTV09SRCcsXG4gIEVuZFNjcmFwaW5nID0gJ0VORF9TQ1JBUElORycsXG4gIFRlcm1pbmF0aW5nID0gJ1RFUk1JTkFUSU5HJyxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBRU8sTUFBTUEsY0FBYyxHQUFBQyxPQUFBLENBQUFELGNBQUEsR0FBRyxVQUFVO0FBQUMsSUFFN0JFLFlBQVksR0FBQUQsT0FBQSxDQUFBQyxZQUFBLDBCQUFaQSxZQUFZO0VBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQVpBLFlBQVk7RUFBWkEs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
@@ -0,0 +1,10 @@
1
+ import { type Page } from 'puppeteer';
2
+ export declare function maskHeadlessUserAgent(page: Page): Promise<void>;
3
+ /**
4
+ * Priorities for request interception. The higher the number, the higher the priority.
5
+ * We want to let others to have the ability to override our interception logic therefore we hardcode them.
6
+ */
7
+ export declare const interceptionPriorities: {
8
+ abort: number;
9
+ continue: number;
10
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.interceptionPriorities = void 0;
7
+ exports.maskHeadlessUserAgent = maskHeadlessUserAgent;
8
+ async function maskHeadlessUserAgent(page) {
9
+ const userAgent = await page.evaluate(() => navigator.userAgent);
10
+ await page.setUserAgent(userAgent.replace('HeadlessChrome/', 'Chrome/'));
11
+ }
12
+
13
+ /**
14
+ * Priorities for request interception. The higher the number, the higher the priority.
15
+ * We want to let others to have the ability to override our interception logic therefore we hardcode them.
16
+ */
17
+ const interceptionPriorities = exports.interceptionPriorities = {
18
+ abort: 1000,
19
+ continue: 10
20
+ };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXNrSGVhZGxlc3NVc2VyQWdlbnQiLCJwYWdlIiwidXNlckFnZW50IiwiZXZhbHVhdGUiLCJuYXZpZ2F0b3IiLCJzZXRVc2VyQWdlbnQiLCJyZXBsYWNlIiwiaW50ZXJjZXB0aW9uUHJpb3JpdGllcyIsImV4cG9ydHMiLCJhYm9ydCIsImNvbnRpbnVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvYnJvd3Nlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFza0hlYWRsZXNzVXNlckFnZW50KHBhZ2U6IFBhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdXNlckFnZW50ID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiBuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgYXdhaXQgcGFnZS5zZXRVc2VyQWdlbnQodXNlckFnZW50LnJlcGxhY2UoJ0hlYWRsZXNzQ2hyb21lLycsICdDaHJvbWUvJykpO1xufVxuXG4vKipcbiAqIFByaW9yaXRpZXMgZm9yIHJlcXVlc3QgaW50ZXJjZXB0aW9uLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBoaWdoZXIgdGhlIHByaW9yaXR5LlxuICogV2Ugd2FudCB0byBsZXQgb3RoZXJzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgb3VyIGludGVyY2VwdGlvbiBsb2dpYyB0aGVyZWZvcmUgd2UgaGFyZGNvZGUgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGludGVyY2VwdGlvblByaW9yaXRpZXMgPSB7XG4gIGFib3J0OiAxMDAwLFxuICBjb250aW51ZTogMTAsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRU8sZUFBZUEscUJBQXFCQSxDQUFDQyxJQUFVLEVBQWlCO0VBQ3JFLE1BQU1DLFNBQVMsR0FBRyxNQUFNRCxJQUFJLENBQUNFLFFBQVEsQ0FBQyxNQUFNQyxTQUFTLENBQUNGLFNBQVMsQ0FBQztFQUNoRSxNQUFNRCxJQUFJLENBQUNJLFlBQVksQ0FBQ0gsU0FBUyxDQUFDSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDMUU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQyxzQkFBc0IsR0FBQUMsT0FBQSxDQUFBRCxzQkFBQSxHQUFHO0VBQ3BDRSxLQUFLLEVBQUUsSUFBSTtFQUNYQyxRQUFRLEVBQUU7QUFDWixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,2 @@
1
+ import moment, { type Moment } from 'moment';
2
+ export default function getAllMonthMoments(startMoment: Moment | string, futureMonths?: number): moment.Moment[];
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getAllMonthMoments;
7
+ var _moment = _interopRequireDefault(require("moment"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function getAllMonthMoments(startMoment, futureMonths) {
10
+ let monthMoment = (0, _moment.default)(startMoment).startOf('month');
11
+ const allMonths = [];
12
+ let lastMonth = (0, _moment.default)().startOf('month');
13
+ if (futureMonths && futureMonths > 0) {
14
+ lastMonth = lastMonth.add(futureMonths, 'month');
15
+ }
16
+ while (monthMoment.isSameOrBefore(lastMonth)) {
17
+ allMonths.push(monthMoment);
18
+ monthMoment = (0, _moment.default)(monthMoment).add(1, 'month');
19
+ }
20
+ return allMonths;
21
+ }
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJnZXRBbGxNb250aE1vbWVudHMiLCJzdGFydE1vbWVudCIsImZ1dHVyZU1vbnRocyIsIm1vbnRoTW9tZW50IiwibW9tZW50Iiwic3RhcnRPZiIsImFsbE1vbnRocyIsImxhc3RNb250aCIsImFkZCIsImlzU2FtZU9yQmVmb3JlIiwicHVzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2RhdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQ6IE1vbWVudCB8IHN0cmluZywgZnV0dXJlTW9udGhzPzogbnVtYmVyKSB7XG4gIGxldCBtb250aE1vbWVudCA9IG1vbWVudChzdGFydE1vbWVudCkuc3RhcnRPZignbW9udGgnKTtcblxuICBjb25zdCBhbGxNb250aHM6IE1vbWVudFtdID0gW107XG4gIGxldCBsYXN0TW9udGggPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpO1xuICBpZiAoZnV0dXJlTW9udGhzICYmIGZ1dHVyZU1vbnRocyA+IDApIHtcbiAgICBsYXN0TW9udGggPSBsYXN0TW9udGguYWRkKGZ1dHVyZU1vbnRocywgJ21vbnRoJyk7XG4gIH1cbiAgd2hpbGUgKG1vbnRoTW9tZW50LmlzU2FtZU9yQmVmb3JlKGxhc3RNb250aCkpIHtcbiAgICBhbGxNb250aHMucHVzaChtb250aE1vbWVudCk7XG4gICAgbW9udGhNb21lbnQgPSBtb21lbnQobW9udGhNb21lbnQpLmFkZCgxLCAnbW9udGgnKTtcbiAgfVxuXG4gIHJldHVybiBhbGxNb250aHM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUE2QyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUU5QixTQUFTRyxrQkFBa0JBLENBQUNDLFdBQTRCLEVBQUVDLFlBQXFCLEVBQUU7RUFDOUYsSUFBSUMsV0FBVyxHQUFHLElBQUFDLGVBQU0sRUFBQ0gsV0FBVyxDQUFDLENBQUNJLE9BQU8sQ0FBQyxPQUFPLENBQUM7RUFFdEQsTUFBTUMsU0FBbUIsR0FBRyxFQUFFO0VBQzlCLElBQUlDLFNBQVMsR0FBRyxJQUFBSCxlQUFNLEVBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsT0FBTyxDQUFDO0VBQ3pDLElBQUlILFlBQVksSUFBSUEsWUFBWSxHQUFHLENBQUMsRUFBRTtJQUNwQ0ssU0FBUyxHQUFHQSxTQUFTLENBQUNDLEdBQUcsQ0FBQ04sWUFBWSxFQUFFLE9BQU8sQ0FBQztFQUNsRDtFQUNBLE9BQU9DLFdBQVcsQ0FBQ00sY0FBYyxDQUFDRixTQUFTLENBQUMsRUFBRTtJQUM1Q0QsU0FBUyxDQUFDSSxJQUFJLENBQUNQLFdBQVcsQ0FBQztJQUMzQkEsV0FBVyxHQUFHLElBQUFDLGVBQU0sRUFBQ0QsV0FBVyxDQUFDLENBQUNLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO0VBQ25EO0VBRUEsT0FBT0YsU0FBUztBQUNsQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ import debug from 'debug';
2
+ export declare function getDebug(name: string): debug.Debugger;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDebug = getDebug;
7
+ var _debug = _interopRequireDefault(require("debug"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function getDebug(name) {
10
+ return (0, _debug.default)(`israeli-bank-scrapers:${name}`);
11
+ }
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImdldERlYnVnIiwibmFtZSIsImRlYnVnIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZGVidWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlYnVnKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4gZGVidWcoYGlzcmFlbGktYmFuay1zY3JhcGVyczoke25hbWV9YCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwQixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVuQixTQUFTRyxRQUFRQSxDQUFDQyxJQUFZLEVBQUU7RUFDckMsT0FBTyxJQUFBQyxjQUFLLEVBQUMseUJBQXlCRCxJQUFJLEVBQUUsQ0FBQztBQUMvQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,17 @@
1
+ import { type Frame, type Page } from 'puppeteer';
2
+ declare function waitUntilElementFound(page: Page | Frame, elementSelector: string, onlyVisible?: boolean, timeout?: number): Promise<void>;
3
+ declare function waitUntilElementDisappear(page: Page, elementSelector: string, timeout?: number): Promise<void>;
4
+ declare function waitUntilIframeFound(page: Page, framePredicate: (frame: Frame) => boolean, description?: string, timeout?: number): Promise<Frame>;
5
+ declare function fillInput(pageOrFrame: Page | Frame, inputSelector: string, inputValue: string): Promise<void>;
6
+ declare function setValue(pageOrFrame: Page | Frame, inputSelector: string, inputValue: string): Promise<void>;
7
+ declare function clickButton(page: Page | Frame, buttonSelector: string): Promise<void>;
8
+ declare function clickLink(page: Page, aSelector: string): Promise<void>;
9
+ declare function pageEvalAll<R>(page: Page | Frame, selector: string, defaultResult: any, callback: (elements: Element[], ...args: any) => R, ...args: any[]): Promise<R>;
10
+ declare function pageEval<R>(pageOrFrame: Page | Frame, selector: string, defaultResult: any, callback: (elements: Element, ...args: any) => R, ...args: any[]): Promise<R>;
11
+ declare function elementPresentOnPage(pageOrFrame: Page | Frame, selector: string): Promise<boolean>;
12
+ declare function dropdownSelect(page: Page, selectSelector: string, value: string): Promise<void>;
13
+ declare function dropdownElements(page: Page, selector: string): Promise<{
14
+ name: string;
15
+ value: string;
16
+ }[]>;
17
+ export { clickButton, clickLink, dropdownElements, dropdownSelect, elementPresentOnPage, fillInput, pageEval, pageEvalAll, setValue, waitUntilElementDisappear, waitUntilElementFound, waitUntilIframeFound, };
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clickButton = clickButton;
7
+ exports.clickLink = clickLink;
8
+ exports.dropdownElements = dropdownElements;
9
+ exports.dropdownSelect = dropdownSelect;
10
+ exports.elementPresentOnPage = elementPresentOnPage;
11
+ exports.fillInput = fillInput;
12
+ exports.pageEval = pageEval;
13
+ exports.pageEvalAll = pageEvalAll;
14
+ exports.setValue = setValue;
15
+ exports.waitUntilElementDisappear = waitUntilElementDisappear;
16
+ exports.waitUntilElementFound = waitUntilElementFound;
17
+ exports.waitUntilIframeFound = waitUntilIframeFound;
18
+ var _waiting = require("./waiting");
19
+ async function waitUntilElementFound(page, elementSelector, onlyVisible = false, timeout) {
20
+ await page.waitForSelector(elementSelector, {
21
+ visible: onlyVisible,
22
+ timeout
23
+ });
24
+ }
25
+ async function waitUntilElementDisappear(page, elementSelector, timeout) {
26
+ await page.waitForSelector(elementSelector, {
27
+ hidden: true,
28
+ timeout
29
+ });
30
+ }
31
+ async function waitUntilIframeFound(page, framePredicate, description = '', timeout = 30000) {
32
+ let frame;
33
+ await (0, _waiting.waitUntil)(() => {
34
+ frame = page.frames().find(framePredicate);
35
+ return Promise.resolve(!!frame);
36
+ }, description, timeout, 1000);
37
+ if (!frame) {
38
+ throw new Error('failed to find iframe');
39
+ }
40
+ return frame;
41
+ }
42
+ async function fillInput(pageOrFrame, inputSelector, inputValue) {
43
+ await pageOrFrame.$eval(inputSelector, input => {
44
+ const inputElement = input;
45
+ // @ts-ignore
46
+ inputElement.value = '';
47
+ });
48
+ await pageOrFrame.type(inputSelector, inputValue);
49
+ }
50
+ async function setValue(pageOrFrame, inputSelector, inputValue) {
51
+ await pageOrFrame.$eval(inputSelector, (input, value) => {
52
+ const inputElement = input;
53
+ // @ts-ignore
54
+ inputElement.value = value;
55
+ }, [inputValue]);
56
+ }
57
+ async function clickButton(page, buttonSelector) {
58
+ await page.$eval(buttonSelector, el => el.click());
59
+ }
60
+ async function clickLink(page, aSelector) {
61
+ await page.$eval(aSelector, el => {
62
+ if (!el || typeof el.click === 'undefined') {
63
+ return;
64
+ }
65
+ el.click();
66
+ });
67
+ }
68
+ async function pageEvalAll(page, selector, defaultResult, callback, ...args) {
69
+ let result = defaultResult;
70
+ try {
71
+ await page.waitForFunction(() => document.readyState === 'complete');
72
+ result = await page.$$eval(selector, callback, ...args);
73
+ } catch (e) {
74
+ // TODO temporary workaround to puppeteer@1.5.0 which breaks $$eval bevahvior until they will release a new version.
75
+ if (!e.message.startsWith('Error: failed to find elements matching selector')) {
76
+ throw e;
77
+ }
78
+ }
79
+ return result;
80
+ }
81
+ async function pageEval(pageOrFrame, selector, defaultResult, callback, ...args) {
82
+ let result = defaultResult;
83
+ try {
84
+ await pageOrFrame.waitForFunction(() => document.readyState === 'complete');
85
+ result = await pageOrFrame.$eval(selector, callback, ...args);
86
+ } catch (e) {
87
+ // TODO temporary workaround to puppeteer@1.5.0 which breaks $$eval bevahvior until they will release a new version.
88
+ if (!e.message.startsWith('Error: failed to find element matching selector')) {
89
+ throw e;
90
+ }
91
+ }
92
+ return result;
93
+ }
94
+ async function elementPresentOnPage(pageOrFrame, selector) {
95
+ return (await pageOrFrame.$(selector)) !== null;
96
+ }
97
+ async function dropdownSelect(page, selectSelector, value) {
98
+ await page.select(selectSelector, value);
99
+ }
100
+ async function dropdownElements(page, selector) {
101
+ const options = await page.evaluate(optionSelector => {
102
+ return Array.from(document.querySelectorAll(optionSelector)).filter(o => o.value).map(o => {
103
+ return {
104
+ name: o.text,
105
+ value: o.value
106
+ };
107
+ });
108
+ }, `${selector} > option`);
109
+ return options;
110
+ }
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2FpdGluZyIsInJlcXVpcmUiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJwYWdlIiwiZWxlbWVudFNlbGVjdG9yIiwib25seVZpc2libGUiLCJ0aW1lb3V0Iiwid2FpdEZvclNlbGVjdG9yIiwidmlzaWJsZSIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJoaWRkZW4iLCJ3YWl0VW50aWxJZnJhbWVGb3VuZCIsImZyYW1lUHJlZGljYXRlIiwiZGVzY3JpcHRpb24iLCJmcmFtZSIsIndhaXRVbnRpbCIsImZyYW1lcyIsImZpbmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiZmlsbElucHV0IiwicGFnZU9yRnJhbWUiLCJpbnB1dFNlbGVjdG9yIiwiaW5wdXRWYWx1ZSIsIiRldmFsIiwiaW5wdXQiLCJpbnB1dEVsZW1lbnQiLCJ2YWx1ZSIsInR5cGUiLCJzZXRWYWx1ZSIsImNsaWNrQnV0dG9uIiwiYnV0dG9uU2VsZWN0b3IiLCJlbCIsImNsaWNrIiwiY2xpY2tMaW5rIiwiYVNlbGVjdG9yIiwicGFnZUV2YWxBbGwiLCJzZWxlY3RvciIsImRlZmF1bHRSZXN1bHQiLCJjYWxsYmFjayIsImFyZ3MiLCJyZXN1bHQiLCJ3YWl0Rm9yRnVuY3Rpb24iLCJkb2N1bWVudCIsInJlYWR5U3RhdGUiLCIkJGV2YWwiLCJlIiwibWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJwYWdlRXZhbCIsImVsZW1lbnRQcmVzZW50T25QYWdlIiwiJCIsImRyb3Bkb3duU2VsZWN0Iiwic2VsZWN0U2VsZWN0b3IiLCJzZWxlY3QiLCJkcm9wZG93bkVsZW1lbnRzIiwib3B0aW9ucyIsImV2YWx1YXRlIiwib3B0aW9uU2VsZWN0b3IiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZmlsdGVyIiwibyIsIm1hcCIsIm5hbWUiLCJ0ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRnJhbWUsIHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuL3dhaXRpbmcnO1xuXG5hc3luYyBmdW5jdGlvbiB3YWl0VW50aWxFbGVtZW50Rm91bmQoXG4gIHBhZ2U6IFBhZ2UgfCBGcmFtZSxcbiAgZWxlbWVudFNlbGVjdG9yOiBzdHJpbmcsXG4gIG9ubHlWaXNpYmxlID0gZmFsc2UsXG4gIHRpbWVvdXQ/OiBudW1iZXIsXG4pIHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoZWxlbWVudFNlbGVjdG9yLCB7IHZpc2libGU6IG9ubHlWaXNpYmxlLCB0aW1lb3V0IH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2U6IFBhZ2UsIGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nLCB0aW1lb3V0PzogbnVtYmVyKSB7XG4gIGF3YWl0IHBhZ2Uud2FpdEZvclNlbGVjdG9yKGVsZW1lbnRTZWxlY3RvciwgeyBoaWRkZW46IHRydWUsIHRpbWVvdXQgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRVbnRpbElmcmFtZUZvdW5kKFxuICBwYWdlOiBQYWdlLFxuICBmcmFtZVByZWRpY2F0ZTogKGZyYW1lOiBGcmFtZSkgPT4gYm9vbGVhbixcbiAgZGVzY3JpcHRpb24gPSAnJyxcbiAgdGltZW91dCA9IDMwMDAwLFxuKSB7XG4gIGxldCBmcmFtZTogRnJhbWUgfCB1bmRlZmluZWQ7XG4gIGF3YWl0IHdhaXRVbnRpbChcbiAgICAoKSA9PiB7XG4gICAgICBmcmFtZSA9IHBhZ2UuZnJhbWVzKCkuZmluZChmcmFtZVByZWRpY2F0ZSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICAgIH0sXG4gICAgZGVzY3JpcHRpb24sXG4gICAgdGltZW91dCxcbiAgICAxMDAwLFxuICApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmaW5kIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaWxsSW5wdXQocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoaW5wdXRTZWxlY3RvciwgKGlucHV0OiBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICB9KTtcbiAgYXdhaXQgcGFnZU9yRnJhbWUudHlwZShpbnB1dFNlbGVjdG9yLCBpbnB1dFZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0VmFsdWUocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoXG4gICAgaW5wdXRTZWxlY3RvcixcbiAgICAoaW5wdXQ6IEVsZW1lbnQsIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dDtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH0sXG4gICAgW2lucHV0VmFsdWVdLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0J1dHRvbihwYWdlOiBQYWdlIHwgRnJhbWUsIGJ1dHRvblNlbGVjdG9yOiBzdHJpbmcpIHtcbiAgYXdhaXQgcGFnZS4kZXZhbChidXR0b25TZWxlY3RvciwgZWwgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xpY2tMaW5rKHBhZ2U6IFBhZ2UsIGFTZWxlY3Rvcjogc3RyaW5nKSB7XG4gIGF3YWl0IHBhZ2UuJGV2YWwoYVNlbGVjdG9yLCAoZWw6IGFueSkgPT4ge1xuICAgIGlmICghZWwgfHwgdHlwZW9mIGVsLmNsaWNrID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsLmNsaWNrKCk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYWdlRXZhbEFsbDxSPihcbiAgcGFnZTogUGFnZSB8IEZyYW1lLFxuICBzZWxlY3Rvcjogc3RyaW5nLFxuICBkZWZhdWx0UmVzdWx0OiBhbnksXG4gIGNhbGxiYWNrOiAoZWxlbWVudHM6IEVsZW1lbnRbXSwgLi4uYXJnczogYW55KSA9PiBSLFxuICAuLi5hcmdzOiBhbnlbXVxuKTogUHJvbWlzZTxSPiB7XG4gIGxldCByZXN1bHQgPSBkZWZhdWx0UmVzdWx0O1xuICB0cnkge1xuICAgIGF3YWl0IHBhZ2Uud2FpdEZvckZ1bmN0aW9uKCgpID0+IGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpO1xuICAgIHJlc3VsdCA9IGF3YWl0IHBhZ2UuJCRldmFsKHNlbGVjdG9yLCBjYWxsYmFjaywgLi4uYXJncyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBUT0RPIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHRvIHB1cHBldGVlckAxLjUuMCB3aGljaCBicmVha3MgJCRldmFsIGJldmFodmlvciB1bnRpbCB0aGV5IHdpbGwgcmVsZWFzZSBhIG5ldyB2ZXJzaW9uLlxuICAgIGlmICghKGUgYXMgRXJyb3IpLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnRXJyb3I6IGZhaWxlZCB0byBmaW5kIGVsZW1lbnRzIG1hdGNoaW5nIHNlbGVjdG9yJykpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZUV2YWw8Uj4oXG4gIHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsXG4gIHNlbGVjdG9yOiBzdHJpbmcsXG4gIGRlZmF1bHRSZXN1bHQ6IGFueSxcbiAgY2FsbGJhY2s6IChlbGVtZW50czogRWxlbWVudCwgLi4uYXJnczogYW55KSA9PiBSLFxuICAuLi5hcmdzOiBhbnlbXVxuKTogUHJvbWlzZTxSPiB7XG4gIGxldCByZXN1bHQgPSBkZWZhdWx0UmVzdWx0O1xuICB0cnkge1xuICAgIGF3YWl0IHBhZ2VPckZyYW1lLndhaXRGb3JGdW5jdGlvbigoKSA9PiBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKTtcbiAgICByZXN1bHQgPSBhd2FpdCBwYWdlT3JGcmFtZS4kZXZhbChzZWxlY3RvciwgY2FsbGJhY2ssIC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwdXBwZXRlZXJAMS41LjAgd2hpY2ggYnJlYWtzICQkZXZhbCBiZXZhaHZpb3IgdW50aWwgdGhleSB3aWxsIHJlbGVhc2UgYSBuZXcgdmVyc2lvbi5cbiAgICBpZiAoIShlIGFzIEVycm9yKS5tZXNzYWdlLnN0YXJ0c1dpdGgoJ0Vycm9yOiBmYWlsZWQgdG8gZmluZCBlbGVtZW50IG1hdGNoaW5nIHNlbGVjdG9yJykpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgc2VsZWN0b3I6IHN0cmluZykge1xuICByZXR1cm4gKGF3YWl0IHBhZ2VPckZyYW1lLiQoc2VsZWN0b3IpKSAhPT0gbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZHJvcGRvd25TZWxlY3QocGFnZTogUGFnZSwgc2VsZWN0U2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICBhd2FpdCBwYWdlLnNlbGVjdChzZWxlY3RTZWxlY3RvciwgdmFsdWUpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkcm9wZG93bkVsZW1lbnRzKHBhZ2U6IFBhZ2UsIHNlbGVjdG9yOiBzdHJpbmcpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUob3B0aW9uU2VsZWN0b3IgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTE9wdGlvbkVsZW1lbnQ+KG9wdGlvblNlbGVjdG9yKSlcbiAgICAgIC5maWx0ZXIobyA9PiBvLnZhbHVlKVxuICAgICAgLm1hcChvID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBvLnRleHQsXG4gICAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfSwgYCR7c2VsZWN0b3J9ID4gb3B0aW9uYCk7XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5leHBvcnQge1xuICBjbGlja0J1dHRvbixcbiAgY2xpY2tMaW5rLFxuICBkcm9wZG93bkVsZW1lbnRzLFxuICBkcm9wZG93blNlbGVjdCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG4gIGZpbGxJbnB1dCxcbiAgcGFnZUV2YWwsXG4gIHBhZ2VFdmFsQWxsLFxuICBzZXRWYWx1ZSxcbiAgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICB3YWl0VW50aWxJZnJhbWVGb3VuZCxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBRUEsZUFBZUMscUJBQXFCQSxDQUNsQ0MsSUFBa0IsRUFDbEJDLGVBQXVCLEVBQ3ZCQyxXQUFXLEdBQUcsS0FBSyxFQUNuQkMsT0FBZ0IsRUFDaEI7RUFDQSxNQUFNSCxJQUFJLENBQUNJLGVBQWUsQ0FBQ0gsZUFBZSxFQUFFO0lBQUVJLE9BQU8sRUFBRUgsV0FBVztJQUFFQztFQUFRLENBQUMsQ0FBQztBQUNoRjtBQUVBLGVBQWVHLHlCQUF5QkEsQ0FBQ04sSUFBVSxFQUFFQyxlQUF1QixF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
@@ -0,0 +1,6 @@
1
+ import { type Page } from 'puppeteer';
2
+ export declare function fetchGet<TResult>(url: string, extraHeaders: Record<string, any>): Promise<TResult>;
3
+ export declare function fetchPost(url: string, data: Record<string, any>, extraHeaders?: Record<string, any>): Promise<any>;
4
+ export declare function fetchGraphql<TResult>(url: string, query: string, variables?: Record<string, unknown>, extraHeaders?: Record<string, any>): Promise<TResult>;
5
+ export declare function fetchGetWithinPage<TResult>(page: Page, url: string, ignoreErrors?: boolean): Promise<TResult | null>;
6
+ export declare function fetchPostWithinPage<TResult>(page: Page, url: string, data: Record<string, any>, extraHeaders?: Record<string, any>, ignoreErrors?: boolean): Promise<TResult | null>;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchGet = fetchGet;
7
+ exports.fetchGetWithinPage = fetchGetWithinPage;
8
+ exports.fetchGraphql = fetchGraphql;
9
+ exports.fetchPost = fetchPost;
10
+ exports.fetchPostWithinPage = fetchPostWithinPage;
11
+ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const JSON_CONTENT_TYPE = 'application/json';
14
+ function getJsonHeaders() {
15
+ return {
16
+ Accept: JSON_CONTENT_TYPE,
17
+ 'Content-Type': JSON_CONTENT_TYPE
18
+ };
19
+ }
20
+ async function fetchGet(url, extraHeaders) {
21
+ let headers = getJsonHeaders();
22
+ if (extraHeaders) {
23
+ headers = Object.assign(headers, extraHeaders);
24
+ }
25
+ const request = {
26
+ method: 'GET',
27
+ headers
28
+ };
29
+ const fetchResult = await (0, _nodeFetch.default)(url, request);
30
+ if (fetchResult.status !== 200) {
31
+ throw new Error(`sending a request to the institute server returned with status code ${fetchResult.status}`);
32
+ }
33
+ return fetchResult.json();
34
+ }
35
+ async function fetchPost(url, data, extraHeaders = {}) {
36
+ const request = {
37
+ method: 'POST',
38
+ headers: {
39
+ ...getJsonHeaders(),
40
+ ...extraHeaders
41
+ },
42
+ body: JSON.stringify(data)
43
+ };
44
+ const result = await (0, _nodeFetch.default)(url, request);
45
+ return result.json();
46
+ }
47
+ async function fetchGraphql(url, query, variables = {}, extraHeaders = {}) {
48
+ const result = await fetchPost(url, {
49
+ operationName: null,
50
+ query,
51
+ variables
52
+ }, extraHeaders);
53
+ if (result.errors?.length) {
54
+ throw new Error(result.errors[0].message);
55
+ }
56
+ return result.data;
57
+ }
58
+ async function fetchGetWithinPage(page, url, ignoreErrors = false) {
59
+ const [result, status] = await page.evaluate(async innerUrl => {
60
+ let response;
61
+ try {
62
+ response = await fetch(innerUrl, {
63
+ credentials: 'include'
64
+ });
65
+ if (response.status === 204) {
66
+ return [null, response.status];
67
+ }
68
+ return [await response.text(), response.status];
69
+ } catch (e) {
70
+ throw new Error(`fetchGetWithinPage error: ${e instanceof Error ? `${e.message}\n${e.stack}` : String(e)}, url: ${innerUrl}, status: ${response?.status}`);
71
+ }
72
+ }, url);
73
+ if (result !== null) {
74
+ try {
75
+ return JSON.parse(result);
76
+ } catch (e) {
77
+ if (!ignoreErrors) {
78
+ throw new Error(`fetchGetWithinPage parse error: ${e instanceof Error ? `${e.message}\n${e.stack}` : String(e)}, url: ${url}, result: ${result}, status: ${status}`);
79
+ }
80
+ }
81
+ }
82
+ return null;
83
+ }
84
+ async function fetchPostWithinPage(page, url, data, extraHeaders = {}, ignoreErrors = false) {
85
+ const result = await page.evaluate(async (innerUrl, innerData, innerExtraHeaders) => {
86
+ const response = await fetch(innerUrl, {
87
+ method: 'POST',
88
+ body: JSON.stringify(innerData),
89
+ credentials: 'include',
90
+ // eslint-disable-next-line prefer-object-spread
91
+ headers: Object.assign({
92
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
93
+ }, innerExtraHeaders)
94
+ });
95
+ if (response.status === 204) {
96
+ return null;
97
+ }
98
+ return response.text();
99
+ }, url, data, extraHeaders);
100
+ try {
101
+ if (result !== null) {
102
+ return JSON.parse(result);
103
+ }
104
+ } catch (e) {
105
+ if (!ignoreErrors) {
106
+ throw new Error(`fetchPostWithinPage parse error: ${e instanceof Error ? `${e.message}\n${e.stack}` : String(e)}, url: ${url}, data: ${JSON.stringify(data)}, extraHeaders: ${JSON.stringify(extraHeaders)}, result: ${result}`);
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJKU09OX0NPTlRFTlRfVFlQRSIsImdldEpzb25IZWFkZXJzIiwiQWNjZXB0IiwiZmV0Y2hHZXQiLCJ1cmwiLCJleHRyYUhlYWRlcnMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwicmVxdWVzdCIsIm1ldGhvZCIsImZldGNoUmVzdWx0Iiwibm9kZUZldGNoIiwic3RhdHVzIiwiRXJyb3IiLCJqc29uIiwiZmV0Y2hQb3N0IiwiZGF0YSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwiZmV0Y2hHcmFwaHFsIiwicXVlcnkiLCJ2YXJpYWJsZXMiLCJvcGVyYXRpb25OYW1lIiwiZXJyb3JzIiwibGVuZ3RoIiwibWVzc2FnZSIsImZldGNoR2V0V2l0aGluUGFnZSIsInBhZ2UiLCJpZ25vcmVFcnJvcnMiLCJldmFsdWF0ZSIsImlubmVyVXJsIiwicmVzcG9uc2UiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwidGV4dCIsInN0YWNrIiwiU3RyaW5nIiwicGFyc2UiLCJmZXRjaFBvc3RXaXRoaW5QYWdlIiwiaW5uZXJEYXRhIiwiaW5uZXJFeHRyYUhlYWRlcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9mZXRjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm9kZUZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuY29uc3QgSlNPTl9DT05URU5UX1RZUEUgPSAnYXBwbGljYXRpb24vanNvbic7XG5cbmZ1bmN0aW9uIGdldEpzb25IZWFkZXJzKCkge1xuICByZXR1cm4ge1xuICAgIEFjY2VwdDogSlNPTl9DT05URU5UX1RZUEUsXG4gICAgJ0NvbnRlbnQtVHlwZSc6IEpTT05fQ09OVEVOVF9UWVBFLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXQ8VFJlc3VsdD4odXJsOiBzdHJpbmcsIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBsZXQgaGVhZGVycyA9IGdldEpzb25IZWFkZXJzKCk7XG4gIGlmIChleHRyYUhlYWRlcnMpIHtcbiAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBleHRyYUhlYWRlcnMpO1xuICB9XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzLFxuICB9O1xuICBjb25zdCBmZXRjaFJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuXG4gIGlmIChmZXRjaFJlc3VsdC5zdGF0dXMgIT09IDIwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIGluc3RpdHV0ZSBzZXJ2ZXIgcmV0dXJuZWQgd2l0aCBzdGF0dXMgY29kZSAke2ZldGNoUmVzdWx0LnN0YXR1c31gKTtcbiAgfVxuXG4gIHJldHVybiBmZXRjaFJlc3VsdC5qc29uKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBvc3QodXJsOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogeyAuLi5nZXRKc29uSGVhZGVycygpLCAuLi5leHRyYUhlYWRlcnMgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgfTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbm9kZUZldGNoKHVybCwgcmVxdWVzdCk7XG4gIHJldHVybiByZXN1bHQuanNvbigpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHcmFwaHFsPFRSZXN1bHQ+KFxuICB1cmw6IHN0cmluZyxcbiAgcXVlcnk6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaFBvc3QodXJsLCB7IG9wZXJhdGlvbk5hbWU6IG51bGwsIHF1ZXJ5LCB2YXJpYWJsZXMgfSwgZXh0cmFIZWFkZXJzKTtcbiAgaWYgKHJlc3VsdC5lcnJvcnM/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3JzWzBdLm1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YSBhcyBQcm9taXNlPFRSZXN1bHQ+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXRXaXRoaW5QYWdlPFRSZXN1bHQ+KFxuICBwYWdlOiBQYWdlLFxuICB1cmw6IHN0cmluZyxcbiAgaWdub3JlRXJyb3JzID0gZmFsc2UsXG4pOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gIGNvbnN0IFtyZXN1bHQsIHN0YXR1c10gPSBhd2FpdCBwYWdlLmV2YWx1YXRlKGFzeW5jIGlubmVyVXJsID0+IHtcbiAgICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKGlubmVyVXJsLCB7IGNyZWRlbnRpYWxzOiAnaW5jbHVkZScgfSk7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgICAgcmV0dXJuIFtudWxsLCByZXNwb25zZS5zdGF0dXNdIGFzIGNvbnN0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIFthd2FpdCByZXNwb25zZS50ZXh0KCksIHJlc3BvbnNlLnN0YXR1c10gYXMgY29uc3Q7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmV0Y2hHZXRXaXRoaW5QYWdlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHtpbm5lclVybH0sIHN0YXR1czogJHtyZXNwb25zZT8uc3RhdHVzfWAsXG4gICAgICApO1xuICAgIH1cbiAgfSwgdXJsKTtcbiAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghaWdub3JlRXJyb3JzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2hHZXRXaXRoaW5QYWdlIHBhcnNlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHt1cmx9LCByZXN1bHQ6ICR7cmVzdWx0fSwgc3RhdHVzOiAke3N0YXR1c31gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUG9zdFdpdGhpblBhZ2U8VFJlc3VsdD4oXG4gIHBhZ2U6IFBhZ2UsXG4gIHVybDogc3RyaW5nLFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgaWdub3JlRXJyb3JzID0gZmFsc2UsXG4pOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoXG4gICAgYXN5bmMgKGlubmVyVXJsOiBzdHJpbmcsIGlubmVyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiwgaW5uZXJFeHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaW5uZXJVcmwsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGlubmVyRGF0YSksXG4gICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItb2JqZWN0LXNwcmVhZFxuICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnIH0sXG4gICAgICAgICAgaW5uZXJFeHRyYUhlYWRlcnMsXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG4gICAgfSxcbiAgICB1cmwsXG4gICAgZGF0YSxcbiAgICBleHRyYUhlYWRlcnMsXG4gICk7XG5cbiAgdHJ5IHtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghaWdub3JlRXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBmZXRjaFBvc3RXaXRoaW5QYWdlIHBhcnNlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHt1cmx9LCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSwgZXh0cmFIZWFkZXJzOiAke0pTT04uc3RyaW5naWZ5KGV4dHJhSGVhZGVycyl9LCByZXN1bHQ6ICR7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
@@ -0,0 +1,6 @@
1
+ import { type Frame, type Page, type WaitForOptions } from 'puppeteer';
2
+ export declare function waitForNavigation(pageOrFrame: Page | Frame, options?: WaitForOptions): Promise<void>;
3
+ export declare function waitForNavigationAndDomLoad(page: Page): Promise<void>;
4
+ export declare function getCurrentUrl(pageOrFrame: Page | Frame, clientSide?: boolean): string | Promise<string>;
5
+ export declare function waitForRedirect(pageOrFrame: Page | Frame, timeout?: number, clientSide?: boolean, ignoreList?: string[]): Promise<void>;
6
+ export declare function waitForUrl(pageOrFrame: Page | Frame, url: string | RegExp, timeout?: number, clientSide?: boolean): Promise<void>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCurrentUrl = getCurrentUrl;
7
+ exports.waitForNavigation = waitForNavigation;
8
+ exports.waitForNavigationAndDomLoad = waitForNavigationAndDomLoad;
9
+ exports.waitForRedirect = waitForRedirect;
10
+ exports.waitForUrl = waitForUrl;
11
+ var _waiting = require("./waiting");
12
+ async function waitForNavigation(pageOrFrame, options) {
13
+ await pageOrFrame.waitForNavigation(options);
14
+ }
15
+ async function waitForNavigationAndDomLoad(page) {
16
+ await waitForNavigation(page, {
17
+ waitUntil: 'domcontentloaded'
18
+ });
19
+ }
20
+ function getCurrentUrl(pageOrFrame, clientSide = false) {
21
+ if (clientSide) {
22
+ return pageOrFrame.evaluate(() => window.location.href);
23
+ }
24
+ return pageOrFrame.url();
25
+ }
26
+ async function waitForRedirect(pageOrFrame, timeout = 20000, clientSide = false, ignoreList = []) {
27
+ const initial = await getCurrentUrl(pageOrFrame, clientSide);
28
+ await (0, _waiting.waitUntil)(async () => {
29
+ const current = await getCurrentUrl(pageOrFrame, clientSide);
30
+ return current !== initial && !ignoreList.includes(current);
31
+ }, `waiting for redirect from ${initial}`, timeout, 1000);
32
+ }
33
+ async function waitForUrl(pageOrFrame, url, timeout = 20000, clientSide = false) {
34
+ await (0, _waiting.waitUntil)(async () => {
35
+ const current = await getCurrentUrl(pageOrFrame, clientSide);
36
+ return url instanceof RegExp ? url.test(current) : url === current;
37
+ }, `waiting for url to be ${url}`, timeout, 1000);
38
+ }
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2FpdGluZyIsInJlcXVpcmUiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsInBhZ2VPckZyYW1lIiwib3B0aW9ucyIsIndhaXRGb3JOYXZpZ2F0aW9uQW5kRG9tTG9hZCIsInBhZ2UiLCJ3YWl0VW50aWwiLCJnZXRDdXJyZW50VXJsIiwiY2xpZW50U2lkZSIsImV2YWx1YXRlIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwidXJsIiwid2FpdEZvclJlZGlyZWN0IiwidGltZW91dCIsImlnbm9yZUxpc3QiLCJpbml0aWFsIiwiY3VycmVudCIsImluY2x1ZGVzIiwid2FpdEZvclVybCIsIlJlZ0V4cCIsInRlc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9uYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRnJhbWUsIHR5cGUgUGFnZSwgdHlwZSBXYWl0Rm9yT3B0aW9ucyB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuL3dhaXRpbmcnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvck5hdmlnYXRpb24ocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgb3B0aW9ucz86IFdhaXRGb3JPcHRpb25zKSB7XG4gIGF3YWl0IHBhZ2VPckZyYW1lLndhaXRGb3JOYXZpZ2F0aW9uKG9wdGlvbnMpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvck5hdmlnYXRpb25BbmREb21Mb2FkKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSwgeyB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRVcmwocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgY2xpZW50U2lkZSA9IGZhbHNlKSB7XG4gIGlmIChjbGllbnRTaWRlKSB7XG4gICAgcmV0dXJuIHBhZ2VPckZyYW1lLmV2YWx1YXRlKCgpID0+IHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgfVxuXG4gIHJldHVybiBwYWdlT3JGcmFtZS51cmwoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JSZWRpcmVjdChcbiAgcGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSxcbiAgdGltZW91dCA9IDIwMDAwLFxuICBjbGllbnRTaWRlID0gZmFsc2UsXG4gIGlnbm9yZUxpc3Q6IHN0cmluZ1tdID0gW10sXG4pIHtcbiAgY29uc3QgaW5pdGlhbCA9IGF3YWl0IGdldEN1cnJlbnRVcmwocGFnZU9yRnJhbWUsIGNsaWVudFNpZGUpO1xuXG4gIGF3YWl0IHdhaXRVbnRpbChcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZ2V0Q3VycmVudFVybChwYWdlT3JGcmFtZSwgY2xpZW50U2lkZSk7XG4gICAgICByZXR1cm4gY3VycmVudCAhPT0gaW5pdGlhbCAmJiAhaWdub3JlTGlzdC5pbmNsdWRlcyhjdXJyZW50KTtcbiAgICB9LFxuICAgIGB3YWl0aW5nIGZvciByZWRpcmVjdCBmcm9tICR7aW5pdGlhbH1gLFxuICAgIHRpbWVvdXQsXG4gICAgMTAwMCxcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JVcmwocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgdXJsOiBzdHJpbmcgfCBSZWdFeHAsIHRpbWVvdXQgPSAyMDAwMCwgY2xpZW50U2lkZSA9IGZhbHNlKSB7XG4gIGF3YWl0IHdhaXRVbnRpbChcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZ2V0Q3VycmVudFVybChwYWdlT3JGcmFtZSwgY2xpZW50U2lkZSk7XG4gICAgICByZXR1cm4gdXJsIGluc3RhbmNlb2YgUmVnRXhwID8gdXJsLnRlc3QoY3VycmVudCkgOiB1cmwgPT09IGN1cnJlbnQ7XG4gICAgfSxcbiAgICBgd2FpdGluZyBmb3IgdXJsIHRvIGJlICR7dXJsfWAsXG4gICAgdGltZW91dCxcbiAgICAxMDAwLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBRU8sZUFBZUMsaUJBQWlCQSxDQUFDQyxXQUF5QixFQUFFQyxPQUF3QixFQUFFO0VBQzNGLE1BQU1ELFdBQVcsQ0FBQ0QsaUJBQWlCLENBQUNFLE9BQU8sQ0FBQztBQUM5QztBQUVPLGVBQWVDLDJCQUEyQkEsQ0FBQ0MsSUFBVSxFQUFFO0VBQzVELE1BQU1KLGlCQUFpQixDQUFDSSxJQUFJLEVBQUU7SUFBRUMsU0FBUyxFQUFFO0VBQW1CLENBQUMsQ0FBQztBQUNsRTtBQUVPLFNBQVNDLGFBQWFBLENBQUNMLFdBQXlCLEVBQUVNLFVBQVUsR0FBRyxLQUFLLEVBQUU7RUFDM0UsSUFBSUEsVUFBVSxFQUFFO0lBQ2QsT0FBT04sV0FBVyxDQUFDTyxRQUFRLENBQUMsTUFBTUMsTUFBTSxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQztFQUN6RDtFQUVBLE9BQU9WLFdBQVcsQ0FBQ1csR0FBRyxDQUFDLENBQUM7QUFDMUI7QUFFTyxlQUFlQyxlQUFlQSxDQUNuQ1osV0FBeUIsRUFDekJhLE9BQU8sR0FBRyxLQUFLLEVBQ2ZQLFVBQVUsR0FBRyxLQUFLLEVBQ2xCUSxVQUFvQixHQUFHLEVBQUUsRUFDekI7RUFDQSxNQUFNQyxPQUFPLEdBQUcsTUFBTVYsYUFBYSxDQUFDTCxXQUFXLEVBQUVNLFVBQVUsQ0FBQztFQUU1RCxNQUFNLElBQUFGLGtCQUFTLEVBQ2IsWUFBWTtJQUNWLE1BQU1ZLE9BQU8sR0FBRyxNQUFNWCxhQUFhLENBQUNMLFdBQVcsRUFBRU0sVUFBVSxDQUFDO0lBQzVELE9BQU9VLE9BQU8sS0FBS0QsT0FBTyxJQUFJLENBQUNELFVBQVUsQ0FBQ0csUUFBUSxDQUFDRCxPQUFPLENBQUM7RUFDN0QsQ0FBQyxFQUNELDZCQUE2QkQsT0FBTyxFQUFFLEVBQ3RDRixPQUFPLEVBQ1AsSUFDRixDQUFDO0FBQ0g7QUFFTyxlQUFlSyxVQUFVQSxDQUFDbEIsV0FBeUIsRUFBRVcsR0FBb0IsRUFBRUUsT0FBTyxHQUFHLEtBQUssRUFBRVAsVUFBVSxHQUFHLEtBQUssRUFBRTtFQUNySCxNQUFNLElBQUFGLGtCQUFTLEVBQ2IsWUFBWTtJQUNWLE1BQU1ZLE9BQU8sR0FBRyxNQUFNWCxhQUFhLENBQUNMLFdBQVcsRUFBRU0sVUFBVSxDQUFDO0lBQzVELE9BQU9LLEdBQUcsWUFBWVEsTUFBTSxHQUFHUixHQUFHLENBQUNTLElBQUksQ0FBQ0osT0FBTyxDQUFDLEdBQUdMLEdBQUcsS0FBS0ssT0FBTztFQUNwRSxDQUFDLEVBQ0QseUJBQXlCTCxHQUFHLEVBQUUsRUFDOUJFLE9BQU8sRUFDUCxJQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ import { type Page } from 'puppeteer';
2
+ export declare function getFromSessionStorage<T>(page: Page, key: string): Promise<T | null>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFromSessionStorage = getFromSessionStorage;
7
+ async function getFromSessionStorage(page, key) {
8
+ const strData = await page.evaluate(k => {
9
+ return sessionStorage.getItem(k);
10
+ }, key);
11
+ if (!strData) return null;
12
+ return JSON.parse(strData);
13
+ }
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRGcm9tU2Vzc2lvblN0b3JhZ2UiLCJwYWdlIiwia2V5Iiwic3RyRGF0YSIsImV2YWx1YXRlIiwiayIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3N0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZyb21TZXNzaW9uU3RvcmFnZTxUPihwYWdlOiBQYWdlLCBrZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgY29uc3Qgc3RyRGF0YSA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKGs6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGspO1xuICB9LCBrZXkpO1xuXG4gIGlmICghc3RyRGF0YSkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyRGF0YSkgYXMgVDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sZUFBZUEscUJBQXFCQSxDQUFJQyxJQUFVLEVBQUVDLEdBQVcsRUFBcUI7RUFDekYsTUFBTUMsT0FBTyxHQUFHLE1BQU1GLElBQUksQ0FBQ0csUUFBUSxDQUFFQyxDQUFTLElBQUs7SUFDakQsT0FBT0MsY0FBYyxDQUFDQyxPQUFPLENBQUNGLENBQUMsQ0FBQztFQUNsQyxDQUFDLEVBQUVILEdBQUcsQ0FBQztFQUVQLElBQUksQ0FBQ0MsT0FBTyxFQUFFLE9BQU8sSUFBSTtFQUV6QixPQUFPSyxJQUFJLENBQUNDLEtBQUssQ0FBQ04sT0FBTyxDQUFDO0FBQzVCIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,5 @@
1
+ import { type Moment } from 'moment';
2
+ import { type Transaction } from '../transactions';
3
+ export declare function fixInstallments(txns: Transaction[]): Transaction[];
4
+ export declare function sortTransactionsByDate(txns: Transaction[]): Transaction[];
5
+ export declare function filterOldTransactions(txns: Transaction[], startMoment: Moment, combineInstallments: boolean): Transaction[];