hydra-crawler 1.4.4 → 2.0.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.
Files changed (305) hide show
  1. package/dist/apis/autocomplete.api.d.ts +7 -0
  2. package/dist/apis/autocomplete.api.js +15 -9
  3. package/dist/apis/autocomplete.api.js.map +1 -0
  4. package/dist/apis/bugs.api.d.ts +7 -0
  5. package/dist/apis/bugs.api.js +21 -15
  6. package/dist/apis/bugs.api.js.map +1 -0
  7. package/dist/apis/crawl.api.d.ts +7 -0
  8. package/dist/apis/crawl.api.js +15 -9
  9. package/dist/apis/crawl.api.js.map +1 -0
  10. package/dist/apis/domains.api.d.ts +7 -0
  11. package/dist/apis/domains.api.js +24 -19
  12. package/dist/apis/domains.api.js.map +1 -0
  13. package/dist/apis/images.api.d.ts +7 -0
  14. package/dist/apis/images.api.js +20 -14
  15. package/dist/apis/images.api.js.map +1 -0
  16. package/dist/apis/statistics.api.d.ts +8 -0
  17. package/dist/apis/statistics.api.js +27 -20
  18. package/dist/apis/statistics.api.js.map +1 -0
  19. package/dist/apis/test.api.d.ts +5 -0
  20. package/dist/apis/test.api.js +15 -9
  21. package/dist/apis/test.api.js.map +1 -0
  22. package/dist/apis/urls.api.d.ts +7 -0
  23. package/dist/apis/urls.api.js +21 -15
  24. package/dist/apis/urls.api.js.map +1 -0
  25. package/dist/apps/cleanup.app.d.ts +19 -0
  26. package/dist/apps/cleanup.app.js +118 -100
  27. package/dist/apps/cleanup.app.js.map +1 -0
  28. package/dist/apps/cross-populate-export.app.d.ts +12 -0
  29. package/dist/apps/cross-populate-export.app.js +60 -47
  30. package/dist/apps/cross-populate-export.app.js.map +1 -0
  31. package/dist/apps/cross-populate-import.app.d.ts +12 -0
  32. package/dist/apps/cross-populate-import.app.js +64 -51
  33. package/dist/apps/cross-populate-import.app.js.map +1 -0
  34. package/dist/apps/denylist.app.d.ts +17 -0
  35. package/dist/apps/denylist.app.js +115 -98
  36. package/dist/apps/denylist.app.js.map +1 -0
  37. package/dist/apps/expire.app.d.ts +19 -0
  38. package/dist/apps/expire.app.js +44 -31
  39. package/dist/apps/expire.app.js.map +1 -0
  40. package/dist/apps/extract-text.app.d.ts +8 -0
  41. package/dist/apps/extract-text.app.js +43 -35
  42. package/dist/apps/extract-text.app.js.map +1 -0
  43. package/dist/apps/hydra.app.d.ts +34 -0
  44. package/dist/apps/hydra.app.js +150 -137
  45. package/dist/apps/hydra.app.js.map +1 -0
  46. package/dist/apps/import.app.d.ts +11 -0
  47. package/dist/apps/import.app.js +44 -32
  48. package/dist/apps/import.app.js.map +1 -0
  49. package/dist/apps/internal-hydra-common.app.d.ts +28 -0
  50. package/dist/apps/internal-hydra-common.app.js +5 -11
  51. package/dist/apps/internal-hydra-common.app.js.map +1 -0
  52. package/dist/apps/query.app.d.ts +20 -0
  53. package/dist/apps/query.app.js +63 -49
  54. package/dist/apps/query.app.js.map +1 -0
  55. package/dist/apps/reattempt.app.d.ts +17 -0
  56. package/dist/apps/reattempt.app.js +66 -53
  57. package/dist/apps/reattempt.app.js.map +1 -0
  58. package/dist/apps/requeue-domain.app.d.ts +13 -0
  59. package/dist/apps/requeue-domain.app.js +50 -37
  60. package/dist/apps/requeue-domain.app.js.map +1 -0
  61. package/dist/apps/seed.app.d.ts +15 -0
  62. package/dist/apps/seed.app.js +53 -40
  63. package/dist/apps/seed.app.js.map +1 -0
  64. package/dist/apps/startup.app.d.ts +11 -0
  65. package/dist/apps/startup.app.js +51 -38
  66. package/dist/apps/startup.app.js.map +1 -0
  67. package/dist/apps/unarchive.app.d.ts +15 -0
  68. package/dist/apps/unarchive.app.js +67 -54
  69. package/dist/apps/unarchive.app.js.map +1 -0
  70. package/dist/classes/cleaner.d.ts +12 -0
  71. package/dist/classes/cleaner.js +227 -207
  72. package/dist/classes/cleaner.js.map +1 -0
  73. package/dist/classes/crawler.d.ts +34 -0
  74. package/dist/classes/crawler.js +248 -241
  75. package/dist/classes/crawler.js.map +1 -0
  76. package/dist/classes/dns.d.ts +3 -0
  77. package/dist/classes/dns.js +10 -13
  78. package/dist/classes/dns.js.map +1 -0
  79. package/dist/classes/expirer.d.ts +10 -0
  80. package/dist/classes/expirer.js +107 -94
  81. package/dist/classes/expirer.js.map +1 -0
  82. package/dist/classes/expiry.d.ts +8 -0
  83. package/dist/classes/expiry.js +16 -19
  84. package/dist/classes/expiry.js.map +1 -0
  85. package/dist/classes/lists.d.ts +9 -0
  86. package/dist/classes/lists.js +13 -18
  87. package/dist/classes/lists.js.map +1 -0
  88. package/dist/classes/robot.d.ts +15 -0
  89. package/dist/classes/robot.js +40 -30
  90. package/dist/classes/robot.js.map +1 -0
  91. package/dist/classes/tracker.d.ts +25 -0
  92. package/dist/classes/tracker.js +82 -64
  93. package/dist/classes/tracker.js.map +1 -0
  94. package/dist/cli.d.ts +1 -0
  95. package/dist/cli.js +72 -65
  96. package/dist/cli.js.map +1 -0
  97. package/dist/enums/eavailable-strategy.d.ts +4 -0
  98. package/dist/enums/eavailable-strategy.js +3 -5
  99. package/dist/enums/eavailable-strategy.js.map +1 -0
  100. package/dist/enums/elist.d.ts +7 -0
  101. package/dist/enums/elist.js +7 -11
  102. package/dist/enums/elist.js.map +1 -0
  103. package/dist/enums/eserver.d.ts +8 -0
  104. package/dist/enums/eserver.js +3 -5
  105. package/dist/enums/eserver.js.map +1 -0
  106. package/dist/enums/ex-powered-by.d.ts +6 -0
  107. package/dist/enums/ex-powered-by.js +3 -5
  108. package/dist/enums/ex-powered-by.js.map +1 -0
  109. package/dist/helpers/matcher.d.ts +5 -0
  110. package/dist/helpers/matcher.js +2 -5
  111. package/dist/helpers/matcher.js.map +1 -0
  112. package/dist/helpers/random.d.ts +4 -0
  113. package/dist/helpers/random.js +2 -5
  114. package/dist/helpers/random.js.map +1 -0
  115. package/dist/helpers/utf-decoder.d.ts +4 -0
  116. package/dist/helpers/utf-decoder.js +3 -6
  117. package/dist/helpers/utf-decoder.js.map +1 -0
  118. package/dist/interfaces/iexpiry.d.ts +7 -0
  119. package/dist/interfaces/iexpiry.js +9 -13
  120. package/dist/interfaces/iexpiry.js.map +1 -0
  121. package/dist/interfaces/imatch.d.ts +6 -0
  122. package/dist/interfaces/imatch.js +6 -9
  123. package/dist/interfaces/imatch.js.map +1 -0
  124. package/dist/interfaces/iparser-config.d.ts +4 -0
  125. package/dist/interfaces/iparser-config.js +4 -7
  126. package/dist/interfaces/iparser-config.js.map +1 -0
  127. package/dist/interfaces/iparser.d.ts +8 -0
  128. package/dist/interfaces/iparser.js +2 -2
  129. package/dist/interfaces/iparser.js.map +1 -0
  130. package/dist/interfaces/irequest-outcome.d.ts +11 -0
  131. package/dist/interfaces/irequest-outcome.js +2 -2
  132. package/dist/interfaces/irequest-outcome.js.map +1 -0
  133. package/dist/interfaces/iserver.d.ts +4 -0
  134. package/dist/interfaces/iserver.js +2 -2
  135. package/dist/interfaces/iserver.js.map +1 -0
  136. package/dist/parsers/accessibility-metrics.parser.d.ts +11 -0
  137. package/dist/parsers/accessibility-metrics.parser.js +34 -26
  138. package/dist/parsers/accessibility-metrics.parser.js.map +1 -0
  139. package/dist/parsers/asp-error.parser.d.ts +12 -0
  140. package/dist/parsers/asp-error.parser.js +36 -28
  141. package/dist/parsers/asp-error.parser.js.map +1 -0
  142. package/dist/parsers/bad-words.parser.d.ts +10 -0
  143. package/dist/parsers/bad-words.parser.js +21 -13
  144. package/dist/parsers/bad-words.parser.js.map +1 -0
  145. package/dist/parsers/complex-english.parser.d.ts +15 -0
  146. package/dist/parsers/complex-english.parser.js +33 -25
  147. package/dist/parsers/complex-english.parser.js.map +1 -0
  148. package/dist/parsers/data.parser.d.ts +14 -0
  149. package/dist/parsers/data.parser.js +12 -16
  150. package/dist/parsers/data.parser.js.map +1 -0
  151. package/dist/parsers/dictionary.parser.d.ts +19 -0
  152. package/dist/parsers/dictionary.parser.js +47 -39
  153. package/dist/parsers/dictionary.parser.js.map +1 -0
  154. package/dist/parsers/html.parser.d.ts +13 -0
  155. package/dist/parsers/html.parser.js +4 -8
  156. package/dist/parsers/html.parser.js.map +1 -0
  157. package/dist/parsers/hyperlinks.parser.d.ts +20 -0
  158. package/dist/parsers/hyperlinks.parser.js +82 -77
  159. package/dist/parsers/hyperlinks.parser.js.map +1 -0
  160. package/dist/parsers/image-tags.parser.d.ts +20 -0
  161. package/dist/parsers/image-tags.parser.js +38 -34
  162. package/dist/parsers/image-tags.parser.js.map +1 -0
  163. package/dist/parsers/jpeg.parser.d.ts +11 -0
  164. package/dist/parsers/jpeg.parser.js +28 -20
  165. package/dist/parsers/jpeg.parser.js.map +1 -0
  166. package/dist/parsers/paragraphs.parser.d.ts +13 -0
  167. package/dist/parsers/paragraphs.parser.js +33 -40
  168. package/dist/parsers/paragraphs.parser.js.map +1 -0
  169. package/dist/parsers/parser.d.ts +19 -0
  170. package/dist/parsers/parser.js +30 -17
  171. package/dist/parsers/parser.js.map +1 -0
  172. package/dist/parsers/php-error.parser.d.ts +12 -0
  173. package/dist/parsers/php-error.parser.js +42 -34
  174. package/dist/parsers/php-error.parser.js.map +1 -0
  175. package/dist/parsers/phrase.parser.d.ts +8 -0
  176. package/dist/parsers/phrase.parser.js +16 -11
  177. package/dist/parsers/phrase.parser.js.map +1 -0
  178. package/dist/parsers/regex.parser.d.ts +10 -0
  179. package/dist/parsers/regex.parser.js +30 -22
  180. package/dist/parsers/regex.parser.js.map +1 -0
  181. package/dist/parsers/server.parser.d.ts +12 -0
  182. package/dist/parsers/server.parser.js +66 -56
  183. package/dist/parsers/server.parser.js.map +1 -0
  184. package/dist/parsers/spelling.parser.d.ts +10 -0
  185. package/dist/parsers/spelling.parser.js +21 -13
  186. package/dist/parsers/spelling.parser.js.map +1 -0
  187. package/dist/parsers/string.parser.d.ts +8 -0
  188. package/dist/parsers/string.parser.js +5 -8
  189. package/dist/parsers/string.parser.js.map +1 -0
  190. package/dist/parsers/text.parser.d.ts +8 -0
  191. package/dist/parsers/text.parser.js +24 -18
  192. package/dist/parsers/text.parser.js.map +1 -0
  193. package/dist/parsers/words.parser.d.ts +11 -0
  194. package/dist/parsers/words.parser.js +32 -28
  195. package/dist/parsers/words.parser.js.map +1 -0
  196. package/dist/queries/complex-english.query.d.ts +2 -0
  197. package/dist/queries/complex-english.query.js +37 -38
  198. package/dist/queries/complex-english.query.js.map +1 -0
  199. package/dist/queries/flash-content.query.d.ts +2 -0
  200. package/dist/queries/flash-content.query.js +45 -32
  201. package/dist/queries/flash-content.query.js.map +1 -0
  202. package/dist/queries/linking-to-domains.query.d.ts +2 -0
  203. package/dist/queries/linking-to-domains.query.js +35 -27
  204. package/dist/queries/linking-to-domains.query.js.map +1 -0
  205. package/dist/queries/readability-score.query.d.ts +2 -0
  206. package/dist/queries/readability-score.query.js +21 -13
  207. package/dist/queries/readability-score.query.js.map +1 -0
  208. package/dist/servers/crawl.server.d.ts +35 -0
  209. package/dist/servers/crawl.server.js +133 -121
  210. package/dist/servers/crawl.server.js.map +1 -0
  211. package/dist/servers/express.server.d.ts +8 -0
  212. package/dist/servers/express.server.js +7 -10
  213. package/dist/servers/express.server.js.map +1 -0
  214. package/dist/servers/maintenance.server.d.ts +22 -0
  215. package/dist/servers/maintenance.server.js +42 -36
  216. package/dist/servers/maintenance.server.js.map +1 -0
  217. package/dist/servers/rest.server.d.ts +7 -0
  218. package/dist/servers/rest.server.js +40 -51
  219. package/dist/servers/rest.server.js.map +1 -0
  220. package/dist/servers/socket-io.server.d.ts +12 -0
  221. package/dist/servers/socket-io.server.js +48 -15
  222. package/dist/servers/socket-io.server.js.map +1 -0
  223. package/dist/services/database.service.d.ts +68 -0
  224. package/dist/services/database.service.js +528 -462
  225. package/dist/services/database.service.js.map +1 -0
  226. package/dist/types/tcrawl-config.d.ts +14 -0
  227. package/dist/types/tcrawl-config.js +14 -17
  228. package/dist/types/tcrawl-config.js.map +1 -0
  229. package/dist/types/thydra-config.d.ts +4 -0
  230. package/dist/types/thydra-config.js +4 -7
  231. package/dist/types/thydra-config.js.map +1 -0
  232. package/dist/types/tparser-ctor.d.ts +7 -0
  233. package/dist/types/tparser-ctor.js +2 -2
  234. package/dist/types/tparser-ctor.js.map +1 -0
  235. package/dist/types/tquery.d.ts +7 -0
  236. package/dist/types/tquery.js +2 -2
  237. package/dist/types/tquery.js.map +1 -0
  238. package/dist/types/trobots-config.d.ts +4 -0
  239. package/dist/types/trobots-config.js +4 -7
  240. package/dist/types/trobots-config.js.map +1 -0
  241. package/package.json +41 -29
  242. package/angular/10-es2015.bacd4ae5dd7913ce55f0.js +0 -1
  243. package/angular/10-es5.bacd4ae5dd7913ce55f0.js +0 -1
  244. package/angular/11-es2015.0f031dcf752d1e8eda6b.js +0 -1
  245. package/angular/11-es5.0f031dcf752d1e8eda6b.js +0 -1
  246. package/angular/3rdpartylicenses.txt +0 -1127
  247. package/angular/5-es2015.951498ca9c1bc74e57bf.js +0 -1
  248. package/angular/5-es5.951498ca9c1bc74e57bf.js +0 -1
  249. package/angular/6-es2015.65f680261a3506b88381.js +0 -1
  250. package/angular/6-es5.65f680261a3506b88381.js +0 -1
  251. package/angular/7-es2015.625197f3af1dbf3e805d.js +0 -1
  252. package/angular/7-es5.625197f3af1dbf3e805d.js +0 -1
  253. package/angular/8-es2015.55518901987a5b834309.js +0 -1
  254. package/angular/8-es5.55518901987a5b834309.js +0 -1
  255. package/angular/9-es2015.6cc9bde262564e7836f2.js +0 -1
  256. package/angular/9-es5.6cc9bde262564e7836f2.js +0 -1
  257. package/angular/Roboto-Black.41ed1105a6ebb8ffe34e.woff2 +0 -0
  258. package/angular/Roboto-Black.937491dfcbe64ca9a9f1.woff +0 -0
  259. package/angular/Roboto-BlackItalic.2e1ee657996854c6f427.woff +0 -0
  260. package/angular/Roboto-BlackItalic.50ca4c51ebc27e7e7d2f.woff2 +0 -0
  261. package/angular/Roboto-Bold.73288d91c325e82a5b92.woff +0 -0
  262. package/angular/Roboto-Bold.92fbd4e93cf0a5dbebaa.woff2 +0 -0
  263. package/angular/Roboto-BoldItalic.5f600d98a73d800ae575.woff2 +0 -0
  264. package/angular/Roboto-BoldItalic.6d89acbd21d7e3fbecb2.woff +0 -0
  265. package/angular/Roboto-Light.c27d89ac77468ae18f28.woff2 +0 -0
  266. package/angular/Roboto-Light.d923dfafc0c5183b59aa.woff +0 -0
  267. package/angular/Roboto-LightItalic.506274c7228cf81cae4d.woff2 +0 -0
  268. package/angular/Roboto-LightItalic.d4b8c137518d9d92bb28.woff +0 -0
  269. package/angular/Roboto-Medium.092c6130df8fd2199888.woff +0 -0
  270. package/angular/Roboto-Medium.1d3bced88509b0838984.woff2 +0 -0
  271. package/angular/Roboto-MediumItalic.18ff1628c628080166c1.woff +0 -0
  272. package/angular/Roboto-MediumItalic.d620b8f53f75966fe42e.woff2 +0 -0
  273. package/angular/Roboto-Regular.64cfb66c866ea50cad47.woff2 +0 -0
  274. package/angular/Roboto-Regular.e02e9d6ff5547f7e9962.woff +0 -0
  275. package/angular/Roboto-RegularItalic.4dd2af1e8df532f41db8.woff2 +0 -0
  276. package/angular/Roboto-RegularItalic.5ea38fff9eebef99c5df.woff +0 -0
  277. package/angular/Roboto-Thin.dbd56bd3357dc3617fe5.woff2 +0 -0
  278. package/angular/Roboto-Thin.e7f7c82374bd0ebef14b.woff +0 -0
  279. package/angular/Roboto-ThinItalic.5dd9349c940073834e9a.woff +0 -0
  280. package/angular/Roboto-ThinItalic.a8cef84f735ef887abdc.woff2 +0 -0
  281. package/angular/assets/config/app-config.json +0 -16
  282. package/angular/assets/images/splashbg.jpg +0 -0
  283. package/angular/assets/web-app-commons/fonts/material-icons/MaterialDesignIcons-Community-2.7.94.woff +0 -0
  284. package/angular/assets/web-app-commons/fonts/material-icons/MaterialDesignIcons-Community-2.7.94.woff2 +0 -0
  285. package/angular/assets/web-app-commons/fonts/material-icons/material-design-icons-community.css +0 -11293
  286. package/angular/favicon.ico +0 -0
  287. package/angular/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.f2a0933406f783065152.woff +0 -0
  288. package/angular/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.6467d9a24f234e8e8e07.woff2 +0 -0
  289. package/angular/index.html +0 -16
  290. package/angular/main-es2015.3a582572476c7f292e52.js +0 -1
  291. package/angular/main-es5.3a582572476c7f292e52.js +0 -1
  292. package/angular/polyfills-es2015.7df68534018bc2f6cb09.js +0 -1
  293. package/angular/polyfills-es5.e79468f406fae2989221.js +0 -1
  294. package/angular/runtime-es2015.6d2cff76cdb2790d3308.js +0 -1
  295. package/angular/runtime-es5.6d2cff76cdb2790d3308.js +0 -1
  296. package/angular/styles.c5c6c2534225b85c4ff0.css +0 -1
  297. package/config/bad-words.json +0 -1
  298. package/config/complex-english.json +0 -400
  299. package/config/hydra-auth.json +0 -8
  300. package/config/hydra-crawler.json +0 -84
  301. package/config/list-allow.json +0 -171
  302. package/config/list-deny.json +0 -248
  303. package/config/list-expiry.json +0 -7
  304. package/config/schedule.json +0 -25
  305. package/config/spelling.json +0 -1
