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,217 @@
1
+ "use strict";
2
+ var Buffer = require("buffer").Buffer;
3
+ // Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer
4
+
5
+ // == Extend Node primitives to use iconv-lite =================================
6
+
7
+ module.exports = function (iconv) {
8
+ var original = undefined; // Place to keep original methods.
9
+
10
+ // Node authors rewrote Buffer internals to make it compatible with
11
+ // Uint8Array and we cannot patch key functions since then.
12
+ // Note: this does use older Buffer API on a purpose
13
+ iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array);
14
+
15
+ iconv.extendNodeEncodings = function extendNodeEncodings() {
16
+ if (original) return;
17
+ original = {};
18
+
19
+ if (!iconv.supportsNodeEncodingsExtension) {
20
+ console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
21
+ console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
22
+ return;
23
+ }
24
+
25
+ var nodeNativeEncodings = {
26
+ 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
27
+ 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
28
+ };
29
+
30
+ Buffer.isNativeEncoding = function(enc) {
31
+ return enc && nodeNativeEncodings[enc.toLowerCase()];
32
+ }
33
+
34
+ // -- SlowBuffer -----------------------------------------------------------
35
+ var SlowBuffer = require('buffer').SlowBuffer;
36
+
37
+ original.SlowBufferToString = SlowBuffer.prototype.toString;
38
+ SlowBuffer.prototype.toString = function(encoding, start, end) {
39
+ encoding = String(encoding || 'utf8').toLowerCase();
40
+
41
+ // Use native conversion when possible
42
+ if (Buffer.isNativeEncoding(encoding))
43
+ return original.SlowBufferToString.call(this, encoding, start, end);
44
+
45
+ // Otherwise, use our decoding method.
46
+ if (typeof start == 'undefined') start = 0;
47
+ if (typeof end == 'undefined') end = this.length;
48
+ return iconv.decode(this.slice(start, end), encoding);
49
+ }
50
+
51
+ original.SlowBufferWrite = SlowBuffer.prototype.write;
52
+ SlowBuffer.prototype.write = function(string, offset, length, encoding) {
53
+ // Support both (string, offset, length, encoding)
54
+ // and the legacy (string, encoding, offset, length)
55
+ if (isFinite(offset)) {
56
+ if (!isFinite(length)) {
57
+ encoding = length;
58
+ length = undefined;
59
+ }
60
+ } else { // legacy
61
+ var swap = encoding;
62
+ encoding = offset;
63
+ offset = length;
64
+ length = swap;
65
+ }
66
+
67
+ offset = +offset || 0;
68
+ var remaining = this.length - offset;
69
+ if (!length) {
70
+ length = remaining;
71
+ } else {
72
+ length = +length;
73
+ if (length > remaining) {
74
+ length = remaining;
75
+ }
76
+ }
77
+ encoding = String(encoding || 'utf8').toLowerCase();
78
+
79
+ // Use native conversion when possible
80
+ if (Buffer.isNativeEncoding(encoding))
81
+ return original.SlowBufferWrite.call(this, string, offset, length, encoding);
82
+
83
+ if (string.length > 0 && (length < 0 || offset < 0))
84
+ throw new RangeError('attempt to write beyond buffer bounds');
85
+
86
+ // Otherwise, use our encoding method.
87
+ var buf = iconv.encode(string, encoding);
88
+ if (buf.length < length) length = buf.length;
89
+ buf.copy(this, offset, 0, length);
90
+ return length;
91
+ }
92
+
93
+ // -- Buffer ---------------------------------------------------------------
94
+
95
+ original.BufferIsEncoding = Buffer.isEncoding;
96
+ Buffer.isEncoding = function(encoding) {
97
+ return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
98
+ }
99
+
100
+ original.BufferByteLength = Buffer.byteLength;
101
+ Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
102
+ encoding = String(encoding || 'utf8').toLowerCase();
103
+
104
+ // Use native conversion when possible
105
+ if (Buffer.isNativeEncoding(encoding))
106
+ return original.BufferByteLength.call(this, str, encoding);
107
+
108
+ // Slow, I know, but we don't have a better way yet.
109
+ return iconv.encode(str, encoding).length;
110
+ }
111
+
112
+ original.BufferToString = Buffer.prototype.toString;
113
+ Buffer.prototype.toString = function(encoding, start, end) {
114
+ encoding = String(encoding || 'utf8').toLowerCase();
115
+
116
+ // Use native conversion when possible
117
+ if (Buffer.isNativeEncoding(encoding))
118
+ return original.BufferToString.call(this, encoding, start, end);
119
+
120
+ // Otherwise, use our decoding method.
121
+ if (typeof start == 'undefined') start = 0;
122
+ if (typeof end == 'undefined') end = this.length;
123
+ return iconv.decode(this.slice(start, end), encoding);
124
+ }
125
+
126
+ original.BufferWrite = Buffer.prototype.write;
127
+ Buffer.prototype.write = function(string, offset, length, encoding) {
128
+ var _offset = offset, _length = length, _encoding = encoding;
129
+ // Support both (string, offset, length, encoding)
130
+ // and the legacy (string, encoding, offset, length)
131
+ if (isFinite(offset)) {
132
+ if (!isFinite(length)) {
133
+ encoding = length;
134
+ length = undefined;
135
+ }
136
+ } else { // legacy
137
+ var swap = encoding;
138
+ encoding = offset;
139
+ offset = length;
140
+ length = swap;
141
+ }
142
+
143
+ encoding = String(encoding || 'utf8').toLowerCase();
144
+
145
+ // Use native conversion when possible
146
+ if (Buffer.isNativeEncoding(encoding))
147
+ return original.BufferWrite.call(this, string, _offset, _length, _encoding);
148
+
149
+ offset = +offset || 0;
150
+ var remaining = this.length - offset;
151
+ if (!length) {
152
+ length = remaining;
153
+ } else {
154
+ length = +length;
155
+ if (length > remaining) {
156
+ length = remaining;
157
+ }
158
+ }
159
+
160
+ if (string.length > 0 && (length < 0 || offset < 0))
161
+ throw new RangeError('attempt to write beyond buffer bounds');
162
+
163
+ // Otherwise, use our encoding method.
164
+ var buf = iconv.encode(string, encoding);
165
+ if (buf.length < length) length = buf.length;
166
+ buf.copy(this, offset, 0, length);
167
+ return length;
168
+
169
+ // TODO: Set _charsWritten.
170
+ }
171
+
172
+
173
+ // -- Readable -------------------------------------------------------------
174
+ if (iconv.supportsStreams) {
175
+ var Readable = require('stream').Readable;
176
+
177
+ original.ReadableSetEncoding = Readable.prototype.setEncoding;
178
+ Readable.prototype.setEncoding = function setEncoding(enc, options) {
179
+ // Use our own decoder, it has the same interface.
180
+ // We cannot use original function as it doesn't handle BOM-s.
181
+ this._readableState.decoder = iconv.getDecoder(enc, options);
182
+ this._readableState.encoding = enc;
183
+ }
184
+
185
+ Readable.prototype.collect = iconv._collect;
186
+ }
187
+ }
188
+
189
+ // Remove iconv-lite Node primitive extensions.
190
+ iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
191
+ if (!iconv.supportsNodeEncodingsExtension)
192
+ return;
193
+ if (!original)
194
+ throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
195
+
196
+ delete Buffer.isNativeEncoding;
197
+
198
+ var SlowBuffer = require('buffer').SlowBuffer;
199
+
200
+ SlowBuffer.prototype.toString = original.SlowBufferToString;
201
+ SlowBuffer.prototype.write = original.SlowBufferWrite;
202
+
203
+ Buffer.isEncoding = original.BufferIsEncoding;
204
+ Buffer.byteLength = original.BufferByteLength;
205
+ Buffer.prototype.toString = original.BufferToString;
206
+ Buffer.prototype.write = original.BufferWrite;
207
+
208
+ if (iconv.supportsStreams) {
209
+ var Readable = require('stream').Readable;
210
+
211
+ Readable.prototype.setEncoding = original.ReadableSetEncoding;
212
+ delete Readable.prototype.collect;
213
+ }
214
+
215
+ original = undefined;
216
+ }
217
+ }
@@ -0,0 +1,24 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ * REQUIREMENT: This definition is dependent on the @types/node definition.
5
+ * Install with `npm install @types/node --save-dev`
6
+ *--------------------------------------------------------------------------------------------*/
7
+
8
+ declare module 'iconv-lite' {
9
+ export function decode(buffer: Buffer, encoding: string, options?: Options): string;
10
+
11
+ export function encode(content: string, encoding: string, options?: Options): Buffer;
12
+
13
+ export function encodingExists(encoding: string): boolean;
14
+
15
+ export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
16
+
17
+ export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
18
+ }
19
+
20
+ export interface Options {
21
+ stripBOM?: boolean;
22
+ addBOM?: boolean;
23
+ defaultEncoding?: string;
24
+ }
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ // Some environments don't have global Buffer (e.g. React Native).
4
+ // Solution would be installing npm modules "buffer" and "stream" explicitly.
5
+ var Buffer = require("safer-buffer").Buffer;
6
+
7
+ var bomHandling = require("./bom-handling"),
8
+ iconv = module.exports;
9
+
10
+ // All codecs and aliases are kept here, keyed by encoding name/alias.
11
+ // They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
12
+ iconv.encodings = null;
13
+
14
+ // Characters emitted in case of error.
15
+ iconv.defaultCharUnicode = '�';
16
+ iconv.defaultCharSingleByte = '?';
17
+
18
+ // Public API.
19
+ iconv.encode = function encode(str, encoding, options) {
20
+ str = "" + (str || ""); // Ensure string.
21
+
22
+ var encoder = iconv.getEncoder(encoding, options);
23
+
24
+ var res = encoder.write(str);
25
+ var trail = encoder.end();
26
+
27
+ return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
28
+ }
29
+
30
+ iconv.decode = function decode(buf, encoding, options) {
31
+ if (typeof buf === 'string') {
32
+ if (!iconv.skipDecodeWarning) {
33
+ console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
34
+ iconv.skipDecodeWarning = true;
35
+ }
36
+
37
+ buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
38
+ }
39
+
40
+ var decoder = iconv.getDecoder(encoding, options);
41
+
42
+ var res = decoder.write(buf);
43
+ var trail = decoder.end();
44
+
45
+ return trail ? (res + trail) : res;
46
+ }
47
+
48
+ iconv.encodingExists = function encodingExists(enc) {
49
+ try {
50
+ iconv.getCodec(enc);
51
+ return true;
52
+ } catch (e) {
53
+ return false;
54
+ }
55
+ }
56
+
57
+ // Legacy aliases to convert functions
58
+ iconv.toEncoding = iconv.encode;
59
+ iconv.fromEncoding = iconv.decode;
60
+
61
+ // Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
62
+ iconv._codecDataCache = {};
63
+ iconv.getCodec = function getCodec(encoding) {
64
+ if (!iconv.encodings)
65
+ iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
66
+
67
+ // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
68
+ var enc = iconv._canonicalizeEncoding(encoding);
69
+
70
+ // Traverse iconv.encodings to find actual codec.
71
+ var codecOptions = {};
72
+ while (true) {
73
+ var codec = iconv._codecDataCache[enc];
74
+ if (codec)
75
+ return codec;
76
+
77
+ var codecDef = iconv.encodings[enc];
78
+
79
+ switch (typeof codecDef) {
80
+ case "string": // Direct alias to other encoding.
81
+ enc = codecDef;
82
+ break;
83
+
84
+ case "object": // Alias with options. Can be layered.
85
+ for (var key in codecDef)
86
+ codecOptions[key] = codecDef[key];
87
+
88
+ if (!codecOptions.encodingName)
89
+ codecOptions.encodingName = enc;
90
+
91
+ enc = codecDef.type;
92
+ break;
93
+
94
+ case "function": // Codec itself.
95
+ if (!codecOptions.encodingName)
96
+ codecOptions.encodingName = enc;
97
+
98
+ // The codec function must load all tables and return object with .encoder and .decoder methods.
99
+ // It'll be called only once (for each different options object).
100
+ codec = new codecDef(codecOptions, iconv);
101
+
102
+ iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
103
+ return codec;
104
+
105
+ default:
106
+ throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
107
+ }
108
+ }
109
+ }
110
+
111
+ iconv._canonicalizeEncoding = function(encoding) {
112
+ // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
113
+ return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
114
+ }
115
+
116
+ iconv.getEncoder = function getEncoder(encoding, options) {
117
+ var codec = iconv.getCodec(encoding),
118
+ encoder = new codec.encoder(options, codec);
119
+
120
+ if (codec.bomAware && options && options.addBOM)
121
+ encoder = new bomHandling.PrependBOM(encoder, options);
122
+
123
+ return encoder;
124
+ }
125
+
126
+ iconv.getDecoder = function getDecoder(encoding, options) {
127
+ var codec = iconv.getCodec(encoding),
128
+ decoder = new codec.decoder(options, codec);
129
+
130
+ if (codec.bomAware && !(options && options.stripBOM === false))
131
+ decoder = new bomHandling.StripBOM(decoder, options);
132
+
133
+ return decoder;
134
+ }
135
+
136
+
137
+ // Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
138
+ var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
139
+ if (nodeVer) {
140
+
141
+ // Load streaming support in Node v0.10+
142
+ var nodeVerArr = nodeVer.split(".").map(Number);
143
+ if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
144
+ require("./streams")(iconv);
145
+ }
146
+
147
+ // Load Node primitive extensions.
148
+ require("./extend-node")(iconv);
149
+ }
150
+
151
+ if ("Ā" != "\u0100") {
152
+ console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
153
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ var Buffer = require("buffer").Buffer,
4
+ Transform = require("stream").Transform;
5
+
6
+
7
+ // == Exports ==================================================================
8
+ module.exports = function(iconv) {
9
+
10
+ // Additional Public API.
11
+ iconv.encodeStream = function encodeStream(encoding, options) {
12
+ return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
13
+ }
14
+
15
+ iconv.decodeStream = function decodeStream(encoding, options) {
16
+ return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
17
+ }
18
+
19
+ iconv.supportsStreams = true;
20
+
21
+
22
+ // Not published yet.
23
+ iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
24
+ iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
25
+ iconv._collect = IconvLiteDecoderStream.prototype.collect;
26
+ };
27
+
28
+
29
+ // == Encoder stream =======================================================
30
+ function IconvLiteEncoderStream(conv, options) {
31
+ this.conv = conv;
32
+ options = options || {};
33
+ options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
34
+ Transform.call(this, options);
35
+ }
36
+
37
+ IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
38
+ constructor: { value: IconvLiteEncoderStream }
39
+ });
40
+
41
+ IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
42
+ if (typeof chunk != 'string')
43
+ return done(new Error("Iconv encoding stream needs strings as its input."));
44
+ try {
45
+ var res = this.conv.write(chunk);
46
+ if (res && res.length) this.push(res);
47
+ done();
48
+ }
49
+ catch (e) {
50
+ done(e);
51
+ }
52
+ }
53
+
54
+ IconvLiteEncoderStream.prototype._flush = function(done) {
55
+ try {
56
+ var res = this.conv.end();
57
+ if (res && res.length) this.push(res);
58
+ done();
59
+ }
60
+ catch (e) {
61
+ done(e);
62
+ }
63
+ }
64
+
65
+ IconvLiteEncoderStream.prototype.collect = function(cb) {
66
+ var chunks = [];
67
+ this.on('error', cb);
68
+ this.on('data', function(chunk) { chunks.push(chunk); });
69
+ this.on('end', function() {
70
+ cb(null, Buffer.concat(chunks));
71
+ });
72
+ return this;
73
+ }
74
+
75
+
76
+ // == Decoder stream =======================================================
77
+ function IconvLiteDecoderStream(conv, options) {
78
+ this.conv = conv;
79
+ options = options || {};
80
+ options.encoding = this.encoding = 'utf8'; // We output strings.
81
+ Transform.call(this, options);
82
+ }
83
+
84
+ IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
85
+ constructor: { value: IconvLiteDecoderStream }
86
+ });
87
+
88
+ IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
89
+ if (!Buffer.isBuffer(chunk))
90
+ return done(new Error("Iconv decoding stream needs buffers as its input."));
91
+ try {
92
+ var res = this.conv.write(chunk);
93
+ if (res && res.length) this.push(res, this.encoding);
94
+ done();
95
+ }
96
+ catch (e) {
97
+ done(e);
98
+ }
99
+ }
100
+
101
+ IconvLiteDecoderStream.prototype._flush = function(done) {
102
+ try {
103
+ var res = this.conv.end();
104
+ if (res && res.length) this.push(res, this.encoding);
105
+ done();
106
+ }
107
+ catch (e) {
108
+ done(e);
109
+ }
110
+ }
111
+
112
+ IconvLiteDecoderStream.prototype.collect = function(cb) {
113
+ var res = '';
114
+ this.on('error', cb);
115
+ this.on('data', function(chunk) { res += chunk; });
116
+ this.on('end', function() {
117
+ cb(null, res);
118
+ });
119
+ return this;
120
+ }
121
+
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "iconv-lite",
3
+ "description": "Convert character encodings in pure javascript.",
4
+ "version": "0.4.24",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "iconv",
8
+ "convert",
9
+ "charset",
10
+ "icu"
11
+ ],
12
+ "author": "Alexander Shtuchkin <ashtuchkin@gmail.com>",
13
+ "main": "./lib/index.js",
14
+ "typings": "./lib/index.d.ts",
15
+ "homepage": "https://github.com/ashtuchkin/iconv-lite",
16
+ "bugs": "https://github.com/ashtuchkin/iconv-lite/issues",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git://github.com/ashtuchkin/iconv-lite.git"
20
+ },
21
+ "engines": {
22
+ "node": ">=0.10.0"
23
+ },
24
+ "scripts": {
25
+ "coverage": "istanbul cover _mocha -- --grep .",
26
+ "coverage-open": "open coverage/lcov-report/index.html",
27
+ "test": "mocha --reporter spec --grep ."
28
+ },
29
+ "browser": {
30
+ "./lib/extend-node": false,
31
+ "./lib/streams": false
32
+ },
33
+ "devDependencies": {
34
+ "mocha": "^3.1.0",
35
+ "request": "~2.87.0",
36
+ "unorm": "*",
37
+ "errto": "*",
38
+ "async": "*",
39
+ "istanbul": "*",
40
+ "semver": "*",
41
+ "iconv": "*"
42
+ },
43
+ "dependencies": {
44
+ "safer-buffer": ">= 2.1.2 < 3"
45
+ }
46
+ }
@@ -0,0 +1,16 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
11
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
16
+
@@ -0,0 +1,42 @@
1
+ Browser-friendly inheritance fully compatible with standard node.js
2
+ [inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
3
+
4
+ This package exports standard `inherits` from node.js `util` module in
5
+ node environment, but also provides alternative browser-friendly
6
+ implementation through [browser
7
+ field](https://gist.github.com/shtylman/4339901). Alternative
8
+ implementation is a literal copy of standard one located in standalone
9
+ module to avoid requiring of `util`. It also has a shim for old
10
+ browsers with no `Object.create` support.
11
+
12
+ While keeping you sure you are using standard `inherits`
13
+ implementation in node.js environment, it allows bundlers such as
14
+ [browserify](https://github.com/substack/node-browserify) to not
15
+ include full `util` package to your client code if all you need is
16
+ just `inherits` function. It worth, because browser shim for `util`
17
+ package is large and `inherits` is often the single function you need
18
+ from it.
19
+
20
+ It's recommended to use this package instead of
21
+ `require('util').inherits` for any code that has chances to be used
22
+ not only in node.js but in browser too.
23
+
24
+ ## usage
25
+
26
+ ```js
27
+ var inherits = require('inherits');
28
+ // then use exactly as the standard one
29
+ ```
30
+
31
+ ## note on version ~1.0
32
+
33
+ Version ~1.0 had completely different motivation and is not compatible
34
+ neither with 2.0 nor with standard node.js `inherits`.
35
+
36
+ If you are using version ~1.0 and planning to switch to ~2.0, be
37
+ careful:
38
+
39
+ * new version uses `super_` instead of `super` for referencing
40
+ superclass
41
+ * new version overwrites current prototype while old one preserves any
42
+ existing fields on it
@@ -0,0 +1,9 @@
1
+ try {
2
+ var util = require('util');
3
+ /* istanbul ignore next */
4
+ if (typeof util.inherits !== 'function') throw '';
5
+ module.exports = util.inherits;
6
+ } catch (e) {
7
+ /* istanbul ignore next */
8
+ module.exports = require('./inherits_browser.js');
9
+ }
@@ -0,0 +1,27 @@
1
+ if (typeof Object.create === 'function') {
2
+ // implementation from standard node.js 'util' module
3
+ module.exports = function inherits(ctor, superCtor) {
4
+ if (superCtor) {
5
+ ctor.super_ = superCtor
6
+ ctor.prototype = Object.create(superCtor.prototype, {
7
+ constructor: {
8
+ value: ctor,
9
+ enumerable: false,
10
+ writable: true,
11
+ configurable: true
12
+ }
13
+ })
14
+ }
15
+ };
16
+ } else {
17
+ // old school shim for old browsers
18
+ module.exports = function inherits(ctor, superCtor) {
19
+ if (superCtor) {
20
+ ctor.super_ = superCtor
21
+ var TempCtor = function () {}
22
+ TempCtor.prototype = superCtor.prototype
23
+ ctor.prototype = new TempCtor()
24
+ ctor.prototype.constructor = ctor
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "inherits",
3
+ "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
4
+ "version": "2.0.4",
5
+ "keywords": [
6
+ "inheritance",
7
+ "class",
8
+ "klass",
9
+ "oop",
10
+ "object-oriented",
11
+ "inherits",
12
+ "browser",
13
+ "browserify"
14
+ ],
15
+ "main": "./inherits.js",
16
+ "browser": "./inherits_browser.js",
17
+ "repository": "git://github.com/isaacs/inherits",
18
+ "license": "ISC",
19
+ "scripts": {
20
+ "test": "tap"
21
+ },
22
+ "devDependencies": {
23
+ "tap": "^14.2.4"
24
+ },
25
+ "files": [
26
+ "inherits.js",
27
+ "inherits_browser.js"
28
+ ]
29
+ }