es6-crawler-detect 3.1.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/.babelrc +2 -1
  2. package/.eslintignore +6 -0
  3. package/.eslintrc.json +30 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +11 -8
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
  6. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +29 -0
  7. package/.prettierrc.json +5 -0
  8. package/README.md +27 -17
  9. package/dist/main.bundle.js +1 -1
  10. package/example/node/dist/crawler.min.js +1 -1
  11. package/example/node/node_modules/.bin/mime +15 -0
  12. package/example/node/node_modules/.bin/mime.cmd +7 -0
  13. package/example/node/node_modules/.yarn-integrity +67 -0
  14. package/example/node/node_modules/accepts/HISTORY.md +236 -0
  15. package/example/node/node_modules/accepts/LICENSE +23 -0
  16. package/example/node/node_modules/accepts/README.md +142 -0
  17. package/example/node/node_modules/accepts/index.js +238 -0
  18. package/example/node/node_modules/accepts/package.json +47 -0
  19. package/example/node/node_modules/array-flatten/LICENSE +21 -0
  20. package/example/node/node_modules/array-flatten/README.md +43 -0
  21. package/example/node/node_modules/array-flatten/array-flatten.js +64 -0
  22. package/example/node/node_modules/array-flatten/package.json +39 -0
  23. package/example/node/node_modules/body-parser/HISTORY.md +624 -0
  24. package/example/node/node_modules/body-parser/LICENSE +23 -0
  25. package/example/node/node_modules/body-parser/README.md +456 -0
  26. package/example/node/node_modules/body-parser/index.js +157 -0
  27. package/example/node/node_modules/body-parser/lib/read.js +181 -0
  28. package/example/node/node_modules/body-parser/lib/types/json.js +230 -0
  29. package/example/node/node_modules/body-parser/lib/types/raw.js +101 -0
  30. package/example/node/node_modules/body-parser/lib/types/text.js +121 -0
  31. package/example/node/node_modules/body-parser/lib/types/urlencoded.js +284 -0
  32. package/example/node/node_modules/body-parser/package.json +52 -0
  33. package/example/node/node_modules/bytes/History.md +92 -0
  34. package/example/node/node_modules/bytes/LICENSE +23 -0
  35. package/example/node/node_modules/bytes/Readme.md +152 -0
  36. package/example/node/node_modules/bytes/index.js +166 -0
  37. package/example/node/node_modules/bytes/package.json +42 -0
  38. package/example/node/node_modules/content-disposition/HISTORY.md +60 -0
  39. package/example/node/node_modules/content-disposition/LICENSE +22 -0
  40. package/example/node/node_modules/content-disposition/README.md +142 -0
  41. package/example/node/node_modules/content-disposition/index.js +458 -0
  42. package/example/node/node_modules/content-disposition/package.json +44 -0
  43. package/example/node/node_modules/content-type/HISTORY.md +24 -0
  44. package/example/node/node_modules/content-type/LICENSE +22 -0
  45. package/example/node/node_modules/content-type/README.md +92 -0
  46. package/example/node/node_modules/content-type/index.js +222 -0
  47. package/example/node/node_modules/content-type/package.json +40 -0
  48. package/example/node/node_modules/cookie/HISTORY.md +128 -0
  49. package/example/node/node_modules/cookie/LICENSE +24 -0
  50. package/example/node/node_modules/cookie/README.md +257 -0
  51. package/example/node/node_modules/cookie/index.js +202 -0
  52. package/example/node/node_modules/cookie/package.json +40 -0
  53. package/example/node/node_modules/cookie-signature/History.md +38 -0
  54. package/example/node/node_modules/cookie-signature/Readme.md +42 -0
  55. package/example/node/node_modules/cookie-signature/index.js +51 -0
  56. package/example/node/node_modules/cookie-signature/package.json +18 -0
  57. package/example/node/node_modules/debug/.coveralls.yml +1 -0
  58. package/example/node/node_modules/debug/.eslintrc +11 -0
  59. package/example/node/node_modules/debug/.travis.yml +14 -0
  60. package/example/node/node_modules/debug/CHANGELOG.md +362 -0
  61. package/example/node/node_modules/debug/LICENSE +19 -0
  62. package/example/node/node_modules/debug/Makefile +50 -0
  63. package/example/node/node_modules/debug/README.md +312 -0
  64. package/example/node/node_modules/debug/component.json +19 -0
  65. package/example/node/node_modules/debug/karma.conf.js +70 -0
  66. package/example/node/node_modules/debug/node.js +1 -0
  67. package/example/node/node_modules/debug/package.json +49 -0
  68. package/example/node/node_modules/debug/src/browser.js +185 -0
  69. package/example/node/node_modules/debug/src/debug.js +202 -0
  70. package/example/node/node_modules/debug/src/index.js +10 -0
  71. package/example/node/node_modules/debug/src/inspector-log.js +15 -0
  72. package/example/node/node_modules/debug/src/node.js +248 -0
  73. package/example/node/node_modules/depd/History.md +96 -0
  74. package/example/node/node_modules/depd/LICENSE +22 -0
  75. package/example/node/node_modules/depd/Readme.md +280 -0
  76. package/example/node/node_modules/depd/index.js +522 -0
  77. package/example/node/node_modules/depd/lib/browser/index.js +77 -0
  78. package/example/node/node_modules/depd/lib/compat/callsite-tostring.js +103 -0
  79. package/example/node/node_modules/depd/lib/compat/event-listener-count.js +22 -0
  80. package/example/node/node_modules/depd/lib/compat/index.js +79 -0
  81. package/example/node/node_modules/depd/package.json +41 -0
  82. package/example/node/node_modules/destroy/LICENSE +22 -0
  83. package/example/node/node_modules/destroy/README.md +60 -0
  84. package/example/node/node_modules/destroy/index.js +75 -0
  85. package/example/node/node_modules/destroy/package.json +37 -0
  86. package/example/node/node_modules/ee-first/LICENSE +22 -0
  87. package/example/node/node_modules/ee-first/README.md +80 -0
  88. package/example/node/node_modules/ee-first/index.js +95 -0
  89. package/example/node/node_modules/ee-first/package.json +29 -0
  90. package/example/node/node_modules/encodeurl/HISTORY.md +14 -0
  91. package/example/node/node_modules/encodeurl/LICENSE +22 -0
  92. package/example/node/node_modules/encodeurl/README.md +128 -0
  93. package/example/node/node_modules/encodeurl/index.js +60 -0
  94. package/example/node/node_modules/encodeurl/package.json +40 -0
  95. package/example/node/node_modules/escape-html/LICENSE +24 -0
  96. package/example/node/node_modules/escape-html/Readme.md +43 -0
  97. package/example/node/node_modules/escape-html/index.js +78 -0
  98. package/example/node/node_modules/escape-html/package.json +24 -0
  99. package/example/node/node_modules/etag/HISTORY.md +83 -0
  100. package/example/node/node_modules/etag/LICENSE +22 -0
  101. package/example/node/node_modules/etag/README.md +159 -0
  102. package/example/node/node_modules/etag/index.js +131 -0
  103. package/example/node/node_modules/etag/package.json +47 -0
  104. package/example/node/node_modules/express/History.md +3510 -0
  105. package/example/node/node_modules/express/LICENSE +24 -0
  106. package/example/node/node_modules/express/Readme.md +158 -0
  107. package/example/node/node_modules/express/index.js +11 -0
  108. package/example/node/node_modules/express/lib/application.js +644 -0
  109. package/example/node/node_modules/express/lib/express.js +116 -0
  110. package/example/node/node_modules/express/lib/middleware/init.js +43 -0
  111. package/example/node/node_modules/express/lib/middleware/query.js +47 -0
  112. package/example/node/node_modules/express/lib/request.js +525 -0
  113. package/example/node/node_modules/express/lib/response.js +1147 -0
  114. package/example/node/node_modules/express/lib/router/index.js +668 -0
  115. package/example/node/node_modules/express/lib/router/layer.js +181 -0
  116. package/example/node/node_modules/express/lib/router/route.js +216 -0
  117. package/example/node/node_modules/express/lib/utils.js +302 -0
  118. package/example/node/node_modules/express/lib/view.js +182 -0
  119. package/example/node/node_modules/express/package.json +99 -0
  120. package/example/node/node_modules/finalhandler/HISTORY.md +187 -0
  121. package/example/node/node_modules/finalhandler/LICENSE +22 -0
  122. package/example/node/node_modules/finalhandler/README.md +148 -0
  123. package/example/node/node_modules/finalhandler/index.js +331 -0
  124. package/example/node/node_modules/finalhandler/package.json +45 -0
  125. package/example/node/node_modules/forwarded/HISTORY.md +21 -0
  126. package/example/node/node_modules/forwarded/LICENSE +22 -0
  127. package/example/node/node_modules/forwarded/README.md +57 -0
  128. package/example/node/node_modules/forwarded/index.js +90 -0
  129. package/example/node/node_modules/forwarded/package.json +45 -0
  130. package/example/node/node_modules/fresh/HISTORY.md +70 -0
  131. package/example/node/node_modules/fresh/LICENSE +23 -0
  132. package/example/node/node_modules/fresh/README.md +119 -0
  133. package/example/node/node_modules/fresh/index.js +137 -0
  134. package/example/node/node_modules/fresh/package.json +46 -0
  135. package/example/node/node_modules/http-errors/HISTORY.md +165 -0
  136. package/example/node/node_modules/http-errors/LICENSE +23 -0
  137. package/example/node/node_modules/http-errors/README.md +169 -0
  138. package/example/node/node_modules/http-errors/index.js +299 -0
  139. package/example/node/node_modules/http-errors/package.json +49 -0
  140. package/example/node/node_modules/iconv-lite/Changelog.md +162 -0
  141. package/example/node/node_modules/iconv-lite/LICENSE +21 -0
  142. package/example/node/node_modules/iconv-lite/README.md +156 -0
  143. package/example/node/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  144. package/example/node/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  145. package/example/node/node_modules/iconv-lite/encodings/index.js +22 -0
  146. package/example/node/node_modules/iconv-lite/encodings/internal.js +188 -0
  147. package/example/node/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  148. package/example/node/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  149. package/example/node/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  150. package/example/node/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  151. package/example/node/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  152. package/example/node/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  153. package/example/node/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  154. package/example/node/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  155. package/example/node/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  156. package/example/node/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  157. package/example/node/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  158. package/example/node/node_modules/iconv-lite/encodings/utf16.js +177 -0
  159. package/example/node/node_modules/iconv-lite/encodings/utf7.js +290 -0
  160. package/example/node/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  161. package/example/node/node_modules/iconv-lite/lib/extend-node.js +217 -0
  162. package/example/node/node_modules/iconv-lite/lib/index.d.ts +24 -0
  163. package/example/node/node_modules/iconv-lite/lib/index.js +153 -0
  164. package/example/node/node_modules/iconv-lite/lib/streams.js +121 -0
  165. package/example/node/node_modules/iconv-lite/package.json +46 -0
  166. package/example/node/node_modules/inherits/LICENSE +16 -0
  167. package/example/node/node_modules/inherits/README.md +42 -0
  168. package/example/node/node_modules/inherits/inherits.js +9 -0
  169. package/example/node/node_modules/inherits/inherits_browser.js +27 -0
  170. package/example/node/node_modules/inherits/package.json +29 -0
  171. package/example/node/node_modules/ipaddr.js/LICENSE +19 -0
  172. package/example/node/node_modules/ipaddr.js/README.md +233 -0
  173. package/example/node/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  174. package/example/node/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  175. package/example/node/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  176. package/example/node/node_modules/ipaddr.js/package.json +35 -0
  177. package/example/node/node_modules/media-typer/HISTORY.md +22 -0
  178. package/example/node/node_modules/media-typer/LICENSE +22 -0
  179. package/example/node/node_modules/media-typer/README.md +81 -0
  180. package/example/node/node_modules/media-typer/index.js +270 -0
  181. package/example/node/node_modules/media-typer/package.json +26 -0
  182. package/example/node/node_modules/merge-descriptors/HISTORY.md +21 -0
  183. package/example/node/node_modules/merge-descriptors/LICENSE +23 -0
  184. package/example/node/node_modules/merge-descriptors/README.md +48 -0
  185. package/example/node/node_modules/merge-descriptors/index.js +60 -0
  186. package/example/node/node_modules/merge-descriptors/package.json +32 -0
  187. package/example/node/node_modules/methods/HISTORY.md +29 -0
  188. package/example/node/node_modules/methods/LICENSE +24 -0
  189. package/example/node/node_modules/methods/README.md +51 -0
  190. package/example/node/node_modules/methods/index.js +69 -0
  191. package/example/node/node_modules/methods/package.json +36 -0
  192. package/example/node/node_modules/mime/CHANGELOG.md +164 -0
  193. package/example/node/node_modules/mime/LICENSE +21 -0
  194. package/example/node/node_modules/mime/README.md +90 -0
  195. package/example/node/node_modules/mime/cli.js +8 -0
  196. package/example/node/node_modules/mime/mime.js +108 -0
  197. package/example/node/node_modules/mime/package.json +44 -0
  198. package/example/node/node_modules/mime/src/build.js +53 -0
  199. package/example/node/node_modules/mime/src/test.js +60 -0
  200. package/example/node/node_modules/mime/types.json +1 -0
  201. package/example/node/node_modules/mime-db/HISTORY.md +499 -0
  202. package/example/node/node_modules/mime-db/LICENSE +22 -0
  203. package/example/node/node_modules/mime-db/README.md +100 -0
  204. package/example/node/node_modules/mime-db/db.json +8471 -0
  205. package/example/node/node_modules/mime-db/index.js +11 -0
  206. package/example/node/node_modules/mime-db/package.json +59 -0
  207. package/example/node/node_modules/mime-types/HISTORY.md +388 -0
  208. package/example/node/node_modules/mime-types/LICENSE +23 -0
  209. package/example/node/node_modules/mime-types/README.md +113 -0
  210. package/example/node/node_modules/mime-types/index.js +188 -0
  211. package/example/node/node_modules/mime-types/package.json +44 -0
  212. package/example/node/node_modules/ms/index.js +152 -0
  213. package/example/node/node_modules/ms/license.md +21 -0
  214. package/example/node/node_modules/ms/package.json +37 -0
  215. package/example/node/node_modules/ms/readme.md +51 -0
  216. package/example/node/node_modules/negotiator/HISTORY.md +103 -0
  217. package/example/node/node_modules/negotiator/LICENSE +24 -0
  218. package/example/node/node_modules/negotiator/README.md +203 -0
  219. package/example/node/node_modules/negotiator/index.js +124 -0
  220. package/example/node/node_modules/negotiator/lib/charset.js +169 -0
  221. package/example/node/node_modules/negotiator/lib/encoding.js +184 -0
  222. package/example/node/node_modules/negotiator/lib/language.js +179 -0
  223. package/example/node/node_modules/negotiator/lib/mediaType.js +294 -0
  224. package/example/node/node_modules/negotiator/package.json +42 -0
  225. package/example/node/node_modules/on-finished/HISTORY.md +88 -0
  226. package/example/node/node_modules/on-finished/LICENSE +23 -0
  227. package/example/node/node_modules/on-finished/README.md +154 -0
  228. package/example/node/node_modules/on-finished/index.js +196 -0
  229. package/example/node/node_modules/on-finished/package.json +31 -0
  230. package/example/node/node_modules/parseurl/HISTORY.md +58 -0
  231. package/example/node/node_modules/parseurl/LICENSE +24 -0
  232. package/example/node/node_modules/parseurl/README.md +133 -0
  233. package/example/node/node_modules/parseurl/index.js +158 -0
  234. package/example/node/node_modules/parseurl/package.json +40 -0
  235. package/example/node/node_modules/path-to-regexp/History.md +36 -0
  236. package/example/node/node_modules/path-to-regexp/LICENSE +21 -0
  237. package/example/node/node_modules/path-to-regexp/Readme.md +35 -0
  238. package/example/node/node_modules/path-to-regexp/index.js +129 -0
  239. package/example/node/node_modules/path-to-regexp/package.json +30 -0
  240. package/example/node/node_modules/proxy-addr/HISTORY.md +161 -0
  241. package/example/node/node_modules/proxy-addr/LICENSE +22 -0
  242. package/example/node/node_modules/proxy-addr/README.md +139 -0
  243. package/example/node/node_modules/proxy-addr/index.js +327 -0
  244. package/example/node/node_modules/proxy-addr/package.json +47 -0
  245. package/example/node/node_modules/qs/.editorconfig +39 -0
  246. package/example/node/node_modules/qs/.eslintignore +2 -0
  247. package/example/node/node_modules/qs/.eslintrc +35 -0
  248. package/example/node/node_modules/qs/.github/FUNDING.yml +12 -0
  249. package/example/node/node_modules/qs/.nycrc +13 -0
  250. package/example/node/node_modules/qs/CHANGELOG.md +359 -0
  251. package/example/node/node_modules/qs/LICENSE.md +29 -0
  252. package/example/node/node_modules/qs/README.md +604 -0
  253. package/example/node/node_modules/qs/dist/qs.js +832 -0
  254. package/example/node/node_modules/qs/lib/formats.js +23 -0
  255. package/example/node/node_modules/qs/lib/index.js +11 -0
  256. package/example/node/node_modules/qs/lib/parse.js +257 -0
  257. package/example/node/node_modules/qs/lib/stringify.js +278 -0
  258. package/example/node/node_modules/qs/lib/utils.js +251 -0
  259. package/example/node/node_modules/qs/package.json +69 -0
  260. package/example/node/node_modules/qs/test/parse.js +772 -0
  261. package/example/node/node_modules/qs/test/stringify.js +793 -0
  262. package/example/node/node_modules/qs/test/utils.js +136 -0
  263. package/example/node/node_modules/range-parser/HISTORY.md +56 -0
  264. package/example/node/node_modules/range-parser/LICENSE +23 -0
  265. package/example/node/node_modules/range-parser/README.md +84 -0
  266. package/example/node/node_modules/range-parser/index.js +162 -0
  267. package/example/node/node_modules/range-parser/package.json +44 -0
  268. package/example/node/node_modules/raw-body/HISTORY.md +284 -0
  269. package/example/node/node_modules/raw-body/LICENSE +22 -0
  270. package/example/node/node_modules/raw-body/README.md +217 -0
  271. package/example/node/node_modules/raw-body/index.d.ts +87 -0
  272. package/example/node/node_modules/raw-body/index.js +286 -0
  273. package/example/node/node_modules/raw-body/package.json +48 -0
  274. package/example/node/node_modules/safe-buffer/LICENSE +21 -0
  275. package/example/node/node_modules/safe-buffer/README.md +584 -0
  276. package/example/node/node_modules/safe-buffer/index.d.ts +187 -0
  277. package/example/node/node_modules/safe-buffer/index.js +65 -0
  278. package/example/node/node_modules/safe-buffer/package.json +51 -0
  279. package/example/node/node_modules/safer-buffer/LICENSE +21 -0
  280. package/example/node/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  281. package/example/node/node_modules/safer-buffer/Readme.md +156 -0
  282. package/example/node/node_modules/safer-buffer/dangerous.js +58 -0
  283. package/example/node/node_modules/safer-buffer/package.json +34 -0
  284. package/example/node/node_modules/safer-buffer/safer.js +77 -0
  285. package/example/node/node_modules/safer-buffer/tests.js +406 -0
  286. package/example/node/node_modules/send/HISTORY.md +506 -0
  287. package/example/node/node_modules/send/LICENSE +23 -0
  288. package/example/node/node_modules/send/README.md +327 -0
  289. package/example/node/node_modules/send/index.js +1133 -0
  290. package/example/node/node_modules/send/node_modules/.bin/mime +15 -0
  291. package/example/node/node_modules/send/node_modules/.bin/mime.cmd +7 -0
  292. package/example/node/node_modules/send/node_modules/ms/index.js +162 -0
  293. package/example/node/node_modules/send/node_modules/ms/license.md +21 -0
  294. package/example/node/node_modules/send/node_modules/ms/package.json +38 -0
  295. package/example/node/node_modules/send/node_modules/ms/readme.md +59 -0
  296. package/example/node/node_modules/send/package.json +61 -0
  297. package/example/node/node_modules/serve-static/HISTORY.md +459 -0
  298. package/example/node/node_modules/serve-static/LICENSE +25 -0
  299. package/example/node/node_modules/serve-static/README.md +257 -0
  300. package/example/node/node_modules/serve-static/index.js +210 -0
  301. package/example/node/node_modules/serve-static/package.json +42 -0
  302. package/example/node/node_modules/setprototypeof/LICENSE +13 -0
  303. package/example/node/node_modules/setprototypeof/README.md +31 -0
  304. package/example/node/node_modules/setprototypeof/index.d.ts +2 -0
  305. package/example/node/node_modules/setprototypeof/index.js +17 -0
  306. package/example/node/node_modules/setprototypeof/package.json +38 -0
  307. package/example/node/node_modules/setprototypeof/test/index.js +24 -0
  308. package/example/node/node_modules/statuses/HISTORY.md +65 -0
  309. package/example/node/node_modules/statuses/LICENSE +23 -0
  310. package/example/node/node_modules/statuses/README.md +127 -0
  311. package/example/node/node_modules/statuses/codes.json +66 -0
  312. package/example/node/node_modules/statuses/index.js +113 -0
  313. package/example/node/node_modules/statuses/package.json +48 -0
  314. package/example/node/node_modules/toidentifier/HISTORY.md +9 -0
  315. package/example/node/node_modules/toidentifier/LICENSE +21 -0
  316. package/example/node/node_modules/toidentifier/README.md +61 -0
  317. package/example/node/node_modules/toidentifier/index.js +32 -0
  318. package/example/node/node_modules/toidentifier/package.json +38 -0
  319. package/example/node/node_modules/type-is/HISTORY.md +259 -0
  320. package/example/node/node_modules/type-is/LICENSE +23 -0
  321. package/example/node/node_modules/type-is/README.md +170 -0
  322. package/example/node/node_modules/type-is/index.js +266 -0
  323. package/example/node/node_modules/type-is/package.json +45 -0
  324. package/example/node/node_modules/unpipe/HISTORY.md +4 -0
  325. package/example/node/node_modules/unpipe/LICENSE +22 -0
  326. package/example/node/node_modules/unpipe/README.md +43 -0
  327. package/example/node/node_modules/unpipe/index.js +69 -0
  328. package/example/node/node_modules/unpipe/package.json +27 -0
  329. package/example/node/node_modules/utils-merge/LICENSE +20 -0
  330. package/example/node/node_modules/utils-merge/README.md +34 -0
  331. package/example/node/node_modules/utils-merge/index.js +23 -0
  332. package/example/node/node_modules/utils-merge/package.json +40 -0
  333. package/example/node/node_modules/vary/HISTORY.md +39 -0
  334. package/example/node/node_modules/vary/LICENSE +22 -0
  335. package/example/node/node_modules/vary/README.md +101 -0
  336. package/example/node/node_modules/vary/index.js +149 -0
  337. package/example/node/node_modules/vary/package.json +43 -0
  338. package/example/node/package.json +11 -0
  339. package/example/node/server.js +27 -15
  340. package/example/node/yarn.lock +352 -0
  341. package/package.json +29 -18
  342. package/src/index.js +16 -10
  343. package/src/lib/crawler/crawlers.js +1399 -11
  344. package/src/lib/crawler/exclusions.js +56 -9
  345. package/src/lib/crawler/headers.js +24 -15
  346. package/src/lib/crawler/provider.js +11 -13
  347. package/src/lib/crawler.js +123 -132
  348. package/test/lib/crawler.test.js +83 -24
  349. package/test/lib/database/crawlers.txt +3651 -0
  350. package/test/lib/database/devices.txt +165636 -0
  351. package/webpack.common.js +20 -20
  352. package/webpack.dev.js +7 -7
  353. package/webpack.prod.js +14 -15
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var Buffer = require("safer-buffer").Buffer;
3
+
4
+ // Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
5
+
6
+ // == UTF16-BE codec. ==========================================================
7
+
8
+ exports.utf16be = Utf16BECodec;
9
+ function Utf16BECodec() {
10
+ }
11
+
12
+ Utf16BECodec.prototype.encoder = Utf16BEEncoder;
13
+ Utf16BECodec.prototype.decoder = Utf16BEDecoder;
14
+ Utf16BECodec.prototype.bomAware = true;
15
+
16
+
17
+ // -- Encoding
18
+
19
+ function Utf16BEEncoder() {
20
+ }
21
+
22
+ Utf16BEEncoder.prototype.write = function(str) {
23
+ var buf = Buffer.from(str, 'ucs2');
24
+ for (var i = 0; i < buf.length; i += 2) {
25
+ var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
26
+ }
27
+ return buf;
28
+ }
29
+
30
+ Utf16BEEncoder.prototype.end = function() {
31
+ }
32
+
33
+
34
+ // -- Decoding
35
+
36
+ function Utf16BEDecoder() {
37
+ this.overflowByte = -1;
38
+ }
39
+
40
+ Utf16BEDecoder.prototype.write = function(buf) {
41
+ if (buf.length == 0)
42
+ return '';
43
+
44
+ var buf2 = Buffer.alloc(buf.length + 1),
45
+ i = 0, j = 0;
46
+
47
+ if (this.overflowByte !== -1) {
48
+ buf2[0] = buf[0];
49
+ buf2[1] = this.overflowByte;
50
+ i = 1; j = 2;
51
+ }
52
+
53
+ for (; i < buf.length-1; i += 2, j+= 2) {
54
+ buf2[j] = buf[i+1];
55
+ buf2[j+1] = buf[i];
56
+ }
57
+
58
+ this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
59
+
60
+ return buf2.slice(0, j).toString('ucs2');
61
+ }
62
+
63
+ Utf16BEDecoder.prototype.end = function() {
64
+ }
65
+
66
+
67
+ // == UTF-16 codec =============================================================
68
+ // Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
69
+ // Defaults to UTF-16LE, as it's prevalent and default in Node.
70
+ // http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
71
+ // Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
72
+
73
+ // Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
74
+
75
+ exports.utf16 = Utf16Codec;
76
+ function Utf16Codec(codecOptions, iconv) {
77
+ this.iconv = iconv;
78
+ }
79
+
80
+ Utf16Codec.prototype.encoder = Utf16Encoder;
81
+ Utf16Codec.prototype.decoder = Utf16Decoder;
82
+
83
+
84
+ // -- Encoding (pass-through)
85
+
86
+ function Utf16Encoder(options, codec) {
87
+ options = options || {};
88
+ if (options.addBOM === undefined)
89
+ options.addBOM = true;
90
+ this.encoder = codec.iconv.getEncoder('utf-16le', options);
91
+ }
92
+
93
+ Utf16Encoder.prototype.write = function(str) {
94
+ return this.encoder.write(str);
95
+ }
96
+
97
+ Utf16Encoder.prototype.end = function() {
98
+ return this.encoder.end();
99
+ }
100
+
101
+
102
+ // -- Decoding
103
+
104
+ function Utf16Decoder(options, codec) {
105
+ this.decoder = null;
106
+ this.initialBytes = [];
107
+ this.initialBytesLen = 0;
108
+
109
+ this.options = options || {};
110
+ this.iconv = codec.iconv;
111
+ }
112
+
113
+ Utf16Decoder.prototype.write = function(buf) {
114
+ if (!this.decoder) {
115
+ // Codec is not chosen yet. Accumulate initial bytes.
116
+ this.initialBytes.push(buf);
117
+ this.initialBytesLen += buf.length;
118
+
119
+ if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
120
+ return '';
121
+
122
+ // We have enough bytes -> detect endianness.
123
+ var buf = Buffer.concat(this.initialBytes),
124
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
125
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
126
+ this.initialBytes.length = this.initialBytesLen = 0;
127
+ }
128
+
129
+ return this.decoder.write(buf);
130
+ }
131
+
132
+ Utf16Decoder.prototype.end = function() {
133
+ if (!this.decoder) {
134
+ var buf = Buffer.concat(this.initialBytes),
135
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
136
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
137
+
138
+ var res = this.decoder.write(buf),
139
+ trail = this.decoder.end();
140
+
141
+ return trail ? (res + trail) : res;
142
+ }
143
+ return this.decoder.end();
144
+ }
145
+
146
+ function detectEncoding(buf, defaultEncoding) {
147
+ var enc = defaultEncoding || 'utf-16le';
148
+
149
+ if (buf.length >= 2) {
150
+ // Check BOM.
151
+ if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
152
+ enc = 'utf-16be';
153
+ else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
154
+ enc = 'utf-16le';
155
+ else {
156
+ // No BOM found. Try to deduce encoding from initial content.
157
+ // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
158
+ // So, we count ASCII as if it was LE or BE, and decide from that.
159
+ var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
160
+ _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
161
+
162
+ for (var i = 0; i < _len; i += 2) {
163
+ if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
164
+ if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
165
+ }
166
+
167
+ if (asciiCharsBE > asciiCharsLE)
168
+ enc = 'utf-16be';
169
+ else if (asciiCharsBE < asciiCharsLE)
170
+ enc = 'utf-16le';
171
+ }
172
+ }
173
+
174
+ return enc;
175
+ }
176
+
177
+
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ var Buffer = require("safer-buffer").Buffer;
3
+
4
+ // UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
5
+ // See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
6
+
7
+ exports.utf7 = Utf7Codec;
8
+ exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
9
+ function Utf7Codec(codecOptions, iconv) {
10
+ this.iconv = iconv;
11
+ };
12
+
13
+ Utf7Codec.prototype.encoder = Utf7Encoder;
14
+ Utf7Codec.prototype.decoder = Utf7Decoder;
15
+ Utf7Codec.prototype.bomAware = true;
16
+
17
+
18
+ // -- Encoding
19
+
20
+ var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
21
+
22
+ function Utf7Encoder(options, codec) {
23
+ this.iconv = codec.iconv;
24
+ }
25
+
26
+ Utf7Encoder.prototype.write = function(str) {
27
+ // Naive implementation.
28
+ // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
29
+ return Buffer.from(str.replace(nonDirectChars, function(chunk) {
30
+ return "+" + (chunk === '+' ? '' :
31
+ this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
32
+ + "-";
33
+ }.bind(this)));
34
+ }
35
+
36
+ Utf7Encoder.prototype.end = function() {
37
+ }
38
+
39
+
40
+ // -- Decoding
41
+
42
+ function Utf7Decoder(options, codec) {
43
+ this.iconv = codec.iconv;
44
+ this.inBase64 = false;
45
+ this.base64Accum = '';
46
+ }
47
+
48
+ var base64Regex = /[A-Za-z0-9\/+]/;
49
+ var base64Chars = [];
50
+ for (var i = 0; i < 256; i++)
51
+ base64Chars[i] = base64Regex.test(String.fromCharCode(i));
52
+
53
+ var plusChar = '+'.charCodeAt(0),
54
+ minusChar = '-'.charCodeAt(0),
55
+ andChar = '&'.charCodeAt(0);
56
+
57
+ Utf7Decoder.prototype.write = function(buf) {
58
+ var res = "", lastI = 0,
59
+ inBase64 = this.inBase64,
60
+ base64Accum = this.base64Accum;
61
+
62
+ // The decoder is more involved as we must handle chunks in stream.
63
+
64
+ for (var i = 0; i < buf.length; i++) {
65
+ if (!inBase64) { // We're in direct mode.
66
+ // Write direct chars until '+'
67
+ if (buf[i] == plusChar) {
68
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
69
+ lastI = i+1;
70
+ inBase64 = true;
71
+ }
72
+ } else { // We decode base64.
73
+ if (!base64Chars[buf[i]]) { // Base64 ended.
74
+ if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
75
+ res += "+";
76
+ } else {
77
+ var b64str = base64Accum + buf.slice(lastI, i).toString();
78
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
79
+ }
80
+
81
+ if (buf[i] != minusChar) // Minus is absorbed after base64.
82
+ i--;
83
+
84
+ lastI = i+1;
85
+ inBase64 = false;
86
+ base64Accum = '';
87
+ }
88
+ }
89
+ }
90
+
91
+ if (!inBase64) {
92
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
93
+ } else {
94
+ var b64str = base64Accum + buf.slice(lastI).toString();
95
+
96
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
97
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
98
+ b64str = b64str.slice(0, canBeDecoded);
99
+
100
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
101
+ }
102
+
103
+ this.inBase64 = inBase64;
104
+ this.base64Accum = base64Accum;
105
+
106
+ return res;
107
+ }
108
+
109
+ Utf7Decoder.prototype.end = function() {
110
+ var res = "";
111
+ if (this.inBase64 && this.base64Accum.length > 0)
112
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
113
+
114
+ this.inBase64 = false;
115
+ this.base64Accum = '';
116
+ return res;
117
+ }
118
+
119
+
120
+ // UTF-7-IMAP codec.
121
+ // RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
122
+ // Differences:
123
+ // * Base64 part is started by "&" instead of "+"
124
+ // * Direct characters are 0x20-0x7E, except "&" (0x26)
125
+ // * In Base64, "," is used instead of "/"
126
+ // * Base64 must not be used to represent direct characters.
127
+ // * No implicit shift back from Base64 (should always end with '-')
128
+ // * String must end in non-shifted position.
129
+ // * "-&" while in base64 is not allowed.
130
+
131
+
132
+ exports.utf7imap = Utf7IMAPCodec;
133
+ function Utf7IMAPCodec(codecOptions, iconv) {
134
+ this.iconv = iconv;
135
+ };
136
+
137
+ Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
138
+ Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
139
+ Utf7IMAPCodec.prototype.bomAware = true;
140
+
141
+
142
+ // -- Encoding
143
+
144
+ function Utf7IMAPEncoder(options, codec) {
145
+ this.iconv = codec.iconv;
146
+ this.inBase64 = false;
147
+ this.base64Accum = Buffer.alloc(6);
148
+ this.base64AccumIdx = 0;
149
+ }
150
+
151
+ Utf7IMAPEncoder.prototype.write = function(str) {
152
+ var inBase64 = this.inBase64,
153
+ base64Accum = this.base64Accum,
154
+ base64AccumIdx = this.base64AccumIdx,
155
+ buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;
156
+
157
+ for (var i = 0; i < str.length; i++) {
158
+ var uChar = str.charCodeAt(i);
159
+ if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
160
+ if (inBase64) {
161
+ if (base64AccumIdx > 0) {
162
+ bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
163
+ base64AccumIdx = 0;
164
+ }
165
+
166
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
167
+ inBase64 = false;
168
+ }
169
+
170
+ if (!inBase64) {
171
+ buf[bufIdx++] = uChar; // Write direct character
172
+
173
+ if (uChar === andChar) // Ampersand -> '&-'
174
+ buf[bufIdx++] = minusChar;
175
+ }
176
+
177
+ } else { // Non-direct character
178
+ if (!inBase64) {
179
+ buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
180
+ inBase64 = true;
181
+ }
182
+ if (inBase64) {
183
+ base64Accum[base64AccumIdx++] = uChar >> 8;
184
+ base64Accum[base64AccumIdx++] = uChar & 0xFF;
185
+
186
+ if (base64AccumIdx == base64Accum.length) {
187
+ bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
188
+ base64AccumIdx = 0;
189
+ }
190
+ }
191
+ }
192
+ }
193
+
194
+ this.inBase64 = inBase64;
195
+ this.base64AccumIdx = base64AccumIdx;
196
+
197
+ return buf.slice(0, bufIdx);
198
+ }
199
+
200
+ Utf7IMAPEncoder.prototype.end = function() {
201
+ var buf = Buffer.alloc(10), bufIdx = 0;
202
+ if (this.inBase64) {
203
+ if (this.base64AccumIdx > 0) {
204
+ bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
205
+ this.base64AccumIdx = 0;
206
+ }
207
+
208
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
209
+ this.inBase64 = false;
210
+ }
211
+
212
+ return buf.slice(0, bufIdx);
213
+ }
214
+
215
+
216
+ // -- Decoding
217
+
218
+ function Utf7IMAPDecoder(options, codec) {
219
+ this.iconv = codec.iconv;
220
+ this.inBase64 = false;
221
+ this.base64Accum = '';
222
+ }
223
+
224
+ var base64IMAPChars = base64Chars.slice();
225
+ base64IMAPChars[','.charCodeAt(0)] = true;
226
+
227
+ Utf7IMAPDecoder.prototype.write = function(buf) {
228
+ var res = "", lastI = 0,
229
+ inBase64 = this.inBase64,
230
+ base64Accum = this.base64Accum;
231
+
232
+ // The decoder is more involved as we must handle chunks in stream.
233
+ // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
234
+
235
+ for (var i = 0; i < buf.length; i++) {
236
+ if (!inBase64) { // We're in direct mode.
237
+ // Write direct chars until '&'
238
+ if (buf[i] == andChar) {
239
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
240
+ lastI = i+1;
241
+ inBase64 = true;
242
+ }
243
+ } else { // We decode base64.
244
+ if (!base64IMAPChars[buf[i]]) { // Base64 ended.
245
+ if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
246
+ res += "&";
247
+ } else {
248
+ var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
249
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
250
+ }
251
+
252
+ if (buf[i] != minusChar) // Minus may be absorbed after base64.
253
+ i--;
254
+
255
+ lastI = i+1;
256
+ inBase64 = false;
257
+ base64Accum = '';
258
+ }
259
+ }
260
+ }
261
+
262
+ if (!inBase64) {
263
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
264
+ } else {
265
+ var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
266
+
267
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
268
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
269
+ b64str = b64str.slice(0, canBeDecoded);
270
+
271
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
272
+ }
273
+
274
+ this.inBase64 = inBase64;
275
+ this.base64Accum = base64Accum;
276
+
277
+ return res;
278
+ }
279
+
280
+ Utf7IMAPDecoder.prototype.end = function() {
281
+ var res = "";
282
+ if (this.inBase64 && this.base64Accum.length > 0)
283
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
284
+
285
+ this.inBase64 = false;
286
+ this.base64Accum = '';
287
+ return res;
288
+ }
289
+
290
+
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var BOMChar = '\uFEFF';
4
+
5
+ exports.PrependBOM = PrependBOMWrapper
6
+ function PrependBOMWrapper(encoder, options) {
7
+ this.encoder = encoder;
8
+ this.addBOM = true;
9
+ }
10
+
11
+ PrependBOMWrapper.prototype.write = function(str) {
12
+ if (this.addBOM) {
13
+ str = BOMChar + str;
14
+ this.addBOM = false;
15
+ }
16
+
17
+ return this.encoder.write(str);
18
+ }
19
+
20
+ PrependBOMWrapper.prototype.end = function() {
21
+ return this.encoder.end();
22
+ }
23
+
24
+
25
+ //------------------------------------------------------------------------------
26
+
27
+ exports.StripBOM = StripBOMWrapper;
28
+ function StripBOMWrapper(decoder, options) {
29
+ this.decoder = decoder;
30
+ this.pass = false;
31
+ this.options = options || {};
32
+ }
33
+
34
+ StripBOMWrapper.prototype.write = function(buf) {
35
+ var res = this.decoder.write(buf);
36
+ if (this.pass || !res)
37
+ return res;
38
+
39
+ if (res[0] === BOMChar) {
40
+ res = res.slice(1);
41
+ if (typeof this.options.stripBOM === 'function')
42
+ this.options.stripBOM();
43
+ }
44
+
45
+ this.pass = true;
46
+ return res;
47
+ }
48
+
49
+ StripBOMWrapper.prototype.end = function() {
50
+ return this.decoder.end();
51
+ }
52
+