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,234 @@
1
+ # Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data)
2
+
3
+ A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.
4
+
5
+ The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].
6
+
7
+ [xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface
8
+
9
+ [![Linux Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=linux:4.x-9.x)](https://travis-ci.org/form-data/form-data)
10
+ [![MacOS Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=macos:4.x-9.x)](https://travis-ci.org/form-data/form-data)
11
+ [![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/master.svg?label=windows:4.x-9.x)](https://ci.appveyor.com/project/alexindigo/form-data)
12
+
13
+ [![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/master.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master)
14
+ [![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data)
15
+ [![bitHound Overall Score](https://www.bithound.io/github/form-data/form-data/badges/score.svg)](https://www.bithound.io/github/form-data/form-data)
16
+
17
+ ## Install
18
+
19
+ ```
20
+ npm install --save form-data
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ In this example we are constructing a form with 3 fields that contain a string,
26
+ a buffer and a file stream.
27
+
28
+ ``` javascript
29
+ var FormData = require('form-data');
30
+ var fs = require('fs');
31
+
32
+ var form = new FormData();
33
+ form.append('my_field', 'my value');
34
+ form.append('my_buffer', new Buffer(10));
35
+ form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
36
+ ```
37
+
38
+ Also you can use http-response stream:
39
+
40
+ ``` javascript
41
+ var FormData = require('form-data');
42
+ var http = require('http');
43
+
44
+ var form = new FormData();
45
+
46
+ http.request('http://nodejs.org/images/logo.png', function(response) {
47
+ form.append('my_field', 'my value');
48
+ form.append('my_buffer', new Buffer(10));
49
+ form.append('my_logo', response);
50
+ });
51
+ ```
52
+
53
+ Or @mikeal's [request](https://github.com/request/request) stream:
54
+
55
+ ``` javascript
56
+ var FormData = require('form-data');
57
+ var request = require('request');
58
+
59
+ var form = new FormData();
60
+
61
+ form.append('my_field', 'my value');
62
+ form.append('my_buffer', new Buffer(10));
63
+ form.append('my_logo', request('http://nodejs.org/images/logo.png'));
64
+ ```
65
+
66
+ In order to submit this form to a web application, call ```submit(url, [callback])``` method:
67
+
68
+ ``` javascript
69
+ form.submit('http://example.org/', function(err, res) {
70
+ // res – response object (http.IncomingMessage) //
71
+ res.resume();
72
+ });
73
+
74
+ ```
75
+
76
+ For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.
77
+
78
+ ### Custom options
79
+
80
+ You can provide custom options, such as `maxDataSize`:
81
+
82
+ ``` javascript
83
+ var FormData = require('form-data');
84
+
85
+ var form = new FormData({ maxDataSize: 20971520 });
86
+ form.append('my_field', 'my value');
87
+ form.append('my_buffer', /* something big */);
88
+ ```
89
+
90
+ List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15)
91
+
92
+ ### Alternative submission methods
93
+
94
+ You can use node's http client interface:
95
+
96
+ ``` javascript
97
+ var http = require('http');
98
+
99
+ var request = http.request({
100
+ method: 'post',
101
+ host: 'example.org',
102
+ path: '/upload',
103
+ headers: form.getHeaders()
104
+ });
105
+
106
+ form.pipe(request);
107
+
108
+ request.on('response', function(res) {
109
+ console.log(res.statusCode);
110
+ });
111
+ ```
112
+
113
+ Or if you would prefer the `'Content-Length'` header to be set for you:
114
+
115
+ ``` javascript
116
+ form.submit('example.org/upload', function(err, res) {
117
+ console.log(res.statusCode);
118
+ });
119
+ ```
120
+
121
+ To use custom headers and pre-known length in parts:
122
+
123
+ ``` javascript
124
+ var CRLF = '\r\n';
125
+ var form = new FormData();
126
+
127
+ var options = {
128
+ header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,
129
+ knownLength: 1
130
+ };
131
+
132
+ form.append('my_buffer', buffer, options);
133
+
134
+ form.submit('http://example.com/', function(err, res) {
135
+ if (err) throw err;
136
+ console.log('Done');
137
+ });
138
+ ```
139
+
140
+ Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually:
141
+
142
+ ``` javascript
143
+ someModule.stream(function(err, stdout, stderr) {
144
+ if (err) throw err;
145
+
146
+ var form = new FormData();
147
+
148
+ form.append('file', stdout, {
149
+ filename: 'unicycle.jpg', // ... or:
150
+ filepath: 'photos/toys/unicycle.jpg',
151
+ contentType: 'image/jpeg',
152
+ knownLength: 19806
153
+ });
154
+
155
+ form.submit('http://example.com/', function(err, res) {
156
+ if (err) throw err;
157
+ console.log('Done');
158
+ });
159
+ });
160
+ ```
161
+
162
+ The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory).
163
+
164
+ For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:
165
+
166
+ ``` javascript
167
+ form.submit({
168
+ host: 'example.com',
169
+ path: '/probably.php?extra=params',
170
+ auth: 'username:password'
171
+ }, function(err, res) {
172
+ console.log(res.statusCode);
173
+ });
174
+ ```
175
+
176
+ In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:
177
+
178
+ ``` javascript
179
+ form.submit({
180
+ host: 'example.com',
181
+ path: '/surelynot.php',
182
+ headers: {'x-test-header': 'test-header-value'}
183
+ }, function(err, res) {
184
+ console.log(res.statusCode);
185
+ });
186
+ ```
187
+
188
+ ### Integration with other libraries
189
+
190
+ #### Request
191
+
192
+ Form submission using [request](https://github.com/request/request):
193
+
194
+ ```javascript
195
+ var formData = {
196
+ my_field: 'my_value',
197
+ my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
198
+ };
199
+
200
+ request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {
201
+ if (err) {
202
+ return console.error('upload failed:', err);
203
+ }
204
+ console.log('Upload successful! Server responded with:', body);
205
+ });
206
+ ```
207
+
208
+ For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads).
209
+
210
+ #### node-fetch
211
+
212
+ You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch):
213
+
214
+ ```javascript
215
+ var form = new FormData();
216
+
217
+ form.append('a', 1);
218
+
219
+ fetch('http://example.com', { method: 'POST', body: form })
220
+ .then(function(res) {
221
+ return res.json();
222
+ }).then(function(json) {
223
+ console.log(json);
224
+ });
225
+ ```
226
+
227
+ ## Notes
228
+
229
+ - ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround.
230
+ - Starting version `2.x` FormData has dropped support for `node@0.10.x`.
231
+
232
+ ## License
233
+
234
+ Form-Data is released under the [MIT](License) license.
@@ -0,0 +1,2 @@
1
+ /* eslint-env browser */
2
+ module.exports = typeof self == 'object' ? self.FormData : window.FormData;
@@ -0,0 +1,457 @@
1
+ var CombinedStream = require('combined-stream');
2
+ var util = require('util');
3
+ var path = require('path');
4
+ var http = require('http');
5
+ var https = require('https');
6
+ var parseUrl = require('url').parse;
7
+ var fs = require('fs');
8
+ var mime = require('mime-types');
9
+ var asynckit = require('asynckit');
10
+ var populate = require('./populate.js');
11
+
12
+ // Public API
13
+ module.exports = FormData;
14
+
15
+ // make it a Stream
16
+ util.inherits(FormData, CombinedStream);
17
+
18
+ /**
19
+ * Create readable "multipart/form-data" streams.
20
+ * Can be used to submit forms
21
+ * and file uploads to other web applications.
22
+ *
23
+ * @constructor
24
+ * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream
25
+ */
26
+ function FormData(options) {
27
+ if (!(this instanceof FormData)) {
28
+ return new FormData();
29
+ }
30
+
31
+ this._overheadLength = 0;
32
+ this._valueLength = 0;
33
+ this._valuesToMeasure = [];
34
+
35
+ CombinedStream.call(this);
36
+
37
+ options = options || {};
38
+ for (var option in options) {
39
+ this[option] = options[option];
40
+ }
41
+ }
42
+
43
+ FormData.LINE_BREAK = '\r\n';
44
+ FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';
45
+
46
+ FormData.prototype.append = function(field, value, options) {
47
+
48
+ options = options || {};
49
+
50
+ // allow filename as single option
51
+ if (typeof options == 'string') {
52
+ options = {filename: options};
53
+ }
54
+
55
+ var append = CombinedStream.prototype.append.bind(this);
56
+
57
+ // all that streamy business can't handle numbers
58
+ if (typeof value == 'number') {
59
+ value = '' + value;
60
+ }
61
+
62
+ // https://github.com/felixge/node-form-data/issues/38
63
+ if (util.isArray(value)) {
64
+ // Please convert your array into string
65
+ // the way web server expects it
66
+ this._error(new Error('Arrays are not supported.'));
67
+ return;
68
+ }
69
+
70
+ var header = this._multiPartHeader(field, value, options);
71
+ var footer = this._multiPartFooter();
72
+
73
+ append(header);
74
+ append(value);
75
+ append(footer);
76
+
77
+ // pass along options.knownLength
78
+ this._trackLength(header, value, options);
79
+ };
80
+
81
+ FormData.prototype._trackLength = function(header, value, options) {
82
+ var valueLength = 0;
83
+
84
+ // used w/ getLengthSync(), when length is known.
85
+ // e.g. for streaming directly from a remote server,
86
+ // w/ a known file a size, and not wanting to wait for
87
+ // incoming file to finish to get its size.
88
+ if (options.knownLength != null) {
89
+ valueLength += +options.knownLength;
90
+ } else if (Buffer.isBuffer(value)) {
91
+ valueLength = value.length;
92
+ } else if (typeof value === 'string') {
93
+ valueLength = Buffer.byteLength(value);
94
+ }
95
+
96
+ this._valueLength += valueLength;
97
+
98
+ // @check why add CRLF? does this account for custom/multiple CRLFs?
99
+ this._overheadLength +=
100
+ Buffer.byteLength(header) +
101
+ FormData.LINE_BREAK.length;
102
+
103
+ // empty or either doesn't have path or not an http response
104
+ if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) {
105
+ return;
106
+ }
107
+
108
+ // no need to bother with the length
109
+ if (!options.knownLength) {
110
+ this._valuesToMeasure.push(value);
111
+ }
112
+ };
113
+
114
+ FormData.prototype._lengthRetriever = function(value, callback) {
115
+
116
+ if (value.hasOwnProperty('fd')) {
117
+
118
+ // take read range into a account
119
+ // `end` = Infinity –> read file till the end
120
+ //
121
+ // TODO: Looks like there is bug in Node fs.createReadStream
122
+ // it doesn't respect `end` options without `start` options
123
+ // Fix it when node fixes it.
124
+ // https://github.com/joyent/node/issues/7819
125
+ if (value.end != undefined && value.end != Infinity && value.start != undefined) {
126
+
127
+ // when end specified
128
+ // no need to calculate range
129
+ // inclusive, starts with 0
130
+ callback(null, value.end + 1 - (value.start ? value.start : 0));
131
+
132
+ // not that fast snoopy
133
+ } else {
134
+ // still need to fetch file size from fs
135
+ fs.stat(value.path, function(err, stat) {
136
+
137
+ var fileSize;
138
+
139
+ if (err) {
140
+ callback(err);
141
+ return;
142
+ }
143
+
144
+ // update final size based on the range options
145
+ fileSize = stat.size - (value.start ? value.start : 0);
146
+ callback(null, fileSize);
147
+ });
148
+ }
149
+
150
+ // or http response
151
+ } else if (value.hasOwnProperty('httpVersion')) {
152
+ callback(null, +value.headers['content-length']);
153
+
154
+ // or request stream http://github.com/mikeal/request
155
+ } else if (value.hasOwnProperty('httpModule')) {
156
+ // wait till response come back
157
+ value.on('response', function(response) {
158
+ value.pause();
159
+ callback(null, +response.headers['content-length']);
160
+ });
161
+ value.resume();
162
+
163
+ // something else
164
+ } else {
165
+ callback('Unknown stream');
166
+ }
167
+ };
168
+
169
+ FormData.prototype._multiPartHeader = function(field, value, options) {
170
+ // custom header specified (as string)?
171
+ // it becomes responsible for boundary
172
+ // (e.g. to handle extra CRLFs on .NET servers)
173
+ if (typeof options.header == 'string') {
174
+ return options.header;
175
+ }
176
+
177
+ var contentDisposition = this._getContentDisposition(value, options);
178
+ var contentType = this._getContentType(value, options);
179
+
180
+ var contents = '';
181
+ var headers = {
182
+ // add custom disposition as third element or keep it two elements if not
183
+ 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []),
184
+ // if no content type. allow it to be empty array
185
+ 'Content-Type': [].concat(contentType || [])
186
+ };
187
+
188
+ // allow custom headers.
189
+ if (typeof options.header == 'object') {
190
+ populate(headers, options.header);
191
+ }
192
+
193
+ var header;
194
+ for (var prop in headers) {
195
+ if (!headers.hasOwnProperty(prop)) continue;
196
+ header = headers[prop];
197
+
198
+ // skip nullish headers.
199
+ if (header == null) {
200
+ continue;
201
+ }
202
+
203
+ // convert all headers to arrays.
204
+ if (!Array.isArray(header)) {
205
+ header = [header];
206
+ }
207
+
208
+ // add non-empty headers.
209
+ if (header.length) {
210
+ contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;
211
+ }
212
+ }
213
+
214
+ return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;
215
+ };
216
+
217
+ FormData.prototype._getContentDisposition = function(value, options) {
218
+
219
+ var filename
220
+ , contentDisposition
221
+ ;
222
+
223
+ if (typeof options.filepath === 'string') {
224
+ // custom filepath for relative paths
225
+ filename = path.normalize(options.filepath).replace(/\\/g, '/');
226
+ } else if (options.filename || value.name || value.path) {
227
+ // custom filename take precedence
228
+ // formidable and the browser add a name property
229
+ // fs- and request- streams have path property
230
+ filename = path.basename(options.filename || value.name || value.path);
231
+ } else if (value.readable && value.hasOwnProperty('httpVersion')) {
232
+ // or try http response
233
+ filename = path.basename(value.client._httpMessage.path);
234
+ }
235
+
236
+ if (filename) {
237
+ contentDisposition = 'filename="' + filename + '"';
238
+ }
239
+
240
+ return contentDisposition;
241
+ };
242
+
243
+ FormData.prototype._getContentType = function(value, options) {
244
+
245
+ // use custom content-type above all
246
+ var contentType = options.contentType;
247
+
248
+ // or try `name` from formidable, browser
249
+ if (!contentType && value.name) {
250
+ contentType = mime.lookup(value.name);
251
+ }
252
+
253
+ // or try `path` from fs-, request- streams
254
+ if (!contentType && value.path) {
255
+ contentType = mime.lookup(value.path);
256
+ }
257
+
258
+ // or if it's http-reponse
259
+ if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {
260
+ contentType = value.headers['content-type'];
261
+ }
262
+
263
+ // or guess it from the filepath or filename
264
+ if (!contentType && (options.filepath || options.filename)) {
265
+ contentType = mime.lookup(options.filepath || options.filename);
266
+ }
267
+
268
+ // fallback to the default content type if `value` is not simple value
269
+ if (!contentType && typeof value == 'object') {
270
+ contentType = FormData.DEFAULT_CONTENT_TYPE;
271
+ }
272
+
273
+ return contentType;
274
+ };
275
+
276
+ FormData.prototype._multiPartFooter = function() {
277
+ return function(next) {
278
+ var footer = FormData.LINE_BREAK;
279
+
280
+ var lastPart = (this._streams.length === 0);
281
+ if (lastPart) {
282
+ footer += this._lastBoundary();
283
+ }
284
+
285
+ next(footer);
286
+ }.bind(this);
287
+ };
288
+
289
+ FormData.prototype._lastBoundary = function() {
290
+ return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;
291
+ };
292
+
293
+ FormData.prototype.getHeaders = function(userHeaders) {
294
+ var header;
295
+ var formHeaders = {
296
+ 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()
297
+ };
298
+
299
+ for (header in userHeaders) {
300
+ if (userHeaders.hasOwnProperty(header)) {
301
+ formHeaders[header.toLowerCase()] = userHeaders[header];
302
+ }
303
+ }
304
+
305
+ return formHeaders;
306
+ };
307
+
308
+ FormData.prototype.getBoundary = function() {
309
+ if (!this._boundary) {
310
+ this._generateBoundary();
311
+ }
312
+
313
+ return this._boundary;
314
+ };
315
+
316
+ FormData.prototype._generateBoundary = function() {
317
+ // This generates a 50 character boundary similar to those used by Firefox.
318
+ // They are optimized for boyer-moore parsing.
319
+ var boundary = '--------------------------';
320
+ for (var i = 0; i < 24; i++) {
321
+ boundary += Math.floor(Math.random() * 10).toString(16);
322
+ }
323
+
324
+ this._boundary = boundary;
325
+ };
326
+
327
+ // Note: getLengthSync DOESN'T calculate streams length
328
+ // As workaround one can calculate file size manually
329
+ // and add it as knownLength option
330
+ FormData.prototype.getLengthSync = function() {
331
+ var knownLength = this._overheadLength + this._valueLength;
332
+
333
+ // Don't get confused, there are 3 "internal" streams for each keyval pair
334
+ // so it basically checks if there is any value added to the form
335
+ if (this._streams.length) {
336
+ knownLength += this._lastBoundary().length;
337
+ }
338
+
339
+ // https://github.com/form-data/form-data/issues/40
340
+ if (!this.hasKnownLength()) {
341
+ // Some async length retrievers are present
342
+ // therefore synchronous length calculation is false.
343
+ // Please use getLength(callback) to get proper length
344
+ this._error(new Error('Cannot calculate proper length in synchronous way.'));
345
+ }
346
+
347
+ return knownLength;
348
+ };
349
+
350
+ // Public API to check if length of added values is known
351
+ // https://github.com/form-data/form-data/issues/196
352
+ // https://github.com/form-data/form-data/issues/262
353
+ FormData.prototype.hasKnownLength = function() {
354
+ var hasKnownLength = true;
355
+
356
+ if (this._valuesToMeasure.length) {
357
+ hasKnownLength = false;
358
+ }
359
+
360
+ return hasKnownLength;
361
+ };
362
+
363
+ FormData.prototype.getLength = function(cb) {
364
+ var knownLength = this._overheadLength + this._valueLength;
365
+
366
+ if (this._streams.length) {
367
+ knownLength += this._lastBoundary().length;
368
+ }
369
+
370
+ if (!this._valuesToMeasure.length) {
371
+ process.nextTick(cb.bind(this, null, knownLength));
372
+ return;
373
+ }
374
+
375
+ asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {
376
+ if (err) {
377
+ cb(err);
378
+ return;
379
+ }
380
+
381
+ values.forEach(function(length) {
382
+ knownLength += length;
383
+ });
384
+
385
+ cb(null, knownLength);
386
+ });
387
+ };
388
+
389
+ FormData.prototype.submit = function(params, cb) {
390
+ var request
391
+ , options
392
+ , defaults = {method: 'post'}
393
+ ;
394
+
395
+ // parse provided url if it's string
396
+ // or treat it as options object
397
+ if (typeof params == 'string') {
398
+
399
+ params = parseUrl(params);
400
+ options = populate({
401
+ port: params.port,
402
+ path: params.pathname,
403
+ host: params.hostname,
404
+ protocol: params.protocol
405
+ }, defaults);
406
+
407
+ // use custom params
408
+ } else {
409
+
410
+ options = populate(params, defaults);
411
+ // if no port provided use default one
412
+ if (!options.port) {
413
+ options.port = options.protocol == 'https:' ? 443 : 80;
414
+ }
415
+ }
416
+
417
+ // put that good code in getHeaders to some use
418
+ options.headers = this.getHeaders(params.headers);
419
+
420
+ // https if specified, fallback to http in any other case
421
+ if (options.protocol == 'https:') {
422
+ request = https.request(options);
423
+ } else {
424
+ request = http.request(options);
425
+ }
426
+
427
+ // get content length and fire away
428
+ this.getLength(function(err, length) {
429
+ if (err) {
430
+ this._error(err);
431
+ return;
432
+ }
433
+
434
+ // add content length
435
+ request.setHeader('Content-Length', length);
436
+
437
+ this.pipe(request);
438
+ if (cb) {
439
+ request.on('error', cb);
440
+ request.on('response', cb.bind(this, null));
441
+ }
442
+ }.bind(this));
443
+
444
+ return request;
445
+ };
446
+
447
+ FormData.prototype._error = function(err) {
448
+ if (!this.error) {
449
+ this.error = err;
450
+ this.pause();
451
+ this.emit('error', err);
452
+ }
453
+ };
454
+
455
+ FormData.prototype.toString = function () {
456
+ return '[object FormData]';
457
+ };
@@ -0,0 +1,10 @@
1
+ // populates missing values
2
+ module.exports = function(dst, src) {
3
+
4
+ Object.keys(src).forEach(function(prop)
5
+ {
6
+ dst[prop] = dst[prop] || src[prop];
7
+ });
8
+
9
+ return dst;
10
+ };