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,19 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MaintenanceServer = exports.toEAction = void 0;
4
- const tscommons_async_1 = require("tscommons-async");
5
- const tscommons_async_2 = require("tscommons-async");
6
- const nodecommons_cli_1 = require("nodecommons-cli");
7
- const nodecommons_process_1 = require("nodecommons-process");
8
- const expirer_1 = require("../classes/expirer");
9
- const cleaner_1 = require("../classes/cleaner");
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 { commonsAsyncTimeout, CommonsSchedule } from 'tscommons-es-async';
11
+ import { commonsOutputAlert } from 'nodecommons-es-cli';
12
+ import { commonsGracefulAbortAddCallback } from 'nodecommons-es-process';
13
+ import { Expirer } from '../classes/expirer';
14
+ import { Cleaner } from '../classes/cleaner';
10
15
  var EAction;
11
16
  (function (EAction) {
12
17
  EAction["EXPIRE"] = "expire";
13
18
  EAction["PURGE_EMPTY_DOMAINS"] = "purge-empty-domains";
14
19
  EAction["PURGE_ORPHAN_URLS"] = "purge-orphan-urls";
15
20
  })(EAction || (EAction = {}));
16
- function toEAction(value) {
21
+ export function toEAction(value) {
17
22
  switch (value) {
18
23
  case EAction.EXPIRE.toString():
19
24
  return EAction.EXPIRE;
@@ -24,57 +29,58 @@ function toEAction(value) {
24
29
  }
25
30
  return undefined;
26
31
  }
27
- exports.toEAction = toEAction;
28
- class MaintenanceServer {
32
+ export class MaintenanceServer {
29
33
  constructor(times, expiry, lists, database, crawl) {
30
34
  this.crawl = crawl;
31
35
  this.isPaused = false;
32
- this.schedule = new tscommons_async_1.CommonsSchedule('hydra-maintenance');
33
- this.schedule.parse(times, (action) => toEAction(action), async (action) => {
36
+ this.schedule = new CommonsSchedule('hydra-maintenance');
37
+ this.schedule.parse(times, (action) => toEAction(action), (action) => __awaiter(this, void 0, void 0, function* () {
34
38
  let claimedPause = false;
35
39
  if (!this.isPaused) {
36
40
  this.isPaused = true;
37
41
  claimedPause = true;
38
42
  this.crawl.pause();
39
43
  for (let i = 5; i-- > 0;) {
40
- nodecommons_cli_1.CommonsOutput.alert(`Going down for maintenance ... ${i}`);
44
+ commonsOutputAlert(`Going down for maintenance ... ${i}`);
41
45
  try {
42
- await tscommons_async_2.CommonsAsync.timeout(1000);
46
+ yield commonsAsyncTimeout(1000);
43
47
  }
44
48
  catch (ex) {
45
49
  /* do nothing */
46
50
  }
47
51
  }
48
52
  }
49
- await this.perform(action);
53
+ yield this.perform(action);
50
54
  if (claimedPause) {
51
- nodecommons_cli_1.CommonsOutput.alert('Resuming from maintenance');
55
+ commonsOutputAlert('Resuming from maintenance');
52
56
  this.isPaused = false;
53
57
  this.crawl.resume();
54
58
  }
55
- });
56
- this.expirer = new expirer_1.Expirer(expiry, database);
57
- this.cleaner = new cleaner_1.Cleaner(lists, database);
58
- nodecommons_process_1.CommonsGracefulAbort.addCallback(() => {
59
- nodecommons_cli_1.CommonsOutput.alert(`SIGINT abort flag is set. Aborting maintenance server.`);
59
+ }));
60
+ this.expirer = new Expirer(expiry, database);
61
+ this.cleaner = new Cleaner(lists, database);
62
+ commonsGracefulAbortAddCallback(() => {
63
+ commonsOutputAlert('SIGINT abort flag is set. Aborting maintenance server.');
60
64
  this.schedule.stop();
61
65
  });
62
66
  }
63
- async perform(action) {
64
- switch (action) {
65
- case EAction.EXPIRE:
66
- await this.expirer.expire();
67
- break;
68
- case EAction.PURGE_EMPTY_DOMAINS:
69
- await this.cleaner.purgeEmptyDomains();
70
- break;
71
- case EAction.PURGE_ORPHAN_URLS:
72
- await this.cleaner.purgeOrphanUrls();
73
- break;
74
- }
67
+ perform(action) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ switch (action) {
70
+ case EAction.EXPIRE:
71
+ yield this.expirer.expire();
72
+ break;
73
+ case EAction.PURGE_EMPTY_DOMAINS:
74
+ yield this.cleaner.purgeEmptyDomains();
75
+ break;
76
+ case EAction.PURGE_ORPHAN_URLS:
77
+ yield this.cleaner.purgeOrphanUrls();
78
+ break;
79
+ }
80
+ });
75
81
  }
76
82
  start() {
77
83
  this.schedule.start();
78
84
  }
79
85
  }
80
- exports.MaintenanceServer = MaintenanceServer;
86
+ //# sourceMappingURL=maintenance.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.server.js","sourceRoot":"","sources":["../../src/servers/maintenance.server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CommonsConfig } from 'tscommons-es-config';
2
+ import { CommonsStrictExpressServer } from 'nodecommons-es-express';
3
+ import { CommonsRestServer } from 'nodecommons-es-rest';
4
+ import { DatabaseService } from '../services/database.service';
5
+ export declare class RestServer extends CommonsRestServer {
6
+ constructor(expressServer: CommonsStrictExpressServer, database: DatabaseService, config: CommonsConfig);
7
+ }
@@ -1,57 +1,46 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RestServer = void 0;
4
- const nodecommons_express_1 = require("nodecommons-express");
5
- const nodecommons_express_2 = require("nodecommons-express");
6
- const nodecommons_rest_1 = require("nodecommons-rest");
7
- const nodecommons_cli_1 = require("nodecommons-cli");
8
- const test_api_1 = require("../apis/test.api");
9
- const statistics_api_1 = require("../apis/statistics.api");
10
- const crawl_api_1 = require("../apis/crawl.api");
11
- const bugs_api_1 = require("../apis/bugs.api");
12
- const domains_api_1 = require("../apis/domains.api");
13
- const urls_api_1 = require("../apis/urls.api");
14
- const images_api_1 = require("../apis/images.api");
15
- const autocomplete_api_1 = require("../apis/autocomplete.api");
16
- class RestServer extends nodecommons_rest_1.CommonsRestServer {
1
+ import { commonsExpressNginxProxyPath } from 'nodecommons-es-express';
2
+ import { isICommonsExpressConfig } from 'nodecommons-es-express';
3
+ import { CommonsRestServer } from 'nodecommons-es-rest';
4
+ import { commonsOutputDoing, commonsOutputSuccess } from 'nodecommons-es-cli';
5
+ import { TestApi } from '../apis/test.api';
6
+ import { StatisticsApi } from '../apis/statistics.api';
7
+ import { CrawlApi } from '../apis/crawl.api';
8
+ import { BugsApi } from '../apis/bugs.api';
9
+ import { DomainsApi } from '../apis/domains.api';
10
+ import { UrlsApi } from '../apis/urls.api';
11
+ import { ImagesApi } from '../apis/images.api';
12
+ import { AutocompleteApi } from '../apis/autocomplete.api';
13
+ export class RestServer extends CommonsRestServer {
17
14
  constructor(expressServer, database, config) {
18
15
  super(expressServer);
19
16
  const expressConfig = config.getObject('express');
20
- if (!nodecommons_express_2.isICommonsExpressConfig(expressConfig))
17
+ if (!isICommonsExpressConfig(expressConfig))
21
18
  throw new Error('Express config is not valid');
22
- const path = nodecommons_express_1.CommonsExpressServer.nginxProxyPath(expressConfig.path);
23
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Test API');
24
- // tslint:disable-next-line:no-unused-expression
25
- new test_api_1.TestApi(this, path);
26
- nodecommons_cli_1.CommonsOutput.success();
27
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Statistics API');
28
- // tslint:disable-next-line:no-unused-expression
29
- new statistics_api_1.StatisticsApi(this, database, path);
30
- nodecommons_cli_1.CommonsOutput.success();
31
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Crawl API');
32
- // tslint:disable-next-line:no-unused-expression
33
- new crawl_api_1.CrawlApi(this, database, path);
34
- nodecommons_cli_1.CommonsOutput.success();
35
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Bugs API');
36
- // tslint:disable-next-line:no-unused-expression
37
- new bugs_api_1.BugsApi(this, database, path);
38
- nodecommons_cli_1.CommonsOutput.success();
39
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Domains API');
40
- // tslint:disable-next-line:no-unused-expression
41
- new domains_api_1.DomainsApi(this, database, path);
42
- nodecommons_cli_1.CommonsOutput.success();
43
- nodecommons_cli_1.CommonsOutput.doing('Installing REST URLs API');
44
- // tslint:disable-next-line:no-unused-expression
45
- new urls_api_1.UrlsApi(this, database, path);
46
- nodecommons_cli_1.CommonsOutput.success();
47
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Images API');
48
- // tslint:disable-next-line:no-unused-expression
49
- new images_api_1.ImagesApi(this, database, path);
50
- nodecommons_cli_1.CommonsOutput.success();
51
- nodecommons_cli_1.CommonsOutput.doing('Installing REST Autocomplete API');
52
- // tslint:disable-next-line:no-unused-expression
53
- new autocomplete_api_1.AutocompleteApi(this, database, path);
54
- nodecommons_cli_1.CommonsOutput.success();
19
+ const path = commonsExpressNginxProxyPath(expressConfig.path);
20
+ commonsOutputDoing('Installing REST Test API');
21
+ new TestApi(this, path);
22
+ commonsOutputSuccess();
23
+ commonsOutputDoing('Installing REST Statistics API');
24
+ new StatisticsApi(this, database, path);
25
+ commonsOutputSuccess();
26
+ commonsOutputDoing('Installing REST Crawl API');
27
+ new CrawlApi(this, database, path);
28
+ commonsOutputSuccess();
29
+ commonsOutputDoing('Installing REST Bugs API');
30
+ new BugsApi(this, database, path);
31
+ commonsOutputSuccess();
32
+ commonsOutputDoing('Installing REST Domains API');
33
+ new DomainsApi(this, database, path);
34
+ commonsOutputSuccess();
35
+ commonsOutputDoing('Installing REST URLs API');
36
+ new UrlsApi(this, database, path);
37
+ commonsOutputSuccess();
38
+ commonsOutputDoing('Installing REST Images API');
39
+ new ImagesApi(this, database, path);
40
+ commonsOutputSuccess();
41
+ commonsOutputDoing('Installing REST Autocomplete API');
42
+ new AutocompleteApi(this, database, path);
43
+ commonsOutputSuccess();
55
44
  }
56
45
  }
57
- exports.RestServer = RestServer;
46
+ //# sourceMappingURL=rest.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.server.js","sourceRoot":"","sources":["../../src/servers/rest.server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAA8B,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IAChD,YACE,aAAyC,EACzC,QAAyB,EACzB,MAAqB;QAEtB,KAAK,CAAC,aAAa,CAAC,CAAC;QAErB,MAAM,aAAa,GAAoB,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE5F,MAAM,IAAI,GAAW,4BAA4B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEtE,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;QACrD,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,6BAA6B,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,oBAAoB,EAAE,CAAC;QAEvB,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;QACvD,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,oBAAoB,EAAE,CAAC;IACxB,CAAC;CAED"}
@@ -0,0 +1,12 @@
1
+ import { TStatusTallies } from 'hydra-crawler-ts-assets';
2
+ import { TFetch } from 'hydra-crawler-ts-assets';
3
+ import { TOutcome } from 'hydra-crawler-ts-assets';
4
+ import { CommonsSocketIoServer } from 'nodecommons-es-socket-io';
5
+ export declare class SocketIoServer extends CommonsSocketIoServer {
6
+ fetching(fetch: TFetch): Promise<void>;
7
+ outcome(outcome: TOutcome): Promise<void>;
8
+ statusTallies(tallies: TStatusTallies): Promise<void>;
9
+ linkTallies(tally: number): Promise<void>;
10
+ domainTallies(tally: number): Promise<void>;
11
+ bandwidth(bps: number): Promise<void>;
12
+ }
@@ -1,28 +1,61 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SocketIoServer = void 0;
4
- const nodecommons_app_angular_1 = require("nodecommons-app-angular");
5
- class SocketIoServer extends nodecommons_app_angular_1.CommonsAngularSocketIoServer {
6
- constructor(expressServer, expressConfig) {
7
- super(expressServer, expressConfig);
8
- }
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 { CommonsSocketIoServer } from 'nodecommons-es-socket-io';
11
+ export class SocketIoServer extends CommonsSocketIoServer {
9
12
  fetching(fetch) {
10
- super.broadcast('fetching', fetch);
13
+ const _super = Object.create(null, {
14
+ broadcast: { get: () => super.broadcast }
15
+ });
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ yield _super.broadcast.call(this, 'fetching', fetch);
18
+ });
11
19
  }
12
20
  outcome(outcome) {
13
- super.broadcast('outcome', outcome);
21
+ const _super = Object.create(null, {
22
+ broadcast: { get: () => super.broadcast }
23
+ });
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ yield _super.broadcast.call(this, 'outcome', outcome);
26
+ });
14
27
  }
15
28
  statusTallies(tallies) {
16
- super.broadcast('statusTallies', tallies);
29
+ const _super = Object.create(null, {
30
+ broadcast: { get: () => super.broadcast }
31
+ });
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ yield _super.broadcast.call(this, 'statusTallies', tallies);
34
+ });
17
35
  }
