es6-crawler-detect 3.2.0 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/.babelrc +1 -1
  2. package/.mocharc.json +5 -0
  3. package/README.md +1 -0
  4. package/dist/main.bundle.js +1 -1
  5. package/eslint.config.mjs +62 -0
  6. package/example/node/package.json +1 -1
  7. package/example/node/server.js +38 -32
  8. package/example/node/yarn.lock +222 -99
  9. package/package.json +30 -25
  10. package/src/index.js +20 -14
  11. package/src/index.ts +18 -0
  12. package/src/lib/crawler/crawlers.js +9 -12
  13. package/src/lib/crawler/crawlers.ts +1397 -0
  14. package/src/lib/crawler/exclusions.js +7 -11
  15. package/src/lib/crawler/exclusions.ts +56 -0
  16. package/src/lib/crawler/headers.js +6 -10
  17. package/src/lib/crawler/headers.ts +18 -0
  18. package/src/lib/crawler/provider.js +1 -10
  19. package/src/lib/crawler/provider.ts +3 -0
  20. package/src/lib/crawler.js +61 -98
  21. package/src/lib/crawler.ts +128 -0
  22. package/src/types.js +2 -0
  23. package/src/types.ts +15 -0
  24. package/test/lib/crawler.spec.js +149 -0
  25. package/test/lib/crawler.spec.ts +116 -0
  26. package/test/lib/database/crawlers.txt +3651 -0
  27. package/test/lib/database/devices.txt +165636 -0
  28. package/tsconfig.json +16 -0
  29. package/webpack.common.js +20 -20
  30. package/webpack.dev.js +7 -7
  31. package/webpack.prod.js +14 -14
  32. package/.eslintignore +0 -6
  33. package/.eslintrc.json +0 -30
  34. package/example/node/node_modules/.bin/mime +0 -15
  35. package/example/node/node_modules/.bin/mime.cmd +0 -7
  36. package/example/node/node_modules/.yarn-integrity +0 -67
  37. package/example/node/node_modules/accepts/HISTORY.md +0 -236
  38. package/example/node/node_modules/accepts/LICENSE +0 -23
  39. package/example/node/node_modules/accepts/README.md +0 -142
  40. package/example/node/node_modules/accepts/index.js +0 -238
  41. package/example/node/node_modules/accepts/package.json +0 -47
  42. package/example/node/node_modules/array-flatten/LICENSE +0 -21
  43. package/example/node/node_modules/array-flatten/README.md +0 -43
  44. package/example/node/node_modules/array-flatten/array-flatten.js +0 -64
  45. package/example/node/node_modules/array-flatten/package.json +0 -39
  46. package/example/node/node_modules/body-parser/HISTORY.md +0 -624
  47. package/example/node/node_modules/body-parser/LICENSE +0 -23
  48. package/example/node/node_modules/body-parser/README.md +0 -456
  49. package/example/node/node_modules/body-parser/index.js +0 -157
  50. package/example/node/node_modules/body-parser/lib/read.js +0 -181
  51. package/example/node/node_modules/body-parser/lib/types/json.js +0 -230
  52. package/example/node/node_modules/body-parser/lib/types/raw.js +0 -101
  53. package/example/node/node_modules/body-parser/lib/types/text.js +0 -121
  54. package/example/node/node_modules/body-parser/lib/types/urlencoded.js +0 -284
  55. package/example/node/node_modules/body-parser/package.json +0 -52
  56. package/example/node/node_modules/bytes/History.md +0 -92
  57. package/example/node/node_modules/bytes/LICENSE +0 -23
  58. package/example/node/node_modules/bytes/Readme.md +0 -152
  59. package/example/node/node_modules/bytes/index.js +0 -166
  60. package/example/node/node_modules/bytes/package.json +0 -42
  61. package/example/node/node_modules/content-disposition/HISTORY.md +0 -60
  62. package/example/node/node_modules/content-disposition/LICENSE +0 -22
  63. package/example/node/node_modules/content-disposition/README.md +0 -142
  64. package/example/node/node_modules/content-disposition/index.js +0 -458
  65. package/example/node/node_modules/content-disposition/package.json +0 -44
  66. package/example/node/node_modules/content-type/HISTORY.md +0 -24
  67. package/example/node/node_modules/content-type/LICENSE +0 -22
  68. package/example/node/node_modules/content-type/README.md +0 -92
  69. package/example/node/node_modules/content-type/index.js +0 -222
  70. package/example/node/node_modules/content-type/package.json +0 -40
  71. package/example/node/node_modules/cookie/HISTORY.md +0 -128
  72. package/example/node/node_modules/cookie/LICENSE +0 -24
  73. package/example/node/node_modules/cookie/README.md +0 -257
  74. package/example/node/node_modules/cookie/index.js +0 -202
  75. package/example/node/node_modules/cookie/package.json +0 -40
  76. package/example/node/node_modules/cookie-signature/History.md +0 -38
  77. package/example/node/node_modules/cookie-signature/Readme.md +0 -42
  78. package/example/node/node_modules/cookie-signature/index.js +0 -51
  79. package/example/node/node_modules/cookie-signature/package.json +0 -18
  80. package/example/node/node_modules/debug/.coveralls.yml +0 -1
  81. package/example/node/node_modules/debug/.eslintrc +0 -11
  82. package/example/node/node_modules/debug/.travis.yml +0 -14
  83. package/example/node/node_modules/debug/CHANGELOG.md +0 -362
  84. package/example/node/node_modules/debug/LICENSE +0 -19
  85. package/example/node/node_modules/debug/Makefile +0 -50
  86. package/example/node/node_modules/debug/README.md +0 -312
  87. package/example/node/node_modules/debug/component.json +0 -19
  88. package/example/node/node_modules/debug/karma.conf.js +0 -70
  89. package/example/node/node_modules/debug/node.js +0 -1
  90. package/example/node/node_modules/debug/package.json +0 -49
  91. package/example/node/node_modules/debug/src/browser.js +0 -185
  92. package/example/node/node_modules/debug/src/debug.js +0 -202
  93. package/example/node/node_modules/debug/src/index.js +0 -10
  94. package/example/node/node_modules/debug/src/inspector-log.js +0 -15
  95. package/example/node/node_modules/debug/src/node.js +0 -248
  96. package/example/node/node_modules/depd/History.md +0 -96
  97. package/example/node/node_modules/depd/LICENSE +0 -22
  98. package/example/node/node_modules/depd/Readme.md +0 -280
  99. package/example/node/node_modules/depd/index.js +0 -522
  100. package/example/node/node_modules/depd/lib/browser/index.js +0 -77
  101. package/example/node/node_modules/depd/lib/compat/callsite-tostring.js +0 -103
  102. package/example/node/node_modules/depd/lib/compat/event-listener-count.js +0 -22
  103. package/example/node/node_modules/depd/lib/compat/index.js +0 -79
  104. package/example/node/node_modules/depd/package.json +0 -41
  105. package/example/node/node_modules/destroy/LICENSE +0 -22
  106. package/example/node/node_modules/destroy/README.md +0 -60
  107. package/example/node/node_modules/destroy/index.js +0 -75
  108. package/example/node/node_modules/destroy/package.json +0 -37
  109. package/example/node/node_modules/ee-first/LICENSE +0 -22
  110. package/example/node/node_modules/ee-first/README.md +0 -80
  111. package/example/node/node_modules/ee-first/index.js +0 -95
  112. package/example/node/node_modules/ee-first/package.json +0 -29
  113. package/example/node/node_modules/encodeurl/HISTORY.md +0 -14
  114. package/example/node/node_modules/encodeurl/LICENSE +0 -22
  115. package/example/node/node_modules/encodeurl/README.md +0 -128
  116. package/example/node/node_modules/encodeurl/index.js +0 -60
  117. package/example/node/node_modules/encodeurl/package.json +0 -40
  118. package/example/node/node_modules/escape-html/LICENSE +0 -24
  119. package/example/node/node_modules/escape-html/Readme.md +0 -43
  120. package/example/node/node_modules/escape-html/index.js +0 -78
  121. package/example/node/node_modules/escape-html/package.json +0 -24
  122. package/example/node/node_modules/etag/HISTORY.md +0 -83
  123. package/example/node/node_modules/etag/LICENSE +0 -22
  124. package/example/node/node_modules/etag/README.md +0 -159
  125. package/example/node/node_modules/etag/index.js +0 -131
  126. package/example/node/node_modules/etag/package.json +0 -47
  127. package/example/node/node_modules/express/History.md +0 -3510
  128. package/example/node/node_modules/express/LICENSE +0 -24
  129. package/example/node/node_modules/express/Readme.md +0 -158
  130. package/example/node/node_modules/express/index.js +0 -11
  131. package/example/node/node_modules/express/lib/application.js +0 -644
  132. package/example/node/node_modules/express/lib/express.js +0 -116
  133. package/example/node/node_modules/express/lib/middleware/init.js +0 -43
  134. package/example/node/node_modules/express/lib/middleware/query.js +0 -47
  135. package/example/node/node_modules/express/lib/request.js +0 -525
  136. package/example/node/node_modules/express/lib/response.js +0 -1147
  137. package/example/node/node_modules/express/lib/router/index.js +0 -668
  138. package/example/node/node_modules/express/lib/router/layer.js +0 -181
  139. package/example/node/node_modules/express/lib/router/route.js +0 -216
  140. package/example/node/node_modules/express/lib/utils.js +0 -302
  141. package/example/node/node_modules/express/lib/view.js +0 -182
  142. package/example/node/node_modules/express/package.json +0 -99
  143. package/example/node/node_modules/finalhandler/HISTORY.md +0 -187
  144. package/example/node/node_modules/finalhandler/LICENSE +0 -22
  145. package/example/node/node_modules/finalhandler/README.md +0 -148
  146. package/example/node/node_modules/finalhandler/index.js +0 -331
  147. package/example/node/node_modules/finalhandler/package.json +0 -45
  148. package/example/node/node_modules/forwarded/HISTORY.md +0 -21
  149. package/example/node/node_modules/forwarded/LICENSE +0 -22
  150. package/example/node/node_modules/forwarded/README.md +0 -57
  151. package/example/node/node_modules/forwarded/index.js +0 -90
  152. package/example/node/node_modules/forwarded/package.json +0 -45
  153. package/example/node/node_modules/fresh/HISTORY.md +0 -70
  154. package/example/node/node_modules/fresh/LICENSE +0 -23
  155. package/example/node/node_modules/fresh/README.md +0 -119
  156. package/example/node/node_modules/fresh/index.js +0 -137
  157. package/example/node/node_modules/fresh/package.json +0 -46
  158. package/example/node/node_modules/http-errors/HISTORY.md +0 -165
  159. package/example/node/node_modules/http-errors/LICENSE +0 -23
  160. package/example/node/node_modules/http-errors/README.md +0 -169
  161. package/example/node/node_modules/http-errors/index.js +0 -299
  162. package/example/node/node_modules/http-errors/package.json +0 -49
  163. package/example/node/node_modules/iconv-lite/Changelog.md +0 -162
  164. package/example/node/node_modules/iconv-lite/LICENSE +0 -21
  165. package/example/node/node_modules/iconv-lite/README.md +0 -156
  166. package/example/node/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  167. package/example/node/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  168. package/example/node/node_modules/iconv-lite/encodings/index.js +0 -22
  169. package/example/node/node_modules/iconv-lite/encodings/internal.js +0 -188
  170. package/example/node/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  171. package/example/node/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  172. package/example/node/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  173. package/example/node/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  174. package/example/node/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  175. package/example/node/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  176. package/example/node/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  177. package/example/node/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  178. package/example/node/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  179. package/example/node/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  180. package/example/node/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  181. package/example/node/node_modules/iconv-lite/encodings/utf16.js +0 -177
  182. package/example/node/node_modules/iconv-lite/encodings/utf7.js +0 -290
  183. package/example/node/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  184. package/example/node/node_modules/iconv-lite/lib/extend-node.js +0 -217
  185. package/example/node/node_modules/iconv-lite/lib/index.d.ts +0 -24
  186. package/example/node/node_modules/iconv-lite/lib/index.js +0 -153
  187. package/example/node/node_modules/iconv-lite/lib/streams.js +0 -121
  188. package/example/node/node_modules/iconv-lite/package.json +0 -46
  189. package/example/node/node_modules/inherits/LICENSE +0 -16
  190. package/example/node/node_modules/inherits/README.md +0 -42
  191. package/example/node/node_modules/inherits/inherits.js +0 -9
  192. package/example/node/node_modules/inherits/inherits_browser.js +0 -27
  193. package/example/node/node_modules/inherits/package.json +0 -29
  194. package/example/node/node_modules/ipaddr.js/LICENSE +0 -19
  195. package/example/node/node_modules/ipaddr.js/README.md +0 -233
  196. package/example/node/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  197. package/example/node/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  198. package/example/node/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  199. package/example/node/node_modules/ipaddr.js/package.json +0 -35
  200. package/example/node/node_modules/media-typer/HISTORY.md +0 -22
  201. package/example/node/node_modules/media-typer/LICENSE +0 -22
  202. package/example/node/node_modules/media-typer/README.md +0 -81
  203. package/example/node/node_modules/media-typer/index.js +0 -270
  204. package/example/node/node_modules/media-typer/package.json +0 -26
  205. package/example/node/node_modules/merge-descriptors/HISTORY.md +0 -21
  206. package/example/node/node_modules/merge-descriptors/LICENSE +0 -23
  207. package/example/node/node_modules/merge-descriptors/README.md +0 -48
  208. package/example/node/node_modules/merge-descriptors/index.js +0 -60
  209. package/example/node/node_modules/merge-descriptors/package.json +0 -32
  210. package/example/node/node_modules/methods/HISTORY.md +0 -29
  211. package/example/node/node_modules/methods/LICENSE +0 -24
  212. package/example/node/node_modules/methods/README.md +0 -51
  213. package/example/node/node_modules/methods/index.js +0 -69
  214. package/example/node/node_modules/methods/package.json +0 -36
  215. package/example/node/node_modules/mime/CHANGELOG.md +0 -164
  216. package/example/node/node_modules/mime/LICENSE +0 -21
  217. package/example/node/node_modules/mime/README.md +0 -90
  218. package/example/node/node_modules/mime/cli.js +0 -8
  219. package/example/node/node_modules/mime/mime.js +0 -108
  220. package/example/node/node_modules/mime/package.json +0 -44
  221. package/example/node/node_modules/mime/src/build.js +0 -53
  222. package/example/node/node_modules/mime/src/test.js +0 -60
  223. package/example/node/node_modules/mime/types.json +0 -1
  224. package/example/node/node_modules/mime-db/HISTORY.md +0 -499
  225. package/example/node/node_modules/mime-db/LICENSE +0 -22
  226. package/example/node/node_modules/mime-db/README.md +0 -100
  227. package/example/node/node_modules/mime-db/db.json +0 -8471
  228. package/example/node/node_modules/mime-db/index.js +0 -11
  229. package/example/node/node_modules/mime-db/package.json +0 -59
  230. package/example/node/node_modules/mime-types/HISTORY.md +0 -388
  231. package/example/node/node_modules/mime-types/LICENSE +0 -23
  232. package/example/node/node_modules/mime-types/README.md +0 -113
  233. package/example/node/node_modules/mime-types/index.js +0 -188
  234. package/example/node/node_modules/mime-types/package.json +0 -44
  235. package/example/node/node_modules/ms/index.js +0 -152
  236. package/example/node/node_modules/ms/license.md +0 -21
  237. package/example/node/node_modules/ms/package.json +0 -37
  238. package/example/node/node_modules/ms/readme.md +0 -51
  239. package/example/node/node_modules/negotiator/HISTORY.md +0 -103
  240. package/example/node/node_modules/negotiator/LICENSE +0 -24
  241. package/example/node/node_modules/negotiator/README.md +0 -203
  242. package/example/node/node_modules/negotiator/index.js +0 -124
  243. package/example/node/node_modules/negotiator/lib/charset.js +0 -169
  244. package/example/node/node_modules/negotiator/lib/encoding.js +0 -184
  245. package/example/node/node_modules/negotiator/lib/language.js +0 -179
  246. package/example/node/node_modules/negotiator/lib/mediaType.js +0 -294
  247. package/example/node/node_modules/negotiator/package.json +0 -42
  248. package/example/node/node_modules/on-finished/HISTORY.md +0 -88
  249. package/example/node/node_modules/on-finished/LICENSE +0 -23
  250. package/example/node/node_modules/on-finished/README.md +0 -154
  251. package/example/node/node_modules/on-finished/index.js +0 -196
  252. package/example/node/node_modules/on-finished/package.json +0 -31
  253. package/example/node/node_modules/parseurl/HISTORY.md +0 -58
  254. package/example/node/node_modules/parseurl/LICENSE +0 -24
  255. package/example/node/node_modules/parseurl/README.md +0 -133
  256. package/example/node/node_modules/parseurl/index.js +0 -158
  257. package/example/node/node_modules/parseurl/package.json +0 -40
  258. package/example/node/node_modules/path-to-regexp/History.md +0 -36
  259. package/example/node/node_modules/path-to-regexp/LICENSE +0 -21
  260. package/example/node/node_modules/path-to-regexp/Readme.md +0 -35
  261. package/example/node/node_modules/path-to-regexp/index.js +0 -129
  262. package/example/node/node_modules/path-to-regexp/package.json +0 -30
  263. package/example/node/node_modules/proxy-addr/HISTORY.md +0 -161
  264. package/example/node/node_modules/proxy-addr/LICENSE +0 -22
  265. package/example/node/node_modules/proxy-addr/README.md +0 -139
  266. package/example/node/node_modules/proxy-addr/index.js +0 -327
  267. package/example/node/node_modules/proxy-addr/package.json +0 -47
  268. package/example/node/node_modules/qs/.editorconfig +0 -39
  269. package/example/node/node_modules/qs/.eslintignore +0 -2
  270. package/example/node/node_modules/qs/.eslintrc +0 -35
  271. package/example/node/node_modules/qs/.github/FUNDING.yml +0 -12
  272. package/example/node/node_modules/qs/.nycrc +0 -13
  273. package/example/node/node_modules/qs/CHANGELOG.md +0 -359
  274. package/example/node/node_modules/qs/LICENSE.md +0 -29
  275. package/example/node/node_modules/qs/README.md +0 -604
  276. package/example/node/node_modules/qs/dist/qs.js +0 -832
  277. package/example/node/node_modules/qs/lib/formats.js +0 -23
  278. package/example/node/node_modules/qs/lib/index.js +0 -11
  279. package/example/node/node_modules/qs/lib/parse.js +0 -257
  280. package/example/node/node_modules/qs/lib/stringify.js +0 -278
  281. package/example/node/node_modules/qs/lib/utils.js +0 -251
  282. package/example/node/node_modules/qs/package.json +0 -69
  283. package/example/node/node_modules/qs/test/parse.js +0 -772
  284. package/example/node/node_modules/qs/test/stringify.js +0 -793
  285. package/example/node/node_modules/qs/test/utils.js +0 -136
  286. package/example/node/node_modules/range-parser/HISTORY.md +0 -56
  287. package/example/node/node_modules/range-parser/LICENSE +0 -23
  288. package/example/node/node_modules/range-parser/README.md +0 -84
  289. package/example/node/node_modules/range-parser/index.js +0 -162
  290. package/example/node/node_modules/range-parser/package.json +0 -44
  291. package/example/node/node_modules/raw-body/HISTORY.md +0 -284
  292. package/example/node/node_modules/raw-body/LICENSE +0 -22
  293. package/example/node/node_modules/raw-body/README.md +0 -217
  294. package/example/node/node_modules/raw-body/index.d.ts +0 -87
  295. package/example/node/node_modules/raw-body/index.js +0 -286
  296. package/example/node/node_modules/raw-body/package.json +0 -48
  297. package/example/node/node_modules/safe-buffer/LICENSE +0 -21
  298. package/example/node/node_modules/safe-buffer/README.md +0 -584
  299. package/example/node/node_modules/safe-buffer/index.d.ts +0 -187
  300. package/example/node/node_modules/safe-buffer/index.js +0 -65
  301. package/example/node/node_modules/safe-buffer/package.json +0 -51
  302. package/example/node/node_modules/safer-buffer/LICENSE +0 -21
  303. package/example/node/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  304. package/example/node/node_modules/safer-buffer/Readme.md +0 -156
  305. package/example/node/node_modules/safer-buffer/dangerous.js +0 -58
  306. package/example/node/node_modules/safer-buffer/package.json +0 -34
  307. package/example/node/node_modules/safer-buffer/safer.js +0 -77
  308. package/example/node/node_modules/safer-buffer/tests.js +0 -406
  309. package/example/node/node_modules/send/HISTORY.md +0 -506
  310. package/example/node/node_modules/send/LICENSE +0 -23
  311. package/example/node/node_modules/send/README.md +0 -327
  312. package/example/node/node_modules/send/index.js +0 -1133
  313. package/example/node/node_modules/send/node_modules/.bin/mime +0 -15
  314. package/example/node/node_modules/send/node_modules/.bin/mime.cmd +0 -7
  315. package/example/node/node_modules/send/node_modules/ms/index.js +0 -162
  316. package/example/node/node_modules/send/node_modules/ms/license.md +0 -21
  317. package/example/node/node_modules/send/node_modules/ms/package.json +0 -38
  318. package/example/node/node_modules/send/node_modules/ms/readme.md +0 -59
  319. package/example/node/node_modules/send/package.json +0 -61
  320. package/example/node/node_modules/serve-static/HISTORY.md +0 -459
  321. package/example/node/node_modules/serve-static/LICENSE +0 -25
  322. package/example/node/node_modules/serve-static/README.md +0 -257
  323. package/example/node/node_modules/serve-static/index.js +0 -210
  324. package/example/node/node_modules/serve-static/package.json +0 -42
  325. package/example/node/node_modules/setprototypeof/LICENSE +0 -13
  326. package/example/node/node_modules/setprototypeof/README.md +0 -31
  327. package/example/node/node_modules/setprototypeof/index.d.ts +0 -2
  328. package/example/node/node_modules/setprototypeof/index.js +0 -17
  329. package/example/node/node_modules/setprototypeof/package.json +0 -38
  330. package/example/node/node_modules/setprototypeof/test/index.js +0 -24
  331. package/example/node/node_modules/statuses/HISTORY.md +0 -65
  332. package/example/node/node_modules/statuses/LICENSE +0 -23
  333. package/example/node/node_modules/statuses/README.md +0 -127
  334. package/example/node/node_modules/statuses/codes.json +0 -66
  335. package/example/node/node_modules/statuses/index.js +0 -113
  336. package/example/node/node_modules/statuses/package.json +0 -48
  337. package/example/node/node_modules/toidentifier/HISTORY.md +0 -9
  338. package/example/node/node_modules/toidentifier/LICENSE +0 -21
  339. package/example/node/node_modules/toidentifier/README.md +0 -61
  340. package/example/node/node_modules/toidentifier/index.js +0 -32
  341. package/example/node/node_modules/toidentifier/package.json +0 -38
  342. package/example/node/node_modules/type-is/HISTORY.md +0 -259
  343. package/example/node/node_modules/type-is/LICENSE +0 -23
  344. package/example/node/node_modules/type-is/README.md +0 -170
  345. package/example/node/node_modules/type-is/index.js +0 -266
  346. package/example/node/node_modules/type-is/package.json +0 -45
  347. package/example/node/node_modules/unpipe/HISTORY.md +0 -4
  348. package/example/node/node_modules/unpipe/LICENSE +0 -22
  349. package/example/node/node_modules/unpipe/README.md +0 -43
  350. package/example/node/node_modules/unpipe/index.js +0 -69
  351. package/example/node/node_modules/unpipe/package.json +0 -27
  352. package/example/node/node_modules/utils-merge/LICENSE +0 -20
  353. package/example/node/node_modules/utils-merge/README.md +0 -34
  354. package/example/node/node_modules/utils-merge/index.js +0 -23
  355. package/example/node/node_modules/utils-merge/package.json +0 -40
  356. package/example/node/node_modules/vary/HISTORY.md +0 -39
  357. package/example/node/node_modules/vary/LICENSE +0 -22
  358. package/example/node/node_modules/vary/README.md +0 -101
  359. package/example/node/node_modules/vary/index.js +0 -149
  360. package/example/node/node_modules/vary/package.json +0 -43
  361. package/test/lib/crawler.test.js +0 -52
