ahmad-module 1.0.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.

Potentially problematic release.


This version of ahmad-module might be problematic. Click here for more details.

Files changed (759) hide show
  1. package/.bin/sshpk-conv +12 -0
  2. package/.bin/sshpk-conv.cmd +17 -0
  3. package/.bin/sshpk-conv.ps1 +28 -0
  4. package/.bin/sshpk-sign +12 -0
  5. package/.bin/sshpk-sign.cmd +17 -0
  6. package/.bin/sshpk-sign.ps1 +28 -0
  7. package/.bin/sshpk-verify +12 -0
  8. package/.bin/sshpk-verify.cmd +17 -0
  9. package/.bin/sshpk-verify.ps1 +28 -0
  10. package/.bin/uuid +12 -0
  11. package/.bin/uuid.cmd +17 -0
  12. package/.bin/uuid.ps1 +28 -0
  13. package/ajv/.tonic_example.js +20 -0
  14. package/ajv/LICENSE +22 -0
  15. package/ajv/README.md +1497 -0
  16. package/ajv/dist/ajv.bundle.js +7189 -0
  17. package/ajv/dist/ajv.min.js +3 -0
  18. package/ajv/dist/ajv.min.js.map +1 -0
  19. package/ajv/lib/ajv.d.ts +397 -0
  20. package/ajv/lib/ajv.js +506 -0
  21. package/ajv/lib/cache.js +26 -0
  22. package/ajv/lib/compile/async.js +90 -0
  23. package/ajv/lib/compile/equal.js +5 -0
  24. package/ajv/lib/compile/error_classes.js +34 -0
  25. package/ajv/lib/compile/formats.js +142 -0
  26. package/ajv/lib/compile/index.js +387 -0
  27. package/ajv/lib/compile/resolve.js +270 -0
  28. package/ajv/lib/compile/rules.js +66 -0
  29. package/ajv/lib/compile/schema_obj.js +9 -0
  30. package/ajv/lib/compile/ucs2length.js +20 -0
  31. package/ajv/lib/compile/util.js +239 -0
  32. package/ajv/lib/data.js +49 -0
  33. package/ajv/lib/definition_schema.js +37 -0
  34. package/ajv/lib/dot/_limit.jst +113 -0
  35. package/ajv/lib/dot/_limitItems.jst +12 -0
  36. package/ajv/lib/dot/_limitLength.jst +12 -0
  37. package/ajv/lib/dot/_limitProperties.jst +12 -0
  38. package/ajv/lib/dot/allOf.jst +32 -0
  39. package/ajv/lib/dot/anyOf.jst +46 -0
  40. package/ajv/lib/dot/coerce.def +51 -0
  41. package/ajv/lib/dot/comment.jst +9 -0
  42. package/ajv/lib/dot/const.jst +11 -0
  43. package/ajv/lib/dot/contains.jst +55 -0
  44. package/ajv/lib/dot/custom.jst +191 -0
  45. package/ajv/lib/dot/defaults.def +47 -0
  46. package/ajv/lib/dot/definitions.def +203 -0
  47. package/ajv/lib/dot/dependencies.jst +79 -0
  48. package/ajv/lib/dot/enum.jst +30 -0
  49. package/ajv/lib/dot/errors.def +194 -0
  50. package/ajv/lib/dot/format.jst +106 -0
  51. package/ajv/lib/dot/if.jst +73 -0
  52. package/ajv/lib/dot/items.jst +98 -0
  53. package/ajv/lib/dot/missing.def +39 -0
  54. package/ajv/lib/dot/multipleOf.jst +22 -0
  55. package/ajv/lib/dot/not.jst +43 -0
  56. package/ajv/lib/dot/oneOf.jst +54 -0
  57. package/ajv/lib/dot/pattern.jst +14 -0
  58. package/ajv/lib/dot/properties.jst +245 -0
  59. package/ajv/lib/dot/propertyNames.jst +52 -0
  60. package/ajv/lib/dot/ref.jst +85 -0
  61. package/ajv/lib/dot/required.jst +108 -0
  62. package/ajv/lib/dot/uniqueItems.jst +62 -0
  63. package/ajv/lib/dot/validate.jst +276 -0
  64. package/ajv/lib/dotjs/README.md +3 -0
  65. package/ajv/lib/dotjs/_limit.js +163 -0
  66. package/ajv/lib/dotjs/_limitItems.js +80 -0
  67. package/ajv/lib/dotjs/_limitLength.js +85 -0
  68. package/ajv/lib/dotjs/_limitProperties.js +80 -0
  69. package/ajv/lib/dotjs/allOf.js +42 -0
  70. package/ajv/lib/dotjs/anyOf.js +73 -0
  71. package/ajv/lib/dotjs/comment.js +14 -0
  72. package/ajv/lib/dotjs/const.js +56 -0
  73. package/ajv/lib/dotjs/contains.js +81 -0
  74. package/ajv/lib/dotjs/custom.js +228 -0
  75. package/ajv/lib/dotjs/dependencies.js +168 -0
  76. package/ajv/lib/dotjs/enum.js +66 -0
  77. package/ajv/lib/dotjs/format.js +150 -0
  78. package/ajv/lib/dotjs/if.js +103 -0
  79. package/ajv/lib/dotjs/index.js +33 -0
  80. package/ajv/lib/dotjs/items.js +140 -0
  81. package/ajv/lib/dotjs/multipleOf.js +80 -0
  82. package/ajv/lib/dotjs/not.js +84 -0
  83. package/ajv/lib/dotjs/oneOf.js +73 -0
  84. package/ajv/lib/dotjs/pattern.js +75 -0
  85. package/ajv/lib/dotjs/properties.js +335 -0
  86. package/ajv/lib/dotjs/propertyNames.js +81 -0
  87. package/ajv/lib/dotjs/ref.js +124 -0
  88. package/ajv/lib/dotjs/required.js +270 -0
  89. package/ajv/lib/dotjs/uniqueItems.js +86 -0
  90. package/ajv/lib/dotjs/validate.js +482 -0
  91. package/ajv/lib/keyword.js +146 -0
  92. package/ajv/lib/refs/data.json +17 -0
  93. package/ajv/lib/refs/json-schema-draft-04.json +149 -0
  94. package/ajv/lib/refs/json-schema-draft-06.json +154 -0
  95. package/ajv/lib/refs/json-schema-draft-07.json +168 -0
  96. package/ajv/lib/refs/json-schema-secure.json +94 -0
  97. package/ajv/package.json +106 -0
  98. package/ajv/scripts/.eslintrc.yml +3 -0
  99. package/ajv/scripts/bundle.js +61 -0
  100. package/ajv/scripts/compile-dots.js +73 -0
  101. package/ajv/scripts/info +10 -0
  102. package/ajv/scripts/prepare-tests +12 -0
  103. package/ajv/scripts/publish-built-version +32 -0
  104. package/ajv/scripts/travis-gh-pages +23 -0
  105. package/asn1/Jenkinsfile +65 -0
  106. package/asn1/LICENSE +19 -0
  107. package/asn1/README.md +50 -0
  108. package/asn1/lib/ber/errors.js +13 -0
  109. package/asn1/lib/ber/index.js +27 -0
  110. package/asn1/lib/ber/reader.js +262 -0
  111. package/asn1/lib/ber/types.js +36 -0
  112. package/asn1/lib/ber/writer.js +317 -0
  113. package/asn1/lib/index.js +20 -0
  114. package/asn1/package.json +31 -0
  115. package/assert-plus/AUTHORS +6 -0
  116. package/assert-plus/CHANGES.md +14 -0
  117. package/assert-plus/README.md +162 -0
  118. package/assert-plus/assert.js +211 -0
  119. package/assert-plus/package.json +23 -0
  120. package/asynckit/LICENSE +21 -0
  121. package/asynckit/README.md +233 -0
  122. package/asynckit/bench.js +76 -0
  123. package/asynckit/index.js +6 -0
  124. package/asynckit/lib/abort.js +29 -0
  125. package/asynckit/lib/async.js +34 -0
  126. package/asynckit/lib/defer.js +26 -0
  127. package/asynckit/lib/iterate.js +75 -0
  128. package/asynckit/lib/readable_asynckit.js +91 -0
  129. package/asynckit/lib/readable_parallel.js +25 -0
  130. package/asynckit/lib/readable_serial.js +25 -0
  131. package/asynckit/lib/readable_serial_ordered.js +29 -0
  132. package/asynckit/lib/state.js +37 -0
  133. package/asynckit/lib/streamify.js +141 -0
  134. package/asynckit/lib/terminator.js +29 -0
  135. package/asynckit/package.json +63 -0
  136. package/asynckit/parallel.js +43 -0
  137. package/asynckit/serial.js +17 -0
  138. package/asynckit/serialOrdered.js +75 -0
  139. package/asynckit/stream.js +21 -0
  140. package/aws-sign2/LICENSE +55 -0
  141. package/aws-sign2/README.md +4 -0
  142. package/aws-sign2/index.js +212 -0
  143. package/aws-sign2/package.json +17 -0
  144. package/aws4/.github/FUNDING.yml +3 -0
  145. package/aws4/.travis.yml +9 -0
  146. package/aws4/LICENSE +19 -0
  147. package/aws4/README.md +183 -0
  148. package/aws4/aws4.js +373 -0
  149. package/aws4/lru.js +96 -0
  150. package/aws4/package.json +17 -0
  151. package/axios/CHANGELOG.md +775 -0
  152. package/axios/LICENSE +19 -0
  153. package/axios/README.md +868 -0
  154. package/axios/SECURITY.md +5 -0
  155. package/axios/UPGRADE_GUIDE.md +162 -0
  156. package/axios/dist/axios.js +2193 -0
  157. package/axios/dist/axios.map +1 -0
  158. package/axios/dist/axios.min.js +3 -0
  159. package/axios/dist/axios.min.map +1 -0
  160. package/axios/index.d.ts +168 -0
  161. package/axios/index.js +1 -0
  162. package/axios/lib/adapters/README.md +37 -0
  163. package/axios/lib/adapters/http.js +331 -0
  164. package/axios/lib/adapters/xhr.js +189 -0
  165. package/axios/lib/axios.js +56 -0
  166. package/axios/lib/cancel/Cancel.js +19 -0
  167. package/axios/lib/cancel/CancelToken.js +57 -0
  168. package/axios/lib/cancel/isCancel.js +5 -0
  169. package/axios/lib/core/Axios.js +148 -0
  170. package/axios/lib/core/InterceptorManager.js +54 -0
  171. package/axios/lib/core/README.md +8 -0
  172. package/axios/lib/core/buildFullPath.js +20 -0
  173. package/axios/lib/core/createError.js +18 -0
  174. package/axios/lib/core/dispatchRequest.js +82 -0
  175. package/axios/lib/core/enhanceError.js +42 -0
  176. package/axios/lib/core/mergeConfig.js +87 -0
  177. package/axios/lib/core/settle.js +25 -0
  178. package/axios/lib/core/transformData.js +22 -0
  179. package/axios/lib/defaults.js +134 -0
  180. package/axios/lib/helpers/README.md +7 -0
  181. package/axios/lib/helpers/bind.js +11 -0
  182. package/axios/lib/helpers/buildURL.js +70 -0
  183. package/axios/lib/helpers/combineURLs.js +14 -0
  184. package/axios/lib/helpers/cookies.js +53 -0
  185. package/axios/lib/helpers/deprecatedMethod.js +24 -0
  186. package/axios/lib/helpers/isAbsoluteURL.js +14 -0
  187. package/axios/lib/helpers/isAxiosError.js +11 -0
  188. package/axios/lib/helpers/isURLSameOrigin.js +68 -0
  189. package/axios/lib/helpers/normalizeHeaderName.js +12 -0
  190. package/axios/lib/helpers/parseHeaders.js +53 -0
  191. package/axios/lib/helpers/spread.js +27 -0
  192. package/axios/lib/helpers/validator.js +105 -0
  193. package/axios/lib/utils.js +349 -0
  194. package/axios/package.json +84 -0
  195. package/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
  196. package/bcrypt-pbkdf/LICENSE +66 -0
  197. package/bcrypt-pbkdf/README.md +45 -0
  198. package/bcrypt-pbkdf/index.js +556 -0
  199. package/bcrypt-pbkdf/package.json +15 -0
  200. package/caseless/LICENSE +28 -0
  201. package/caseless/README.md +45 -0
  202. package/caseless/index.js +67 -0
  203. package/caseless/package.json +27 -0
  204. package/caseless/test.js +67 -0
  205. package/combined-stream/License +19 -0
  206. package/combined-stream/Readme.md +138 -0
  207. package/combined-stream/lib/combined_stream.js +208 -0
  208. package/combined-stream/package.json +25 -0
  209. package/combined-stream/yarn.lock +17 -0
  210. package/core-util-is/LICENSE +19 -0
  211. package/core-util-is/README.md +3 -0
  212. package/core-util-is/float.patch +604 -0
  213. package/core-util-is/lib/util.js +107 -0
  214. package/core-util-is/package.json +32 -0
  215. package/core-util-is/test.js +68 -0
  216. package/dashdash/CHANGES.md +364 -0
  217. package/dashdash/LICENSE.txt +24 -0
  218. package/dashdash/README.md +574 -0
  219. package/dashdash/etc/dashdash.bash_completion.in +389 -0
  220. package/dashdash/lib/dashdash.js +1055 -0
  221. package/dashdash/package.json +26 -0
  222. package/delayed-stream/License +19 -0
  223. package/delayed-stream/Makefile +7 -0
  224. package/delayed-stream/Readme.md +141 -0
  225. package/delayed-stream/lib/delayed_stream.js +107 -0
  226. package/delayed-stream/package.json +27 -0
  227. package/ecc-jsbn/LICENSE +21 -0
  228. package/ecc-jsbn/README.md +8 -0
  229. package/ecc-jsbn/index.js +58 -0
  230. package/ecc-jsbn/lib/LICENSE-jsbn +40 -0
  231. package/ecc-jsbn/lib/ec.js +561 -0
  232. package/ecc-jsbn/lib/sec.js +170 -0
  233. package/ecc-jsbn/package.json +40 -0
  234. package/ecc-jsbn/test.js +14 -0
  235. package/extend/.editorconfig +20 -0
  236. package/extend/.eslintrc +17 -0
  237. package/extend/.jscs.json +175 -0
  238. package/extend/.travis.yml +230 -0
  239. package/extend/CHANGELOG.md +83 -0
  240. package/extend/LICENSE +23 -0
  241. package/extend/README.md +81 -0
  242. package/extend/component.json +32 -0
  243. package/extend/index.js +117 -0
  244. package/extend/package.json +42 -0
  245. package/extsprintf/.gitmodules +0 -0
  246. package/extsprintf/LICENSE +19 -0
  247. package/extsprintf/Makefile +24 -0
  248. package/extsprintf/Makefile.targ +285 -0
  249. package/extsprintf/README.md +46 -0
  250. package/extsprintf/jsl.node.conf +137 -0
  251. package/extsprintf/lib/extsprintf.js +183 -0
  252. package/extsprintf/package.json +14 -0
  253. package/fast-deep-equal/LICENSE +21 -0
  254. package/fast-deep-equal/README.md +96 -0
  255. package/fast-deep-equal/es6/index.d.ts +2 -0
  256. package/fast-deep-equal/es6/index.js +72 -0
  257. package/fast-deep-equal/es6/react.d.ts +2 -0
  258. package/fast-deep-equal/es6/react.js +79 -0
  259. package/fast-deep-equal/index.d.ts +4 -0
  260. package/fast-deep-equal/index.js +46 -0
  261. package/fast-deep-equal/package.json +61 -0
  262. package/fast-deep-equal/react.d.ts +2 -0
  263. package/fast-deep-equal/react.js +53 -0
  264. package/fast-json-stable-stringify/.eslintrc.yml +26 -0
  265. package/fast-json-stable-stringify/.github/FUNDING.yml +1 -0
  266. package/fast-json-stable-stringify/.travis.yml +8 -0
  267. package/fast-json-stable-stringify/LICENSE +21 -0
  268. package/fast-json-stable-stringify/README.md +131 -0
  269. package/fast-json-stable-stringify/benchmark/index.js +31 -0
  270. package/fast-json-stable-stringify/benchmark/test.json +137 -0
  271. package/fast-json-stable-stringify/example/key_cmp.js +7 -0
  272. package/fast-json-stable-stringify/example/nested.js +3 -0
  273. package/fast-json-stable-stringify/example/str.js +3 -0
  274. package/fast-json-stable-stringify/example/value_cmp.js +7 -0
  275. package/fast-json-stable-stringify/index.d.ts +4 -0
  276. package/fast-json-stable-stringify/index.js +59 -0
  277. package/fast-json-stable-stringify/package.json +52 -0
  278. package/fast-json-stable-stringify/test/cmp.js +13 -0
  279. package/fast-json-stable-stringify/test/nested.js +44 -0
  280. package/fast-json-stable-stringify/test/str.js +46 -0
  281. package/fast-json-stable-stringify/test/to-json.js +22 -0
  282. package/follow-redirects/LICENSE +18 -0
  283. package/follow-redirects/README.md +155 -0
  284. package/follow-redirects/debug.js +15 -0
  285. package/follow-redirects/http.js +1 -0
  286. package/follow-redirects/https.js +1 -0
  287. package/follow-redirects/index.js +598 -0
  288. package/follow-redirects/package.json +59 -0
  289. package/forever-agent/LICENSE +55 -0
  290. package/forever-agent/README.md +4 -0
  291. package/forever-agent/index.js +138 -0
  292. package/forever-agent/package.json +17 -0
  293. package/form-data/License +19 -0
  294. package/form-data/README.md +234 -0
  295. package/form-data/README.md.bak +234 -0
  296. package/form-data/lib/browser.js +2 -0
  297. package/form-data/lib/form_data.js +457 -0
  298. package/form-data/lib/populate.js +10 -0
  299. package/form-data/package.json +65 -0
  300. package/form-data/yarn.lock +2662 -0
  301. package/getpass/.travis.yml +9 -0
  302. package/getpass/LICENSE +18 -0
  303. package/getpass/README.md +32 -0
  304. package/getpass/lib/index.js +123 -0
  305. package/getpass/package.json +18 -0
  306. package/har-schema/LICENSE +13 -0
  307. package/har-schema/README.md +49 -0
  308. package/har-schema/lib/afterRequest.json +30 -0
  309. package/har-schema/lib/beforeRequest.json +30 -0
  310. package/har-schema/lib/browser.json +20 -0
  311. package/har-schema/lib/cache.json +21 -0
  312. package/har-schema/lib/content.json +29 -0
  313. package/har-schema/lib/cookie.json +36 -0
  314. package/har-schema/lib/creator.json +20 -0
  315. package/har-schema/lib/entry.json +53 -0
  316. package/har-schema/lib/har.json +13 -0
  317. package/har-schema/lib/header.json +20 -0
  318. package/har-schema/lib/index.js +22 -0
  319. package/har-schema/lib/log.json +36 -0
  320. package/har-schema/lib/page.json +32 -0
  321. package/har-schema/lib/pageTimings.json +18 -0
  322. package/har-schema/lib/postData.json +43 -0
  323. package/har-schema/lib/query.json +20 -0
  324. package/har-schema/lib/request.json +57 -0
  325. package/har-schema/lib/response.json +54 -0
  326. package/har-schema/lib/timings.json +42 -0
  327. package/har-schema/package.json +54 -0
  328. package/har-validator/LICENSE +9 -0
  329. package/har-validator/README.md +43 -0
  330. package/har-validator/lib/async.js +105 -0
  331. package/har-validator/lib/error.js +17 -0
  332. package/har-validator/lib/promise.js +102 -0
  333. package/har-validator/package.json +43 -0
  334. package/http-signature/.dir-locals.el +6 -0
  335. package/http-signature/CHANGES.md +46 -0
  336. package/http-signature/LICENSE +18 -0
  337. package/http-signature/README.md +79 -0
  338. package/http-signature/http_signing.md +363 -0
  339. package/http-signature/lib/index.js +29 -0
  340. package/http-signature/lib/parser.js +315 -0
  341. package/http-signature/lib/signer.js +401 -0
  342. package/http-signature/lib/utils.js +112 -0
  343. package/http-signature/lib/verify.js +88 -0
  344. package/http-signature/package.json +39 -0
  345. package/is-typedarray/LICENSE.md +18 -0
  346. package/is-typedarray/README.md +16 -0
  347. package/is-typedarray/index.js +41 -0
  348. package/is-typedarray/package.json +30 -0
  349. package/is-typedarray/test.js +34 -0
  350. package/isstream/.jshintrc +59 -0
  351. package/isstream/.travis.yml +12 -0
  352. package/isstream/LICENSE.md +11 -0
  353. package/isstream/README.md +66 -0
  354. package/isstream/isstream.js +27 -0
  355. package/isstream/package.json +33 -0
  356. package/isstream/test.js +168 -0
  357. package/jsbn/LICENSE +40 -0
  358. package/jsbn/README.md +175 -0
  359. package/jsbn/example.html +12 -0
  360. package/jsbn/example.js +3 -0
  361. package/jsbn/index.js +1357 -0
  362. package/jsbn/package.json +21 -0
  363. package/json-schema/LICENSE +195 -0
  364. package/json-schema/README.md +3 -0
  365. package/json-schema/lib/links.js +65 -0
  366. package/json-schema/lib/validate.js +271 -0
  367. package/json-schema/package.json +24 -0
  368. package/json-schema-traverse/.eslintrc.yml +27 -0
  369. package/json-schema-traverse/.travis.yml +8 -0
  370. package/json-schema-traverse/LICENSE +21 -0
  371. package/json-schema-traverse/README.md +83 -0
  372. package/json-schema-traverse/index.js +89 -0
  373. package/json-schema-traverse/package.json +43 -0
  374. package/json-schema-traverse/spec/.eslintrc.yml +6 -0
  375. package/json-schema-traverse/spec/fixtures/schema.js +125 -0
  376. package/json-schema-traverse/spec/index.spec.js +171 -0
  377. package/json-stringify-safe/CHANGELOG.md +14 -0
  378. package/json-stringify-safe/LICENSE +15 -0
  379. package/json-stringify-safe/Makefile +35 -0
  380. package/json-stringify-safe/README.md +52 -0
  381. package/json-stringify-safe/package.json +31 -0
  382. package/json-stringify-safe/stringify.js +27 -0
  383. package/json-stringify-safe/test/mocha.opts +2 -0
  384. package/json-stringify-safe/test/stringify_test.js +246 -0
  385. package/jsprim/CHANGES.md +53 -0
  386. package/jsprim/CONTRIBUTING.md +19 -0
  387. package/jsprim/LICENSE +19 -0
  388. package/jsprim/README.md +287 -0
  389. package/jsprim/lib/jsprim.js +735 -0
  390. package/jsprim/package.json +20 -0
  391. package/m3u8stream/LICENSE +21 -0
  392. package/m3u8stream/README.md +81 -0
  393. package/m3u8stream/dist/dash-mpd-parser.d.ts +11 -0
  394. package/m3u8stream/dist/dash-mpd-parser.js +183 -0
  395. package/m3u8stream/dist/dash-mpd-parser.js.map +1 -0
  396. package/m3u8stream/dist/index.d.ts +31 -0
  397. package/m3u8stream/dist/index.js +180 -0
  398. package/m3u8stream/dist/index.js.map +1 -0
  399. package/m3u8stream/dist/m3u8-parser.d.ts +18 -0
  400. package/m3u8stream/dist/m3u8-parser.js +111 -0
  401. package/m3u8stream/dist/m3u8-parser.js.map +1 -0
  402. package/m3u8stream/dist/parse-time.d.ts +16 -0
  403. package/m3u8stream/dist/parse-time.js +59 -0
  404. package/m3u8stream/dist/parse-time.js.map +1 -0
  405. package/m3u8stream/dist/parser.d.ts +19 -0
  406. package/m3u8stream/dist/parser.js +3 -0
  407. package/m3u8stream/dist/parser.js.map +1 -0
  408. package/m3u8stream/dist/queue.d.ts +39 -0
  409. package/m3u8stream/dist/queue.js +58 -0
  410. package/m3u8stream/dist/queue.js.map +1 -0
  411. package/m3u8stream/node_modules/sax/LICENSE +41 -0
  412. package/m3u8stream/node_modules/sax/README.md +225 -0
  413. package/m3u8stream/node_modules/sax/lib/sax.js +1565 -0
  414. package/m3u8stream/node_modules/sax/package.json +25 -0
  415. package/m3u8stream/package.json +54 -0
  416. package/mime-db/HISTORY.md +507 -0
  417. package/mime-db/LICENSE +23 -0
  418. package/mime-db/README.md +100 -0
  419. package/mime-db/db.json +8519 -0
  420. package/mime-db/index.js +12 -0
  421. package/mime-db/package.json +60 -0
  422. package/mime-types/HISTORY.md +397 -0
  423. package/mime-types/LICENSE +23 -0
  424. package/mime-types/README.md +113 -0
  425. package/mime-types/index.js +188 -0
  426. package/mime-types/package.json +44 -0
  427. package/miniget/LICENSE +21 -0
  428. package/miniget/README.md +111 -0
  429. package/miniget/dist/index.d.ts +65 -0
  430. package/miniget/dist/index.js +281 -0
  431. package/miniget/dist/index.js.map +1 -0
  432. package/miniget/package.json +49 -0
  433. package/oauth-sign/LICENSE +55 -0
  434. package/oauth-sign/README.md +11 -0
  435. package/oauth-sign/index.js +146 -0
  436. package/oauth-sign/package.json +23 -0
  437. package/package.json +11 -0
  438. package/performance-now/.tm_properties +7 -0
  439. package/performance-now/.travis.yml +6 -0
  440. package/performance-now/README.md +30 -0
  441. package/performance-now/lib/performance-now.js +36 -0
  442. package/performance-now/lib/performance-now.js.map +10 -0
  443. package/performance-now/license.txt +7 -0
  444. package/performance-now/package.json +35 -0
  445. package/performance-now/src/index.d.ts +8 -0
  446. package/performance-now/src/performance-now.coffee +17 -0
  447. package/performance-now/test/mocha.opts +3 -0
  448. package/performance-now/test/performance-now.coffee +43 -0
  449. package/performance-now/test/scripts/delayed-call.coffee +11 -0
  450. package/performance-now/test/scripts/delayed-require.coffee +12 -0
  451. package/performance-now/test/scripts/difference.coffee +6 -0
  452. package/performance-now/test/scripts/initial-value.coffee +10 -0
  453. package/performance-now/test/scripts.coffee +27 -0
  454. package/psl/.env +0 -0
  455. package/psl/LICENSE +9 -0
  456. package/psl/README.md +211 -0
  457. package/psl/browserstack-logo.svg +90 -0
  458. package/psl/data/rules.json +9376 -0
  459. package/psl/dist/psl.js +10187 -0
  460. package/psl/dist/psl.min.js +1 -0
  461. package/psl/index.js +269 -0
  462. package/psl/package.json +43 -0
  463. package/punycode/LICENSE-MIT.txt +20 -0
  464. package/punycode/README.md +122 -0
  465. package/punycode/package.json +58 -0
  466. package/punycode/punycode.es6.js +441 -0
  467. package/punycode/punycode.js +440 -0
  468. package/qs/.editorconfig +43 -0
  469. package/qs/.eslintrc +37 -0
  470. package/qs/.github/FUNDING.yml +12 -0
  471. package/qs/.nycrc +13 -0
  472. package/qs/CHANGELOG.md +250 -0
  473. package/qs/LICENSE.md +29 -0
  474. package/qs/README.md +510 -0
  475. package/qs/bower.json +21 -0
  476. package/qs/component.json +15 -0
  477. package/qs/dist/qs.js +648 -0
  478. package/qs/lib/formats.js +18 -0
  479. package/qs/lib/index.js +11 -0
  480. package/qs/lib/parse.js +175 -0
  481. package/qs/lib/stringify.js +217 -0
  482. package/qs/lib/utils.js +215 -0
  483. package/qs/package.json +54 -0
  484. package/qs/test/index.js +7 -0
  485. package/qs/test/parse.js +649 -0
  486. package/qs/test/stringify.js +642 -0
  487. package/qs/test/utils.js +65 -0
  488. package/request/CHANGELOG.md +717 -0
  489. package/request/LICENSE +55 -0
  490. package/request/README.md +1133 -0
  491. package/request/index.js +155 -0
  492. package/request/lib/auth.js +167 -0
  493. package/request/lib/cookies.js +38 -0
  494. package/request/lib/getProxyFromURI.js +79 -0
  495. package/request/lib/har.js +205 -0
  496. package/request/lib/hawk.js +89 -0
  497. package/request/lib/helpers.js +66 -0
  498. package/request/lib/multipart.js +112 -0
  499. package/request/lib/oauth.js +148 -0
  500. package/request/lib/querystring.js +50 -0
  501. package/request/lib/redirect.js +154 -0
  502. package/request/lib/tunnel.js +175 -0
  503. package/request/package.json +86 -0
  504. package/request/request.js +1553 -0
  505. package/safe-buffer/LICENSE +21 -0
  506. package/safe-buffer/README.md +584 -0
  507. package/safe-buffer/index.d.ts +187 -0
  508. package/safe-buffer/index.js +65 -0
  509. package/safe-buffer/package.json +51 -0
  510. package/safer-buffer/LICENSE +21 -0
  511. package/safer-buffer/Porting-Buffer.md +268 -0
  512. package/safer-buffer/Readme.md +156 -0
  513. package/safer-buffer/dangerous.js +58 -0
  514. package/safer-buffer/package.json +34 -0
  515. package/safer-buffer/safer.js +77 -0
  516. package/safer-buffer/tests.js +406 -0
  517. package/sax/AUTHORS +10 -0
  518. package/sax/LICENSE +32 -0
  519. package/sax/LICENSE-W3C.html +188 -0
  520. package/sax/README.md +216 -0
  521. package/sax/component.json +12 -0
  522. package/sax/examples/big-not-pretty.xml +8002 -0
  523. package/sax/examples/example.js +29 -0
  524. package/sax/examples/get-products.js +58 -0
  525. package/sax/examples/hello-world.js +4 -0
  526. package/sax/examples/not-pretty.xml +8 -0
  527. package/sax/examples/pretty-print.js +74 -0
  528. package/sax/examples/shopping.xml +2 -0
  529. package/sax/examples/strict.dtd +870 -0
  530. package/sax/examples/test.html +15 -0
  531. package/sax/examples/test.xml +1254 -0
  532. package/sax/lib/sax.js +1355 -0
  533. package/sax/package.json +12 -0
  534. package/sax/test/attribute-name.js +33 -0
  535. package/sax/test/attribute-no-space.js +75 -0
  536. package/sax/test/buffer-overrun.js +26 -0
  537. package/sax/test/case.js +50 -0
  538. package/sax/test/cdata-chunked.js +11 -0
  539. package/sax/test/cdata-end-split.js +15 -0
  540. package/sax/test/cdata-fake-end.js +28 -0
  541. package/sax/test/cdata-multiple.js +15 -0
  542. package/sax/test/cdata.js +10 -0
  543. package/sax/test/cyrillic.js +8 -0
  544. package/sax/test/duplicate-attribute.js +13 -0
  545. package/sax/test/end_empty_stream.js +5 -0
  546. package/sax/test/entities.js +10 -0
  547. package/sax/test/entity-mega.js +16 -0
  548. package/sax/test/flush.js +13 -0
  549. package/sax/test/index.js +86 -0
  550. package/sax/test/issue-23.js +43 -0
  551. package/sax/test/issue-30.js +24 -0
  552. package/sax/test/issue-35.js +15 -0
  553. package/sax/test/issue-47.js +12 -0
  554. package/sax/test/issue-49.js +31 -0
  555. package/sax/test/issue-84.js +13 -0
  556. package/sax/test/parser-position.js +28 -0
  557. package/sax/test/script-close-better.js +12 -0
  558. package/sax/test/script.js +12 -0
  559. package/sax/test/self-closing-child-strict.js +44 -0
  560. package/sax/test/self-closing-child.js +44 -0
  561. package/sax/test/self-closing-tag.js +25 -0
  562. package/sax/test/stray-ending.js +17 -0
  563. package/sax/test/trailing-attribute-no-value.js +10 -0
  564. package/sax/test/trailing-non-whitespace.js +18 -0
  565. package/sax/test/unclosed-root.js +11 -0
  566. package/sax/test/unquoted.js +18 -0
  567. package/sax/test/utf8-split.js +32 -0
  568. package/sax/test/xmlns-as-tag-name.js +15 -0
  569. package/sax/test/xmlns-issue-41.js +68 -0
  570. package/sax/test/xmlns-rebinding.js +63 -0
  571. package/sax/test/xmlns-strict.js +74 -0
  572. package/sax/test/xmlns-unbound-element.js +33 -0
  573. package/sax/test/xmlns-unbound.js +15 -0
  574. package/sax/test/xmlns-xml-default-ns.js +31 -0
  575. package/sax/test/xmlns-xml-default-prefix-attribute.js +36 -0
  576. package/sax/test/xmlns-xml-default-prefix.js +21 -0
  577. package/sax/test/xmlns-xml-default-redefine.js +41 -0
  578. package/simple-csv-reader/.editorconfig +8 -0
  579. package/simple-csv-reader/LICENSE +21 -0
  580. package/simple-csv-reader/README.md +32 -0
  581. package/simple-csv-reader/dist/simple-csv-reader.min.js +2 -0
  582. package/simple-csv-reader/dist/simple-csv-reader.min.js.map +1 -0
  583. package/simple-csv-reader/gulpfile.js +26 -0
  584. package/simple-csv-reader/index.js +131 -0
  585. package/simple-csv-reader/package.json +38 -0
  586. package/sshpk/.travis.yml +11 -0
  587. package/sshpk/Jenkinsfile +86 -0
  588. package/sshpk/LICENSE +18 -0
  589. package/sshpk/README.md +804 -0
  590. package/sshpk/bin/sshpk-conv +243 -0
  591. package/sshpk/bin/sshpk-sign +191 -0
  592. package/sshpk/bin/sshpk-verify +167 -0
  593. package/sshpk/lib/algs.js +168 -0
  594. package/sshpk/lib/certificate.js +410 -0
  595. package/sshpk/lib/dhe.js +397 -0
  596. package/sshpk/lib/ed-compat.js +92 -0
  597. package/sshpk/lib/errors.js +84 -0
  598. package/sshpk/lib/fingerprint.js +220 -0
  599. package/sshpk/lib/formats/auto.js +124 -0
  600. package/sshpk/lib/formats/dnssec.js +287 -0
  601. package/sshpk/lib/formats/openssh-cert.js +352 -0
  602. package/sshpk/lib/formats/pem.js +290 -0
  603. package/sshpk/lib/formats/pkcs1.js +373 -0
  604. package/sshpk/lib/formats/pkcs8.js +631 -0
  605. package/sshpk/lib/formats/putty.js +194 -0
  606. package/sshpk/lib/formats/rfc4253.js +166 -0
  607. package/sshpk/lib/formats/ssh-private.js +262 -0
  608. package/sshpk/lib/formats/ssh.js +115 -0
  609. package/sshpk/lib/formats/x509-pem.js +88 -0
  610. package/sshpk/lib/formats/x509.js +752 -0
  611. package/sshpk/lib/identity.js +373 -0
  612. package/sshpk/lib/index.js +40 -0
  613. package/sshpk/lib/key.js +294 -0
  614. package/sshpk/lib/private-key.js +247 -0
  615. package/sshpk/lib/signature.js +314 -0
  616. package/sshpk/lib/ssh-buffer.js +149 -0
  617. package/sshpk/lib/utils.js +404 -0
  618. package/sshpk/man/man1/sshpk-conv.1 +135 -0
  619. package/sshpk/man/man1/sshpk-sign.1 +81 -0
  620. package/sshpk/man/man1/sshpk-verify.1 +68 -0
  621. package/sshpk/package.json +60 -0
  622. package/tough-cookie/LICENSE +12 -0
  623. package/tough-cookie/README.md +527 -0
  624. package/tough-cookie/lib/cookie.js +1482 -0
  625. package/tough-cookie/lib/memstore.js +181 -0
  626. package/tough-cookie/lib/pathMatch.js +61 -0
  627. package/tough-cookie/lib/permuteDomain.js +56 -0
  628. package/tough-cookie/lib/pubsuffix-psl.js +38 -0
  629. package/tough-cookie/lib/store.js +75 -0
  630. package/tough-cookie/lib/version.js +2 -0
  631. package/tough-cookie/package.json +78 -0
  632. package/tunnel-agent/LICENSE +55 -0
  633. package/tunnel-agent/README.md +4 -0
  634. package/tunnel-agent/index.js +244 -0
  635. package/tunnel-agent/package.json +22 -0
  636. package/tweetnacl/AUTHORS.md +28 -0
  637. package/tweetnacl/CHANGELOG.md +221 -0
  638. package/tweetnacl/LICENSE +24 -0
  639. package/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
  640. package/tweetnacl/README.md +459 -0
  641. package/tweetnacl/nacl-fast.js +2388 -0
  642. package/tweetnacl/nacl-fast.min.js +2 -0
  643. package/tweetnacl/nacl.d.ts +98 -0
  644. package/tweetnacl/nacl.js +1175 -0
  645. package/tweetnacl/nacl.min.js +1 -0
  646. package/tweetnacl/package.json +58 -0
  647. package/uri-js/LICENSE +11 -0
  648. package/uri-js/README.md +203 -0
  649. package/uri-js/dist/es5/uri.all.d.ts +59 -0
  650. package/uri-js/dist/es5/uri.all.js +1443 -0
  651. package/uri-js/dist/es5/uri.all.js.map +1 -0
  652. package/uri-js/dist/es5/uri.all.min.d.ts +59 -0
  653. package/uri-js/dist/es5/uri.all.min.js +3 -0
  654. package/uri-js/dist/es5/uri.all.min.js.map +1 -0
  655. package/uri-js/dist/esnext/index.d.ts +1 -0
  656. package/uri-js/dist/esnext/index.js +17 -0
  657. package/uri-js/dist/esnext/index.js.map +1 -0
  658. package/uri-js/dist/esnext/regexps-iri.d.ts +3 -0
  659. package/uri-js/dist/esnext/regexps-iri.js +3 -0
  660. package/uri-js/dist/esnext/regexps-iri.js.map +1 -0
  661. package/uri-js/dist/esnext/regexps-uri.d.ts +4 -0
  662. package/uri-js/dist/esnext/regexps-uri.js +42 -0
  663. package/uri-js/dist/esnext/regexps-uri.js.map +1 -0
  664. package/uri-js/dist/esnext/schemes/http.d.ts +3 -0
  665. package/uri-js/dist/esnext/schemes/http.js +28 -0
  666. package/uri-js/dist/esnext/schemes/http.js.map +1 -0
  667. package/uri-js/dist/esnext/schemes/https.d.ts +3 -0
  668. package/uri-js/dist/esnext/schemes/https.js +9 -0
  669. package/uri-js/dist/esnext/schemes/https.js.map +1 -0
  670. package/uri-js/dist/esnext/schemes/mailto.d.ts +12 -0
  671. package/uri-js/dist/esnext/schemes/mailto.js +148 -0
  672. package/uri-js/dist/esnext/schemes/mailto.js.map +1 -0
  673. package/uri-js/dist/esnext/schemes/urn-uuid.d.ts +7 -0
  674. package/uri-js/dist/esnext/schemes/urn-uuid.js +23 -0
  675. package/uri-js/dist/esnext/schemes/urn-uuid.js.map +1 -0
  676. package/uri-js/dist/esnext/schemes/urn.d.ts +10 -0
  677. package/uri-js/dist/esnext/schemes/urn.js +49 -0
  678. package/uri-js/dist/esnext/schemes/urn.js.map +1 -0
  679. package/uri-js/dist/esnext/schemes/ws.d.ts +7 -0
  680. package/uri-js/dist/esnext/schemes/ws.js +41 -0
  681. package/uri-js/dist/esnext/schemes/ws.js.map +1 -0
  682. package/uri-js/dist/esnext/schemes/wss.d.ts +3 -0
  683. package/uri-js/dist/esnext/schemes/wss.js +9 -0
  684. package/uri-js/dist/esnext/schemes/wss.js.map +1 -0
  685. package/uri-js/dist/esnext/uri.d.ts +59 -0
  686. package/uri-js/dist/esnext/uri.js +480 -0
  687. package/uri-js/dist/esnext/uri.js.map +1 -0
  688. package/uri-js/dist/esnext/util.d.ts +6 -0
  689. package/uri-js/dist/esnext/util.js +36 -0
  690. package/uri-js/dist/esnext/util.js.map +1 -0
  691. package/uri-js/package.json +77 -0
  692. package/uri-js/yarn.lock +2558 -0
  693. package/uuid/AUTHORS +5 -0
  694. package/uuid/CHANGELOG.md +119 -0
  695. package/uuid/LICENSE.md +21 -0
  696. package/uuid/README.md +276 -0
  697. package/uuid/bin/uuid +65 -0
  698. package/uuid/index.js +8 -0
  699. package/uuid/lib/bytesToUuid.js +26 -0
  700. package/uuid/lib/md5-browser.js +216 -0
  701. package/uuid/lib/md5.js +25 -0
  702. package/uuid/lib/rng-browser.js +34 -0
  703. package/uuid/lib/rng.js +8 -0
  704. package/uuid/lib/sha1-browser.js +89 -0
  705. package/uuid/lib/sha1.js +25 -0
  706. package/uuid/lib/v35.js +57 -0
  707. package/uuid/package.json +49 -0
  708. package/uuid/v1.js +109 -0
  709. package/uuid/v3.js +4 -0
  710. package/uuid/v4.js +29 -0
  711. package/uuid/v5.js +3 -0
  712. package/verror/CHANGES.md +28 -0
  713. package/verror/CONTRIBUTING.md +19 -0
  714. package/verror/LICENSE +19 -0
  715. package/verror/README.md +528 -0
  716. package/verror/lib/verror.js +451 -0
  717. package/verror/package.json +22 -0
  718. package/xml2js/.travis.yml +5 -0
  719. package/xml2js/83.coffee +6 -0
  720. package/xml2js/LICENSE +19 -0
  721. package/xml2js/README.md +248 -0
  722. package/xml2js/canon.xml +482 -0
  723. package/xml2js/lib/xml2js.js +299 -0
  724. package/xml2js/package.json +47 -0
  725. package/xml2js/text.coffee +11 -0
  726. package/xml2js/text.xml +485 -0
  727. package/youtube-search/.travis.yml +5 -0
  728. package/youtube-search/README.md +61 -0
  729. package/youtube-search/index.d.ts +77 -0
  730. package/youtube-search/index.js +111 -0
  731. package/youtube-search/package.json +29 -0
  732. package/youtube-search/tests/test-search.js +32 -0
  733. package/ytdl-core/LICENSE +21 -0
  734. package/ytdl-core/README.md +238 -0
  735. package/ytdl-core/lib/cache.js +54 -0
  736. package/ytdl-core/lib/format-utils.js +250 -0
  737. package/ytdl-core/lib/formats.js +524 -0
  738. package/ytdl-core/lib/index.js +214 -0
  739. package/ytdl-core/lib/info-extras.js +365 -0
  740. package/ytdl-core/lib/info.js +495 -0
  741. package/ytdl-core/lib/sig.js +122 -0
  742. package/ytdl-core/lib/url-utils.js +91 -0
  743. package/ytdl-core/lib/utils.js +286 -0
  744. package/ytdl-core/node_modules/sax/LICENSE +41 -0
  745. package/ytdl-core/node_modules/sax/README.md +225 -0
  746. package/ytdl-core/node_modules/sax/lib/sax.js +1565 -0
  747. package/ytdl-core/node_modules/sax/package.json +25 -0
  748. package/ytdl-core/package.json +61 -0
  749. package/ytdl-core/typings/index.d.ts +426 -0
  750. package/ytdl-getinfo/.travis.yml +3 -0
  751. package/ytdl-getinfo/README.md +77 -0
  752. package/ytdl-getinfo/index.js +105 -0
  753. package/ytdl-getinfo/package.json +33 -0
  754. package/ytdl-getinfo/playlist.js +50 -0
  755. package/ytdl-getinfo/test/test.js +68 -0
  756. package/ytdl-getinfo/updater.js +42 -0
  757. package/ytdl-getinfo/yarn.lock +533 -0
  758. package/ytdl-getinfo/ytdl/.gitkeep +0 -0
  759. package/ytdl-getinfo/ytdl/youtube-dl.exe +0 -0
