hydra-crawler 2.8.4 → 3.0.2

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 (467) 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 +135 -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 +81 -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 +78 -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 +264 -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.js → crawler.mjs} +216 -184
  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} +26 -28
  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 -151
  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.map +0 -1
  327. package/dist/classes/dns.js.map +0 -1
  328. package/dist/classes/expirer.js +0 -121
  329. package/dist/classes/expirer.js.map +0 -1
  330. package/dist/classes/expiry.js.map +0 -1
  331. package/dist/classes/lists.js.map +0 -1
  332. package/dist/classes/robot.js +0 -82
  333. package/dist/classes/robot.js.map +0 -1
  334. package/dist/classes/tracker.js +0 -120
  335. package/dist/classes/tracker.js.map +0 -1
  336. package/dist/cli.js.map +0 -1
  337. package/dist/enums/eavailable-strategy.js.map +0 -1
  338. package/dist/enums/elist.js.map +0 -1
  339. package/dist/enums/eserver.js.map +0 -1
  340. package/dist/enums/ex-powered-by.js.map +0 -1
  341. package/dist/helpers/matcher.js.map +0 -1
  342. package/dist/helpers/random.js.map +0 -1
  343. package/dist/helpers/utf-decoder.js.map +0 -1
  344. package/dist/interfaces/iexpiry.js.map +0 -1
  345. package/dist/interfaces/imatch.js.map +0 -1
  346. package/dist/interfaces/iparser-config.js.map +0 -1
  347. package/dist/interfaces/iparser.js +0 -2
  348. package/dist/interfaces/iparser.js.map +0 -1
  349. package/dist/interfaces/irequest-outcome.js +0 -2
  350. package/dist/interfaces/irequest-outcome.js.map +0 -1
  351. package/dist/interfaces/iserver.js +0 -2
  352. package/dist/interfaces/iserver.js.map +0 -1
  353. package/dist/parsers/accessibility-metrics.parser.d.ts +0 -11
  354. package/dist/parsers/accessibility-metrics.parser.js +0 -40
  355. package/dist/parsers/accessibility-metrics.parser.js.map +0 -1
  356. package/dist/parsers/asp-error.parser.d.ts +0 -12
  357. package/dist/parsers/asp-error.parser.js +0 -48
  358. package/dist/parsers/asp-error.parser.js.map +0 -1
  359. package/dist/parsers/bad-words.parser.js +0 -27
  360. package/dist/parsers/bad-words.parser.js.map +0 -1
  361. package/dist/parsers/complex-english.parser.d.ts +0 -15
  362. package/dist/parsers/complex-english.parser.js +0 -61
  363. package/dist/parsers/complex-english.parser.js.map +0 -1
  364. package/dist/parsers/data.parser.d.ts +0 -14
  365. package/dist/parsers/data.parser.js.map +0 -1
  366. package/dist/parsers/dictionary.parser.js +0 -73
  367. package/dist/parsers/dictionary.parser.js.map +0 -1
  368. package/dist/parsers/html.parser.d.ts +0 -13
  369. package/dist/parsers/html.parser.js.map +0 -1
  370. package/dist/parsers/hyperlinks.parser.d.ts +0 -20
  371. package/dist/parsers/hyperlinks.parser.js +0 -115
  372. package/dist/parsers/hyperlinks.parser.js.map +0 -1
  373. package/dist/parsers/image-tags.parser.d.ts +0 -19
  374. package/dist/parsers/image-tags.parser.js +0 -52
  375. package/dist/parsers/image-tags.parser.js.map +0 -1
  376. package/dist/parsers/interest.parser.js +0 -69
  377. package/dist/parsers/interest.parser.js.map +0 -1
  378. package/dist/parsers/jpeg.parser.d.ts +0 -11
  379. package/dist/parsers/jpeg.parser.js +0 -39
  380. package/dist/parsers/jpeg.parser.js.map +0 -1
  381. package/dist/parsers/llama-guard.parser.js +0 -65
  382. package/dist/parsers/llama-guard.parser.js.map +0 -1
  383. package/dist/parsers/offence.parser.js +0 -69
  384. package/dist/parsers/offence.parser.js.map +0 -1
  385. package/dist/parsers/ollama.parser.js +0 -51
  386. package/dist/parsers/ollama.parser.js.map +0 -1
  387. package/dist/parsers/paragraphs.parser.js +0 -49
  388. package/dist/parsers/paragraphs.parser.js.map +0 -1
  389. package/dist/parsers/parser.js +0 -57
  390. package/dist/parsers/parser.js.map +0 -1
  391. package/dist/parsers/php-error.parser.d.ts +0 -12
  392. package/dist/parsers/php-error.parser.js +0 -52
  393. package/dist/parsers/php-error.parser.js.map +0 -1
  394. package/dist/parsers/phrase.parser.js +0 -26
  395. package/dist/parsers/phrase.parser.js.map +0 -1
  396. package/dist/parsers/regex.parser.js +0 -43
  397. package/dist/parsers/regex.parser.js.map +0 -1
  398. package/dist/parsers/server.parser.d.ts +0 -11
  399. package/dist/parsers/server.parser.js +0 -67
  400. package/dist/parsers/server.parser.js.map +0 -1
  401. package/dist/parsers/spelling.parser.js +0 -27
  402. package/dist/parsers/spelling.parser.js.map +0 -1
  403. package/dist/parsers/string.parser.d.ts +0 -8
  404. package/dist/parsers/string.parser.js.map +0 -1
  405. package/dist/parsers/text.parser.js +0 -41
  406. package/dist/parsers/text.parser.js.map +0 -1
  407. package/dist/parsers/words.parser.js +0 -40
  408. package/dist/parsers/words.parser.js.map +0 -1
  409. package/dist/queries/complex-english.query.d.ts +0 -2
  410. package/dist/queries/complex-english.query.js.map +0 -1
  411. package/dist/queries/flash-content.query.d.ts +0 -2
  412. package/dist/queries/flash-content.query.js +0 -82
  413. package/dist/queries/flash-content.query.js.map +0 -1
  414. package/dist/queries/linking-to-domains.query.d.ts +0 -2
  415. package/dist/queries/linking-to-domains.query.js +0 -130
  416. package/dist/queries/linking-to-domains.query.js.map +0 -1
  417. package/dist/queries/llamaguard-unsafe-content.query.d.ts +0 -2
  418. package/dist/queries/llamaguard-unsafe-content.query.js +0 -92
  419. package/dist/queries/llamaguard-unsafe-content.query.js.map +0 -1
  420. package/dist/queries/readability-score.query.d.ts +0 -2
  421. package/dist/queries/readability-score.query.js.map +0 -1
  422. package/dist/servers/crawl.server.js +0 -198
  423. package/dist/servers/crawl.server.js.map +0 -1
  424. package/dist/servers/express.server.js +0 -13
  425. package/dist/servers/express.server.js.map +0 -1
  426. package/dist/servers/maintenance.server.js +0 -103
  427. package/dist/servers/maintenance.server.js.map +0 -1
  428. package/dist/servers/rest.server.js +0 -46
  429. package/dist/servers/rest.server.js.map +0 -1
  430. package/dist/servers/socket-io.server.js +0 -61
  431. package/dist/servers/socket-io.server.js.map +0 -1
  432. package/dist/services/database.service.js +0 -795
  433. package/dist/services/database.service.js.map +0 -1
  434. package/dist/services/ollama-rest.service.js +0 -46
  435. package/dist/services/ollama-rest.service.js.map +0 -1
  436. package/dist/services/rig-llama-guard.service.js.map +0 -1
  437. package/dist/services/rig-queue-length.service.js +0 -22
  438. package/dist/services/rig-queue-length.service.js.map +0 -1
  439. package/dist/services/rig-subjectivity-scale.service.js +0 -96
  440. package/dist/services/rig-subjectivity-scale.service.js.map +0 -1
  441. package/dist/services/rig-ticket-rest.service.js +0 -29
  442. package/dist/services/rig-ticket-rest.service.js.map +0 -1
  443. package/dist/services/rig-ticketed-promise.service.js.map +0 -1
  444. package/dist/types/tcrawl-config.js.map +0 -1
  445. package/dist/types/thydra-config.js.map +0 -1
  446. package/dist/types/tparser-ctor.d.ts +0 -7
  447. package/dist/types/tparser-ctor.js +0 -2
  448. package/dist/types/tparser-ctor.js.map +0 -1
  449. package/dist/types/tquery.d.ts +0 -7
  450. package/dist/types/tquery.js +0 -2
  451. package/dist/types/tquery.js.map +0 -1
  452. package/dist/types/tqueue-length.js +0 -2
  453. package/dist/types/tqueue-length.js.map +0 -1
  454. package/dist/types/trobots-config.js.map +0 -1
  455. /package/dist/classes/{dns.d.ts → dns.d.mts} +0 -0
  456. /package/dist/{cli.d.ts → cli.d.mts} +0 -0
  457. /package/dist/enums/{eavailable-strategy.d.ts → eavailable-strategy.d.mts} +0 -0
  458. /package/dist/enums/{elist.d.ts → elist.d.mts} +0 -0
  459. /package/dist/enums/{eserver.d.ts → eserver.d.mts} +0 -0
  460. /package/dist/enums/{ex-powered-by.d.ts → ex-powered-by.d.mts} +0 -0
  461. /package/dist/interfaces/{imatch.d.ts → imatch.d.mts} +0 -0
  462. /package/dist/interfaces/{iparser-config.d.ts → iparser-config.d.mts} +0 -0
  463. /package/dist/interfaces/{iserver.d.ts → iserver.d.mts} +0 -0
  464. /package/dist/types/{tcrawl-config.d.ts → tcrawl-config.d.mts} +0 -0
  465. /package/dist/types/{thydra-config.d.ts → thydra-config.d.mts} +0 -0
  466. /package/dist/types/{tqueue-length.d.ts → tqueue-length.d.mts} +0 -0
  467. /package/dist/types/{trobots-config.d.ts → trobots-config.d.mts} +0 -0