@@ -1,668 +0,0 @@
1
- /*!
2
- * express
3
- * Copyright(c) 2009-2013 TJ Holowaychuk
4
- * Copyright(c) 2013 Roman Shtylman
5
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
6
- * MIT Licensed
7
- */
8
-
9
- 'use strict';
10
-
11
- /**
12
- * Module dependencies.
13
- * @private
14
- */
15
-
16
- var Route = require('./route');
17
- var Layer = require('./layer');
18
- var methods = require('methods');
19
- var mixin = require('utils-merge');
20
- var debug = require('debug')('express:router');
21
- var deprecate = require('depd')('express');
22
- var flatten = require('array-flatten');
23
- var parseUrl = require('parseurl');
24
- var setPrototypeOf = require('setprototypeof')
25
-
26
- /**
27
- * Module variables.
28
- * @private
29
- */
30
-
31
- var objectRegExp = /^\[object (\S+)\]$/;
32
- var slice = Array.prototype.slice;
33
- var toString = Object.prototype.toString;
34
-
35
- /**
36
- * Initialize a new `Router` with the given `options`.
37
- *
38
- * @param {Object} [options]
39
- * @return {Router} which is an callable function
40
- * @public
41
- */
42
-
43
- var proto = module.exports = function(options) {
44
- var opts = options || {};
45
-
46
- function router(req, res, next) {
47
- router.handle(req, res, next);
48
- }
49
-
50
- // mixin Router class functions
51
- setPrototypeOf(router, proto)
52
-
53
- router.params = {};
54
- router._params = [];
55
- router.caseSensitive = opts.caseSensitive;
56
- router.mergeParams = opts.mergeParams;
57
- router.strict = opts.strict;
58
- router.stack = [];
59
-
60
- return router;
61
- };
62
-
63
- /**
64
- * Map the given param placeholder `name`(s) to the given callback.
65
- *
66
- * Parameter mapping is used to provide pre-conditions to routes
67
- * which use normalized placeholders. For example a _:user_id_ parameter
68
- * could automatically load a user's information from the database without
69
- * any additional code,
70
- *
71
- * The callback uses the same signature as middleware, the only difference
72
- * being that the value of the placeholder is passed, in this case the _id_
73
- * of the user. Once the `next()` function is invoked, just like middleware
74
- * it will continue on to execute the route, or subsequent parameter functions.
75
- *
76
- * Just like in middleware, you must either respond to the request or call next
77
- * to avoid stalling the request.
78
- *
79
- * app.param('user_id', function(req, res, next, id){
80
- * User.find(id, function(err, user){
81
- * if (err) {
82
- * return next(err);
83
- * } else if (!user) {
84
- * return next(new Error('failed to load user'));
85
- * }
86
- * req.user = user;
87
- * next();
88
- * });
89
- * });
90
- *
91
- * @param {String} name
92
- * @param {Function} fn
93
- * @return {app} for chaining
94
- * @public
95
- */
96
-
97
- proto.param = function param(name, fn) {
98
- // param logic
99
- if (typeof name === 'function') {
100
- deprecate('router.param(fn): Refactor to use path params');
101
- this._params.push(name);
102
- return;
103
- }
104
-
105
- // apply param functions
106
- var params = this._params;
107
- var len = params.length;
108
- var ret;
109
-
110
- if (name[0] === ':') {
111
- deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.substr(1)) + ', fn) instead');
112
- name = name.substr(1);
113
- }
114
-
115
- for (var i = 0; i < len; ++i) {
116
- if (ret = params[i](name, fn)) {
117
- fn = ret;
118
- }
119
- }
120
-
121
- // ensure we end up with a
122
- // middleware function
123
- if ('function' !== typeof fn) {
124
- throw new Error('invalid param() call for ' + name + ', got ' + fn);
125
- }
126
-
127
- (this.params[name] = this.params[name] || []).push(fn);
128
- return this;
129
- };
130
-
131
- /**
132
- * Dispatch a req, res into the router.
133
- * @private
134
- */
135
-
136
- proto.handle = function handle(req, res, out) {
137
- var self = this;
138
-
139
- debug('dispatching %s %s', req.method, req.url);
140
-
141
- var idx = 0;
142
- var protohost = getProtohost(req.url) || ''
143
- var removed = '';
144
- var slashAdded = false;
145
- var paramcalled = {};
146
-
147
- // store options for OPTIONS request
148
- // only used if OPTIONS request
149
- var options = [];
150
-
151
- // middleware and routes
152
- var stack = self.stack;
153
-
154
- // manage inter-router variables
155
- var parentParams = req.params;
156
- var parentUrl = req.baseUrl || '';
157
- var done = restore(out, req, 'baseUrl', 'next', 'params');
158
-
159
- // setup next layer
160
- req.next = next;
161
-
162
- // for options requests, respond with a default if nothing else responds
163
- if (req.method === 'OPTIONS') {
164
- done = wrap(done, function(old, err) {
165
- if (err || options.length === 0) return old(err);
166
- sendOptionsResponse(res, options, old);
167
- });
168
- }
169
-
170
- // setup basic req values
171
- req.baseUrl = parentUrl;
172
- req.originalUrl = req.originalUrl || req.url;
173
-
174
- next();
175
-
176
- function next(err) {
177
- var layerError = err === 'route'
178
- ? null
179
- : err;
180
-
181
- // remove added slash
182
- if (slashAdded) {
183
- req.url = req.url.substr(1);
184
- slashAdded = false;
185
- }
186
-
187
- // restore altered req.url
188
- if (removed.length !== 0) {
189
- req.baseUrl = parentUrl;
190
- req.url = protohost + removed + req.url.substr(protohost.length);
191
- removed = '';
192
- }
193
-
194
- // signal to exit router
195
- if (layerError === 'router') {
196
- setImmediate(done, null)
197
- return
198
- }
199
-
200
- // no more matching layers
201
- if (idx >= stack.length) {
202
- setImmediate(done, layerError);
203
- return;
204
- }
205
-
206
- // get pathname of request
207
- var path = getPathname(req);
208
-
209
- if (path == null) {
210
- return done(layerError);
211
- }
212
-
213
- // find next matching layer
214
- var layer;
215
- var match;
216
- var route;
217
-
218
- while (match !== true && idx < stack.length) {
219
- layer = stack[idx++];
220
- match = matchLayer(layer, path);
221
- route = layer.route;
222
-
223
- if (typeof match !== 'boolean') {
224
- // hold on to layerError
225
- layerError = layerError || match;
226
- }
227
-
228
- if (match !== true) {
229
- continue;
230
- }
231
-
232
- if (!route) {
233
- // process non-route handlers normally
234
- continue;
235
- }
236
-
237
- if (layerError) {
238
- // routes do not match with a pending error
239
- match = false;
240
- continue;
241
- }
242
-
243
- var method = req.method;
244
- var has_method = route._handles_method(method);
245
-
246
- // build up automatic options response
247
- if (!has_method && method === 'OPTIONS') {
248
- appendMethods(options, route._options());
249
- }
250
-
251
- // don't even bother matching route
252
- if (!has_method && method !== 'HEAD') {
253
- match = false;
254
- continue;
255
- }
256
- }
257
-
258
- // no match
259
- if (match !== true) {
260
- return done(layerError);
261
- }
262
-
263
- // store route for dispatch on change
264
- if (route) {
265
- req.route = route;
266
- }
267
-
268
- // Capture one-time layer values
269
- req.params = self.mergeParams
270
- ? mergeParams(layer.params, parentParams)
271
- : layer.params;
272
- var layerPath = layer.path;
273
-
274
- // this should be done for the layer
275
- self.process_params(layer, paramcalled, req, res, function (err) {
276
- if (err) {
277
- return next(layerError || err);
278
- }
279
-
280
- if (route) {
281
- return layer.handle_request(req, res, next);
282
- }
283
-
284
- trim_prefix(layer, layerError, layerPath, path);
285
- });
286
- }
287
-
288
- function trim_prefix(layer, layerError, layerPath, path) {
289
- if (layerPath.length !== 0) {
290
- // Validate path is a prefix match
291
- if (layerPath !== path.substr(0, layerPath.length)) {
292
- next(layerError)
293
- return
294
- }
295
-
296
- // Validate path breaks on a path separator
297
- var c = path[layerPath.length]
298
- if (c && c !== '/' && c !== '.') return next(layerError)
299
-
300
- // Trim off the part of the url that matches the route
301
- // middleware (.use stuff) needs to have the path stripped
302
- debug('trim prefix (%s) from url %s', layerPath, req.url);
303
- removed = layerPath;
304
- req.url = protohost + req.url.substr(protohost.length + removed.length);
305
-
306
- // Ensure leading slash
307
- if (!protohost && req.url[0] !== '/') {
308
- req.url = '/' + req.url;
309
- slashAdded = true;
310
- }
311
-
312
- // Setup base URL (no trailing slash)
313
- req.baseUrl = parentUrl + (removed[removed.length - 1] === '/'
314
- ? removed.substring(0, removed.length - 1)
315
- : removed);
316
- }
317
-
318
- debug('%s %s : %s', layer.name, layerPath, req.originalUrl);
319
-
320
- if (layerError) {
321
- layer.handle_error(layerError, req, res, next);
322
- } else {
323
- layer.handle_request(req, res, next);
324
- }
325
- }
326
- };
327
-
328
- /**
329
- * Process any parameters for the layer.
330
- * @private
331
- */
332
-
333
- proto.process_params = function process_params(layer, called, req, res, done) {
334
- var params = this.params;
335
-
336
- // captured parameters from the layer, keys and values
337
- var keys = layer.keys;
338
-
339
- // fast track
340
- if (!keys || keys.length === 0) {
341
- return done();
342
- }
343
-
344
- var i = 0;
345
- var name;
346
- var paramIndex = 0;
347
- var key;
348
- var paramVal;
349
- var paramCallbacks;
350
- var paramCalled;
351
-
352
- // process params in order
353
- // param callbacks can be async
354
- function param(err) {
355
- if (err) {
356
- return done(err);
357
- }
358
-
359
- if (i >= keys.length ) {
360
- return done();
361
- }
362
-
363
- paramIndex = 0;
364
- key = keys[i++];
365
- name = key.name;
366
- paramVal = req.params[name];
367
- paramCallbacks = params[name];
368
- paramCalled = called[name];
369
-
370
- if (paramVal === undefined || !paramCallbacks) {
371
- return param();
372
- }
373
-
374
- // param previously called with same value or error occurred
375
- if (paramCalled && (paramCalled.match === paramVal
376
- || (paramCalled.error && paramCalled.error !== 'route'))) {
377
- // restore value
378
- req.params[name] = paramCalled.value;
379
-
380
- // next param
381
- return param(paramCalled.error);
382
- }
383
-
384
- called[name] = paramCalled = {
385
- error: null,
386
- match: paramVal,
387
- value: paramVal
388
- };
389
-
390
- paramCallback();
391
- }
392
-
393
- // single param callbacks
394
- function paramCallback(err) {
395
- var fn = paramCallbacks[paramIndex++];
396
-
397
- // store updated value
398
- paramCalled.value = req.params[key.name];
399
-
400
- if (err) {
401
- // store error
402
- paramCalled.error = err;
403
- param(err);
404
- return;
405
- }
406
-
407
- if (!fn) return param();
408
-
409
- try {
410
- fn(req, res, paramCallback, paramVal, key.name);
411
- } catch (e) {
412
- paramCallback(e);
413
- }
414
- }
415
-
416
- param();
417
- };
418
-
419
- /**
420
- * Use the given middleware function, with optional path, defaulting to "/".
421
- *
422
- * Use (like `.all`) will run for any http METHOD, but it will not add
423
- * handlers for those methods so OPTIONS requests will not consider `.use`
424
- * functions even if they could respond.
425
- *
426
- * The other difference is that _route_ path is stripped and not visible
427
- * to the handler function. The main effect of this feature is that mounted
428
- * handlers can operate without any code changes regardless of the "prefix"
429
- * pathname.
430
- *
431
- * @public
432
- */
433
-
434
- proto.use = function use(fn) {
435
- var offset = 0;
436
- var path = '/';
437
-
438
- // default path to '/'
439
- // disambiguate router.use([fn])
440
- if (typeof fn !== 'function') {
441
- var arg = fn;
442
-
443
- while (Array.isArray(arg) && arg.length !== 0) {
444
- arg = arg[0];
445
- }
446
-
447
- // first arg is the path
448
- if (typeof arg !== 'function') {
449
- offset = 1;
450
- path = fn;
451
- }
452
- }
453
-
454
- var callbacks = flatten(slice.call(arguments, offset));
455
-
456
- if (callbacks.length === 0) {
457
- throw new TypeError('Router.use() requires a middleware function')
458
- }
459
-
460
- for (var i = 0; i < callbacks.length; i++) {
461
- var fn = callbacks[i];
462
-
463
- if (typeof fn !== 'function') {
464
- throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
465
- }
466
-
467
- // add the middleware
468
- debug('use %o %s', path, fn.name || '<anonymous>')
469
-
470
- var layer = new Layer(path, {
471
- sensitive: this.caseSensitive,
472
- strict: false,
473
- end: false
474
- }, fn);
475
-
476
- layer.route = undefined;
477
-
478
- this.stack.push(layer);
479
- }
480
-
481
- return this;
482
- };
483
-
484
- /**
485
- * Create a new Route for the given path.
486
- *
487
- * Each route contains a separate middleware stack and VERB handlers.
488
- *
489
- * See the Route api documentation for details on adding handlers
490
- * and middleware to routes.
491
- *
492
- * @param {String} path
493
- * @return {Route}
494
- * @public
495
- */
496
-
497
- proto.route = function route(path) {
498
- var route = new Route(path);
499
-
500
- var layer = new Layer(path, {
501
- sensitive: this.caseSensitive,
502
- strict: this.strict,
503
- end: true
504
- }, route.dispatch.bind(route));
505
-
506
- layer.route = route;
507
-
508
- this.stack.push(layer);
509
- return route;
510
- };
511
-
512
- // create Router#VERB functions
513
- methods.concat('all').forEach(function(method){
514
- proto[method] = function(path){
515
- var route = this.route(path)
516
- route[method].apply(route, slice.call(arguments, 1));
517
- return this;
518
- };
519
- });
520
-
521
- // append methods to a list of methods
522
- function appendMethods(list, addition) {
523
- for (var i = 0; i < addition.length; i++) {
524
- var method = addition[i];
525
- if (list.indexOf(method) === -1) {
526
- list.push(method);
527
- }
528
- }
529
- }
530
-
531
- // get pathname of request
532
- function getPathname(req) {
533
- try {
534
- return parseUrl(req).pathname;
535
- } catch (err) {
536
- return undefined;
537
- }
538
- }
539
-
540
- // Get get protocol + host for a URL
541
- function getProtohost(url) {
542
- if (typeof url !== 'string' || url.length === 0 || url[0] === '/') {
543
- return undefined
544
- }
545
-
546
- var searchIndex = url.indexOf('?')
547
- var pathLength = searchIndex !== -1
548
- ? searchIndex
549
- : url.length
550
- var fqdnIndex = url.substr(0, pathLength).indexOf('://')
551
-
552
- return fqdnIndex !== -1
553
- ? url.substr(0, url.indexOf('/', 3 + fqdnIndex))
554
- : undefined
555
- }
556
-
557
- // get type for error message
558
- function gettype(obj) {
559
- var type = typeof obj;
560
-
561
- if (type !== 'object') {
562
- return type;
563
- }
564
-
565
- // inspect [[Class]] for objects
566
- return toString.call(obj)
567
- .replace(objectRegExp, '$1');
568
- }
569
-
570
- /**
571
- * Match path to a layer.
572
- *
573
- * @param {Layer} layer
574
- * @param {string} path
575
- * @private
576
- */
577
-
578
- function matchLayer(layer, path) {
579
- try {
580
- return layer.match(path);
581
- } catch (err) {
582
- return err;
583
- }
584
- }
585
-
586
- // merge params with parent params
587
- function mergeParams(params, parent) {
588
- if (typeof parent !== 'object' || !parent) {
589
- return params;
590
- }
591
-
592
- // make copy of parent for base
593
- var obj = mixin({}, parent);
594
-
595
- // simple non-numeric merging
596
- if (!(0 in params) || !(0 in parent)) {
597
- return mixin(obj, params);
598
- }
599
-
600
- var i = 0;
601
- var o = 0;
602
-
603
- // determine numeric gaps
604
- while (i in params) {
605
- i++;
606
- }
607
-
608
- while (o in parent) {
609
- o++;
610
- }
611
-
612
- // offset numeric indices in params before merge
613
- for (i--; i >= 0; i--) {
614
- params[i + o] = params[i];
615
-
616
- // create holes for the merge when necessary
617
- if (i < o) {
618
- delete params[i];
619
- }
620
- }
621
-
622
- return mixin(obj, params);
623
- }
624
-
625
- // restore obj props after function
626
- function restore(fn, obj) {
627
- var props = new Array(arguments.length - 2);
628
- var vals = new Array(arguments.length - 2);
629
-
630
- for (var i = 0; i < props.length; i++) {
631
- props[i] = arguments[i + 2];
632
- vals[i] = obj[props[i]];
633
- }
634
-
635
- return function () {
636
- // restore vals
637
- for (var i = 0; i < props.length; i++) {
638
- obj[props[i]] = vals[i];
639
- }
640
-
641
- return fn.apply(this, arguments);
642
- };
643
- }
644
-
645
- // send an OPTIONS response
646
- function sendOptionsResponse(res, options, next) {
647
- try {
648
- var body = options.join(',');
649
- res.set('Allow', body);
650
- res.send(body);
651
- } catch (err) {
652
- next(err);
653
- }
654
- }
655
-
656
- // wrap a function
657
- function wrap(old, fn) {
658
- return function proxy() {
659
- var args = new Array(arguments.length + 1);
660
-
661
- args[0] = old;
662
- for (var i = 0, len = arguments.length; i < len; i++) {
663
- args[i + 1] = arguments[i];
664
- }
665
-
666
- fn.apply(this, args);
667
- };
668
- }