@@ -0,0 +1,598 @@
1
+ var url = require("url");
2
+ var URL = url.URL;
3
+ var http = require("http");
4
+ var https = require("https");
5
+ var Writable = require("stream").Writable;
6
+ var assert = require("assert");
7
+ var debug = require("./debug");
8
+
9
+ // Create handlers that pass events from native requests
10
+ var events = ["abort", "aborted", "connect", "error", "socket", "timeout"];
11
+ var eventHandlers = Object.create(null);
12
+ events.forEach(function (event) {
13
+ eventHandlers[event] = function (arg1, arg2, arg3) {
14
+ this._redirectable.emit(event, arg1, arg2, arg3);
15
+ };
16
+ });
17
+
18
+ // Error types with codes
19
+ var RedirectionError = createErrorType(
20
+ "ERR_FR_REDIRECTION_FAILURE",
21
+ "Redirected request failed"
22
+ );
23
+ var TooManyRedirectsError = createErrorType(
24
+ "ERR_FR_TOO_MANY_REDIRECTS",
25
+ "Maximum number of redirects exceeded"
26
+ );
27
+ var MaxBodyLengthExceededError = createErrorType(
28
+ "ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
29
+ "Request body larger than maxBodyLength limit"
30
+ );
31
+ var WriteAfterEndError = createErrorType(
32
+ "ERR_STREAM_WRITE_AFTER_END",
33
+ "write after end"
34
+ );
35
+
36
+ // An HTTP(S) request that can be redirected
37
+ function RedirectableRequest(options, responseCallback) {
38
+ // Initialize the request
39
+ Writable.call(this);
40
+ this._sanitizeOptions(options);
41
+ this._options = options;
42
+ this._ended = false;
43
+ this._ending = false;
44
+ this._redirectCount = 0;
45
+ this._redirects = [];
46
+ this._requestBodyLength = 0;
47
+ this._requestBodyBuffers = [];
48
+
49
+ // Attach a callback if passed
50
+ if (responseCallback) {
51
+ this.on("response", responseCallback);
52
+ }
53
+
54
+ // React to responses of native requests
55
+ var self = this;
56
+ this._onNativeResponse = function (response) {
57
+ self._processResponse(response);
58
+ };
59
+
60
+ // Perform the first request
61
+ this._performRequest();
62
+ }
63
+ RedirectableRequest.prototype = Object.create(Writable.prototype);
64
+
65
+ RedirectableRequest.prototype.abort = function () {
66
+ abortRequest(this._currentRequest);
67
+ this.emit("abort");
68
+ };
69
+
70
+ // Writes buffered data to the current native request
71
+ RedirectableRequest.prototype.write = function (data, encoding, callback) {
72
+ // Writing is not allowed if end has been called
73
+ if (this._ending) {
74
+ throw new WriteAfterEndError();
75
+ }
76
+
77
+ // Validate input and shift parameters if necessary
78
+ if (!(typeof data === "string" || typeof data === "object" && ("length" in data))) {
79
+ throw new TypeError("data should be a string, Buffer or Uint8Array");
80
+ }
81
+ if (typeof encoding === "function") {
82
+ callback = encoding;
83
+ encoding = null;
84
+ }
85
+
86
+ // Ignore empty buffers, since writing them doesn't invoke the callback
87
+ // https://github.com/nodejs/node/issues/22066
88
+ if (data.length === 0) {
89
+ if (callback) {
90
+ callback();
91
+ }
92
+ return;
93
+ }
94
+ // Only write when we don't exceed the maximum body length
95
+ if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
96
+ this._requestBodyLength += data.length;
97
+ this._requestBodyBuffers.push({ data: data, encoding: encoding });
98
+ this._currentRequest.write(data, encoding, callback);
99
+ }
100
+ // Error when we exceed the maximum body length
101
+ else {
102
+ this.emit("error", new MaxBodyLengthExceededError());
103
+ this.abort();
104
+ }
105
+ };
106
+
107
+ // Ends the current native request
108
+ RedirectableRequest.prototype.end = function (data, encoding, callback) {
109
+ // Shift parameters if necessary
110
+ if (typeof data === "function") {
111
+ callback = data;
112
+ data = encoding = null;
113
+ }
114
+ else if (typeof encoding === "function") {
115
+ callback = encoding;
116
+ encoding = null;
117
+ }
118
+
119
+ // Write data if needed and end
120
+ if (!data) {
121
+ this._ended = this._ending = true;
122
+ this._currentRequest.end(null, null, callback);
123
+ }
124
+ else {
125
+ var self = this;
126
+ var currentRequest = this._currentRequest;
127
+ this.write(data, encoding, function () {
128
+ self._ended = true;
129
+ currentRequest.end(null, null, callback);
130
+ });
131
+ this._ending = true;
132
+ }
133
+ };
134
+
135
+ // Sets a header value on the current native request
136
+ RedirectableRequest.prototype.setHeader = function (name, value) {
137
+ this._options.headers[name] = value;
138
+ this._currentRequest.setHeader(name, value);
139
+ };
140
+
141
+ // Clears a header value on the current native request
142
+ RedirectableRequest.prototype.removeHeader = function (name) {
143
+ delete this._options.headers[name];
144
+ this._currentRequest.removeHeader(name);
145
+ };
146
+
147
+ // Global timeout for all underlying requests
148
+ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
149
+ var self = this;
150
+
151
+ // Destroys the socket on timeout
152
+ function destroyOnTimeout(socket) {
153
+ socket.setTimeout(msecs);
154
+ socket.removeListener("timeout", socket.destroy);
155
+ socket.addListener("timeout", socket.destroy);
156
+ }
157
+
158
+ // Sets up a timer to trigger a timeout event
159
+ function startTimer(socket) {
160
+ if (self._timeout) {
161
+ clearTimeout(self._timeout);
162
+ }
163
+ self._timeout = setTimeout(function () {
164
+ self.emit("timeout");
165
+ clearTimer();
166
+ }, msecs);
167
+ destroyOnTimeout(socket);
168
+ }
169
+
170
+ // Stops a timeout from triggering
171
+ function clearTimer() {
172
+ // Clear the timeout
173
+ if (self._timeout) {
174
+ clearTimeout(self._timeout);
175
+ self._timeout = null;
176
+ }
177
+
178
+ // Clean up all attached listeners
179
+ self.removeListener("abort", clearTimer);
180
+ self.removeListener("error", clearTimer);
181
+ self.removeListener("response", clearTimer);
182
+ if (callback) {
183
+ self.removeListener("timeout", callback);
184
+ }
185
+ if (!self.socket) {
186
+ self._currentRequest.removeListener("socket", startTimer);
187
+ }
188
+ }
189
+
190
+ // Attach callback if passed
191
+ if (callback) {
192
+ this.on("timeout", callback);
193
+ }
194
+
195
+ // Start the timer if or when the socket is opened
196
+ if (this.socket) {
197
+ startTimer(this.socket);
198
+ }
199
+ else {
200
+ this._currentRequest.once("socket", startTimer);
201
+ }
202
+
203
+ // Clean up on events
204
+ this.on("socket", destroyOnTimeout);
205
+ this.on("abort", clearTimer);
206
+ this.on("error", clearTimer);
207
+ this.on("response", clearTimer);
208
+
209
+ return this;
210
+ };
211
+
212
+ // Proxy all other public ClientRequest methods
213
+ [
214
+ "flushHeaders", "getHeader",
215
+ "setNoDelay", "setSocketKeepAlive",
216
+ ].forEach(function (method) {
217
+ RedirectableRequest.prototype[method] = function (a, b) {
218
+ return this._currentRequest[method](a, b);
219
+ };
220
+ });
221
+
222
+ // Proxy all public ClientRequest properties
223
+ ["aborted", "connection", "socket"].forEach(function (property) {
224
+ Object.defineProperty(RedirectableRequest.prototype, property, {
225
+ get: function () { return this._currentRequest[property]; },
226
+ });
227
+ });
228
+
229
+ RedirectableRequest.prototype._sanitizeOptions = function (options) {
230
+ // Ensure headers are always present
231
+ if (!options.headers) {
232
+ options.headers = {};
233
+ }
234
+
235
+ // Since http.request treats host as an alias of hostname,
236
+ // but the url module interprets host as hostname plus port,
237
+ // eliminate the host property to avoid confusion.
238
+ if (options.host) {
239
+ // Use hostname if set, because it has precedence
240
+ if (!options.hostname) {
241
+ options.hostname = options.host;
242
+ }
243
+ delete options.host;
244
+ }
245
+
246
+ // Complete the URL object when necessary
247
+ if (!options.pathname && options.path) {
248
+ var searchPos = options.path.indexOf("?");
249
+ if (searchPos < 0) {
250
+ options.pathname = options.path;
251
+ }
252
+ else {
253
+ options.pathname = options.path.substring(0, searchPos);
254
+ options.search = options.path.substring(searchPos);
255
+ }
256
+ }
257
+ };
258
+
259
+
260
+ // Executes the next native request (initial or redirect)
261
+ RedirectableRequest.prototype._performRequest = function () {
262
+ // Load the native protocol
263
+ var protocol = this._options.protocol;
264
+ var nativeProtocol = this._options.nativeProtocols[protocol];
265
+ if (!nativeProtocol) {
266
+ this.emit("error", new TypeError("Unsupported protocol " + protocol));
267
+ return;
268
+ }
269
+
270
+ // If specified, use the agent corresponding to the protocol
271
+ // (HTTP and HTTPS use different types of agents)
272
+ if (this._options.agents) {
273
+ var scheme = protocol.slice(0, -1);
274
+ this._options.agent = this._options.agents[scheme];
275
+ }
276
+
277
+ // Create the native request and set up its event handlers
278
+ var request = this._currentRequest =
279
+ nativeProtocol.request(this._options, this._onNativeResponse);
280
+ request._redirectable = this;
281
+ for (var event of events) {
282
+ request.on(event, eventHandlers[event]);
283
+ }
284
+
285
+ // RFC7230§5.3.1: When making a request directly to an origin server, […]
286
+ // a client MUST send only the absolute path […] as the request-target.
287
+ this._currentUrl = /^\//.test(this._options.path) ?
288
+ url.format(this._options) :
289
+ // When making a request to a proxy, […]
290
+ // a client MUST send the target URI in absolute-form […].
291
+ this._currentUrl = this._options.path;
292
+
293
+ // End a redirected request
294
+ // (The first request must be ended explicitly with RedirectableRequest#end)
295
+ if (this._isRedirect) {
296
+ // Write the request entity and end
297
+ var i = 0;
298
+ var self = this;
299
+ var buffers = this._requestBodyBuffers;
300
+ (function writeNext(error) {
301
+ // Only write if this request has not been redirected yet
302
+ /* istanbul ignore else */
303
+ if (request === self._currentRequest) {
304
+ // Report any write errors
305
+ /* istanbul ignore if */
306
+ if (error) {
307
+ self.emit("error", error);
308
+ }
309
+ // Write the next buffer if there are still left
310
+ else if (i < buffers.length) {
311
+ var buffer = buffers[i++];
312
+ /* istanbul ignore else */
313
+ if (!request.finished) {
314
+ request.write(buffer.data, buffer.encoding, writeNext);
315
+ }
316
+ }
317
+ // End the request if `end` has been called on us
318
+ else if (self._ended) {
319
+ request.end();
320
+ }
321
+ }
322
+ }());
323
+ }
324
+ };
325
+
326
+ // Processes a response from the current native request
327
+ RedirectableRequest.prototype._processResponse = function (response) {
328
+ // Store the redirected response
329
+ var statusCode = response.statusCode;
330
+ if (this._options.trackRedirects) {
331
+ this._redirects.push({
332
+ url: this._currentUrl,
333
+ headers: response.headers,
334
+ statusCode: statusCode,
335
+ });
336
+ }
337
+
338
+ // RFC7231§6.4: The 3xx (Redirection) class of status code indicates
339
+ // that further action needs to be taken by the user agent in order to
340
+ // fulfill the request. If a Location header field is provided,
341
+ // the user agent MAY automatically redirect its request to the URI
342
+ // referenced by the Location field value,
343
+ // even if the specific status code is not understood.
344
+
345
+ // If the response is not a redirect; return it as-is
346
+ var location = response.headers.location;
347
+ if (!location || this._options.followRedirects === false ||
348
+ statusCode < 300 || statusCode >= 400) {
349
+ response.responseUrl = this._currentUrl;
350
+ response.redirects = this._redirects;
351
+ this.emit("response", response);
352
+
353
+ // Clean up
354
+ this._requestBodyBuffers = [];
355
+ return;
356
+ }
357
+
358
+ // The response is a redirect, so abort the current request
359
+ abortRequest(this._currentRequest);
360
+ // Discard the remainder of the response to avoid waiting for data
361
+ response.destroy();
362
+
363
+ // RFC7231§6.4: A client SHOULD detect and intervene
364
+ // in cyclical redirections (i.e., "infinite" redirection loops).
365
+ if (++this._redirectCount > this._options.maxRedirects) {
366
+ this.emit("error", new TooManyRedirectsError());
367
+ return;
368
+ }
369
+
370
+ // Store the request headers if applicable
371
+ var requestHeaders;
372
+ var beforeRedirect = this._options.beforeRedirect;
373
+ if (beforeRedirect) {
374
+ requestHeaders = Object.assign({
375
+ // The Host header was set by nativeProtocol.request
376
+ Host: response.req.getHeader("host"),
377
+ }, this._options.headers);
378
+ }
379
+
380
+ // RFC7231§6.4: Automatic redirection needs to done with
381
+ // care for methods not known to be safe, […]
382
+ // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change
383
+ // the request method from POST to GET for the subsequent request.
384
+ var method = this._options.method;
385
+ if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" ||
386
+ // RFC7231§6.4.4: The 303 (See Other) status code indicates that
387
+ // the server is redirecting the user agent to a different resource […]
388
+ // A user agent can perform a retrieval request targeting that URI
389
+ // (a GET or HEAD request if using HTTP) […]
390
+ (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {
391
+ this._options.method = "GET";
392
+ // Drop a possible entity and headers related to it
393
+ this._requestBodyBuffers = [];
394
+ removeMatchingHeaders(/^content-/i, this._options.headers);
395
+ }
396
+
397
+ // Drop the Host header, as the redirect might lead to a different host
398
+ var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
399
+
400
+ // If the redirect is relative, carry over the host of the last request
401
+ var currentUrlParts = url.parse(this._currentUrl);
402
+ var currentHost = currentHostHeader || currentUrlParts.host;
403
+ var currentUrl = /^\w+:/.test(location) ? this._currentUrl :
404
+ url.format(Object.assign(currentUrlParts, { host: currentHost }));
405
+
406
+ // Determine the URL of the redirection
407
+ var redirectUrl;
408
+ try {
409
+ redirectUrl = url.resolve(currentUrl, location);
410
+ }
411
+ catch (cause) {
412
+ this.emit("error", new RedirectionError(cause));
413
+ return;
414
+ }
415
+
416
+ // Create the redirected request
417
+ debug("redirecting to", redirectUrl);
418
+ this._isRedirect = true;
419
+ var redirectUrlParts = url.parse(redirectUrl);
420
+ Object.assign(this._options, redirectUrlParts);
421
+
422
+ // Drop confidential headers when redirecting to a less secure protocol
423
+ // or to a different domain that is not a superdomain
424
+ if (redirectUrlParts.protocol !== currentUrlParts.protocol &&
425
+ redirectUrlParts.protocol !== "https:" ||
426
+ redirectUrlParts.host !== currentHost &&
427
+ !isSubdomain(redirectUrlParts.host, currentHost)) {
428
+ removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);
429
+ }
430
+
431
+ // Evaluate the beforeRedirect callback
432
+ if (typeof beforeRedirect === "function") {
433
+ var responseDetails = {
434
+ headers: response.headers,
435
+ statusCode: statusCode,
436
+ };
437
+ var requestDetails = {
438
+ url: currentUrl,
439
+ method: method,
440
+ headers: requestHeaders,
441
+ };
442
+ try {
443
+ beforeRedirect(this._options, responseDetails, requestDetails);
444
+ }
445
+ catch (err) {
446
+ this.emit("error", err);
447
+ return;
448
+ }
449
+ this._sanitizeOptions(this._options);
450
+ }
451
+
452
+ // Perform the redirected request
453
+ try {
454
+ this._performRequest();
455
+ }
456
+ catch (cause) {
457
+ this.emit("error", new RedirectionError(cause));
458
+ }
459
+ };
460
+
461
+ // Wraps the key/value object of protocols with redirect functionality
462
+ function wrap(protocols) {
463
+ // Default settings
464
+ var exports = {
465
+ maxRedirects: 21,
466
+ maxBodyLength: 10 * 1024 * 1024,
467
+ };
468
+
469
+ // Wrap each protocol
470
+ var nativeProtocols = {};
471
+ Object.keys(protocols).forEach(function (scheme) {
472
+ var protocol = scheme + ":";
473
+ var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
474
+ var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);
475
+
476
+ // Executes a request, following redirects
477
+ function request(input, options, callback) {
478
+ // Parse parameters
479
+ if (typeof input === "string") {
480
+ var urlStr = input;
481
+ try {
482
+ input = urlToOptions(new URL(urlStr));
483
+ }
484
+ catch (err) {
485
+ /* istanbul ignore next */
486
+ input = url.parse(urlStr);
487
+ }
488
+ }
489
+ else if (URL && (input instanceof URL)) {
490
+ input = urlToOptions(input);
491
+ }
492
+ else {
493
+ callback = options;
494
+ options = input;
495
+ input = { protocol: protocol };
496
+ }
497
+ if (typeof options === "function") {
498
+ callback = options;
499
+ options = null;
500
+ }
501
+
502
+ // Set defaults
503
+ options = Object.assign({
504
+ maxRedirects: exports.maxRedirects,
505
+ maxBodyLength: exports.maxBodyLength,
506
+ }, input, options);
507
+ options.nativeProtocols = nativeProtocols;
508
+
509
+ assert.equal(options.protocol, protocol, "protocol mismatch");
510
+ debug("options", options);
511
+ return new RedirectableRequest(options, callback);
512
+ }
513
+
514
+ // Executes a GET request, following redirects
515
+ function get(input, options, callback) {
516
+ var wrappedRequest = wrappedProtocol.request(input, options, callback);
517
+ wrappedRequest.end();
518
+ return wrappedRequest;
519
+ }
520
+
521
+ // Expose the properties on the wrapped protocol
522
+ Object.defineProperties(wrappedProtocol, {
523
+ request: { value: request, configurable: true, enumerable: true, writable: true },
524
+ get: { value: get, configurable: true, enumerable: true, writable: true },
525
+ });
526
+ });
527
+ return exports;
528
+ }
529
+
530
+ /* istanbul ignore next */
531
+ function noop() { /* empty */ }
532
+
533
+ // from https://github.com/nodejs/node/blob/master/lib/internal/url.js
534
+ function urlToOptions(urlObject) {
535
+ var options = {
536
+ protocol: urlObject.protocol,
537
+ hostname: urlObject.hostname.startsWith("[") ?
538
+ /* istanbul ignore next */
539
+ urlObject.hostname.slice(1, -1) :
540
+ urlObject.hostname,
541
+ hash: urlObject.hash,
542
+ search: urlObject.search,
543
+ pathname: urlObject.pathname,
544
+ path: urlObject.pathname + urlObject.search,
545
+ href: urlObject.href,
546
+ };
547
+ if (urlObject.port !== "") {
548
+ options.port = Number(urlObject.port);
549
+ }
550
+ return options;
551
+ }
552
+
553
+ function removeMatchingHeaders(regex, headers) {
554
+ var lastValue;
555
+ for (var header in headers) {
556
+ if (regex.test(header)) {
557
+ lastValue = headers[header];
558
+ delete headers[header];
559
+ }
560
+ }
561
+ return (lastValue === null || typeof lastValue === "undefined") ?
562
+ undefined : String(lastValue).trim();
563
+ }
564
+
565
+ function createErrorType(code, defaultMessage) {
566
+ function CustomError(cause) {
567
+ Error.captureStackTrace(this, this.constructor);
568
+ if (!cause) {
569
+ this.message = defaultMessage;
570
+ }
571
+ else {
572
+ this.message = defaultMessage + ": " + cause.message;
573
+ this.cause = cause;
574
+ }
575
+ }
576
+ CustomError.prototype = new Error();
577
+ CustomError.prototype.constructor = CustomError;
578
+ CustomError.prototype.name = "Error [" + code + "]";
579
+ CustomError.prototype.code = code;
580
+ return CustomError;
581
+ }
582
+
583
+ function abortRequest(request) {
584
+ for (var event of events) {
585
+ request.removeListener(event, eventHandlers[event]);
586
+ }
587
+ request.on("error", noop);
588
+ request.abort();
589
+ }
590
+
591
+ function isSubdomain(subdomain, domain) {
592
+ const dot = subdomain.length - domain.length - 1;
593
+ return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
594
+ }
595
+
596
+ // Exports
597
+ module.exports = wrap({ http: http, https: https });
598
+ module.exports.wrap = wrap;
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "follow-redirects",
3
+ "version": "1.15.1",
4
+ "description": "HTTP and HTTPS modules that follow redirects.",
5
+ "license": "MIT",
6
+ "main": "index.js",
7
+ "files": [
8
+ "*.js"
9
+ ],
10
+ "engines": {
11
+ "node": ">=4.0"
12
+ },
13
+ "scripts": {
14
+ "test": "npm run lint && npm run mocha",
15
+ "lint": "eslint *.js test",
16
+ "mocha": "nyc mocha"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git@github.com:follow-redirects/follow-redirects.git"
21
+ },
22
+ "homepage": "https://github.com/follow-redirects/follow-redirects",
23
+ "bugs": {
24
+ "url": "https://github.com/follow-redirects/follow-redirects/issues"
25
+ },
26
+ "keywords": [
27
+ "http",
28
+ "https",
29
+ "url",
30
+ "redirect",
31
+ "client",
32
+ "location",
33
+ "utility"
34
+ ],
35
+ "author": "Ruben Verborgh <ruben@verborgh.org> (https://ruben.verborgh.org/)",
36
+ "contributors": [
37
+ "Olivier Lalonde <olalonde@gmail.com> (http://www.syskall.com)",
38
+ "James Talmage <james@talmage.io>"
39
+ ],
40
+ "funding": [
41
+ {
42
+ "type": "individual",
43
+ "url": "https://github.com/sponsors/RubenVerborgh"
44
+ }
45
+ ],
46
+ "peerDependenciesMeta": {
47
+ "debug": {
48
+ "optional": true
49
+ }
50
+ },
51
+ "devDependencies": {
52
+ "concat-stream": "^2.0.0",
53
+ "eslint": "^5.16.0",
54
+ "express": "^4.16.4",
55
+ "lolex": "^3.1.0",
56
+ "mocha": "^6.0.2",
57
+ "nyc": "^14.1.1"
58
+ }
59
+ }