@@ -0,0 +1,117 @@
1
+ import mongodb from 'mongodb';
2
+ import { commonsArrayChunk, commonsDateDateToYmdHis, commonsTypeHasPropertyDate } from 'tscommons-esm-core';
3
+ import { EStatus } from 'hydra-crawler-esm-assets';
4
+ import { commonsLogAlert, commonsLogDoing } from 'nodecommons-esm-log';
5
+ import { isTMongoIdRow } from '../services/database.service.mjs';
6
+ export class Expirer {
7
+ expiry;
8
+ database;
9
+ constructor(expiry, database) {
10
+ this.expiry = expiry;
11
+ this.database = database;
12
+ }
13
+ async listQueuedAndActive() {
14
+ const log = commonsLogDoing('expirer', 'Enumering queued and active domains');
15
+ const results = this.database.getUrls().aggregate([
16
+ { $match: { status: { $in: [EStatus.QUEUED, EStatus.ACTIVE] } } },
17
+ { $group: { _id: '$domain' } }
18
+ ], { allowDiskUse: true });
19
+ const queued = await this.database.listQueryResults(results, isTMongoIdRow);
20
+ log.success(queued.length);
21
+ return queued
22
+ // eslint-disable-next-line no-underscore-dangle
23
+ .map((q) => q._id);
24
+ }
25
+ async expire(limit) {
26
+ commonsLogAlert('Running expiry thread');
27
+ const queued = await this.listQueuedAndActive();
28
+ const expired = [];
29
+ { // scope
30
+ const log = commonsLogDoing('expirer', 'Searching for expired URLs');
31
+ const results = this.database.getUrls().find({ $and: [
32
+ { status: { $nin: [
33
+ EStatus.ARCHIVED,
34
+ EStatus.QUEUED,
35
+ EStatus.ACTIVE
36
+ ] } },
37
+ { domain: { $nin: queued } },
38
+ { attempted: { $exists: true } }
39
+ ] }, {});
40
+ const now = new Date().getTime() / 1000;
41
+ let tally = 0;
42
+ let found = 0;
43
+ while (true) {
44
+ tally++;
45
+ if ((tally % 1000) === 0)
46
+ log.progress(`${tally}, ${found}`);
47
+ if (limit !== undefined && tally > limit)
48
+ break;
49
+ const row = await results.next();
50
+ if (row === null)
51
+ break;
52
+ const interval = this.expiry.getBestExpiry(row.url);
53
+ if (!commonsTypeHasPropertyDate(row, 'attempted'))
54
+ continue;
55
+ const attempted = row['attempted'].getTime() / 1000;
56
+ if ((attempted + interval) < now) {
57
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
58
+ expired.push(row['_id']);
59
+ found++;
60
+ }
61
+ }
62
+ log.success(found);
63
+ if (found === 0)
64
+ return false;
65
+ }
66
+ const batches = commonsArrayChunk(expired, 100);
67
+ { // scope
68
+ const log = commonsLogDoing('expirer', 'Re-queuing expired');
69
+ let tally = 0;
70
+ for (const batch of batches) {
71
+ const batchIds = batch
72
+ .map((id) => new mongodb.ObjectId(id));
73
+ await this.database.getUrls().updateMany({ _id: { $in: batchIds } }, {
74
+ $set: { status: EStatus.QUEUED },
75
+ $unset: { ttl: true }
76
+ });
77
+ tally += 100;
78
+ log.progress(tally);
79
+ }
80
+ log.success();
81
+ }
82
+ return true;
83
+ }
84
+ async expireFixed(threshold) {
85
+ commonsLogAlert('Running fixed date expiry thread');
86
+ const queued = await this.listQueuedAndActive();
87
+ { // scope
88
+ const log = commonsLogDoing('expirer', `Searching attempted before date ${commonsDateDateToYmdHis(threshold)}`);
89
+ const count = await this.database.getUrls().find({ $and: [
90
+ { status: { $ne: EStatus.ARCHIVED } },
91
+ { domain: { $nin: queued } },
92
+ { attempted: { $exists: true } },
93
+ { attempted: { $lt: threshold } }
94
+ ] }, {}).count();
95
+ log.success(count);
96
+ if (count === 0)
97
+ return false;
98
+ }
99
+ { // scope
100
+ const log = commonsLogDoing('expirer', 'Re-queuing expired');
101
+ await this.database.getUrls().updateMany({ $and: [
102
+ { status: { $ne: EStatus.ARCHIVED } },
103
+ { domain: { $nin: queued } },
104
+ { attempted: { $exists: true } },
105
+ { attempted: { $lt: threshold } }
106
+ ] }, {
107
+ $set: { status: EStatus.QUEUED },
108
+ $unset: { ttl: true }
109
+ });
110
+ log.success();
111
+ }
112
+ // ?
113
+ // const log: CommonsSubLoggable = commonsLogDoing('expirer', 'Searching for expired URLs');
114
+ return true;
115
+ }
116
+ }
117
+ //# sourceMappingURL=expirer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expirer.mjs","sourceRoot":"","sources":["../../src/classes/expirer.mts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IExpiry } from '../interfaces/iexpiry';
1
+ import { IExpiry } from '../interfaces/iexpiry.mjs';
2
2
  export declare class Expiry {
3
3
  static loadFromFile(file: string): IExpiry[];
4
4
  private static getScore;
@@ -1,12 +1,9 @@
1
1
  import { URL } from 'url';
2
- import { commonsTypeHasPropertyString, commonsTypeIsArray, commonsTypeIsTArray } from 'tscommons-es-core';
3
- import { commonsFileReadJsonFile } from 'nodecommons-es-file';
4
- import { Matcher } from '../helpers/matcher';
5
- import { isIExpiry, toIExpiry } from '../interfaces/iexpiry';
2
+ import { commonsTypeHasPropertyString, commonsTypeIsArray, commonsTypeIsTArray } from 'tscommons-esm-core';
3
+ import { commonsFileReadJsonFile } from 'nodecommons-esm-file';
4
+ import { Matcher } from '../helpers/matcher.mjs';
5
+ import { isIExpiry, toIExpiry } from '../interfaces/iexpiry.mjs';
6
6
  export class Expiry {
7
- constructor() {
8
- this.expiries = [];
9
- }
10
7
  static loadFromFile(file) {
11
8
  const json = commonsFileReadJsonFile(file);
12
9
  if (!commonsTypeIsArray(json))
@@ -16,7 +13,7 @@ export class Expiry {
16
13
  try {
17
14
  return toIExpiry(entry);
18
15
  }
19
- catch (e) {
16
+ catch (_e) {
20
17
  return undefined;
21
18
  }
22
19
  });
@@ -37,6 +34,7 @@ export class Expiry {
37
34
  }
38
35
  return total;
39
36
  }
37
+ expiries = [];
40
38
  add(expiries) {
41
39
  for (const expiry of expiries) {
42
40
  this.expiries.push(expiry);
@@ -60,4 +58,4 @@ export class Expiry {
60
58
  return best.expiry;
61
59
  }
62
60
  }
63
- //# sourceMappingURL=expiry.js.map
61
+ //# sourceMappingURL=expiry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiry.mjs","sourceRoot":"","sources":["../../src/classes/expiry.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAW,SAAS,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE1E,MAAM,OAAO,MAAM;IACX,MAAM,CAAC,YAAY,CAAC,IAAY;QACtC,MAAM,IAAI,GAAY,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAA0B,IAAI;aACzC,GAAG,CAAC,CAAC,KAAc,EAAqB,EAAE;YAC1C,IAAI,CAAC;gBACJ,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,mBAAmB,CAAU,QAAQ,EAAE,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAExG,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,MAAe;QACtC,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,IAAI,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1D,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAO,CAAC,MAAM,CAAC;QAC7C,CAAC;QACD,IAAI,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YAC5D,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAS,CAAC,MAAM,CAAC;QAC/C,CAAC;QACD,IAAI,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YAC5D,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAS,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,QAAQ,GAAc,EAAE,CAAC;IAE1B,GAAG,CAAC,QAAmB;QAC7B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAEM,aAAa,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,IAAuB,CAAC;QAC5B,IAAI,SAA2B,CAAC;QAEhC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;gBAAE,SAAS;YAErD,MAAM,KAAK,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE9C,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBAClD,IAAI,GAAG,MAAM,CAAC;gBACd,SAAS,GAAG,KAAK,CAAC;YACnB,CAAC;QACF,CAAC;QAED,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;CACD"}
@@ -1,5 +1,5 @@
1
- import { IMatch } from '../interfaces/imatch';
2
- import { EList } from '../enums/elist';
1
+ import { IMatch } from '../interfaces/imatch.mjs';
2
+ import { EList } from '../enums/elist.mjs';
3
3
  export declare class Lists {
4
4
  private lists;
5
5
  constructor();
@@ -1,8 +1,8 @@
1
- import { Matcher } from '../helpers/matcher';
2
- import { ELISTS } from '../enums/elist';
1
+ import { Matcher } from '../helpers/matcher.mjs';
2
+ import { ELISTS } from '../enums/elist.mjs';
3
3
  export class Lists {
4
+ lists = new Map();
4
5
  constructor() {
5
- this.lists = new Map();
6
6
  for (const list of ELISTS) {
7
7
  this.lists.set(list, []);
8
8
  }
@@ -35,4 +35,4 @@ export class Lists {
35
35
  .filter((hostname) => hostname !== '');
36
36
  }
37
37
  }
38
- //# sourceMappingURL=lists.js.map
38
+ //# sourceMappingURL=lists.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.mjs","sourceRoot":"","sources":["../../src/classes/lists.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAS,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,KAAK;IACT,KAAK,GAAyB,IAAI,GAAG,EAAmB,CAAC;IAEjE;QACC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAEM,GAAG,CAAC,IAAW,EAAE,OAAiB;QACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,IAAW,EAAE,GAAW;QACpC,MAAM,OAAO,GAAuB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,IAAW;QAC/B,MAAM,OAAO,GAAuB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAE9C,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;aAC9D,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;aAC7C,GAAG,CAAC,CAAC,QAAgB,EAAU,EAAE,CAAC,QAAQ;aACxC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,IAAI,EAAE,CACR;aACA,MAAM,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;CACD"}
@@ -1,6 +1,6 @@
1
- import { TCrawlConfig } from '../types/tcrawl-config';
2
- import { TRobotsConfig } from '../types/trobots-config';
3
- import { Tracker } from './tracker';
1
+ import { TCrawlConfig } from '../types/tcrawl-config.mjs';
2
+ import { TRobotsConfig } from '../types/trobots-config.mjs';
3
+ import { Tracker } from './tracker.mjs';
4
4
  export declare class Robot {
5
5
  private domain;
6
6
  private crawlConfig;
@@ -0,0 +1,74 @@
1
+ import * as http from 'http';
2
+ import * as https from 'https';
3
+ import { URL } from 'url';
4
+ import { Crawler } from './crawler.mjs';
5
+ export class Robot {
6
+ domain;
7
+ crawlConfig;
8
+ robotsConfig;
9
+ tracker;
10
+ static parse(robotstxt, robotsConfig) {
11
+ const paths = [];
12
+ const sections = robotstxt.replace(/\r/g, '').split(/\n\n/);
13
+ for (let section of sections) {
14
+ section = section.trim();
15
+ const parse = section.match(/^User-agent: \*\n([\s\S]+)/i);
16
+ if (!parse)
17
+ continue;
18
+ for (const line of parse[1].trim().split('\n')) {
19
+ const match = line.trim().match(/^Disallow: (\/.*)$/i);
20
+ if (!match)
21
+ continue;
22
+ if (robotsConfig.ignoreWholeSiteDirectives && match[1] === '/')
23
+ continue;
24
+ paths.push(match[1]);
25
+ }
26
+ }
27
+ return [...new Set(paths)];
28
+ }
29
+ paths;
30
+ constructor(domain, crawlConfig, robotsConfig, tracker) {
31
+ this.domain = domain;
32
+ this.crawlConfig = crawlConfig;
33
+ this.robotsConfig = robotsConfig;
34
+ this.tracker = tracker;
35
+ this.paths = new Map();
36
+ }
37
+ async checkDomain(protocol) {
38
+ let outcome;
39
+ try {
40
+ switch (protocol) {
41
+ case 'http':
42
+ outcome = await Crawler.request(http, `http://${this.domain}/robots.txt`, this.crawlConfig.connectTimeout, this.crawlConfig.maxFileSize, this.tracker);
43
+ break;
44
+ case 'https':
45
+ outcome = await Crawler.request(https, `https://${this.domain}/robots.txt`, this.crawlConfig.connectTimeout, this.crawlConfig.maxFileSize, this.tracker);
46
+ break;
47
+ default: throw new Error('Unknown protocol');
48
+ }
49
+ }
50
+ catch (_ex) { /* ignore */ }
51
+ if (!outcome || !outcome.data)
52
+ return [];
53
+ return Robot.parse(outcome.data.toString(), this.robotsConfig);
54
+ }
55
+ async load() {
56
+ for (const protocol of ['http', 'https']) {
57
+ this.paths.set(protocol, await this.checkDomain(protocol));
58
+ }
59
+ }
60
+ isDisallowed(url) {
61
+ const whatwg = new URL(url);
62
+ const protocol = whatwg.protocol.match(/^(http(?:s?)):$/);
63
+ if (!protocol)
64
+ return false;
65
+ if (!this.paths.has(protocol[1]))
66
+ return false;
67
+ for (const path of this.paths.get(protocol[1])) {
68
+ if (whatwg.pathname.substring(0, path.length) === path)
69
+ return true;
70
+ }
71
+ return false;
72
+ }
73
+ }
74
+ //# sourceMappingURL=robot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot.mjs","sourceRoot":"","sources":["../../src/classes/robot.mts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { EStatus } from 'hydra-crawler-ts-assets';
2
- import { SocketIoServer } from '../servers/socket-io.server';
3
- import { DatabaseService } from '../services/database.service';
1
+ import { EStatus } from 'hydra-crawler-esm-assets';
2
+ import { SocketIoServer } from '../servers/socket-io.server.mjs';
3
+ import { DatabaseService } from '../services/database.service.mjs';
4
4
  export declare class Tracker {
5
5
  private databaseService;
6
6
  private socketIoServer;
@@ -0,0 +1,101 @@
1
+ import { commonsAsyncAbortInterval, commonsAsyncInterval } from 'tscommons-esm-async';
2
+ import { ECommonsInvocation } from 'tscommons-esm-async';
3
+ import { commonsGracefulAbortAddCallback } from 'nodecommons-esm-process';
4
+ import { commonsLogAlert } from 'nodecommons-esm-log';
5
+ export class Tracker {
6
+ databaseService;
7
+ socketIoServer;
8
+ map = new Map();
9
+ current = 0;
10
+ index = 0;
11
+ fetches = [];
12
+ linkTallies = 0;
13
+ domainTallies = 0;
14
+ constructor(databaseService, socketIoServer) {
15
+ this.databaseService = databaseService;
16
+ this.socketIoServer = socketIoServer;
17
+ commonsGracefulAbortAddCallback(() => {
18
+ commonsLogAlert('SIGINT abort flag is set. Aborting bandwidth.');
19
+ this.abort();
20
+ });
21
+ }
22
+ async fetching(url) {
23
+ const fetch = {
24
+ index: ++this.index,
25
+ url: url
26
+ };
27
+ this.fetches.push(fetch);
28
+ if (this.index > 1000)
29
+ this.index = 0;
30
+ while (this.fetches.length > 999)
31
+ this.fetches.shift();
32
+ await this.socketIoServer.fetching(fetch);
33
+ }
34
+ async outcome(url, failed, statusCode) {
35
+ const fetch = this.fetches
36
+ .find((f) => f.url === url);
37
+ if (!fetch)
38
+ return;
39
+ this.fetches = this.fetches
40
+ .filter((f) => f.index !== fetch.index);
41
+ const outcome = {
42
+ index: fetch.index,
43
+ failed: failed
44
+ };
45
+ if (statusCode !== undefined)
46
+ outcome.statusCode = statusCode;
47
+ await this.socketIoServer.outcome(outcome);
48
+ }
49
+ async done(url, statusCode) {
50
+ await this.outcome(url, false, statusCode);
51
+ }
52
+ async failed(url) {
53
+ await this.outcome(url, true);
54
+ }
55
+ bandwidth(size) {
56
+ this.current += size;
57
+ }
58
+ delta(status, delta) {
59
+ const existing = this.map.get(status) || 0;
60
+ this.map.set(status, existing + delta);
61
+ }
62
+ abort() {
63
+ commonsAsyncAbortInterval('sync');
64
+ commonsAsyncAbortInterval('bandwidth');
65
+ commonsAsyncAbortInterval('tally');
66
+ }
67
+ link(count = 1) {
68
+ this.linkTallies += count;
69
+ }
70
+ domain() {
71
+ this.domainTallies++;
72
+ }
73
+ async sync() {
74
+ const initial = await this.databaseService.listStatusTallies();
75
+ for (const status of initial.keys()) {
76
+ this.map.set(status, initial.get(status));
77
+ }
78
+ this.linkTallies = await this.databaseService.getLinkTalliesCount();
79
+ this.domainTallies = await this.databaseService.getDomainTalliesCount();
80
+ }
81
+ async start() {
82
+ await this.sync();
83
+ commonsAsyncInterval(1000, ECommonsInvocation.IF, async () => {
84
+ await this.socketIoServer.bandwidth(this.current);
85
+ this.current = 0;
86
+ }, 'bandwidth');
87
+ commonsAsyncInterval(1000, ECommonsInvocation.IF, async () => {
88
+ const tallies = {};
89
+ for (const status of this.map.keys()) {
90
+ tallies[status] = this.map.get(status);
91
+ }
92
+ await this.socketIoServer.statusTallies(tallies);
93
+ await this.socketIoServer.linkTallies(this.linkTallies);
94
+ await this.socketIoServer.domainTallies(this.domainTallies);
95
+ }, 'tally');
96
+ commonsAsyncInterval(60000, ECommonsInvocation.WHEN, async () => {
97
+ await this.sync();
98
+ }, 'sync');
99
+ }
100
+ }
101
+ //# sourceMappingURL=tracker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.mjs","sourceRoot":"","sources":["../../src/classes/tracker.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,MAAM,OAAO,OAAO;IAYT;IACA;IAZF,GAAG,GAAyB,IAAI,GAAG,EAAmB,CAAC;IAEvD,OAAO,GAAW,CAAC,CAAC;IAEpB,KAAK,GAAW,CAAC,CAAC;IAClB,OAAO,GAAa,EAAE,CAAC;IAEvB,WAAW,GAAW,CAAC,CAAC;IACxB,aAAa,GAAW,CAAC,CAAC;IAElC,YACU,eAAgC,EAChC,cAA8B;QAD9B,oBAAe,GAAf,eAAe,CAAiB;QAChC,mBAAc,GAAd,cAAc,CAAgB;QAEvC,+BAA+B,CAAC,GAAS,EAAE;YAC1C,eAAe,CAAC,+CAA+C,CAAC,CAAC;YAEjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAChC,MAAM,KAAK,GAAW;YACpB,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,EAAE,GAAG;SACT,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEvD,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAAe,EAAE,UAAmB;QACtE,MAAM,KAAK,GAAqB,IAAI,CAAC,OAAO;aACzC,IAAI,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAa;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,MAAM;SACf,CAAC;QACF,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAE9D,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,UAAkB;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,SAAS,CAAC,IAAY;QAC5B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,MAAe,EAAE,KAAa;QAC1C,MAAM,QAAQ,GAAW,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK;QACX,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAClC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACvC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,IAAI,CAAC,QAAgB,CAAC;QAC5B,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;IAC3B,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI;QACjB,MAAM,OAAO,GAAyB,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;QACrF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;QACpE,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,oBAAoB,CAClB,IAAI,EACJ,kBAAkB,CAAC,EAAE,EACrB,KAAK,IAAmB,EAAE;YACzB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,CAAC,EACD,WAAW,CACZ,CAAC;QAEF,oBAAoB,CAClB,IAAI,EACJ,kBAAkB,CAAC,EAAE,EACrB,KAAK,IAAmB,EAAE;YACzB,MAAM,OAAO,GAAmB,EAAE,CAAC;YAEnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YACzC,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,EACD,OAAO,CACR,CAAC;QAEF,oBAAoB,CAClB,KAAK,EACL,kBAAkB,CAAC,IAAI,EACvB,KAAK,IAAmB,EAAE;YACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,EACD,MAAM,CACP,CAAC;IACH,CAAC;CACD"}
@@ -1,45 +1,35 @@
1
1
  //const log = require('why-is-node-running');
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- import { commonsTypeIsObjectArray, commonsTypeIsTArray } from 'tscommons-es-core';
12
- import { isTCommonsScheduleTime } from 'tscommons-es-async';
13
- import { EStatus } from 'hydra-crawler-ts-assets';
14
- import { CommonsArgs, commonsOutputInfo, commonsOutputSetDaemon, commonsOutputSetDebugging } from 'nodecommons-es-cli';
15
- import { isICommonsCredentials } from 'nodecommons-es-database';
16
- import { isIInternalHydraCommonDbApp, isIInternalHydraCommonListApp, isIInternalHydraCommonExpiryApp, isIInternalHydraCommonMaintenanceApp } from './apps/internal-hydra-common.app';
17
- import { HydraApp } from './apps/hydra.app';
18
- import { DenylistApp } from './apps/denylist.app';
19
- import { CleanupApp } from './apps/cleanup.app';
20
- import { ExpireApp } from './apps/expire.app';
21
- import { ImportApp } from './apps/import.app';
22
- import { ReattemptApp } from './apps/reattempt.app';
23
- import { SeedApp } from './apps/seed.app';
24
- import { StartupApp } from './apps/startup.app';
25
- import { RequeueDomainApp } from './apps/requeue-domain.app';
26
- import { UnarchiveUrlsApp } from './apps/unarchive-urls.app';
27
- import { MoveToArchiveApp } from './apps/move-to-archive.app';
28
- import { PruneArchiveApp } from './apps/prune-archive.app';
29
- import { QueryApp } from './apps/query.app';
30
- import { CrossPopulateExportApp } from './apps/cross-populate-export.app';
31
- import { CrossPopulateImportApp } from './apps/cross-populate-import.app';
32
- import { ExtractTextApp } from './apps/extract-text.app';
33
- import { ExportDomainUrlsApp } from './apps/export-domain-urls';
34
- import { DatabaseService } from './services/database.service';
35
- import { isIMatch } from './interfaces/imatch';
36
- import { isIExpiry, toIExpiry } from './interfaces/iexpiry';
37
- import { filenameFromEList, ELISTS } from './enums/elist';
2
+ import { CommonsFixedDate, commonsTypeIsObjectArray, commonsTypeIsTArray } from 'tscommons-esm-core';
3
+ import { isTCommonsScheduleTime } from 'tscommons-esm-async';
4
+ import { EStatus } from 'hydra-crawler-esm-assets';
5
+ import { CommonsArgs } from 'nodecommons-esm-cli';
6
+ import { commonsLogInfo, commonsLogSetLevel, ECommonsLogLevel } from 'nodecommons-esm-log';
7
+ import { isICommonsCredentials } from 'nodecommons-esm-database';
8
+ import { isIInternalHydraCommonDbApp, isIInternalHydraCommonListApp, isIInternalHydraCommonExpiryApp, isIInternalHydraCommonMaintenanceApp } from './apps/internal-hydra-common.app.mjs';
9
+ import { HydraApp } from './apps/hydra.app.mjs';
10
+ import { DenylistApp } from './apps/denylist.app.mjs';
11
+ import { CleanupApp } from './apps/cleanup.app.mjs';
12
+ import { ExpireApp } from './apps/expire.app.mjs';
13
+ import { ImportApp } from './apps/import.app.mjs';
14
+ import { ReattemptApp } from './apps/reattempt.app.mjs';
15
+ import { SeedApp } from './apps/seed.app.mjs';
16
+ import { StartupApp } from './apps/startup.app.mjs';
17
+ import { RequeueDomainApp } from './apps/requeue-domain.app.mjs';
18
+ import { UnarchiveUrlsApp } from './apps/unarchive-urls.app.mjs';
19
+ import { MoveToArchiveApp } from './apps/move-to-archive.app.mjs';
20
+ import { PruneArchiveApp } from './apps/prune-archive.app.mjs';
21
+ import { QueryApp } from './apps/query.app.mjs';
22
+ import { CrossPopulateExportApp } from './apps/cross-populate-export.app.mjs';
23
+ import { CrossPopulateImportApp } from './apps/cross-populate-import.app.mjs';
24
+ import { ExtractTextApp } from './apps/extract-text.app.mjs';
25
+ import { ExportDomainUrlsApp } from './apps/export-domain-urls.mjs';
26
+ import { DatabaseService } from './services/database.service.mjs';
27
+ import { isIMatch } from './interfaces/imatch.mjs';
28
+ import { isIExpiry, toIExpiry } from './interfaces/iexpiry.mjs';
29
+ import { filenameFromEList, ELISTS } from './enums/elist.mjs';
38
30
  const args = new CommonsArgs();
39
31
  if (args.hasAttribute('debug'))
40
- commonsOutputSetDebugging(true);
41
- if (args.hasAttribute('daemon'))
42
- commonsOutputSetDaemon(true);
32
+ commonsLogSetLevel(ECommonsLogLevel.DEBUG);
43
33
  let app;
44
34
  if (args.hasAttribute('denylist')) {
45
35
  app = new DenylistApp();
@@ -52,11 +42,11 @@ else if (args.hasAttribute('cleanup')) {
52
42
  else if (args.hasAttribute('expire')) {
53
43
  let threshold;
54
44
  if (args.hasAttribute('days')) {
55
- threshold = new Date();
56
- threshold.setDate(threshold.getDate() - args.getNumber('days'));
45
+ threshold = new CommonsFixedDate();
46
+ threshold.day -= args.getFirstNumber('days');
57
47
  }
58
48
  if (args.hasAttribute('date')) {
59
- threshold = args.getDate('date');
49
+ threshold = args.getFirstFixedDate('date');
60
50
  }
61
51
  app = new ExpireApp(threshold);
62
52
  }
@@ -78,10 +68,8 @@ else if (args.hasAttribute('startup')) {
78
68
  app = new StartupApp();
79
69
  }
80
70
  else if (args.hasAttribute('requeue-domain')) {
81
- if (!args.hasProperty('domain', 'string'))
82
- throw new Error('No domain supplied');
83
- const domain = args.getString('domain');
84
- app = new RequeueDomainApp(domain, args.hasProperty('done-200-only'));
71
+ const domain = args.getFirstValue('domain');
72
+ app = new RequeueDomainApp(domain, args.hasAttribute('done-200-only'));
85
73
  }
86
74
  else if (args.hasAttribute('unarchive')) {
87
75
  app = new UnarchiveUrlsApp();
@@ -93,23 +81,23 @@ else if (args.hasAttribute('prune-archive')) {
93
81
  app = new PruneArchiveApp();
94
82
  }
95
83
  else if (args.hasAttribute('cross-populate-export')) {
96
- const filename = args.getString('filename');
84
+ const filename = args.getFirstValue('filename');
97
85
  app = new CrossPopulateExportApp(filename);
98
86
  }
99
87
  else if (args.hasAttribute('cross-populate-import')) {
100
- const filename = args.getString('filename');
88
+ const filename = args.getFirstValue('filename');
101
89
  app = new CrossPopulateImportApp(filename);
102
90
  }
103
- else if (args.hasProperty('query', 'string')) {
104
- const query = args.getString('query');
91
+ else if (args.hasAttribute('query')) {
92
+ const query = args.getFirstValue('query-name');
105
93
  app = new QueryApp(query);
106
94
  }
107
95
  else if (args.hasAttribute('extract-text')) {
108
- const url = args.getString('url');
96
+ const url = args.getFirstValue('url');
109
97
  app = new ExtractTextApp(url);
110
98
  }
111
99
  else if (args.hasAttribute('export-domain-urls')) {
112
- const domain = args.getString('domain');
100
+ const domain = args.getFirstValue('domain');
113
101
  app = new ExportDomainUrlsApp(domain);
114
102
  }
115
103
  else {
@@ -150,13 +138,13 @@ if (isIInternalHydraCommonMaintenanceApp(app)) {
150
138
  throw new Error('Invalid schedule list');
151
139
  app.setMaintenanceSchedule(data);
152
140
  }
153
- void (() => __awaiter(void 0, void 0, void 0, function* () {
154
- commonsOutputInfo(`Starting application: ${app.getAppName()}`);
155
- yield app.start();
156
- commonsOutputInfo('Application completed');
141
+ void (async () => {
142
+ commonsLogInfo(`Starting application: ${app.getAppName()}`);
143
+ await app.start();
144
+ commonsLogInfo('Application completed');
157
145
  setTimeout(() => {
158
146
  //log() // logs out active handles that are keeping node running
159
147
  process.exit(0);
160
148
  }, 100);
161
- }))();
162
- //# sourceMappingURL=cli.js.map
149
+ })();
150
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","sourceRoot":"","sources":["../src/cli.mts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@ export var EAvailableStrategy;
3
3
  EAvailableStrategy["LARGEST"] = "largest";
4
4
  EAvailableStrategy["SMALLEST"] = "smallest";
5
5
  })(EAvailableStrategy || (EAvailableStrategy = {}));
6
- //# sourceMappingURL=eavailable-strategy.js.map
6
+ //# sourceMappingURL=eavailable-strategy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eavailable-strategy.mjs","sourceRoot":"","sources":["../../src/enums/eavailable-strategy.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B"}
@@ -23,4 +23,4 @@ export function filenameFromEList(list) {
23
23
  }
24
24
  export const ELISTS = Object.keys(EList)
25
25
  .map((key) => keyToEList(key));
26
- //# sourceMappingURL=elist.js.map
26
+ //# sourceMappingURL=elist.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elist.mjs","sourceRoot":"","sources":["../../src/enums/elist.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,wBAAe,CAAA;AACjB,CAAC,EAHW,KAAK,KAAL,KAAK,QAGhB;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,IAAI,CAAC;QACnB,KAAK,OAAO;YACX,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAW;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,IAAI;YACd,OAAO,gBAAgB,CAAC;QACzB,KAAK,KAAK,CAAC,KAAK;YACf,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KAC9C,GAAG,CAAC,CAAC,GAAW,EAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC"}
@@ -7,4 +7,4 @@ export var EServer;
7
7
  EServer["AMAZONS3"] = "amazons3";
8
8
  EServer["JETTY"] = "jetty";
9
9
  })(EServer || (EServer = {}));
10
- //# sourceMappingURL=eserver.js.map
10
+ //# sourceMappingURL=eserver.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eserver.mjs","sourceRoot":"","sources":["../../src/enums/eserver.mts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,4BAAiB,CAAA;IACjB,sBAAW,CAAA;IACX,0BAAe,CAAA;IACf,oCAAyB,CAAA;IACzB,gCAAqB,CAAA;IACrB,0BAAe,CAAA;AACjB,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB"}