18
36
  linkTallies(tally) {
19
- super.broadcast('linkTallies', tally);
37
+ const _super = Object.create(null, {
38
+ broadcast: { get: () => super.broadcast }
39
+ });
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ yield _super.broadcast.call(this, 'linkTallies', tally);
42
+ });
20
43
  }
21
44
  domainTallies(tally) {
22
- super.broadcast('domainTallies', tally);
45
+ const _super = Object.create(null, {
46
+ broadcast: { get: () => super.broadcast }
47
+ });
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ yield _super.broadcast.call(this, 'domainTallies', tally);
50
+ });
23
51
  }
24
52
  bandwidth(bps) {
25
- super.broadcast('bandwidth', bps);
53
+ const _super = Object.create(null, {
54
+ broadcast: { get: () => super.broadcast }
55
+ });
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ yield _super.broadcast.call(this, 'bandwidth', bps);
58
+ });
26
59
  }
27
60
  }
28
- exports.SocketIoServer = SocketIoServer;
61
+ //# sourceMappingURL=socket-io.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-io.server.js","sourceRoot":"","sources":["../../src/servers/socket-io.server.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,OAAO,cAAe,SAAQ,qBAAqB;IAC3C,QAAQ,CAAC,KAAa;;;;;YAClC,MAAM,OAAM,SAAS,YAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEY,OAAO,CAAC,OAAiB;;;;;YACrC,MAAM,OAAM,SAAS,YAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEY,aAAa,CAAC,OAAuB;;;;;YACjD,MAAM,OAAM,SAAS,YAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;KAAA;IAEY,WAAW,CAAC,KAAa;;;;;YACrC,MAAM,OAAM,SAAS,YAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;KAAA;IAEY,aAAa,CAAC,KAAa;;;;;YACvC,MAAM,OAAM,SAAS,YAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEY,SAAS,CAAC,GAAW;;;;;YACjC,MAAM,OAAM,SAAS,YAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;KAAA;CACD"}
@@ -0,0 +1,68 @@
1
+ import { Db, Collection } from 'mongodb';
2
+ import { IUrlErrors } from 'hydra-crawler-ts-assets';
3
+ import { IImage } from 'hydra-crawler-ts-assets';
4
+ import { IUrl } from 'hydra-crawler-ts-assets';
5
+ import { TPhpError } from 'hydra-crawler-ts-assets';
6
+ import { TAspError } from 'hydra-crawler-ts-assets';
7
+ import { TDomain } from 'hydra-crawler-ts-assets';
8
+ import { TLink } from 'hydra-crawler-ts-assets';
9
+ import { EStatus } from 'hydra-crawler-ts-assets';
10
+ import { EComparator } from 'hydra-crawler-ts-assets';
11
+ import { CommonsMongodbService } from 'nodecommons-es-database-mongodb';
12
+ import { TParserCtor } from '../types/tparser-ctor';
13
+ import { EAvailableStrategy } from '../enums/eavailable-strategy';
14
+ export declare type TMongoIdRow = {
15
+ _id: string;
16
+ };
17
+ export declare function isTMongoIdRow(test: unknown): test is TMongoIdRow;
18
+ export declare type TMongoIdTallyRow = {
19
+ _id: string;
20
+ tally: number;
21
+ };
22
+ export declare function isTMongoIdTallyRow(test: unknown): test is TMongoIdTallyRow;
23
+ export declare class DatabaseService extends CommonsMongodbService {
24
+ private domains;
25
+ private urls;
26
+ private links;
27
+ getDomains(): Collection<TDomain>;
28
+ getUrls(): Collection<IUrl>;
29
+ getLinks(): Collection<TLink>;
30
+ init(): Promise<void>;
31
+ initParser(ctor: TParserCtor): Promise<void>;
32
+ getRawDatabase(): Db;
33
+ wipe(): Promise<void>;
34
+ resetActive(): Promise<void>;
35
+ domain(domain: string, ip: string): Promise<boolean>;
36
+ queue(url: string, isDeny?: boolean): Promise<boolean>;
37
+ available(strategy: EAvailableStrategy, threshold: number, limit: number, existing: string[]): Promise<string[]>;
38
+ next(domain: string): Promise<string | undefined>;
39
+ setStatus(url: string, status: EStatus): Promise<boolean>;
40
+ setStatusCode(url: string, code: number): Promise<boolean>;
41
+ setHeaders(url: string, headers: {
42
+ [key: string]: string | number | Date;
43
+ }): Promise<boolean>;
44
+ setData(url: string, context: string, data: unknown): Promise<boolean>;
45
+ unsetData(url: string, context: string): Promise<boolean>;
46
+ getTtl(url: string): Promise<number | undefined>;
47
+ setTtl(url: string, ttl: number): Promise<boolean>;
48
+ unsetTtl(url: string): Promise<boolean>;
49
+ getHash(url: string): Promise<string | undefined>;
50
+ setHash(url: string, hash: string): Promise<boolean>;
51
+ unsetHash(url: string): Promise<boolean>;
52
+ setFailReason(url: string, reason: string): Promise<boolean>;
53
+ unsetFailReason(url: string): Promise<boolean>;
54
+ link(url: string, links: string[]): Promise<boolean>;
55
+ markDead(domain: string): Promise<boolean>;
56
+ listStatusTallies(): Promise<Map<EStatus, number>>;
57
+ getLinkTalliesCount(): Promise<number>;
58
+ getDomainTalliesCount(): Promise<number>;
59
+ listDomainQueuedTallies(): Promise<Map<string, number>>;
60
+ listPhpErrors(): Promise<IUrlErrors<TPhpError>[]>;
61
+ listAspErrors(): Promise<IUrlErrors<TAspError>[]>;
62
+ listDone200DomainUrls(domain: string): Promise<string[]>;
63
+ listDomains(): Promise<TDomain[]>;
64
+ listDomainsByLike(term: string): Promise<TDomain[]>;
65
+ listInboundLinks(url: string): Promise<string[]>;
66
+ listOutboundLinks(url: string): Promise<string[]>;
67
+ listImagesBySizeThreshold(size: number, comparator: EComparator): Promise<IImage[]>;
68
+ }