hydra-crawler 2.8.3 → 3.0.1

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 (468) hide show
  1. package/dist/apis/{autocomplete.api.d.ts → autocomplete.api.d.mts} +4 -4
  2. package/dist/apis/autocomplete.api.mjs +14 -0
  3. package/dist/apis/autocomplete.api.mjs.map +1 -0
  4. package/dist/apis/{bugs.api.d.ts → bugs.api.d.mts} +4 -4
  5. package/dist/apis/bugs.api.mjs +18 -0
  6. package/dist/apis/bugs.api.mjs.map +1 -0
  7. package/dist/apis/{crawl.api.d.ts → crawl.api.d.mts} +4 -4
  8. package/dist/apis/crawl.api.mjs +17 -0
  9. package/dist/apis/crawl.api.mjs.map +1 -0
  10. package/dist/apis/{domains.api.d.ts → domains.api.d.mts} +4 -4
  11. package/dist/apis/{domains.api.js → domains.api.mjs} +10 -18
  12. package/dist/apis/domains.api.mjs.map +1 -0
  13. package/dist/apis/{images.api.d.ts → images.api.d.mts} +4 -4
  14. package/dist/apis/images.api.mjs +19 -0
  15. package/dist/apis/images.api.mjs.map +1 -0
  16. package/dist/apis/{statistics.api.d.ts → statistics.api.d.mts} +4 -4
  17. package/dist/apis/statistics.api.mjs +33 -0
  18. package/dist/apis/statistics.api.mjs.map +1 -0
  19. package/dist/apis/{test.api.d.ts → test.api.d.mts} +3 -3
  20. package/dist/apis/test.api.mjs +10 -0
  21. package/dist/apis/test.api.mjs.map +1 -0
  22. package/dist/apis/{urls.api.d.ts → urls.api.d.mts} +4 -4
  23. package/dist/apis/urls.api.mjs +21 -0
  24. package/dist/apis/urls.api.mjs.map +1 -0
  25. package/dist/apps/{cleanup.app.d.ts → cleanup.app.d.mts} +5 -5
  26. package/dist/apps/cleanup.app.mjs +129 -0
  27. package/dist/apps/cleanup.app.mjs.map +1 -0
  28. package/dist/apps/{cross-populate-export.app.d.ts → cross-populate-export.app.d.mts} +3 -3
  29. package/dist/apps/cross-populate-export.app.mjs +61 -0
  30. package/dist/apps/cross-populate-export.app.mjs.map +1 -0
  31. package/dist/apps/{cross-populate-import.app.d.ts → cross-populate-import.app.d.mts} +3 -3
  32. package/dist/apps/cross-populate-import.app.mjs +61 -0
  33. package/dist/apps/cross-populate-import.app.mjs.map +1 -0
  34. package/dist/apps/{denylist.app.d.ts → denylist.app.d.mts} +5 -5
  35. package/dist/apps/denylist.app.mjs +122 -0
  36. package/dist/apps/denylist.app.mjs.map +1 -0
  37. package/dist/apps/{expire.app.d.ts → expire.app.d.mts} +8 -7
  38. package/dist/apps/expire.app.mjs +51 -0
  39. package/dist/apps/expire.app.mjs.map +1 -0
  40. package/dist/apps/{export-domain-urls.d.ts → export-domain-urls.d.mts} +3 -3
  41. package/dist/apps/export-domain-urls.mjs +85 -0
  42. package/dist/apps/export-domain-urls.mjs.map +1 -0
  43. package/dist/apps/{extract-text.app.d.ts → extract-text.app.d.mts} +2 -2
  44. package/dist/apps/extract-text.app.mjs +43 -0
  45. package/dist/apps/extract-text.app.mjs.map +1 -0
  46. package/dist/apps/{hydra.app.d.ts → hydra.app.d.mts} +10 -10
  47. package/dist/apps/hydra.app.mjs +222 -0
  48. package/dist/apps/hydra.app.mjs.map +1 -0
  49. package/dist/apps/{import.app.d.ts → import.app.d.mts} +3 -3
  50. package/dist/apps/import.app.mjs +48 -0
  51. package/dist/apps/import.app.mjs.map +1 -0
  52. package/dist/apps/{internal-hydra-common.app.d.ts → internal-hydra-common.app.d.mts} +6 -6
  53. package/dist/apps/{internal-hydra-common.app.js → internal-hydra-common.app.mjs} +1 -1
  54. package/dist/apps/internal-hydra-common.app.mjs.map +1 -0
  55. package/dist/apps/{move-to-archive.app.d.ts → move-to-archive.app.d.mts} +2 -2
  56. package/dist/apps/move-to-archive.app.mjs +31 -0
  57. package/dist/apps/move-to-archive.app.mjs.map +1 -0
  58. package/dist/apps/{prune-archive.app.d.ts → prune-archive.app.d.mts} +2 -2
  59. package/dist/apps/prune-archive.app.mjs +40 -0
  60. package/dist/apps/prune-archive.app.mjs.map +1 -0
  61. package/dist/apps/{query.app.d.ts → query.app.d.mts} +6 -6
  62. package/dist/apps/query.app.mjs +69 -0
  63. package/dist/apps/query.app.mjs.map +1 -0
  64. package/dist/apps/{reattempt.app.d.ts → reattempt.app.d.mts} +6 -6
  65. package/dist/apps/reattempt.app.mjs +74 -0
  66. package/dist/apps/reattempt.app.mjs.map +1 -0
  67. package/dist/apps/{requeue-domain.app.d.ts → requeue-domain.app.d.mts} +3 -3
  68. package/dist/apps/requeue-domain.app.mjs +52 -0
  69. package/dist/apps/requeue-domain.app.mjs.map +1 -0
  70. package/dist/apps/{seed.app.d.ts → seed.app.d.mts} +5 -5
  71. package/dist/apps/seed.app.mjs +59 -0
  72. package/dist/apps/seed.app.mjs.map +1 -0
  73. package/dist/apps/{startup.app.d.ts → startup.app.d.mts} +3 -3
  74. package/dist/apps/startup.app.mjs +55 -0
  75. package/dist/apps/startup.app.mjs.map +1 -0
  76. package/dist/apps/{unarchive-urls.app.d.ts → unarchive-urls.app.d.mts} +5 -5
  77. package/dist/apps/unarchive-urls.app.mjs +71 -0
  78. package/dist/apps/unarchive-urls.app.mjs.map +1 -0
  79. package/dist/classes/{cleaner.d.ts → cleaner.d.mts} +2 -2
  80. package/dist/classes/cleaner.mjs +257 -0
  81. package/dist/classes/cleaner.mjs.map +1 -0
  82. package/dist/classes/{crawler.d.ts → crawler.d.mts} +10 -12
  83. package/dist/classes/crawler.mjs +418 -0
  84. package/dist/classes/crawler.mjs.map +1 -0
  85. package/dist/classes/{dns.js → dns.mjs} +4 -4
  86. package/dist/classes/dns.mjs.map +1 -0
  87. package/dist/classes/{expirer.d.ts → expirer.d.mts} +2 -2
  88. package/dist/classes/expirer.mjs +117 -0
  89. package/dist/classes/expirer.mjs.map +1 -0
  90. package/dist/classes/{expiry.d.ts → expiry.d.mts} +1 -1
  91. package/dist/classes/{expiry.js → expiry.mjs} +7 -9
  92. package/dist/classes/expiry.mjs.map +1 -0
  93. package/dist/classes/{lists.d.ts → lists.d.mts} +2 -2
  94. package/dist/classes/{lists.js → lists.mjs} +4 -4
  95. package/dist/classes/lists.mjs.map +1 -0
  96. package/dist/classes/{robot.d.ts → robot.d.mts} +3 -3
  97. package/dist/classes/robot.mjs +74 -0
  98. package/dist/classes/robot.mjs.map +1 -0
  99. package/dist/classes/{tracker.d.ts → tracker.d.mts} +3 -3
  100. package/dist/classes/tracker.mjs +101 -0
  101. package/dist/classes/tracker.mjs.map +1 -0
  102. package/dist/{cli.js → cli.mjs} +46 -58
  103. package/dist/cli.mjs.map +1 -0
  104. package/dist/enums/{eavailable-strategy.js → eavailable-strategy.mjs} +1 -1
  105. package/dist/enums/eavailable-strategy.mjs.map +1 -0
  106. package/dist/enums/{elist.js → elist.mjs} +1 -1
  107. package/dist/enums/elist.mjs.map +1 -0
  108. package/dist/enums/{eserver.js → eserver.mjs} +1 -1
  109. package/dist/enums/eserver.mjs.map +1 -0
  110. package/dist/enums/{ex-powered-by.js → ex-powered-by.mjs} +1 -1
  111. package/dist/enums/ex-powered-by.mjs.map +1 -0
  112. package/dist/helpers/{matcher.d.ts → matcher.d.mts} +1 -1
  113. package/dist/helpers/{matcher.js → matcher.mjs} +1 -1
  114. package/dist/helpers/matcher.mjs.map +1 -0
  115. package/dist/helpers/{random.d.ts → random.d.mts} +1 -1
  116. package/dist/helpers/{random.js → random.mjs} +1 -1
  117. package/dist/helpers/random.mjs.map +1 -0
  118. package/dist/helpers/{utf-decoder.d.ts → utf-decoder.d.mts} +0 -1
  119. package/dist/helpers/{utf-decoder.js → utf-decoder.mjs} +3 -3
  120. package/dist/helpers/utf-decoder.mjs.map +1 -0
  121. package/dist/interfaces/{iexpiry.d.ts → iexpiry.d.mts} +1 -1
  122. package/dist/interfaces/{iexpiry.js → iexpiry.mjs} +3 -3
  123. package/dist/interfaces/iexpiry.mjs.map +1 -0
  124. package/dist/interfaces/{imatch.js → imatch.mjs} +2 -2
  125. package/dist/interfaces/imatch.mjs.map +1 -0
  126. package/dist/interfaces/{iparser-config.js → iparser-config.mjs} +2 -2
  127. package/dist/interfaces/iparser-config.mjs.map +1 -0
  128. package/dist/interfaces/{iparser.d.ts → iparser.d.mts} +1 -1
  129. package/dist/interfaces/iparser.mjs +2 -0
  130. package/dist/interfaces/iparser.mjs.map +1 -0
  131. package/dist/interfaces/{irequest-outcome.d.ts → irequest-outcome.d.mts} +0 -2
  132. package/dist/interfaces/irequest-outcome.mjs +2 -0
  133. package/dist/interfaces/irequest-outcome.mjs.map +1 -0
  134. package/dist/interfaces/iserver.mjs +2 -0
  135. package/dist/interfaces/iserver.mjs.map +1 -0
  136. package/dist/parsers/accessibility-metrics.parser.d.mts +11 -0
  137. package/dist/parsers/accessibility-metrics.parser.mjs +30 -0
  138. package/dist/parsers/accessibility-metrics.parser.mjs.map +1 -0
  139. package/dist/parsers/asp-error.parser.d.mts +12 -0
  140. package/dist/parsers/asp-error.parser.mjs +38 -0
  141. package/dist/parsers/asp-error.parser.mjs.map +1 -0
  142. package/dist/parsers/{bad-words.parser.d.ts → bad-words.parser.d.mts} +6 -6
  143. package/dist/parsers/bad-words.parser.mjs +17 -0
  144. package/dist/parsers/bad-words.parser.mjs.map +1 -0
  145. package/dist/parsers/complex-english.parser.d.mts +15 -0
  146. package/dist/parsers/complex-english.parser.mjs +52 -0
  147. package/dist/parsers/complex-english.parser.mjs.map +1 -0
  148. package/dist/parsers/data.parser.d.mts +13 -0
  149. package/dist/parsers/{data.parser.js → data.parser.mjs} +8 -7
  150. package/dist/parsers/data.parser.mjs.map +1 -0
  151. package/dist/parsers/{dictionary.parser.d.ts → dictionary.parser.d.mts} +6 -6
  152. package/dist/parsers/dictionary.parser.mjs +63 -0
  153. package/dist/parsers/dictionary.parser.mjs.map +1 -0
  154. package/dist/parsers/html.parser.d.mts +13 -0
  155. package/dist/parsers/{html.parser.js → html.parser.mjs} +4 -3
  156. package/dist/parsers/html.parser.mjs.map +1 -0
  157. package/dist/parsers/hyperlinks.parser.d.mts +20 -0
  158. package/dist/parsers/hyperlinks.parser.mjs +104 -0
  159. package/dist/parsers/hyperlinks.parser.mjs.map +1 -0
  160. package/dist/parsers/image-tags.parser.d.mts +19 -0
  161. package/dist/parsers/image-tags.parser.mjs +42 -0
  162. package/dist/parsers/image-tags.parser.mjs.map +1 -0
  163. package/dist/parsers/{interest.parser.d.ts → interest.parser.d.mts} +7 -7
  164. package/dist/parsers/interest.parser.mjs +60 -0
  165. package/dist/parsers/interest.parser.mjs.map +1 -0
  166. package/dist/parsers/jpeg.parser.d.mts +11 -0
  167. package/dist/parsers/jpeg.parser.mjs +29 -0
  168. package/dist/parsers/jpeg.parser.mjs.map +1 -0
  169. package/dist/parsers/{llama-guard.parser.d.ts → llama-guard.parser.d.mts} +7 -7
  170. package/dist/parsers/llama-guard.parser.mjs +56 -0
  171. package/dist/parsers/llama-guard.parser.mjs.map +1 -0
  172. package/dist/parsers/{offence.parser.d.ts → offence.parser.d.mts} +7 -7
  173. package/dist/parsers/offence.parser.mjs +60 -0
  174. package/dist/parsers/offence.parser.mjs.map +1 -0
  175. package/dist/parsers/{ollama.parser.d.ts → ollama.parser.d.mts} +6 -6
  176. package/dist/parsers/ollama.parser.mjs +43 -0
  177. package/dist/parsers/ollama.parser.mjs.map +1 -0
  178. package/dist/parsers/{paragraphs.parser.d.ts → paragraphs.parser.d.mts} +5 -5
  179. package/dist/parsers/paragraphs.parser.mjs +38 -0
  180. package/dist/parsers/paragraphs.parser.mjs.map +1 -0
  181. package/dist/parsers/{parser.d.ts → parser.d.mts} +6 -6
  182. package/dist/parsers/parser.mjs +45 -0
  183. package/dist/parsers/parser.mjs.map +1 -0
  184. package/dist/parsers/php-error.parser.d.mts +12 -0
  185. package/dist/parsers/php-error.parser.mjs +42 -0
  186. package/dist/parsers/php-error.parser.mjs.map +1 -0
  187. package/dist/parsers/{phrase.parser.d.ts → phrase.parser.d.mts} +3 -3
  188. package/dist/parsers/phrase.parser.mjs +15 -0
  189. package/dist/parsers/phrase.parser.mjs.map +1 -0
  190. package/dist/parsers/{regex.parser.d.ts → regex.parser.d.mts} +3 -3
  191. package/dist/parsers/regex.parser.mjs +29 -0
  192. package/dist/parsers/regex.parser.mjs.map +1 -0
  193. package/dist/parsers/server.parser.d.mts +11 -0
  194. package/dist/parsers/server.parser.mjs +57 -0
  195. package/dist/parsers/server.parser.mjs.map +1 -0
  196. package/dist/parsers/{spelling.parser.d.ts → spelling.parser.d.mts} +6 -6
  197. package/dist/parsers/spelling.parser.mjs +17 -0
  198. package/dist/parsers/spelling.parser.mjs.map +1 -0
  199. package/dist/parsers/string.parser.d.mts +8 -0
  200. package/dist/parsers/{string.parser.js → string.parser.mjs} +5 -4
  201. package/dist/parsers/string.parser.mjs.map +1 -0
  202. package/dist/parsers/{text.parser.d.ts → text.parser.d.mts} +3 -3
  203. package/dist/parsers/text.parser.mjs +30 -0
  204. package/dist/parsers/text.parser.mjs.map +1 -0
  205. package/dist/parsers/{words.parser.d.ts → words.parser.d.mts} +3 -3
  206. package/dist/parsers/words.parser.mjs +29 -0
  207. package/dist/parsers/words.parser.mjs.map +1 -0
  208. package/dist/queries/complex-english.query.d.mts +2 -0
  209. package/dist/queries/{complex-english.query.js → complex-english.query.mjs} +18 -27
  210. package/dist/queries/complex-english.query.mjs.map +1 -0
  211. package/dist/queries/flash-content.query.d.mts +2 -0
  212. package/dist/queries/flash-content.query.mjs +80 -0
  213. package/dist/queries/flash-content.query.mjs.map +1 -0
  214. package/dist/queries/linking-to-domains.query.d.mts +2 -0
  215. package/dist/queries/linking-to-domains.query.mjs +128 -0
  216. package/dist/queries/linking-to-domains.query.mjs.map +1 -0
  217. package/dist/queries/llamaguard-unsafe-content.query.d.mts +2 -0
  218. package/dist/queries/llamaguard-unsafe-content.query.mjs +90 -0
  219. package/dist/queries/llamaguard-unsafe-content.query.mjs.map +1 -0
  220. package/dist/queries/readability-score.query.d.mts +2 -0
  221. package/dist/queries/{readability-score.query.js → readability-score.query.mjs} +11 -20
  222. package/dist/queries/readability-score.query.mjs.map +1 -0
  223. package/dist/servers/{crawl.server.d.ts → crawl.server.d.mts} +10 -10
  224. package/dist/servers/crawl.server.mjs +192 -0
  225. package/dist/servers/crawl.server.mjs.map +1 -0
  226. package/dist/servers/{express.server.d.ts → express.server.d.mts} +2 -3
  227. package/dist/servers/express.server.mjs +13 -0
  228. package/dist/servers/express.server.mjs.map +1 -0
  229. package/dist/servers/{maintenance.server.d.ts → maintenance.server.d.mts} +5 -5
  230. package/dist/servers/maintenance.server.mjs +97 -0
  231. package/dist/servers/maintenance.server.mjs.map +1 -0
  232. package/dist/servers/{rest.server.d.ts → rest.server.d.mts} +4 -4
  233. package/dist/servers/rest.server.mjs +62 -0
  234. package/dist/servers/rest.server.mjs.map +1 -0
  235. package/dist/servers/{socket-io.server.d.ts → socket-io.server.d.mts} +4 -4
  236. package/dist/servers/socket-io.server.mjs +22 -0
  237. package/dist/servers/socket-io.server.mjs.map +1 -0
  238. package/dist/services/{database.service.d.ts → database.service.d.mts} +12 -12
  239. package/dist/services/database.service.mjs +645 -0
  240. package/dist/services/database.service.mjs.map +1 -0
  241. package/dist/services/{ollama-rest.service.d.ts → ollama-rest.service.d.mts} +2 -2
  242. package/dist/services/ollama-rest.service.mjs +27 -0
  243. package/dist/services/ollama-rest.service.mjs.map +1 -0
  244. package/dist/services/{rig-llama-guard.service.d.ts → rig-llama-guard.service.d.mts} +2 -2
  245. package/dist/services/{rig-llama-guard.service.js → rig-llama-guard.service.mjs} +33 -43
  246. package/dist/services/rig-llama-guard.service.mjs.map +1 -0
  247. package/dist/services/{rig-queue-length.service.d.ts → rig-queue-length.service.d.mts} +1 -1
  248. package/dist/services/rig-queue-length.service.mjs +12 -0
  249. package/dist/services/rig-queue-length.service.mjs.map +1 -0
  250. package/dist/services/{rig-subjectivity-scale.service.d.ts → rig-subjectivity-scale.service.d.mts} +2 -2
  251. package/dist/services/rig-subjectivity-scale.service.mjs +82 -0
  252. package/dist/services/rig-subjectivity-scale.service.mjs.map +1 -0
  253. package/dist/services/{rig-ticket-rest.service.d.ts → rig-ticket-rest.service.d.mts} +3 -3
  254. package/dist/services/rig-ticket-rest.service.mjs +15 -0
  255. package/dist/services/rig-ticket-rest.service.mjs.map +1 -0
  256. package/dist/services/{rig-ticketed-promise.service.d.ts → rig-ticketed-promise.service.d.mts} +4 -6
  257. package/dist/services/{rig-ticketed-promise.service.js → rig-ticketed-promise.service.mjs} +7 -6
  258. package/dist/services/rig-ticketed-promise.service.mjs.map +1 -0
  259. package/dist/types/{tcrawl-config.js → tcrawl-config.mjs} +2 -2
  260. package/dist/types/tcrawl-config.mjs.map +1 -0
  261. package/dist/types/{thydra-config.js → thydra-config.mjs} +2 -2
  262. package/dist/types/thydra-config.mjs.map +1 -0
  263. package/dist/types/tparser-ctor.d.mts +7 -0
  264. package/dist/types/tparser-ctor.mjs +2 -0
  265. package/dist/types/tparser-ctor.mjs.map +1 -0
  266. package/dist/types/tquery.d.mts +7 -0
  267. package/dist/types/tquery.mjs +2 -0
  268. package/dist/types/tquery.mjs.map +1 -0
  269. package/dist/types/tqueue-length.mjs +2 -0
  270. package/dist/types/tqueue-length.mjs.map +1 -0
  271. package/dist/types/{trobots-config.js → trobots-config.mjs} +2 -2
  272. package/dist/types/trobots-config.mjs.map +1 -0
  273. package/package.json +37 -43
  274. package/dist/apis/autocomplete.api.js +0 -22
  275. package/dist/apis/autocomplete.api.js.map +0 -1
  276. package/dist/apis/bugs.api.js +0 -26
  277. package/dist/apis/bugs.api.js.map +0 -1
  278. package/dist/apis/crawl.api.js +0 -25
  279. package/dist/apis/crawl.api.js.map +0 -1
  280. package/dist/apis/domains.api.js.map +0 -1
  281. package/dist/apis/images.api.js +0 -27
  282. package/dist/apis/images.api.js.map +0 -1
  283. package/dist/apis/statistics.api.js +0 -41
  284. package/dist/apis/statistics.api.js.map +0 -1
  285. package/dist/apis/test.api.js +0 -19
  286. package/dist/apis/test.api.js.map +0 -1
  287. package/dist/apis/urls.api.js +0 -29
  288. package/dist/apis/urls.api.js.map +0 -1
  289. package/dist/apps/cleanup.app.js +0 -141
  290. package/dist/apps/cleanup.app.js.map +0 -1
  291. package/dist/apps/cross-populate-export.app.js +0 -75
  292. package/dist/apps/cross-populate-export.app.js.map +0 -1
  293. package/dist/apps/cross-populate-import.app.js +0 -100
  294. package/dist/apps/cross-populate-import.app.js.map +0 -1
  295. package/dist/apps/denylist.app.js +0 -132
  296. package/dist/apps/denylist.app.js.map +0 -1
  297. package/dist/apps/expire.app.js +0 -63
  298. package/dist/apps/expire.app.js.map +0 -1
  299. package/dist/apps/export-domain-urls.js +0 -99
  300. package/dist/apps/export-domain-urls.js.map +0 -1
  301. package/dist/apps/extract-text.app.js +0 -55
  302. package/dist/apps/extract-text.app.js.map +0 -1
  303. package/dist/apps/hydra.app.js +0 -218
  304. package/dist/apps/hydra.app.js.map +0 -1
  305. package/dist/apps/import.app.js +0 -57
  306. package/dist/apps/import.app.js.map +0 -1
  307. package/dist/apps/internal-hydra-common.app.js.map +0 -1
  308. package/dist/apps/move-to-archive.app.js +0 -46
  309. package/dist/apps/move-to-archive.app.js.map +0 -1
  310. package/dist/apps/prune-archive.app.js +0 -55
  311. package/dist/apps/prune-archive.app.js.map +0 -1
  312. package/dist/apps/query.app.js +0 -80
  313. package/dist/apps/query.app.js.map +0 -1
  314. package/dist/apps/reattempt.app.js +0 -83
  315. package/dist/apps/reattempt.app.js.map +0 -1
  316. package/dist/apps/requeue-domain.app.js +0 -64
  317. package/dist/apps/requeue-domain.app.js.map +0 -1
  318. package/dist/apps/seed.app.js +0 -69
  319. package/dist/apps/seed.app.js.map +0 -1
  320. package/dist/apps/startup.app.js +0 -64
  321. package/dist/apps/startup.app.js.map +0 -1
  322. package/dist/apps/unarchive-urls.app.js +0 -83
  323. package/dist/apps/unarchive-urls.app.js.map +0 -1
  324. package/dist/classes/cleaner.js +0 -266
  325. package/dist/classes/cleaner.js.map +0 -1
  326. package/dist/classes/crawler.js +0 -422
  327. package/dist/classes/crawler.js.map +0 -1
  328. package/dist/classes/dns.js.map +0 -1
  329. package/dist/classes/expirer.js +0 -121
  330. package/dist/classes/expirer.js.map +0 -1
  331. package/dist/classes/expiry.js.map +0 -1
  332. package/dist/classes/lists.js.map +0 -1
  333. package/dist/classes/robot.js +0 -82
  334. package/dist/classes/robot.js.map +0 -1
  335. package/dist/classes/tracker.js +0 -120
  336. package/dist/classes/tracker.js.map +0 -1
  337. package/dist/cli.js.map +0 -1
  338. package/dist/enums/eavailable-strategy.js.map +0 -1
  339. package/dist/enums/elist.js.map +0 -1
  340. package/dist/enums/eserver.js.map +0 -1
  341. package/dist/enums/ex-powered-by.js.map +0 -1
  342. package/dist/helpers/matcher.js.map +0 -1
  343. package/dist/helpers/random.js.map +0 -1
  344. package/dist/helpers/utf-decoder.js.map +0 -1
  345. package/dist/interfaces/iexpiry.js.map +0 -1
  346. package/dist/interfaces/imatch.js.map +0 -1
  347. package/dist/interfaces/iparser-config.js.map +0 -1
  348. package/dist/interfaces/iparser.js +0 -2
  349. package/dist/interfaces/iparser.js.map +0 -1
  350. package/dist/interfaces/irequest-outcome.js +0 -2
  351. package/dist/interfaces/irequest-outcome.js.map +0 -1
  352. package/dist/interfaces/iserver.js +0 -2
  353. package/dist/interfaces/iserver.js.map +0 -1
  354. package/dist/parsers/accessibility-metrics.parser.d.ts +0 -11
  355. package/dist/parsers/accessibility-metrics.parser.js +0 -40
  356. package/dist/parsers/accessibility-metrics.parser.js.map +0 -1
  357. package/dist/parsers/asp-error.parser.d.ts +0 -12
  358. package/dist/parsers/asp-error.parser.js +0 -48
  359. package/dist/parsers/asp-error.parser.js.map +0 -1
  360. package/dist/parsers/bad-words.parser.js +0 -27
  361. package/dist/parsers/bad-words.parser.js.map +0 -1
  362. package/dist/parsers/complex-english.parser.d.ts +0 -15
  363. package/dist/parsers/complex-english.parser.js +0 -61
  364. package/dist/parsers/complex-english.parser.js.map +0 -1
  365. package/dist/parsers/data.parser.d.ts +0 -14
  366. package/dist/parsers/data.parser.js.map +0 -1
  367. package/dist/parsers/dictionary.parser.js +0 -73
  368. package/dist/parsers/dictionary.parser.js.map +0 -1
  369. package/dist/parsers/html.parser.d.ts +0 -13
  370. package/dist/parsers/html.parser.js.map +0 -1
  371. package/dist/parsers/hyperlinks.parser.d.ts +0 -20
  372. package/dist/parsers/hyperlinks.parser.js +0 -115
  373. package/dist/parsers/hyperlinks.parser.js.map +0 -1
  374. package/dist/parsers/image-tags.parser.d.ts +0 -19
  375. package/dist/parsers/image-tags.parser.js +0 -52
  376. package/dist/parsers/image-tags.parser.js.map +0 -1
  377. package/dist/parsers/interest.parser.js +0 -69
  378. package/dist/parsers/interest.parser.js.map +0 -1
  379. package/dist/parsers/jpeg.parser.d.ts +0 -11
  380. package/dist/parsers/jpeg.parser.js +0 -39
  381. package/dist/parsers/jpeg.parser.js.map +0 -1
  382. package/dist/parsers/llama-guard.parser.js +0 -65
  383. package/dist/parsers/llama-guard.parser.js.map +0 -1
  384. package/dist/parsers/offence.parser.js +0 -69
  385. package/dist/parsers/offence.parser.js.map +0 -1
  386. package/dist/parsers/ollama.parser.js +0 -51
  387. package/dist/parsers/ollama.parser.js.map +0 -1
  388. package/dist/parsers/paragraphs.parser.js +0 -49
  389. package/dist/parsers/paragraphs.parser.js.map +0 -1
  390. package/dist/parsers/parser.js +0 -57
  391. package/dist/parsers/parser.js.map +0 -1
  392. package/dist/parsers/php-error.parser.d.ts +0 -12
  393. package/dist/parsers/php-error.parser.js +0 -52
  394. package/dist/parsers/php-error.parser.js.map +0 -1
  395. package/dist/parsers/phrase.parser.js +0 -26
  396. package/dist/parsers/phrase.parser.js.map +0 -1
  397. package/dist/parsers/regex.parser.js +0 -43
  398. package/dist/parsers/regex.parser.js.map +0 -1
  399. package/dist/parsers/server.parser.d.ts +0 -11
  400. package/dist/parsers/server.parser.js +0 -67
  401. package/dist/parsers/server.parser.js.map +0 -1
  402. package/dist/parsers/spelling.parser.js +0 -27
  403. package/dist/parsers/spelling.parser.js.map +0 -1
  404. package/dist/parsers/string.parser.d.ts +0 -8
  405. package/dist/parsers/string.parser.js.map +0 -1
  406. package/dist/parsers/text.parser.js +0 -41
  407. package/dist/parsers/text.parser.js.map +0 -1
  408. package/dist/parsers/words.parser.js +0 -40
  409. package/dist/parsers/words.parser.js.map +0 -1
  410. package/dist/queries/complex-english.query.d.ts +0 -2
  411. package/dist/queries/complex-english.query.js.map +0 -1
  412. package/dist/queries/flash-content.query.d.ts +0 -2
  413. package/dist/queries/flash-content.query.js +0 -82
  414. package/dist/queries/flash-content.query.js.map +0 -1
  415. package/dist/queries/linking-to-domains.query.d.ts +0 -2
  416. package/dist/queries/linking-to-domains.query.js +0 -130
  417. package/dist/queries/linking-to-domains.query.js.map +0 -1
  418. package/dist/queries/llamaguard-unsafe-content.query.d.ts +0 -2
  419. package/dist/queries/llamaguard-unsafe-content.query.js +0 -92
  420. package/dist/queries/llamaguard-unsafe-content.query.js.map +0 -1
  421. package/dist/queries/readability-score.query.d.ts +0 -2
  422. package/dist/queries/readability-score.query.js.map +0 -1
  423. package/dist/servers/crawl.server.js +0 -198
  424. package/dist/servers/crawl.server.js.map +0 -1
  425. package/dist/servers/express.server.js +0 -13
  426. package/dist/servers/express.server.js.map +0 -1
  427. package/dist/servers/maintenance.server.js +0 -103
  428. package/dist/servers/maintenance.server.js.map +0 -1
  429. package/dist/servers/rest.server.js +0 -46
  430. package/dist/servers/rest.server.js.map +0 -1
  431. package/dist/servers/socket-io.server.js +0 -61
  432. package/dist/servers/socket-io.server.js.map +0 -1
  433. package/dist/services/database.service.js +0 -795
  434. package/dist/services/database.service.js.map +0 -1
  435. package/dist/services/ollama-rest.service.js +0 -46
  436. package/dist/services/ollama-rest.service.js.map +0 -1
  437. package/dist/services/rig-llama-guard.service.js.map +0 -1
  438. package/dist/services/rig-queue-length.service.js +0 -22
  439. package/dist/services/rig-queue-length.service.js.map +0 -1
  440. package/dist/services/rig-subjectivity-scale.service.js +0 -96
  441. package/dist/services/rig-subjectivity-scale.service.js.map +0 -1
  442. package/dist/services/rig-ticket-rest.service.js +0 -29
  443. package/dist/services/rig-ticket-rest.service.js.map +0 -1
  444. package/dist/services/rig-ticketed-promise.service.js.map +0 -1
  445. package/dist/types/tcrawl-config.js.map +0 -1
  446. package/dist/types/thydra-config.js.map +0 -1
  447. package/dist/types/tparser-ctor.d.ts +0 -7
  448. package/dist/types/tparser-ctor.js +0 -2
  449. package/dist/types/tparser-ctor.js.map +0 -1
  450. package/dist/types/tquery.d.ts +0 -7
  451. package/dist/types/tquery.js +0 -2
  452. package/dist/types/tquery.js.map +0 -1
  453. package/dist/types/tqueue-length.js +0 -2
  454. package/dist/types/tqueue-length.js.map +0 -1
  455. package/dist/types/trobots-config.js.map +0 -1
  456. /package/dist/classes/{dns.d.ts → dns.d.mts} +0 -0
  457. /package/dist/{cli.d.ts → cli.d.mts} +0 -0
  458. /package/dist/enums/{eavailable-strategy.d.ts → eavailable-strategy.d.mts} +0 -0
  459. /package/dist/enums/{elist.d.ts → elist.d.mts} +0 -0
  460. /package/dist/enums/{eserver.d.ts → eserver.d.mts} +0 -0
  461. /package/dist/enums/{ex-powered-by.d.ts → ex-powered-by.d.mts} +0 -0
  462. /package/dist/interfaces/{imatch.d.ts → imatch.d.mts} +0 -0
  463. /package/dist/interfaces/{iparser-config.d.ts → iparser-config.d.mts} +0 -0
  464. /package/dist/interfaces/{iserver.d.ts → iserver.d.mts} +0 -0
  465. /package/dist/types/{tcrawl-config.d.ts → tcrawl-config.d.mts} +0 -0
  466. /package/dist/types/{thydra-config.d.ts → thydra-config.d.mts} +0 -0
  467. /package/dist/types/{tqueue-length.d.ts → tqueue-length.d.mts} +0 -0
  468. /package/dist/types/{trobots-config.d.ts → trobots-config.d.mts} +0 -0
