es6-crawler-detect 3.1.0 → 3.2.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 (351) 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 +32 -26
  340. package/example/node/yarn.lock +352 -0
  341. package/package.json +30 -19
  342. package/src/index.js +16 -10
  343. package/src/lib/crawler/crawlers.js +1402 -15
  344. package/src/lib/crawler/exclusions.js +62 -15
  345. package/src/lib/crawler/headers.js +24 -15
  346. package/src/lib/crawler/provider.js +11 -13
  347. package/src/lib/crawler.js +135 -139
  348. package/test/lib/crawler.test.js +52 -35
  349. package/webpack.common.js +20 -20
  350. package/webpack.dev.js +7 -7
  351. package/webpack.prod.js +14 -15
@@ -0,0 +1,257 @@
1
+ # serve-static
2
+
3
+ [![NPM Version][npm-version-image]][npm-url]
4
+ [![NPM Downloads][npm-downloads-image]][npm-url]
5
+ [![Linux Build][github-actions-ci-image]][github-actions-ci-url]
6
+ [![Windows Build][appveyor-image]][appveyor-url]
7
+ [![Test Coverage][coveralls-image]][coveralls-url]
8
+
9
+ ## Install
10
+
11
+ This is a [Node.js](https://nodejs.org/en/) module available through the
12
+ [npm registry](https://www.npmjs.com/). Installation is done using the
13
+ [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
14
+
15
+ ```sh
16
+ $ npm install serve-static
17
+ ```
18
+
19
+ ## API
20
+
21
+ ```js
22
+ var serveStatic = require('serve-static')
23
+ ```
24
+
25
+ ### serveStatic(root, options)
26
+
27
+ Create a new middleware function to serve files from within a given root
28
+ directory. The file to serve will be determined by combining `req.url`
29
+ with the provided root directory. When a file is not found, instead of
30
+ sending a 404 response, this module will instead call `next()` to move on
31
+ to the next middleware, allowing for stacking and fall-backs.
32
+
33
+ #### Options
34
+
35
+ ##### acceptRanges
36
+
37
+ Enable or disable accepting ranged requests, defaults to true.
38
+ Disabling this will not send `Accept-Ranges` and ignore the contents
39
+ of the `Range` request header.
40
+
41
+ ##### cacheControl
42
+
43
+ Enable or disable setting `Cache-Control` response header, defaults to
44
+ true. Disabling this will ignore the `immutable` and `maxAge` options.
45
+
46
+ ##### dotfiles
47
+
48
+ Set how "dotfiles" are treated when encountered. A dotfile is a file
49
+ or directory that begins with a dot ("."). Note this check is done on
50
+ the path itself without checking if the path actually exists on the
51
+ disk. If `root` is specified, only the dotfiles above the root are
52
+ checked (i.e. the root itself can be within a dotfile when set
53
+ to "deny").
54
+
55
+ - `'allow'` No special treatment for dotfiles.
56
+ - `'deny'` Deny a request for a dotfile and 403/`next()`.
57
+ - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`.
58
+
59
+ The default value is similar to `'ignore'`, with the exception that this
60
+ default will not ignore the files within a directory that begins with a dot.
61
+
62
+ ##### etag
63
+
64
+ Enable or disable etag generation, defaults to true.
65
+
66
+ ##### extensions
67
+
68
+ Set file extension fallbacks. When set, if a file is not found, the given
69
+ extensions will be added to the file name and search for. The first that
70
+ exists will be served. Example: `['html', 'htm']`.
71
+
72
+ The default value is `false`.
73
+
74
+ ##### fallthrough
75
+
76
+ Set the middleware to have client errors fall-through as just unhandled
77
+ requests, otherwise forward a client error. The difference is that client
78
+ errors like a bad request or a request to a non-existent file will cause
79
+ this middleware to simply `next()` to your next middleware when this value
80
+ is `true`. When this value is `false`, these errors (even 404s), will invoke
81
+ `next(err)`.
82
+
83
+ Typically `true` is desired such that multiple physical directories can be
84
+ mapped to the same web address or for routes to fill in non-existent files.
85
+
86
+ The value `false` can be used if this middleware is mounted at a path that
87
+ is designed to be strictly a single file system directory, which allows for
88
+ short-circuiting 404s for less overhead. This middleware will also reply to
89
+ all methods.
90
+
91
+ The default value is `true`.
92
+
93
+ ##### immutable
94
+
95
+ Enable or disable the `immutable` directive in the `Cache-Control` response
96
+ header, defaults to `false`. If set to `true`, the `maxAge` option should
97
+ also be specified to enable caching. The `immutable` directive will prevent
98
+ supported clients from making conditional requests during the life of the
99
+ `maxAge` option to check if the file has changed.
100
+
101
+ ##### index
102
+
103
+ By default this module will send "index.html" files in response to a request
104
+ on a directory. To disable this set `false` or to supply a new index pass a
105
+ string or an array in preferred order.
106
+
107
+ ##### lastModified
108
+
109
+ Enable or disable `Last-Modified` header, defaults to true. Uses the file
110
+ system's last modified value.
111
+
112
+ ##### maxAge
113
+
114
+ Provide a max-age in milliseconds for http caching, defaults to 0. This
115
+ can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme)
116
+ module.
117
+
118
+ ##### redirect
119
+
120
+ Redirect to trailing "/" when the pathname is a dir. Defaults to `true`.
121
+
122
+ ##### setHeaders
123
+
124
+ Function to set custom headers on response. Alterations to the headers need to
125
+ occur synchronously. The function is called as `fn(res, path, stat)`, where
126
+ the arguments are:
127
+
128
+ - `res` the response object
129
+ - `path` the file path that is being sent
130
+ - `stat` the stat object of the file that is being sent
131
+
132
+ ## Examples
133
+
134
+ ### Serve files with vanilla node.js http server
135
+
136
+ ```js
137
+ var finalhandler = require('finalhandler')
138
+ var http = require('http')
139
+ var serveStatic = require('serve-static')
140
+
141
+ // Serve up public/ftp folder
142
+ var serve = serveStatic('public/ftp', { index: ['index.html', 'index.htm'] })
143
+
144
+ // Create server
145
+ var server = http.createServer(function onRequest (req, res) {
146
+ serve(req, res, finalhandler(req, res))
147
+ })
148
+
149
+ // Listen
150
+ server.listen(3000)
151
+ ```
152
+
153
+ ### Serve all files as downloads
154
+
155
+ ```js
156
+ var contentDisposition = require('content-disposition')
157
+ var finalhandler = require('finalhandler')
158
+ var http = require('http')
159
+ var serveStatic = require('serve-static')
160
+
161
+ // Serve up public/ftp folder
162
+ var serve = serveStatic('public/ftp', {
163
+ index: false,
164
+ setHeaders: setHeaders
165
+ })
166
+
167
+ // Set header to force download
168
+ function setHeaders (res, path) {
169
+ res.setHeader('Content-Disposition', contentDisposition(path))
170
+ }
171
+
172
+ // Create server
173
+ var server = http.createServer(function onRequest (req, res) {
174
+ serve(req, res, finalhandler(req, res))
175
+ })
176
+
177
+ // Listen
178
+ server.listen(3000)
179
+ ```
180
+
181
+ ### Serving using express
182
+
183
+ #### Simple
184
+
185
+ This is a simple example of using Express.
186
+
187
+ ```js
188
+ var express = require('express')
189
+ var serveStatic = require('serve-static')
190
+
191
+ var app = express()
192
+
193
+ app.use(serveStatic('public/ftp', { index: ['default.html', 'default.htm'] }))
194
+ app.listen(3000)
195
+ ```
196
+
197
+ #### Multiple roots
198
+
199
+ This example shows a simple way to search through multiple directories.
200
+ Files are searched for in `public-optimized/` first, then `public/` second
201
+ as a fallback.
202
+
203
+ ```js
204
+ var express = require('express')
205
+ var path = require('path')
206
+ var serveStatic = require('serve-static')
207
+
208
+ var app = express()
209
+
210
+ app.use(serveStatic(path.join(__dirname, 'public-optimized')))
211
+ app.use(serveStatic(path.join(__dirname, 'public')))
212
+ app.listen(3000)
213
+ ```
214
+
215
+ #### Different settings for paths
216
+
217
+ This example shows how to set a different max age depending on the served
218
+ file type. In this example, HTML files are not cached, while everything else
219
+ is for 1 day.
220
+
221
+ ```js
222
+ var express = require('express')
223
+ var path = require('path')
224
+ var serveStatic = require('serve-static')
225
+
226
+ var app = express()
227
+
228
+ app.use(serveStatic(path.join(__dirname, 'public'), {
229
+ maxAge: '1d',
230
+ setHeaders: setCustomCacheControl
231
+ }))
232
+
233
+ app.listen(3000)
234
+
235
+ function setCustomCacheControl (res, path) {
236
+ if (serveStatic.mime.lookup(path) === 'text/html') {
237
+ // Custom Cache-Control for HTML files
238
+ res.setHeader('Cache-Control', 'public, max-age=0')
239
+ }
240
+ }
241
+ ```
242
+
243
+ ## License
244
+
245
+ [MIT](LICENSE)
246
+
247
+ [appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/serve-static/master?label=windows
248
+ [appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static
249
+ [coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/serve-static/master
250
+ [coveralls-url]: https://coveralls.io/r/expressjs/serve-static?branch=master
251
+ [github-actions-ci-image]: https://badgen.net/github/checks/expressjs/serve-static/master?label=linux
252
+ [github-actions-ci-url]: https://github.com/expressjs/serve-static/actions?query=workflow%3Aci
253
+ [node-image]: https://badgen.net/npm/node/serve-static
254
+ [node-url]: https://nodejs.org/en/download/
255
+ [npm-downloads-image]: https://badgen.net/npm/dm/serve-static
256
+ [npm-url]: https://npmjs.org/package/serve-static
257
+ [npm-version-image]: https://badgen.net/npm/v/serve-static
@@ -0,0 +1,210 @@
1
+ /*!
2
+ * serve-static
3
+ * Copyright(c) 2010 Sencha Inc.
4
+ * Copyright(c) 2011 TJ Holowaychuk
5
+ * Copyright(c) 2014-2016 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+
9
+ 'use strict'
10
+
11
+ /**
12
+ * Module dependencies.
13
+ * @private
14
+ */
15
+
16
+ var encodeUrl = require('encodeurl')
17
+ var escapeHtml = require('escape-html')
18
+ var parseUrl = require('parseurl')
19
+ var resolve = require('path').resolve
20
+ var send = require('send')
21
+ var url = require('url')
22
+
23
+ /**
24
+ * Module exports.
25
+ * @public
26
+ */
27
+
28
+ module.exports = serveStatic
29
+ module.exports.mime = send.mime
30
+
31
+ /**
32
+ * @param {string} root
33
+ * @param {object} [options]
34
+ * @return {function}
35
+ * @public
36
+ */
37
+
38
+ function serveStatic (root, options) {
39
+ if (!root) {
40
+ throw new TypeError('root path required')
41
+ }
42
+
43
+ if (typeof root !== 'string') {
44
+ throw new TypeError('root path must be a string')
45
+ }
46
+
47
+ // copy options object
48
+ var opts = Object.create(options || null)
49
+
50
+ // fall-though
51
+ var fallthrough = opts.fallthrough !== false
52
+
53
+ // default redirect
54
+ var redirect = opts.redirect !== false
55
+
56
+ // headers listener
57
+ var setHeaders = opts.setHeaders
58
+
59
+ if (setHeaders && typeof setHeaders !== 'function') {
60
+ throw new TypeError('option setHeaders must be function')
61
+ }
62
+
63
+ // setup options for send
64
+ opts.maxage = opts.maxage || opts.maxAge || 0
65
+ opts.root = resolve(root)
66
+
67
+ // construct directory listener
68
+ var onDirectory = redirect
69
+ ? createRedirectDirectoryListener()
70
+ : createNotFoundDirectoryListener()
71
+
72
+ return function serveStatic (req, res, next) {
73
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
74
+ if (fallthrough) {
75
+ return next()
76
+ }
77
+
78
+ // method not allowed
79
+ res.statusCode = 405
80
+ res.setHeader('Allow', 'GET, HEAD')
81
+ res.setHeader('Content-Length', '0')
82
+ res.end()
83
+ return
84
+ }
85
+
86
+ var forwardError = !fallthrough
87
+ var originalUrl = parseUrl.original(req)
88
+ var path = parseUrl(req).pathname
89
+
90
+ // make sure redirect occurs at mount
91
+ if (path === '/' && originalUrl.pathname.substr(-1) !== '/') {
92
+ path = ''
93
+ }
94
+
95
+ // create send stream
96
+ var stream = send(req, path, opts)
97
+
98
+ // add directory handler
99
+ stream.on('directory', onDirectory)
100
+
101
+ // add headers listener
102
+ if (setHeaders) {
103
+ stream.on('headers', setHeaders)
104
+ }
105
+
106
+ // add file listener for fallthrough
107
+ if (fallthrough) {
108
+ stream.on('file', function onFile () {
109
+ // once file is determined, always forward error
110
+ forwardError = true
111
+ })
112
+ }
113
+
114
+ // forward errors
115
+ stream.on('error', function error (err) {
116
+ if (forwardError || !(err.statusCode < 500)) {
117
+ next(err)
118
+ return
119
+ }
120
+
121
+ next()
122
+ })
123
+
124
+ // pipe
125
+ stream.pipe(res)
126
+ }
127
+ }
128
+
129
+ /**
130
+ * Collapse all leading slashes into a single slash
131
+ * @private
132
+ */
133
+ function collapseLeadingSlashes (str) {
134
+ for (var i = 0; i < str.length; i++) {
135
+ if (str.charCodeAt(i) !== 0x2f /* / */) {
136
+ break
137
+ }
138
+ }
139
+
140
+ return i > 1
141
+ ? '/' + str.substr(i)
142
+ : str
143
+ }
144
+
145
+ /**
146
+ * Create a minimal HTML document.
147
+ *
148
+ * @param {string} title
149
+ * @param {string} body
150
+ * @private
151
+ */
152
+
153
+ function createHtmlDocument (title, body) {
154
+ return '<!DOCTYPE html>\n' +
155
+ '<html lang="en">\n' +
156
+ '<head>\n' +
157
+ '<meta charset="utf-8">\n' +
158
+ '<title>' + title + '</title>\n' +
159
+ '</head>\n' +
160
+ '<body>\n' +
161
+ '<pre>' + body + '</pre>\n' +
162
+ '</body>\n' +
163
+ '</html>\n'
164
+ }
165
+
166
+ /**
167
+ * Create a directory listener that just 404s.
168
+ * @private
169
+ */
170
+
171
+ function createNotFoundDirectoryListener () {
172
+ return function notFound () {
173
+ this.error(404)
174
+ }
175
+ }
176
+
177
+ /**
178
+ * Create a directory listener that performs a redirect.
179
+ * @private
180
+ */
181
+
182
+ function createRedirectDirectoryListener () {
183
+ return function redirect (res) {
184
+ if (this.hasTrailingSlash()) {
185
+ this.error(404)
186
+ return
187
+ }
188
+
189
+ // get original URL
190
+ var originalUrl = parseUrl.original(this.req)
191
+
192
+ // append trailing slash
193
+ originalUrl.path = null
194
+ originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/')
195
+
196
+ // reformat the URL
197
+ var loc = encodeUrl(url.format(originalUrl))
198
+ var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
199
+ escapeHtml(loc) + '</a>')
200
+
201
+ // send redirect response
202
+ res.statusCode = 301
203
+ res.setHeader('Content-Type', 'text/html; charset=UTF-8')
204
+ res.setHeader('Content-Length', Buffer.byteLength(doc))
205
+ res.setHeader('Content-Security-Policy', "default-src 'none'")
206
+ res.setHeader('X-Content-Type-Options', 'nosniff')
207
+ res.setHeader('Location', loc)
208
+ res.end(doc)
209
+ }
210
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "serve-static",
3
+ "description": "Serve static files",
4
+ "version": "1.14.2",
5
+ "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
6
+ "license": "MIT",
7
+ "repository": "expressjs/serve-static",
8
+ "dependencies": {
9
+ "encodeurl": "~1.0.2",
10
+ "escape-html": "~1.0.3",
11
+ "parseurl": "~1.3.3",
12
+ "send": "0.17.2"
13
+ },
14
+ "devDependencies": {
15
+ "eslint": "7.32.0",
16
+ "eslint-config-standard": "14.1.1",
17
+ "eslint-plugin-import": "2.25.3",
18
+ "eslint-plugin-markdown": "2.2.1",
19
+ "eslint-plugin-node": "11.1.0",
20
+ "eslint-plugin-promise": "5.2.0",
21
+ "eslint-plugin-standard": "4.1.0",
22
+ "mocha": "9.1.3",
23
+ "nyc": "15.1.0",
24
+ "safe-buffer": "5.2.1",
25
+ "supertest": "6.1.6"
26
+ },
27
+ "files": [
28
+ "LICENSE",
29
+ "HISTORY.md",
30
+ "index.js"
31
+ ],
32
+ "engines": {
33
+ "node": ">= 0.8.0"
34
+ },
35
+ "scripts": {
36
+ "lint": "eslint .",
37
+ "test": "mocha --reporter spec --bail --check-leaks test/",
38
+ "test-ci": "nyc --reporter=lcov --reporter=text npm test",
39
+ "test-cov": "nyc --reporter=html --reporter=text npm test",
40
+ "version": "node scripts/version-history.js && git add HISTORY.md"
41
+ }
42
+ }
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2015, Wes Todd
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any
4
+ purpose with or without fee is hereby granted, provided that the above
5
+ copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,31 @@
1
+ # Polyfill for `Object.setPrototypeOf`
2
+
3
+ [![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof)
4
+ [![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof)
5
+ [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard)
6
+
7
+ A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8.
8
+
9
+ ## Usage:
10
+
11
+ ```
12
+ $ npm install --save setprototypeof
13
+ ```
14
+
15
+ ```javascript
16
+ var setPrototypeOf = require('setprototypeof')
17
+
18
+ var obj = {}
19
+ setPrototypeOf(obj, {
20
+ foo: function () {
21
+ return 'bar'
22
+ }
23
+ })
24
+ obj.foo() // bar
25
+ ```
26
+
27
+ TypeScript is also supported:
28
+
29
+ ```typescript
30
+ import setPrototypeOf from 'setprototypeof'
31
+ ```
@@ -0,0 +1,2 @@
1
+ declare function setPrototypeOf(o: any, proto: object | null): any;
2
+ export = setPrototypeOf;
@@ -0,0 +1,17 @@
1
+ 'use strict'
2
+ /* eslint no-proto: 0 */
3
+ module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)
4
+
5
+ function setProtoOf (obj, proto) {
6
+ obj.__proto__ = proto
7
+ return obj
8
+ }
9
+
10
+ function mixinProperties (obj, proto) {
11
+ for (var prop in proto) {
12
+ if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
13
+ obj[prop] = proto[prop]
14
+ }
15
+ }
16
+ return obj
17
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "setprototypeof",
3
+ "version": "1.2.0",
4
+ "description": "A small polyfill for Object.setprototypeof",
5
+ "main": "index.js",
6
+ "typings": "index.d.ts",
7
+ "scripts": {
8
+ "test": "standard && mocha",
9
+ "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11",
10
+ "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t",
11
+ "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion",
12
+ "node4": "NODE_VER=4 npm run testversion",
13
+ "node6": "NODE_VER=6 npm run testversion",
14
+ "node9": "NODE_VER=9 npm run testversion",
15
+ "node11": "NODE_VER=11 npm run testversion",
16
+ "prepublishOnly": "npm t",
17
+ "postpublish": "git push origin && git push origin --tags"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/wesleytodd/setprototypeof.git"
22
+ },
23
+ "keywords": [
24
+ "polyfill",
25
+ "object",
26
+ "setprototypeof"
27
+ ],
28
+ "author": "Wes Todd",
29
+ "license": "ISC",
30
+ "bugs": {
31
+ "url": "https://github.com/wesleytodd/setprototypeof/issues"
32
+ },
33
+ "homepage": "https://github.com/wesleytodd/setprototypeof",
34
+ "devDependencies": {
35
+ "mocha": "^6.1.4",
36
+ "standard": "^13.0.2"
37
+ }
38
+ }
@@ -0,0 +1,24 @@
1
+ 'use strict'
2
+ /* eslint-env mocha */
3
+ /* eslint no-proto: 0 */
4
+ var assert = require('assert')
5
+ var setPrototypeOf = require('..')
6
+
7
+ describe('setProtoOf(obj, proto)', function () {
8
+ it('should merge objects', function () {
9
+ var obj = { a: 1, b: 2 }
10
+ var proto = { b: 3, c: 4 }
11
+ var mergeObj = setPrototypeOf(obj, proto)
12
+
13
+ if (Object.getPrototypeOf) {
14
+ assert.strictEqual(Object.getPrototypeOf(obj), proto)
15
+ } else if ({ __proto__: [] } instanceof Array) {
16
+ assert.strictEqual(obj.__proto__, proto)
17
+ } else {
18
+ assert.strictEqual(obj.a, 1)
19
+ assert.strictEqual(obj.b, 2)
20
+ assert.strictEqual(obj.c, 4)
21
+ }
22
+ assert.strictEqual(mergeObj, obj)
23
+ })
24
+ })