@@ -1,63 +1,69 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HydraApp = void 0;
4
- const tscommons_core_1 = require("tscommons-core");
5
- const nodecommons_cli_1 = require("nodecommons-cli");
6
- const nodecommons_app_angular_1 = require("nodecommons-app-angular");
7
- const autocomplete_api_1 = require("../apis/autocomplete.api");
8
- const bugs_api_1 = require("../apis/bugs.api");
9
- const crawl_api_1 = require("../apis/crawl.api");
10
- const domains_api_1 = require("../apis/domains.api");
11
- const images_api_1 = require("../apis/images.api");
12
- const statistics_api_1 = require("../apis/statistics.api");
13
- const test_api_1 = require("../apis/test.api");
14
- const urls_api_1 = require("../apis/urls.api");
15
- const lists_1 = require("../classes/lists");
16
- const expiry_1 = require("../classes/expiry");
17
- const tracker_1 = require("../classes/tracker");
18
- const crawler_1 = require("../classes/crawler");
19
- const socket_io_server_1 = require("../servers/socket-io.server");
20
- const crawl_server_1 = require("../servers/crawl.server");
21
- const maintenance_server_1 = require("../servers/maintenance.server");
22
- const server_parser_1 = require("../parsers/server.parser");
23
- const hyperlinks_parser_1 = require("../parsers/hyperlinks.parser");
24
- const image_tags_parser_1 = require("../parsers/image-tags.parser");
25
- const jpeg_parser_1 = require("../parsers/jpeg.parser");
26
- const spelling_parser_1 = require("../parsers/spelling.parser");
27
- const bad_words_parser_1 = require("../parsers/bad-words.parser");
28
- const php_error_parser_1 = require("../parsers/php-error.parser");
29
- const asp_error_parser_1 = require("../parsers/asp-error.parser");
30
- const complex_english_parser_1 = require("../parsers/complex-english.parser");
31
- const accessibility_metrics_parser_1 = require("../parsers/accessibility-metrics.parser");
32
- const iparser_config_1 = require("../interfaces/iparser-config");
33
- const thydra_config_1 = require("../types/thydra-config");
34
- const tcrawl_config_1 = require("../types/tcrawl-config");
35
- const trobots_config_1 = require("../types/trobots-config");
36
- class HydraApp extends nodecommons_app_angular_1.CommonsAngularApp {
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { commonsTypeIsTKeyObject } from 'tscommons-es-core';
11
+ import { commonsOutputDebug, commonsOutputDoing, commonsOutputInfo, commonsOutputSuccess } from 'nodecommons-es-cli';
12
+ import { CommonsSocketIoApp } from 'nodecommons-es-app-socket-io';
13
+ import { AutocompleteApi } from '../apis/autocomplete.api';
14
+ import { BugsApi } from '../apis/bugs.api';
15
+ import { CrawlApi } from '../apis/crawl.api';
16
+ import { DomainsApi } from '../apis/domains.api';
17
+ import { ImagesApi } from '../apis/images.api';
18
+ import { StatisticsApi } from '../apis/statistics.api';
19
+ import { TestApi } from '../apis/test.api';
20
+ import { UrlsApi } from '../apis/urls.api';
21
+ import { Lists } from '../classes/lists';
22
+ import { Expiry } from '../classes/expiry';
23
+ import { Tracker } from '../classes/tracker';
24
+ import { Crawler } from '../classes/crawler';
25
+ import { SocketIoServer } from '../servers/socket-io.server';
26
+ import { CrawlServer } from '../servers/crawl.server';
27
+ import { MaintenanceServer } from '../servers/maintenance.server';
28
+ import { ServerParser } from '../parsers/server.parser';
29
+ import { HyperlinksParser } from '../parsers/hyperlinks.parser';
30
+ import { ImageTagsParser } from '../parsers/image-tags.parser';
31
+ import { JpegParser } from '../parsers/jpeg.parser';
32
+ import { SpellingParser } from '../parsers/spelling.parser';
33
+ import { BadWordsParser } from '../parsers/bad-words.parser';
34
+ import { PhpErrorParser } from '../parsers/php-error.parser';
35
+ import { AspErrorParser } from '../parsers/asp-error.parser';
36
+ import { ComplexEnglishParser } from '../parsers/complex-english.parser';
37
+ import { AccessibilityMetricsParser } from '../parsers/accessibility-metrics.parser';
38
+ import { isIParserConfig } from '../interfaces/iparser-config';
39
+ import { isTHydraConfig } from '../types/thydra-config';
40
+ import { isTCrawlConfig } from '../types/tcrawl-config';
41
+ import { isTRobotsConfig } from '../types/trobots-config';
42
+ export class HydraApp extends CommonsSocketIoApp {
37
43
  constructor() {
38
- super('hydra-crawler', true);
44
+ super('hydra-crawler');
39
45
  this.maintenanceTimes = [];
40
- this.lists = new lists_1.Lists();
41
- this.expiry = new expiry_1.Expiry();
46
+ this.lists = new Lists();
47
+ this.expiry = new Expiry();
42
48
  const hydraConfig = this.getConfigArea('hydra');
43
- if (!thydra_config_1.isTHydraConfig(hydraConfig))
49
+ if (!isTHydraConfig(hydraConfig))
44
50
  throw new Error('Hydra config is not valid');
45
51
  this.hydraConfig = hydraConfig;
46
52
  const crawlConfig = this.getConfigArea('crawl');
47
- if (!tcrawl_config_1.isTCrawlConfig(crawlConfig))
53
+ if (!isTCrawlConfig(crawlConfig))
48
54
  throw new Error('Crawl config is not valid');
49
55
  this.crawlConfig = crawlConfig;
50
56
  const parsersConfig = this.getConfigArea('parsers');
51
- if (!tscommons_core_1.CommonsType.isTKeyObject(parsersConfig, iparser_config_1.isIParserConfig))
57
+ if (!commonsTypeIsTKeyObject(parsersConfig, isIParserConfig))
52
58
  throw new Error('Parsers config is not valid');
53
59
  this.parsersConfig = parsersConfig;
54
60
  const robotsConfig = this.getConfigArea('robots');
55
- if (!trobots_config_1.isTRobotsConfig(robotsConfig))
61
+ if (!isTRobotsConfig(robotsConfig))
56
62
  throw new Error('Robots config is not valid');
57
63
  this.robotsConfig = robotsConfig;
58
64
  }
59
65
  buildSocketIoServer(expressServer, expressConfig) {
60
- return new socket_io_server_1.SocketIoServer(expressServer, expressConfig);
66
+ return new SocketIoServer(expressServer, true, expressConfig);
61
67
  }
62
68
  getAppName() {
63
69
  return 'Hydra';
@@ -74,107 +80,114 @@ class HydraApp extends nodecommons_app_angular_1.CommonsAngularApp {
74
80
  setMaintenanceSchedule(times) {
75
81
  this.maintenanceTimes = times;
76
82
  }
77
- async init() {
78
- if (!this.databaseService)
79
- throw new Error('Database service has not been set yet');
80
- this.install((restServer, path) => {
83
+ init() {
84
+ const _super = Object.create(null, {
85
+ init: { get: () => super.init }
86
+ });
87
+ return __awaiter(this, void 0, void 0, function* () {
81
88
  if (!this.databaseService)
82
- throw new Error('Database service has not been defined yet');
83
- nodecommons_cli_1.CommonsOutput.doing('Installing auto-complete API');
84
- // tslint:disable-next-line:no-unused-expression
85
- new autocomplete_api_1.AutocompleteApi(restServer, this.databaseService, path);
86
- nodecommons_cli_1.CommonsOutput.success();
87
- nodecommons_cli_1.CommonsOutput.doing('Installing bugs API');
88
- // tslint:disable-next-line:no-unused-expression
89
- new bugs_api_1.BugsApi(restServer, this.databaseService, path);
90
- nodecommons_cli_1.CommonsOutput.success();
91
- nodecommons_cli_1.CommonsOutput.doing('Installing crawl API');
92
- // tslint:disable-next-line:no-unused-expression
93
- new crawl_api_1.CrawlApi(restServer, this.databaseService, path);
94
- nodecommons_cli_1.CommonsOutput.success();
95
- nodecommons_cli_1.CommonsOutput.doing('Installing domains API');
96
- // tslint:disable-next-line:no-unused-expression
97
- new domains_api_1.DomainsApi(restServer, this.databaseService, path);
98
- nodecommons_cli_1.CommonsOutput.success();
99
- nodecommons_cli_1.CommonsOutput.doing('Installing images API');
100
- // tslint:disable-next-line:no-unused-expression
101
- new images_api_1.ImagesApi(restServer, this.databaseService, path);
102
- nodecommons_cli_1.CommonsOutput.success();
103
- nodecommons_cli_1.CommonsOutput.doing('Installing statistics API');
104
- // tslint:disable-next-line:no-unused-expression
105
- new statistics_api_1.StatisticsApi(restServer, this.databaseService, path);
106
- nodecommons_cli_1.CommonsOutput.success();
107
- nodecommons_cli_1.CommonsOutput.doing('Installing test API');
108
- // tslint:disable-next-line:no-unused-expression
109
- new test_api_1.TestApi(restServer, path);
110
- nodecommons_cli_1.CommonsOutput.success();
111
- nodecommons_cli_1.CommonsOutput.doing('Installing urls API');
112
- // tslint:disable-next-line:no-unused-expression
113
- new urls_api_1.UrlsApi(restServer, this.databaseService, path);
114
- nodecommons_cli_1.CommonsOutput.success();
89
+ throw new Error('Database service has not been set yet');
90
+ this.install((restServer, path) => {
91
+ if (!this.databaseService)
92
+ throw new Error('Database service has not been defined yet');
93
+ commonsOutputDoing('Installing auto-complete API');
94
+ new AutocompleteApi(restServer, this.databaseService, path);
95
+ commonsOutputSuccess();
96
+ commonsOutputDoing('Installing bugs API');
97
+ new BugsApi(restServer, this.databaseService, path);
98
+ commonsOutputSuccess();
99
+ commonsOutputDoing('Installing crawl API');
100
+ new CrawlApi(restServer, this.databaseService, path);
101
+ commonsOutputSuccess();
102
+ commonsOutputDoing('Installing domains API');
103
+ new DomainsApi(restServer, this.databaseService, path);
104
+ commonsOutputSuccess();
105
+ commonsOutputDoing('Installing images API');
106
+ new ImagesApi(restServer, this.databaseService, path);
107
+ commonsOutputSuccess();
108
+ commonsOutputDoing('Installing statistics API');
109
+ new StatisticsApi(restServer, this.databaseService, path);
110
+ commonsOutputSuccess();
111
+ commonsOutputDoing('Installing test API');
112
+ new TestApi(restServer, path);
113
+ commonsOutputSuccess();
114
+ commonsOutputDoing('Installing urls API');
115
+ new UrlsApi(restServer, this.databaseService, path);
116
+ commonsOutputSuccess();
117
+ });
118
+ yield _super.init.call(this);
119
+ const socketIoServer = this.getSocketIoServer();
120
+ if (!socketIoServer)
121
+ throw new Error('SocketIo server has not been set yet');
122
+ this.tracker = new Tracker(this.databaseService, socketIoServer);
123
+ this.crawlServer = new CrawlServer(this.databaseService, this.hydraConfig, this.crawlConfig, this.parsersConfig, this.robotsConfig, this.lists, this.tracker);
124
+ commonsOutputDoing('Connecting to database');
125
+ yield this.databaseService.init();
126
+ commonsOutputSuccess();
127
+ for (const parser of [
128
+ ServerParser,
129
+ HyperlinksParser,
130
+ ImageTagsParser,
131
+ JpegParser,
132
+ SpellingParser,
133
+ BadWordsParser,
134
+ PhpErrorParser,
135
+ AspErrorParser,
136
+ ComplexEnglishParser,
137
+ AccessibilityMetricsParser
138
+ ]) {
139
+ commonsOutputDebug(`Installing parser ${parser.name}`);
140
+ this.crawlServer.addParser(parser);
141
+ yield this.databaseService.initParser(parser);
142
+ }
143
+ this.maintenanceServer = new MaintenanceServer(this.maintenanceTimes, this.expiry, this.lists, this.databaseService, this.crawlServer);
115
144
  });
116
- await super.init();
117
- const socketIoServer = this.getSocketIoServer();
118
- if (!socketIoServer)
119
- throw new Error('SocketIo server has not been set yet');
120
- this.tracker = new tracker_1.Tracker(this.databaseService, socketIoServer);
121
- this.crawlServer = new crawl_server_1.CrawlServer(this.databaseService, this.hydraConfig, this.crawlConfig, this.parsersConfig, this.robotsConfig, this.lists, this.tracker);
122
- nodecommons_cli_1.CommonsOutput.doing('Connecting to database');
123
- await this.databaseService.init();
124
- nodecommons_cli_1.CommonsOutput.success();
125
- for (const parser of [
126
- server_parser_1.ServerParser,
127
- hyperlinks_parser_1.HyperlinksParser,
128
- image_tags_parser_1.ImageTagsParser,
129
- jpeg_parser_1.JpegParser,
130
- spelling_parser_1.SpellingParser,
131
- bad_words_parser_1.BadWordsParser,
132
- php_error_parser_1.PhpErrorParser,
133
- asp_error_parser_1.AspErrorParser,
134
- complex_english_parser_1.ComplexEnglishParser,
135
- accessibility_metrics_parser_1.AccessibilityMetricsParser
136
- ]) {
137
- nodecommons_cli_1.CommonsOutput.debug(`Installing parser ${parser.name}`);
138
- this.crawlServer.addParser(parser);
139
- this.databaseService.initParser(parser);
140
- }
141
- this.maintenanceServer = new maintenance_server_1.MaintenanceServer(this.maintenanceTimes, this.expiry, this.lists, this.databaseService, this.crawlServer);
142
145
  }
143
146
  listening() {
144
- (async () => {
147
+ void (() => __awaiter(this, void 0, void 0, function* () {
145
148
  if (!this.crawlServer)
146
149
  throw new Error('No crawl server instantiated! This should not be possible');
147
- await this.crawlServer.start();
150
+ yield this.crawlServer.start();
148
151
  this.abort();
149
- })();
152
+ }))();
150
153
  }
151
- async run() {
152
- const singleUrl = this.getArgs().getStringOrUndefined('single-url');
153
- if (singleUrl) {
154
- if (!this.databaseService)
155
- throw new Error('Database service has not been set yet');
156
- if (!this.crawlServer)
157
- throw new Error('Crawl server has not been set yet');
158
- const whatwg = new URL(singleUrl);
159
- const crawler = new crawler_1.Crawler(whatwg.hostname, this.databaseService, this.crawlConfig, this.parsersConfig, this.robotsConfig, this.crawlServer.listParsers(), this.lists);
160
- nodecommons_cli_1.CommonsOutput.info(`Running single crawl of: ${singleUrl}`);
161
- const outcome = await crawler.fetch(singleUrl, false);
162
- nodecommons_cli_1.CommonsOutput.info(`HTTP status code outcome was ${outcome}`);
163
- return;
164
- }
165
- if (!this.tracker)
166
- throw new Error('Tracker has not been defined! This should not be possible');
167
- if (!this.maintenanceServer)
168
- throw new Error('Maintenance server has not been defined! This should not be possible');
169
- this.maintenanceServer.start();
170
- this.tracker.start();
171
- await super.run();
154
+ run() {
155
+ const _super = Object.create(null, {
156
+ run: { get: () => super.run }
157
+ });
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ const singleUrl = this.getArgs().getStringOrUndefined('single-url');
160
+ if (singleUrl) {
161
+ if (!this.databaseService)
162
+ throw new Error('Database service has not been set yet');
163
+ if (!this.crawlServer)
164
+ throw new Error('Crawl server has not been set yet');
165
+ const whatwg = new URL(singleUrl);
166
+ const crawler = new Crawler(whatwg.hostname, this.databaseService, this.crawlConfig, this.parsersConfig, this.robotsConfig, this.crawlServer.listParsers(), this.lists);
167
+ commonsOutputInfo(`Running single crawl of: ${singleUrl}`);
168
+ const outcome = yield crawler.fetch(singleUrl, false);
169
+ commonsOutputInfo(`HTTP status code outcome was ${outcome}`);
170
+ return;
171
+ }
172
+ if (!this.tracker)
173
+ throw new Error('Tracker has not been defined! This should not be possible');
174
+ if (!this.maintenanceServer)
175
+ throw new Error('Maintenance server has not been defined! This should not be possible');
176
+ this.maintenanceServer.start();
177
+ void this.tracker.start();
178
+ yield _super.run.call(this);
179
+ });
172
180
  }
173
- async shutdown() {
174
- if (!this.crawlServer)
175
- throw new Error('No crawl server instantiated! This should not be possible');
176
- await this.crawlServer.shutdown();
177
- await super.shutdown();
181
+ shutdown() {
182
+ const _super = Object.create(null, {
183
+ shutdown: { get: () => super.shutdown }
184
+ });
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ if (!this.crawlServer)
187
+ throw new Error('No crawl server instantiated! This should not be possible');
188
+ yield this.crawlServer.shutdown();
189
+ yield _super.shutdown.call(this);
190
+ });
178
191
  }
179
192
  }
180
- exports.HydraApp = HydraApp;
193
+ //# sourceMappingURL=hydra.app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydra.app.js","sourceRoot":"","sources":["../../src/apps/hydra.app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CommonsApp } from 'nodecommons-es-app';
2
+ import { DatabaseService } from '../services/database.service';
3
+ import { IInternalHydraCommonDbApp } from './internal-hydra-common.app';
4
+ export declare class ImportApp extends CommonsApp implements IInternalHydraCommonDbApp {
5
+ private databaseService;
6
+ constructor();
7
+ getAppName(): string;
8
+ setDatabaseService(databaseService: DatabaseService): void;
9
+ init(): Promise<void>;
10
+ run(): Promise<void>;
11
+ }
@@ -1,10 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImportApp = void 0;
4
- const nodecommons_cli_1 = require("nodecommons-cli");
5
- const nodecommons_cli_2 = require("nodecommons-cli");
6
- const nodecommons_app_1 = require("nodecommons-app");
7
- class ImportApp extends nodecommons_app_1.CommonsApp {
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { commonsInputReadAllStdIn, commonsOutputDoing, commonsOutputProgress, commonsOutputResult, commonsOutputSuccess } from 'nodecommons-es-cli';
11
+ import { CommonsApp } from 'nodecommons-es-app';
12
+ export class ImportApp extends CommonsApp {
8
13
  constructor() {
9
14
  super('hydra-crawler');
10
15
  }
@@ -14,32 +19,39 @@ class ImportApp extends nodecommons_app_1.CommonsApp {
14
19
  setDatabaseService(databaseService) {
15
20
  this.databaseService = databaseService;
16
21
  }
17
- async init() {
18
- if (!this.databaseService)
19
- throw new Error('Database service has not been set yet');
20
- nodecommons_cli_1.CommonsOutput.doing('Connecting to database');
21
- await this.databaseService.init();
22
- nodecommons_cli_1.CommonsOutput.success();
23
- await super.init();
22
+ init() {
23
+ const _super = Object.create(null, {
24
+ init: { get: () => super.init }
25
+ });
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ if (!this.databaseService)
28
+ throw new Error('Database service has not been set yet');
29
+ commonsOutputDoing('Connecting to database');
30
+ yield this.databaseService.init();
31
+ commonsOutputSuccess();
32
+ yield _super.init.call(this);
33
+ });
24
34
  }
25
- async run() {
26
- if (!this.databaseService)
27
- throw new Error('Database service has not been set');
28
- nodecommons_cli_1.CommonsOutput.doing('Loading URLs from stdin');
29
- const urls = await nodecommons_cli_2.CommonsInput.readAllStdIn();
30
- nodecommons_cli_1.CommonsOutput.result(urls.length);
31
- nodecommons_cli_1.CommonsOutput.doing('Seeding into queue');
32
- let tally = 0;
33
- let done = 0;
34
- for (const url of urls) {
35
- if ((++tally % 100) === 0)
36
- nodecommons_cli_1.CommonsOutput.progress(`${tally}, imported ${done}`);
37
- const outcome = await this.databaseService.queue(url);
38
- if (outcome) {
39
- done++;
35
+ run() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (!this.databaseService)
38
+ throw new Error('Database service has not been set');
39
+ commonsOutputDoing('Loading URLs from stdin');
40
+ const urls = yield commonsInputReadAllStdIn();
41
+ commonsOutputResult(urls.length);
42
+ commonsOutputDoing('Seeding into queue');
43
+ let tally = 0;
44
+ let done = 0;
45
+ for (const url of urls) {
46
+ if ((++tally % 100) === 0)
47
+ commonsOutputProgress(`${tally}, imported ${done}`);
48
+ const outcome = yield this.databaseService.queue(url);
49
+ if (outcome) {
50
+ done++;
51
+ }
40
52
  }
41
- }
42
- nodecommons_cli_1.CommonsOutput.result(done);
53
+ commonsOutputResult(done);
54
+ });
43
55
  }
44
56
  }
45
- exports.ImportApp = ImportApp;
57
+ //# sourceMappingURL=import.app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.app.js","sourceRoot":"","sources":["../../src/apps/import.app.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,OAAO,SAAU,SAAQ,UAAU;IAGxC;QACC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxB,CAAC;IAEM,UAAU;QAChB,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAEM,kBAAkB,CACvB,eAAgC;QAEjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAEY,IAAI;;;;;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAEpF,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAClC,oBAAoB,EAAE,CAAC;YAEvB,MAAM,OAAM,IAAI,WAAE,CAAC;QACpB,CAAC;KAAA;IAEY,GAAG;;YACf,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAEhF,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAa,MAAM,wBAAwB,EAAE,CAAC;YACxD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;YACzC,IAAI,KAAK,GAAW,CAAC,CAAC;YAAC,IAAI,IAAI,GAAW,CAAC,CAAC;YAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;oBAAE,qBAAqB,CAAC,GAAG,KAAK,cAAc,IAAI,EAAE,CAAC,CAAC;gBAE/E,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAI,OAAO,EAAE;oBACZ,IAAI,EAAE,CAAC;iBACP;aACD;YACD,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KAAA;CACD"}
@@ -0,0 +1,28 @@
1
+ import { TCommonsScheduleTime } from 'tscommons-es-async';
2
+ import { CommonsConfigFile } from 'nodecommons-es-config';
3
+ import { DatabaseService } from '../services/database.service';
4
+ import { IMatch } from '../interfaces/imatch';
5
+ import { IExpiry } from '../interfaces/iexpiry';
6
+ import { EList } from '../enums/elist';
7
+ export interface IInternalHydraCommonApp {
8
+ loadConfigFile(file: string): CommonsConfigFile;
9
+ loadRawJsonConfigFile(file: string): unknown;
10
+ start(): Promise<void>;
11
+ getAppName(): string;
12
+ }
13
+ export interface IInternalHydraCommonDbApp extends IInternalHydraCommonApp {
14
+ setDatabaseService(databaseService: DatabaseService): void;
15
+ }
16
+ export declare function isIInternalHydraCommonDbApp(test: IInternalHydraCommonApp): test is IInternalHydraCommonDbApp;
17
+ export interface IInternalHydraCommonListApp extends IInternalHydraCommonDbApp {
18
+ addToList(list: EList, entries: IMatch[]): void;
19
+ }
20
+ export declare function isIInternalHydraCommonListApp(test: IInternalHydraCommonApp): test is IInternalHydraCommonListApp;
21
+ export interface IInternalHydraCommonExpiryApp extends IInternalHydraCommonDbApp {
22
+ addToExpiry(expiries: IExpiry[]): void;
23
+ }
24
+ export declare function isIInternalHydraCommonExpiryApp(test: IInternalHydraCommonApp): test is IInternalHydraCommonExpiryApp;
25
+ export interface IInternalHydraCommonMaintenanceApp extends IInternalHydraCommonDbApp {
26
+ setMaintenanceSchedule(times: TCommonsScheduleTime[]): void;
27
+ }
28
+ export declare function isIInternalHydraCommonMaintenanceApp(test: IInternalHydraCommonApp): test is IInternalHydraCommonMaintenanceApp;
@@ -1,25 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isIInternalHydraCommonMaintenanceApp = exports.isIInternalHydraCommonExpiryApp = exports.isIInternalHydraCommonListApp = exports.isIInternalHydraCommonDbApp = void 0;
4
- function isIInternalHydraCommonDbApp(test) {
1
+ export function isIInternalHydraCommonDbApp(test) {
5
2
  return 'setDatabaseService' in test;
6
3
  }
7
- exports.isIInternalHydraCommonDbApp = isIInternalHydraCommonDbApp;
8
- function isIInternalHydraCommonListApp(test) {
4
+ export function isIInternalHydraCommonListApp(test) {
9
5
  if (!isIInternalHydraCommonDbApp(test))
10
6
  return false;
11
7
  return 'addToList' in test;
12
8
  }
13
- exports.isIInternalHydraCommonListApp = isIInternalHydraCommonListApp;
14
- function isIInternalHydraCommonExpiryApp(test) {
9
+ export function isIInternalHydraCommonExpiryApp(test) {
15
10
  if (!isIInternalHydraCommonDbApp(test))
16
11
  return false;
17
12
  return 'addToExpiry' in test;
18
13
  }
19
- exports.isIInternalHydraCommonExpiryApp = isIInternalHydraCommonExpiryApp;
20
- function isIInternalHydraCommonMaintenanceApp(test) {
14
+ export function isIInternalHydraCommonMaintenanceApp(test) {
21
15
  if (!isIInternalHydraCommonDbApp(test))
22
16
  return false;
23
17
  return 'setMaintenanceSchedule' in test;
24
18
  }
25
- exports.isIInternalHydraCommonMaintenanceApp = isIInternalHydraCommonMaintenanceApp;
19
+ //# sourceMappingURL=internal-hydra-common.app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-hydra-common.app.js","sourceRoot":"","sources":["../../src/apps/internal-hydra-common.app.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,2BAA2B,CAAC,IAA6B;IACxE,OAAO,oBAAoB,IAAI,IAAI,CAAC;AACrC,CAAC;AAQD,MAAM,UAAU,6BAA6B,CAAC,IAA6B;IAC1E,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,WAAW,IAAI,IAAI,CAAC;AAC5B,CAAC;AAKD,MAAM,UAAU,+BAA+B,CAAC,IAA6B;IAC5E,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,aAAa,IAAI,IAAI,CAAC;AAC9B,CAAC;AAKD,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IACjF,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,wBAAwB,IAAI,IAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { CommonsApp } from 'nodecommons-es-app';
2
+ import { DatabaseService } from '../services/database.service';
3
+ import { IMatch } from '../interfaces/imatch';
4
+ import { IExpiry } from '../interfaces/iexpiry';
5
+ import { EList } from '../enums/elist';
6
+ import { IInternalHydraCommonDbApp } from './internal-hydra-common.app';
7
+ export declare class QueryApp extends CommonsApp implements IInternalHydraCommonDbApp {
8
+ private queryName;
9
+ private databaseService;
10
+ private lists;
11
+ private expiry;
12
+ private parsersConfig;
13
+ constructor(queryName: string);
14
+ getAppName(): string;
15
+ setDatabaseService(databaseService: DatabaseService): void;
16
+ addToList(list: EList, entries: IMatch[]): void;
17
+ addToExpiry(expiries: IExpiry[]): void;
18
+ init(): Promise<void>;
19
+ run(): Promise<void>;
20
+ }