@@ -0,0 +1,128 @@
1
+ import { isIUrl } from 'hydra-crawler-esm-assets';
2
+ import { isTLink } from 'hydra-crawler-esm-assets';
3
+ import { isTDomain } from 'hydra-crawler-esm-assets';
4
+ import { EStatus } from 'hydra-crawler-esm-assets';
5
+ import { commonsLogDoing, commonsLogError } from 'nodecommons-esm-log';
6
+ const domainSort = (a, b) => {
7
+ if (a.startsWith('http://'))
8
+ a = a.substr(7);
9
+ if (a.startsWith('https://'))
10
+ a = a.substr(8);
11
+ if (a.startsWith('www.'))
12
+ a = a.substr(4);
13
+ if (b.startsWith('http://'))
14
+ b = b.substr(7);
15
+ if (b.startsWith('https://'))
16
+ b = b.substr(8);
17
+ if (b.startsWith('www.'))
18
+ b = b.substr(4);
19
+ if (a < b)
20
+ return -1;
21
+ if (a > b)
22
+ return 1;
23
+ return 0;
24
+ };
25
+ export const QUERY = async (args, databaseService, _lists, _expiry, _parsersConfig) => {
26
+ const regexStr = args.getFirstValue('regex');
27
+ if (!regexStr) {
28
+ commonsLogError('No domain regex specified');
29
+ return;
30
+ }
31
+ const regex = new RegExp(regexStr);
32
+ let domains;
33
+ { // scope
34
+ const log = commonsLogDoing('linking-to-domains-query', 'Searching for matching domains');
35
+ const results = databaseService.getDomains().find({
36
+ domain: regex
37
+ }, {});
38
+ domains = await databaseService.listQueryResults(results, isTDomain);
39
+ log.result(domains.length);
40
+ }
41
+ const domainUrls = new Map();
42
+ for (const domain of domains) {
43
+ const log = commonsLogDoing('linking-to-domains-query', `Searching for URLs for ${domain.domain}`);
44
+ const results2 = databaseService.getUrls().find({
45
+ domain: domain.domain,
46
+ status: { $ne: EStatus.ARCHIVED }
47
+ }, {});
48
+ const urls = await databaseService.listQueryResults(results2, isIUrl);
49
+ log.result(urls.length);
50
+ domainUrls.set(domain, urls);
51
+ }
52
+ const domainUrlLinks = new Map();
53
+ { // scope
54
+ const log = commonsLogDoing('linking-to-domains-query', 'Searching for outgoing links to URLs');
55
+ let tally = 0;
56
+ for (const domain of domains) {
57
+ const urls = domainUrls.get(domain);
58
+ if (!urls || !urls.length)
59
+ continue;
60
+ const map = new Map();
61
+ for (const url of urls) {
62
+ const results3 = databaseService.getLinks().find({
63
+ outgoing: url.url
64
+ }, {});
65
+ const links = await databaseService.listQueryResults(results3, isTLink);
66
+ if (links.length === 0)
67
+ continue;
68
+ tally += links.length;
69
+ log.progress(tally);
70
+ map.set(url, links);
71
+ }
72
+ if (map.size === 0)
73
+ continue;
74
+ domainUrlLinks.set(domain, map);
75
+ }
76
+ log.result(tally);
77
+ }
78
+ const outcome = {};
79
+ { // scope
80
+ const log = commonsLogDoing('linking-to-domains-query', 'Constructing JSON object');
81
+ for (const domain of domainUrlLinks.keys()) {
82
+ outcome[domain.domain] = {};
83
+ for (const url of domainUrlLinks.get(domain).keys()) {
84
+ outcome[domain.domain][url.url] = domainUrlLinks.get(domain).get(url)
85
+ .map((link) => link.url);
86
+ }
87
+ }
88
+ log.success();
89
+ }
90
+ if (args.hasAttribute('domains-only')) {
91
+ Object.keys(outcome)
92
+ .sort(domainSort)
93
+ .forEach((domain) => {
94
+ console.log(domain);
95
+ });
96
+ }
97
+ else if (args.hasAttribute('url-list')) {
98
+ const reverseMap = new Map();
99
+ for (const domain of Object.keys(outcome)) {
100
+ for (const out of Object.keys(outcome[domain])) {
101
+ for (const url of outcome[domain][out]) {
102
+ if (!reverseMap.has(url))
103
+ reverseMap.set(url, []);
104
+ if (!reverseMap.get(url).includes(out))
105
+ reverseMap.get(url).push(out);
106
+ }
107
+ }
108
+ }
109
+ const urls = Array.from(reverseMap.keys())
110
+ .sort(domainSort);
111
+ for (const url of urls) {
112
+ reverseMap.get(url).sort(domainSort);
113
+ let first = true;
114
+ for (const out of reverseMap.get(url)) {
115
+ const tsv = [
116
+ first ? url : '',
117
+ out
118
+ ];
119
+ console.log(tsv.join('\t'));
120
+ first = false;
121
+ }
122
+ }
123
+ }
124
+ else if (args.hasAttribute('json-dump')) {
125
+ console.log(JSON.stringify(outcome));
126
+ }
127
+ };
128
+ //# sourceMappingURL=linking-to-domains.query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linking-to-domains.query.mjs","sourceRoot":"","sources":["../../src/queries/linking-to-domains.query.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { TQuery } from '../types/tquery.mjs';
2
+ export declare const QUERY: TQuery;
@@ -0,0 +1,90 @@
1
+ import { ECommonsCsvColumnType } from 'tscommons-esm-format';
2
+ import { EStatus } from 'hydra-crawler-esm-assets';
3
+ import { commonsLogDoing } from 'nodecommons-esm-log';
4
+ import { CommonsCsv } from 'nodecommons-esm-file';
5
+ import { ELLAMA_GUARD_CATEGORYS, ELlamaGuardClassification, prettyLlamaGuardCategory } from '../services/rig-llama-guard.service.mjs';
6
+ export const QUERY = async (args, databaseService, _lists, _expiry, _parsersConfig) => {
7
+ const filename = args.getFirstValue('filename');
8
+ let urls;
9
+ { // scope
10
+ const log = commonsLogDoing('llamaguard-unsafe-content-query', 'Searching for URLs marked unsafe');
11
+ const results = databaseService.getUrls().find({
12
+ 'llamaguard.classification': 'unsafe',
13
+ status: { $in: [
14
+ EStatus.ACTIVE,
15
+ EStatus.DENY,
16
+ EStatus.DISALLOWED,
17
+ EStatus.DONE,
18
+ EStatus.FAILED,
19
+ EStatus.QUEUED
20
+ ] }
21
+ }, {});
22
+ urls = await databaseService.listQueryResults(results, (_t) => true);
23
+ log.result(urls.length);
24
+ }
25
+ const map = new Map();
26
+ { // scope
27
+ const log = commonsLogDoing('llamaguard-unsafe-content-query', 'Inverting categorisation');
28
+ for (const category of ELLAMA_GUARD_CATEGORYS)
29
+ map.set(category, []);
30
+ for (const url of urls) {
31
+ if (url.llamaguard.classification === ELlamaGuardClassification.SAFE)
32
+ continue;
33
+ for (const category of url.llamaguard.categories)
34
+ map.get(category).push(url);
35
+ }
36
+ log.success();
37
+ }
38
+ const rows = [];
39
+ { // scope
40
+ const log = commonsLogDoing('llamaguard-unsafe-content-query', 'Building CSV array');
41
+ for (const category of ELLAMA_GUARD_CATEGORYS) {
42
+ const meaning = prettyLlamaGuardCategory(category);
43
+ for (const url of map.get(category)) {
44
+ rows.push({
45
+ category: category,
46
+ meaning: meaning,
47
+ domain: url.domain,
48
+ url: url.url
49
+ });
50
+ }
51
+ }
52
+ rows
53
+ .sort((a, b) => {
54
+ if (a.category < b.category)
55
+ return -1;
56
+ if (a.category > b.category)
57
+ return 1;
58
+ if (a.domain < b.domain)
59
+ return -1;
60
+ if (a.domain > b.domain)
61
+ return 1;
62
+ if (a.url < b.url)
63
+ return -1;
64
+ if (a.url > b.url)
65
+ return 1;
66
+ return 0;
67
+ });
68
+ log.success();
69
+ }
70
+ const csv = new CommonsCsv([
71
+ {
72
+ name: 'category',
73
+ type: ECommonsCsvColumnType.STRING
74
+ },
75
+ {
76
+ name: 'meaning',
77
+ type: ECommonsCsvColumnType.STRING
78
+ },
79
+ {
80
+ name: 'domain',
81
+ type: ECommonsCsvColumnType.STRING
82
+ },
83
+ {
84
+ name: 'url',
85
+ type: ECommonsCsvColumnType.STRING
86
+ }
87
+ ]);
88
+ csv.save(rows, filename, true);
89
+ };
90
+ //# sourceMappingURL=llamaguard-unsafe-content.query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaguard-unsafe-content.query.mjs","sourceRoot":"","sources":["../../src/queries/llamaguard-unsafe-content.query.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { TQuery } from '../types/tquery.mjs';
2
+ export declare const QUERY: TQuery;
@@ -1,21 +1,12 @@
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 { EStatus } from 'hydra-crawler-ts-assets';
11
- import { commonsOutputDoing, commonsOutputError, commonsOutputProgress, commonsOutputResult } from 'nodecommons-es-cli';
12
- export const QUERY = (args, databaseService, _lists, _expiry, _parsersConfig) => __awaiter(void 0, void 0, void 0, function* () {
13
- const domain = args.getString('domain');
1
+ import { EStatus } from 'hydra-crawler-esm-assets';
2
+ import { commonsLogDoing, commonsLogError } from 'nodecommons-esm-log';
3
+ export const QUERY = async (args, databaseService, _lists, _expiry, _parsersConfig) => {
4
+ const domain = args.getFirstValue('domain');
14
5
  if (!domain) {
15
- commonsOutputError('No domain specified');
6
+ commonsLogError('No domain specified');
16
7
  return;
17
8
  }
18
- commonsOutputDoing(`Scoring and ordering readability of DONE URLs for domain ${domain}`);
9
+ const log = commonsLogDoing('readability-core', `Scoring and ordering readability of DONE URLs for domain ${domain}`);
19
10
  const results = databaseService.getUrls().aggregate([
20
11
  { $match: {
21
12
  status: { $ne: EStatus.ARCHIVED },
@@ -64,16 +55,16 @@ export const QUERY = (args, databaseService, _lists, _expiry, _parsersConfig) =>
64
55
  while (true) {
65
56
  tally++;
66
57
  if ((tally % 100) === 0)
67
- commonsOutputProgress(`${tally}`);
68
- const row = yield results.next();
58
+ log.progress(`${tally}`);
59
+ const row = await results.next();
69
60
  if (row === null)
70
61
  break;
71
62
  matches.push(row);
72
63
  }
73
- commonsOutputResult(tally);
64
+ log.result(tally);
74
65
  console.log('url\tparagraphs\tsentences\twords\tfkre\tari\tscore');
75
66
  for (const match of matches) {
76
67
  console.log(`${match.url}\t${match.stats.paragraphs}\t${match.stats.sentences}\t${match.stats.words}\t${match.stats.fkre}\t${match.stats.ari}\t${match.score}`);
77
68
  }
78
- });
79
- //# sourceMappingURL=readability-score.query.js.map
69
+ };
70
+ //# sourceMappingURL=readability-score.query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readability-score.query.mjs","sourceRoot":"","sources":["../../src/queries/readability-score.query.mts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { TKeyObject } from 'tscommons-es-core';
2
- import { Lists } from '../classes/lists';
3
- import { Tracker } from '../classes/tracker';
4
- import { DatabaseService } from '../services/database.service';
5
- import { IParserConfig } from '../interfaces/iparser-config';
6
- import { THydraConfig } from '../types/thydra-config';
7
- import { TCrawlConfig } from '../types/tcrawl-config';
8
- import { TRobotsConfig } from '../types/trobots-config';
9
- import { TParserCtor } from '../types/tparser-ctor';
1
+ import { TPropertyObject } from 'tscommons-esm-core';
2
+ import { Lists } from '../classes/lists.mjs';
3
+ import { Tracker } from '../classes/tracker.mjs';
4
+ import { DatabaseService } from '../services/database.service.mjs';
5
+ import { IParserConfig } from '../interfaces/iparser-config.mjs';
6
+ import { THydraConfig } from '../types/thydra-config.mjs';
7
+ import { TCrawlConfig } from '../types/tcrawl-config.mjs';
8
+ import { TRobotsConfig } from '../types/trobots-config.mjs';
9
+ import { TParserCtor } from '../types/tparser-ctor.mjs';
10
10
  export declare class CrawlServer {
11
11
  private database;
12
12
  private hydraConfig;
@@ -23,7 +23,7 @@ export declare class CrawlServer {
23
23
  private isPaused;
24
24
  private domainRestrictTo;
25
25
  set restrictTo(domains: string[]);
26
- constructor(database: DatabaseService, hydraConfig: THydraConfig, crawlConfig: TCrawlConfig, parsersConfig: TKeyObject<IParserConfig>, robotsConfig: TRobotsConfig, lists: Lists, tracker: Tracker);
26
+ constructor(database: DatabaseService, hydraConfig: THydraConfig, crawlConfig: TCrawlConfig, parsersConfig: TPropertyObject<IParserConfig>, robotsConfig: TRobotsConfig, lists: Lists, tracker: Tracker);
27
27
  addParser(parser: TParserCtor): void;
28
28
  listParsers(): TParserCtor[];
29
29
  pause(): void;
@@ -0,0 +1,192 @@
1
+ import { commonsAsyncAbortTimeout, commonsAsyncTimeout } from 'tscommons-esm-async';
2
+ import { EStatus } from 'hydra-crawler-esm-assets';
3
+ import { commonsLogAlert, commonsLogDebug, commonsLogDoing, commonsLogInfo } from 'nodecommons-esm-log';
4
+ import { commonsGracefulAbortAddCallback } from 'nodecommons-esm-process';
5
+ import { Crawler } from '../classes/crawler.mjs';
6
+ import { EAvailableStrategy } from '../enums/eavailable-strategy.mjs';
7
+ export class CrawlServer {
8
+ database;
9
+ hydraConfig;
10
+ crawlConfig;
11
+ parsersConfig;
12
+ robotsConfig;
13
+ lists;
14
+ tracker;
15
+ parsers = [];
16
+ crawlers;
17
+ strategies;
18
+ isAborted = false;
19
+ preDelayIds = [];
20
+ isPaused = false;
21
+ domainRestrictTo = [];
22
+ set restrictTo(domains) {
23
+ this.domainRestrictTo = domains;
24
+ }
25
+ constructor(database, hydraConfig, crawlConfig, parsersConfig, robotsConfig, lists, tracker) {
26
+ this.database = database;
27
+ this.hydraConfig = hydraConfig;
28
+ this.crawlConfig = crawlConfig;
29
+ this.parsersConfig = parsersConfig;
30
+ this.robotsConfig = robotsConfig;
31
+ this.lists = lists;
32
+ this.tracker = tracker;
33
+ this.crawlers = new Map();
34
+ this.strategies = new Map();
35
+ commonsGracefulAbortAddCallback(() => {
36
+ commonsLogAlert('SIGINT abort flag is set. Aborting crawl server.');
37
+ this.abort();
38
+ for (const preDelayId of this.preDelayIds)
39
+ commonsAsyncAbortTimeout(preDelayId);
40
+ });
41
+ }
42
+ addParser(parser) {
43
+ this.parsers.push(parser);
44
+ }
45
+ listParsers() {
46
+ return this.parsers.slice();
47
+ }
48
+ pause() {
49
+ commonsLogAlert('Pausing crawl server');
50
+ this.isPaused = true;
51
+ for (const domain of this.crawlers.keys()) {
52
+ this.pauseCrawl(domain);
53
+ }
54
+ }
55
+ resume() {
56
+ commonsLogInfo('Resuming crawl server');
57
+ this.isPaused = false;
58
+ for (const domain of this.crawlers.keys()) {
59
+ this.resumeCrawl(domain);
60
+ }
61
+ }
62
+ abort() {
63
+ this.isAborted = true;
64
+ commonsAsyncAbortTimeout('find-new-available');
65
+ }
66
+ async terminate() {
67
+ this.abort();
68
+ await this.database.close();
69
+ process.exit(0);
70
+ }
71
+ pauseCrawl(domain) {
72
+ if (!this.crawlers.has(domain))
73
+ return;
74
+ commonsLogAlert(`Pausing crawler for ${domain}`);
75
+ this.crawlers.get(domain).pause();
76
+ }
77
+ resumeCrawl(domain) {
78
+ if (!this.crawlers.has(domain))
79
+ return;
80
+ commonsLogInfo(`Resuming crawler for ${domain}`);
81
+ this.crawlers.get(domain).resume();
82
+ }
83
+ async start() {
84
+ await this.database.resetActive();
85
+ const added = await this.database.queue(this.hydraConfig.startUrl);
86
+ if (added)
87
+ this.tracker.delta(EStatus.QUEUED, 1);
88
+ while (!this.isAborted) {
89
+ if (!this.isPaused) {
90
+ const existing = [...this.crawlers.keys()];
91
+ const space = this.crawlConfig.maxCrawlers - existing.length;
92
+ if (space > 0) {
93
+ commonsLogDebug(`Space for ${space} new crawls available`);
94
+ const largestStrategyDomains = existing
95
+ .filter((domain) => this.strategies.get(domain) === EAvailableStrategy.LARGEST);
96
+ const smallestStrategyDomains = existing
97
+ .filter((domain) => this.strategies.get(domain) === EAvailableStrategy.SMALLEST);
98
+ commonsLogDebug(`Current crawl has LARGEST=${largestStrategyDomains.length}; SMALLEST=${smallestStrategyDomains.length}`);
99
+ let spaceForLargestDomains = 0;
100
+ let spaceForSmallestDomains = space;
101
+ if (largestStrategyDomains.length >= Math.floor(this.crawlConfig.maxCrawlers / 2)) {
102
+ // already 50% large crawling, so all remaining space goes to small crawls
103
+ }
104
+ else {
105
+ // allow a new large crawl, if enough space
106
+ if (space > 1) {
107
+ spaceForLargestDomains = 1;
108
+ spaceForSmallestDomains--;
109
+ }
110
+ }
111
+ commonsLogDebug(`Space for LARGEST=${spaceForLargestDomains}; SMALLEST=${spaceForSmallestDomains}`);
112
+ const availablesLargest = await this.database.available(EAvailableStrategy.LARGEST, this.crawlConfig.availableStrategyThreshold, spaceForLargestDomains, existing, this.domainRestrictTo);
113
+ existing.push(...availablesLargest);
114
+ const availablesSmallest = await this.database.available(EAvailableStrategy.SMALLEST, this.crawlConfig.availableStrategyThreshold, spaceForSmallestDomains, existing, this.domainRestrictTo);
115
+ const availables = [
116
+ ...availablesSmallest,
117
+ ...availablesLargest
118
+ ];
119
+ if (!this.isAborted) {
120
+ for (const domain of availables) {
121
+ commonsLogInfo(`Creating new crawl head for ${domain}`);
122
+ const crawler = new Crawler(domain, this.database, this.crawlConfig, this.parsersConfig, this.robotsConfig, this.parsers, this.lists, this.tracker);
123
+ this.crawlers.set(domain, crawler);
124
+ if (availablesLargest.includes(domain)) {
125
+ this.strategies.set(domain, EAvailableStrategy.LARGEST);
126
+ }
127
+ else {
128
+ this.strategies.set(domain, EAvailableStrategy.SMALLEST);
129
+ }
130
+ // called without await in order to do parallel crawls
131
+ void (async () => {
132
+ try {
133
+ // delay randomly to prevent network socket request spikes
134
+ const preDelayId = `predelay_${domain}`;
135
+ this.preDelayIds.push(preDelayId);
136
+ try {
137
+ await commonsAsyncTimeout(Math.random() * (this.crawlConfig.findNewAvailableDelay - 1000), preDelayId);
138
+ }
139
+ catch (e) {
140
+ if (e.message === 'abortTimeout called')
141
+ return;
142
+ throw e;
143
+ }
144
+ this.preDelayIds = this.preDelayIds
145
+ .filter((pid) => pid !== preDelayId);
146
+ if (this.isAborted)
147
+ return;
148
+ if (this.isPaused)
149
+ this.pauseCrawl(domain);
150
+ commonsLogInfo(`Starting crawler for ${domain}`);
151
+ await crawler.crawl();
152
+ }
153
+ catch (ex) {
154
+ commonsLogDebug('debug position 6');
155
+ console.log(ex);
156
+ }
157
+ finally {
158
+ this.crawlers.delete(domain); // doesn't get called until after doCrawl() is called, so have to do it here if aborted
159
+ this.strategies.delete(domain);
160
+ }
161
+ })();
162
+ }
163
+ }
164
+ }
165
+ }
166
+ try {
167
+ await commonsAsyncTimeout(this.crawlConfig.findNewAvailableDelay, 'find-new-available');
168
+ }
169
+ catch (_ex) {
170
+ // ignore
171
+ }
172
+ if (this.isAborted) {
173
+ commonsLogAlert('SIGINT abort is set. Aborting new head loop.');
174
+ break;
175
+ }
176
+ }
177
+ }
178
+ async shutdown() {
179
+ const log = commonsLogDoing('crawler', 'Waiting for all crawlers to abort');
180
+ while (this.crawlers.size > 0) {
181
+ log.progress(this.crawlers.size);
182
+ try {
183
+ await commonsAsyncTimeout(1000);
184
+ }
185
+ catch (_ex) {
186
+ // ignore
187
+ }
188
+ }
189
+ log.success();
190
+ }
191
+ }
192
+ //# sourceMappingURL=crawl.server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crawl.server.mjs","sourceRoot":"","sources":["../../src/servers/crawl.server.mts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- /// <reference types="node" />
2
1
  import * as http from 'http';
3
2
  import * as express from 'express';
4
- import { CommonsStrictExpressServer } from 'nodecommons-es-express';
5
- import { ICommonsExpressConfig } from 'nodecommons-es-express';
3
+ import { CommonsStrictExpressServer } from 'nodecommons-esm-express';
4
+ import { ICommonsExpressConfig } from 'nodecommons-esm-express';
6
5
  export declare class ExpressServer extends CommonsStrictExpressServer {
7
6
  constructor(ex: express.Express, server: http.Server, config: ICommonsExpressConfig);
8
7
  }
@@ -0,0 +1,13 @@
1
+ import { CommonsStrictExpressServer } from 'nodecommons-esm-express';
2
+ import { commonsGracefulAbortAddCallback } from 'nodecommons-esm-process';
3
+ import { commonsLogAlert } from 'nodecommons-esm-log';
4
+ export class ExpressServer extends CommonsStrictExpressServer {
5
+ constructor(ex, server, config) {
6
+ super(ex, server, config.port);
7
+ commonsGracefulAbortAddCallback(() => {
8
+ commonsLogAlert('SIGINT abort flag is set. Aborting Express server.');
9
+ super.close();
10
+ });
11
+ }
12
+ }
13
+ //# sourceMappingURL=express.server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.server.mjs","sourceRoot":"","sources":["../../src/servers/express.server.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,aAAc,SAAQ,0BAA0B;IAC5D,YACE,EAAmB,EACnB,MAAmB,EACnB,MAA6B;QAE9B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/B,+BAA+B,CAAC,GAAS,EAAE;YAC1C,eAAe,CAAC,oDAAoD,CAAC,CAAC;YACtE,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -1,8 +1,8 @@
1
- import { TCommonsScheduleTime } from 'tscommons-es-async';
2
- import { Expiry } from '../classes/expiry';
3
- import { Lists } from '../classes/lists';
4
- import { CrawlServer } from '../servers/crawl.server';
5
- import { DatabaseService } from '../services/database.service';
1
+ import { TCommonsScheduleTime } from 'tscommons-esm-async';
2
+ import { Expiry } from '../classes/expiry.mjs';
3
+ import { Lists } from '../classes/lists.mjs';
4
+ import { CrawlServer } from '../servers/crawl.server.mjs';
5
+ import { DatabaseService } from '../services/database.service.mjs';
6
6
  declare enum EAction {
7
7
  EXPIRE = "expire",
8
8
  PURGE_EMPTY_DOMAINS = "purge-empty-domains",