alicezetion 1.8.6 → 1.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  2. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  3. package/.cache/replit/modules/nodejs-20:v25-20240206-fdbd396.res +1 -0
  4. package/.cache/replit/modules/replit:v4-20240206-fdbd396.res +1 -0
  5. package/.cache/replit/modules.stamp +0 -1
  6. package/.cache/replit/nix/env.json +1 -1
  7. package/.cache/typescript/5.3/node_modules/.package-lock.json +137 -0
  8. package/.cache/typescript/5.3/node_modules/@types/bluebird/LICENSE +21 -0
  9. package/.cache/typescript/5.3/node_modules/@types/bluebird/README.md +15 -0
  10. package/.cache/typescript/5.3/node_modules/@types/bluebird/index.d.ts +1365 -0
  11. package/.cache/typescript/5.3/node_modules/@types/bluebird/package.json +25 -0
  12. package/.cache/typescript/5.3/node_modules/@types/caseless/LICENSE +21 -0
  13. package/.cache/typescript/5.3/node_modules/@types/caseless/README.md +48 -0
  14. package/.cache/typescript/5.3/node_modules/@types/caseless/index.d.ts +29 -0
  15. package/.cache/typescript/5.3/node_modules/@types/caseless/package.json +35 -0
  16. package/.cache/typescript/5.3/node_modules/@types/cheerio/LICENSE +21 -0
  17. package/.cache/typescript/5.3/node_modules/@types/cheerio/README.md +15 -0
  18. package/.cache/typescript/5.3/node_modules/@types/cheerio/index.d.ts +318 -0
  19. package/.cache/typescript/5.3/node_modules/@types/cheerio/package.json +71 -0
  20. package/.cache/typescript/5.3/node_modules/@types/node/LICENSE +21 -0
  21. package/.cache/typescript/5.3/node_modules/@types/node/README.md +15 -0
  22. package/.cache/typescript/5.3/node_modules/@types/node/assert/strict.d.ts +8 -0
  23. package/.cache/typescript/5.3/node_modules/@types/node/assert.d.ts +996 -0
  24. package/.cache/typescript/5.3/node_modules/@types/node/async_hooks.d.ts +539 -0
  25. package/.cache/typescript/5.3/node_modules/@types/node/buffer.d.ts +2362 -0
  26. package/.cache/typescript/5.3/node_modules/@types/node/child_process.d.ts +1540 -0
  27. package/.cache/typescript/5.3/node_modules/@types/node/cluster.d.ts +432 -0
  28. package/.cache/typescript/5.3/node_modules/@types/node/console.d.ts +415 -0
  29. package/.cache/typescript/5.3/node_modules/@types/node/constants.d.ts +19 -0
  30. package/.cache/typescript/5.3/node_modules/@types/node/crypto.d.ts +4487 -0
  31. package/.cache/typescript/5.3/node_modules/@types/node/dgram.d.ts +596 -0
  32. package/.cache/typescript/5.3/node_modules/@types/node/diagnostics_channel.d.ts +545 -0
  33. package/.cache/typescript/5.3/node_modules/@types/node/dns/promises.d.ts +425 -0
  34. package/.cache/typescript/5.3/node_modules/@types/node/dns.d.ts +809 -0
  35. package/.cache/typescript/5.3/node_modules/@types/node/dom-events.d.ts +122 -0
  36. package/.cache/typescript/5.3/node_modules/@types/node/domain.d.ts +170 -0
  37. package/.cache/typescript/5.3/node_modules/@types/node/events.d.ts +879 -0
  38. package/.cache/typescript/5.3/node_modules/@types/node/fs/promises.d.ts +1239 -0
  39. package/.cache/typescript/5.3/node_modules/@types/node/fs.d.ts +4311 -0
  40. package/.cache/typescript/5.3/node_modules/@types/node/globals.d.ts +411 -0
  41. package/.cache/typescript/5.3/node_modules/@types/node/globals.global.d.ts +1 -0
  42. package/.cache/typescript/5.3/node_modules/@types/node/http.d.ts +1887 -0
  43. package/.cache/typescript/5.3/node_modules/@types/node/http2.d.ts +2382 -0
  44. package/.cache/typescript/5.3/node_modules/@types/node/https.d.ts +550 -0
  45. package/.cache/typescript/5.3/node_modules/@types/node/index.d.ts +88 -0
  46. package/.cache/typescript/5.3/node_modules/@types/node/inspector.d.ts +2747 -0
  47. package/.cache/typescript/5.3/node_modules/@types/node/module.d.ts +315 -0
  48. package/.cache/typescript/5.3/node_modules/@types/node/net.d.ts +949 -0
  49. package/.cache/typescript/5.3/node_modules/@types/node/os.d.ts +478 -0
  50. package/.cache/typescript/5.3/node_modules/@types/node/package.json +229 -0
  51. package/.cache/typescript/5.3/node_modules/@types/node/path.d.ts +191 -0
  52. package/.cache/typescript/5.3/node_modules/@types/node/perf_hooks.d.ts +645 -0
  53. package/.cache/typescript/5.3/node_modules/@types/node/process.d.ts +1561 -0
  54. package/.cache/typescript/5.3/node_modules/@types/node/punycode.d.ts +117 -0
  55. package/.cache/typescript/5.3/node_modules/@types/node/querystring.d.ts +141 -0
  56. package/.cache/typescript/5.3/node_modules/@types/node/readline/promises.d.ts +150 -0
  57. package/.cache/typescript/5.3/node_modules/@types/node/readline.d.ts +539 -0
  58. package/.cache/typescript/5.3/node_modules/@types/node/repl.d.ts +430 -0
  59. package/.cache/typescript/5.3/node_modules/@types/node/stream/consumers.d.ts +12 -0
  60. package/.cache/typescript/5.3/node_modules/@types/node/stream/promises.d.ts +83 -0
  61. package/.cache/typescript/5.3/node_modules/@types/node/stream/web.d.ts +366 -0
  62. package/.cache/typescript/5.3/node_modules/@types/node/stream.d.ts +1701 -0
  63. package/.cache/typescript/5.3/node_modules/@types/node/string_decoder.d.ts +67 -0
  64. package/.cache/typescript/5.3/node_modules/@types/node/test.d.ts +1465 -0
  65. package/.cache/typescript/5.3/node_modules/@types/node/timers/promises.d.ts +93 -0
  66. package/.cache/typescript/5.3/node_modules/@types/node/timers.d.ts +240 -0
  67. package/.cache/typescript/5.3/node_modules/@types/node/tls.d.ts +1210 -0
  68. package/.cache/typescript/5.3/node_modules/@types/node/trace_events.d.ts +182 -0
  69. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  70. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert.d.ts +996 -0
  71. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/async_hooks.d.ts +539 -0
  72. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/buffer.d.ts +2362 -0
  73. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/child_process.d.ts +1540 -0
  74. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/cluster.d.ts +432 -0
  75. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/console.d.ts +415 -0
  76. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/constants.d.ts +19 -0
  77. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/crypto.d.ts +4487 -0
  78. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dgram.d.ts +596 -0
  79. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +545 -0
  80. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns/promises.d.ts +425 -0
  81. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns.d.ts +809 -0
  82. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dom-events.d.ts +122 -0
  83. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  84. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/events.d.ts +879 -0
  85. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs/promises.d.ts +1239 -0
  86. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs.d.ts +4311 -0
  87. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.d.ts +411 -0
  88. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  89. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http.d.ts +1887 -0
  90. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http2.d.ts +2382 -0
  91. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/https.d.ts +550 -0
  92. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  93. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/inspector.d.ts +2747 -0
  94. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/module.d.ts +315 -0
  95. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/net.d.ts +949 -0
  96. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/os.d.ts +478 -0
  97. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  98. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/perf_hooks.d.ts +645 -0
  99. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/process.d.ts +1561 -0
  100. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  101. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/querystring.d.ts +141 -0
  102. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline/promises.d.ts +150 -0
  103. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline.d.ts +539 -0
  104. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/repl.d.ts +430 -0
  105. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  106. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/promises.d.ts +83 -0
  107. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/web.d.ts +366 -0
  108. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream.d.ts +1701 -0
  109. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  110. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/test.d.ts +1465 -0
  111. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  112. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers.d.ts +240 -0
  113. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tls.d.ts +1210 -0
  114. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/trace_events.d.ts +182 -0
  115. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tty.d.ts +208 -0
  116. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/url.d.ts +927 -0
  117. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/util.d.ts +2183 -0
  118. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/v8.d.ts +635 -0
  119. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/vm.d.ts +903 -0
  120. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/wasi.d.ts +179 -0
  121. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/worker_threads.d.ts +691 -0
  122. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  123. package/.cache/typescript/5.3/node_modules/@types/node/tty.d.ts +208 -0
  124. package/.cache/typescript/5.3/node_modules/@types/node/url.d.ts +927 -0
  125. package/.cache/typescript/5.3/node_modules/@types/node/util.d.ts +2183 -0
  126. package/.cache/typescript/5.3/node_modules/@types/node/v8.d.ts +635 -0
  127. package/.cache/typescript/5.3/node_modules/@types/node/vm.d.ts +903 -0
  128. package/.cache/typescript/5.3/node_modules/@types/node/wasi.d.ts +179 -0
  129. package/.cache/typescript/5.3/node_modules/@types/node/worker_threads.d.ts +691 -0
  130. package/.cache/typescript/5.3/node_modules/@types/node/zlib.d.ts +517 -0
  131. package/.cache/typescript/5.3/node_modules/@types/npmlog/LICENSE +21 -0
  132. package/.cache/typescript/5.3/node_modules/@types/npmlog/README.md +15 -0
  133. package/.cache/typescript/5.3/node_modules/@types/npmlog/index.d.ts +84 -0
  134. package/.cache/typescript/5.3/node_modules/@types/npmlog/package.json +32 -0
  135. package/.cache/typescript/5.3/node_modules/@types/request/LICENSE +21 -0
  136. package/.cache/typescript/5.3/node_modules/@types/request/README.md +15 -0
  137. package/.cache/typescript/5.3/node_modules/@types/request/index.d.ts +395 -0
  138. package/.cache/typescript/5.3/node_modules/@types/request/package.json +70 -0
  139. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/LICENSE +21 -0
  140. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/README.md +15 -0
  141. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/index.d.ts +321 -0
  142. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/package.json +35 -0
  143. package/.cache/typescript/5.3/node_modules/asynckit/LICENSE +21 -0
  144. package/.cache/typescript/5.3/node_modules/asynckit/README.md +233 -0
  145. package/.cache/typescript/5.3/node_modules/asynckit/bench.js +76 -0
  146. package/.cache/typescript/5.3/node_modules/asynckit/index.js +6 -0
  147. package/.cache/typescript/5.3/node_modules/asynckit/lib/abort.js +29 -0
  148. package/.cache/typescript/5.3/node_modules/asynckit/lib/async.js +34 -0
  149. package/.cache/typescript/5.3/node_modules/asynckit/lib/defer.js +26 -0
  150. package/.cache/typescript/5.3/node_modules/asynckit/lib/iterate.js +75 -0
  151. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  152. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_parallel.js +25 -0
  153. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial.js +25 -0
  154. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  155. package/.cache/typescript/5.3/node_modules/asynckit/lib/state.js +37 -0
  156. package/.cache/typescript/5.3/node_modules/asynckit/lib/streamify.js +141 -0
  157. package/.cache/typescript/5.3/node_modules/asynckit/lib/terminator.js +29 -0
  158. package/.cache/typescript/5.3/node_modules/asynckit/package.json +63 -0
  159. package/.cache/typescript/5.3/node_modules/asynckit/parallel.js +43 -0
  160. package/.cache/typescript/5.3/node_modules/asynckit/serial.js +17 -0
  161. package/.cache/typescript/5.3/node_modules/asynckit/serialOrdered.js +75 -0
  162. package/.cache/typescript/5.3/node_modules/asynckit/stream.js +21 -0
  163. package/.cache/typescript/5.3/node_modules/combined-stream/License +19 -0
  164. package/.cache/typescript/5.3/node_modules/combined-stream/Readme.md +138 -0
  165. package/.cache/typescript/5.3/node_modules/combined-stream/lib/combined_stream.js +208 -0
  166. package/.cache/typescript/5.3/node_modules/combined-stream/package.json +25 -0
  167. package/.cache/typescript/5.3/node_modules/combined-stream/yarn.lock +17 -0
  168. package/.cache/typescript/5.3/node_modules/delayed-stream/License +19 -0
  169. package/.cache/typescript/5.3/node_modules/delayed-stream/Makefile +7 -0
  170. package/.cache/typescript/5.3/node_modules/delayed-stream/Readme.md +141 -0
  171. package/.cache/typescript/5.3/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  172. package/.cache/typescript/5.3/node_modules/delayed-stream/package.json +27 -0
  173. package/.cache/typescript/5.3/node_modules/form-data/License +19 -0
  174. package/.cache/typescript/5.3/node_modules/form-data/README.md +350 -0
  175. package/.cache/typescript/5.3/node_modules/form-data/README.md.bak +350 -0
  176. package/.cache/typescript/5.3/node_modules/form-data/index.d.ts +51 -0
  177. package/.cache/typescript/5.3/node_modules/form-data/lib/browser.js +2 -0
  178. package/.cache/typescript/5.3/node_modules/form-data/lib/form_data.js +483 -0
  179. package/.cache/typescript/5.3/node_modules/form-data/lib/populate.js +10 -0
  180. package/.cache/typescript/5.3/node_modules/form-data/package.json +68 -0
  181. package/.cache/typescript/5.3/node_modules/mime-db/HISTORY.md +507 -0
  182. package/.cache/typescript/5.3/node_modules/mime-db/LICENSE +23 -0
  183. package/.cache/typescript/5.3/node_modules/mime-db/README.md +100 -0
  184. package/.cache/typescript/5.3/node_modules/mime-db/db.json +8519 -0
  185. package/.cache/typescript/5.3/node_modules/mime-db/index.js +12 -0
  186. package/.cache/typescript/5.3/node_modules/mime-db/package.json +60 -0
  187. package/.cache/typescript/5.3/node_modules/mime-types/HISTORY.md +397 -0
  188. package/.cache/typescript/5.3/node_modules/mime-types/LICENSE +23 -0
  189. package/.cache/typescript/5.3/node_modules/mime-types/README.md +113 -0
  190. package/.cache/typescript/5.3/node_modules/mime-types/index.js +188 -0
  191. package/.cache/typescript/5.3/node_modules/mime-types/package.json +44 -0
  192. package/.cache/typescript/5.3/node_modules/types-registry/README.md +2 -0
  193. package/.cache/typescript/5.3/node_modules/types-registry/index.json +1 -0
  194. package/.cache/typescript/5.3/node_modules/types-registry/package.json +20 -0
  195. package/.cache/typescript/5.3/node_modules/undici-types/README.md +6 -0
  196. package/.cache/typescript/5.3/node_modules/undici-types/agent.d.ts +31 -0
  197. package/.cache/typescript/5.3/node_modules/undici-types/api.d.ts +43 -0
  198. package/.cache/typescript/5.3/node_modules/undici-types/balanced-pool.d.ts +18 -0
  199. package/.cache/typescript/5.3/node_modules/undici-types/cache.d.ts +36 -0
  200. package/.cache/typescript/5.3/node_modules/undici-types/client.d.ts +97 -0
  201. package/.cache/typescript/5.3/node_modules/undici-types/connector.d.ts +34 -0
  202. package/.cache/typescript/5.3/node_modules/undici-types/content-type.d.ts +21 -0
  203. package/.cache/typescript/5.3/node_modules/undici-types/cookies.d.ts +28 -0
  204. package/.cache/typescript/5.3/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  205. package/.cache/typescript/5.3/node_modules/undici-types/dispatcher.d.ts +241 -0
  206. package/.cache/typescript/5.3/node_modules/undici-types/errors.d.ts +128 -0
  207. package/.cache/typescript/5.3/node_modules/undici-types/fetch.d.ts +209 -0
  208. package/.cache/typescript/5.3/node_modules/undici-types/file.d.ts +39 -0
  209. package/.cache/typescript/5.3/node_modules/undici-types/filereader.d.ts +54 -0
  210. package/.cache/typescript/5.3/node_modules/undici-types/formdata.d.ts +108 -0
  211. package/.cache/typescript/5.3/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  212. package/.cache/typescript/5.3/node_modules/undici-types/global-origin.d.ts +7 -0
  213. package/.cache/typescript/5.3/node_modules/undici-types/handlers.d.ts +9 -0
  214. package/.cache/typescript/5.3/node_modules/undici-types/header.d.ts +4 -0
  215. package/.cache/typescript/5.3/node_modules/undici-types/index.d.ts +63 -0
  216. package/.cache/typescript/5.3/node_modules/undici-types/interceptors.d.ts +5 -0
  217. package/.cache/typescript/5.3/node_modules/undici-types/mock-agent.d.ts +50 -0
  218. package/.cache/typescript/5.3/node_modules/undici-types/mock-client.d.ts +25 -0
  219. package/.cache/typescript/5.3/node_modules/undici-types/mock-errors.d.ts +12 -0
  220. package/.cache/typescript/5.3/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  221. package/.cache/typescript/5.3/node_modules/undici-types/mock-pool.d.ts +25 -0
  222. package/.cache/typescript/5.3/node_modules/undici-types/package.json +55 -0
  223. package/.cache/typescript/5.3/node_modules/undici-types/patch.d.ts +71 -0
  224. package/.cache/typescript/5.3/node_modules/undici-types/pool-stats.d.ts +19 -0
  225. package/.cache/typescript/5.3/node_modules/undici-types/pool.d.ts +28 -0
  226. package/.cache/typescript/5.3/node_modules/undici-types/proxy-agent.d.ts +30 -0
  227. package/.cache/typescript/5.3/node_modules/undici-types/readable.d.ts +61 -0
  228. package/.cache/typescript/5.3/node_modules/undici-types/webidl.d.ts +220 -0
  229. package/.cache/typescript/5.3/node_modules/undici-types/websocket.d.ts +131 -0
  230. package/.cache/typescript/5.3/package-lock.json +149 -0
  231. package/.cache/typescript/5.3/package.json +1 -0
  232. package/.replit +1 -0
  233. package/index.js +1 -0
  234. package/leiamnash/edit.js +59 -0
  235. package/package.json +1 -1
  236. package/.cache/replit/__replit_disk_meta.json +0 -1
  237. package/replit.nix +0 -6
@@ -0,0 +1,483 @@
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.getBuffer = function() {
317
+ var dataBuffer = new Buffer.alloc( 0 );
318
+ var boundary = this.getBoundary();
319
+
320
+ // Create the form content. Add Line breaks to the end of data.
321
+ for (var i = 0, len = this._streams.length; i < len; i++) {
322
+ if (typeof this._streams[i] !== 'function') {
323
+
324
+ // Add content to the buffer.
325
+ if(Buffer.isBuffer(this._streams[i])) {
326
+ dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);
327
+ }else {
328
+ dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);
329
+ }
330
+
331
+ // Add break after content.
332
+ if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {
333
+ dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );
334
+ }
335
+ }
336
+ }
337
+
338
+ // Add the footer and return the Buffer object.
339
+ return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );
340
+ };
341
+
342
+ FormData.prototype._generateBoundary = function() {
343
+ // This generates a 50 character boundary similar to those used by Firefox.
344
+ // They are optimized for boyer-moore parsing.
345
+ var boundary = '--------------------------';
346
+ for (var i = 0; i < 24; i++) {
347
+ boundary += Math.floor(Math.random() * 10).toString(16);
348
+ }
349
+
350
+ this._boundary = boundary;
351
+ };
352
+
353
+ // Note: getLengthSync DOESN'T calculate streams length
354
+ // As workaround one can calculate file size manually
355
+ // and add it as knownLength option
356
+ FormData.prototype.getLengthSync = function() {
357
+ var knownLength = this._overheadLength + this._valueLength;
358
+
359
+ // Don't get confused, there are 3 "internal" streams for each keyval pair
360
+ // so it basically checks if there is any value added to the form
361
+ if (this._streams.length) {
362
+ knownLength += this._lastBoundary().length;
363
+ }
364
+
365
+ // https://github.com/form-data/form-data/issues/40
366
+ if (!this.hasKnownLength()) {
367
+ // Some async length retrievers are present
368
+ // therefore synchronous length calculation is false.
369
+ // Please use getLength(callback) to get proper length
370
+ this._error(new Error('Cannot calculate proper length in synchronous way.'));
371
+ }
372
+
373
+ return knownLength;
374
+ };
375
+
376
+ // Public API to check if length of added values is known
377
+ // https://github.com/form-data/form-data/issues/196
378
+ // https://github.com/form-data/form-data/issues/262
379
+ FormData.prototype.hasKnownLength = function() {
380
+ var hasKnownLength = true;
381
+
382
+ if (this._valuesToMeasure.length) {
383
+ hasKnownLength = false;
384
+ }
385
+
386
+ return hasKnownLength;
387
+ };
388
+
389
+ FormData.prototype.getLength = function(cb) {
390
+ var knownLength = this._overheadLength + this._valueLength;
391
+
392
+ if (this._streams.length) {
393
+ knownLength += this._lastBoundary().length;
394
+ }
395
+
396
+ if (!this._valuesToMeasure.length) {
397
+ process.nextTick(cb.bind(this, null, knownLength));
398
+ return;
399
+ }
400
+
401
+ asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {
402
+ if (err) {
403
+ cb(err);
404
+ return;
405
+ }
406
+
407
+ values.forEach(function(length) {
408
+ knownLength += length;
409
+ });
410
+
411
+ cb(null, knownLength);
412
+ });
413
+ };
414
+
415
+ FormData.prototype.submit = function(params, cb) {
416
+ var request
417
+ , options
418
+ , defaults = {method: 'post'}
419
+ ;
420
+
421
+ // parse provided url if it's string
422
+ // or treat it as options object
423
+ if (typeof params == 'string') {
424
+
425
+ params = parseUrl(params);
426
+ options = populate({
427
+ port: params.port,
428
+ path: params.pathname,
429
+ host: params.hostname,
430
+ protocol: params.protocol
431
+ }, defaults);
432
+
433
+ // use custom params
434
+ } else {
435
+
436
+ options = populate(params, defaults);
437
+ // if no port provided use default one
438
+ if (!options.port) {
439
+ options.port = options.protocol == 'https:' ? 443 : 80;
440
+ }
441
+ }
442
+
443
+ // put that good code in getHeaders to some use
444
+ options.headers = this.getHeaders(params.headers);
445
+
446
+ // https if specified, fallback to http in any other case
447
+ if (options.protocol == 'https:') {
448
+ request = https.request(options);
449
+ } else {
450
+ request = http.request(options);
451
+ }
452
+
453
+ // get content length and fire away
454
+ this.getLength(function(err, length) {
455
+ if (err) {
456
+ this._error(err);
457
+ return;
458
+ }
459
+
460
+ // add content length
461
+ request.setHeader('Content-Length', length);
462
+
463
+ this.pipe(request);
464
+ if (cb) {
465
+ request.on('error', cb);
466
+ request.on('response', cb.bind(this, null));
467
+ }
468
+ }.bind(this));
469
+
470
+ return request;
471
+ };
472
+
473
+ FormData.prototype._error = function(err) {
474
+ if (!this.error) {
475
+ this.error = err;
476
+ this.pause();
477
+ this.emit('error', err);
478
+ }
479
+ };
480
+
481
+ FormData.prototype.toString = function () {
482
+ return '[object FormData]';
483
+ };
@@ -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
+ };
@@ -0,0 +1,68 @@
1
+ {
2
+ "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)",
3
+ "name": "form-data",
4
+ "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
5
+ "version": "2.5.1",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git://github.com/form-data/form-data.git"
9
+ },
10
+ "main": "./lib/form_data",
11
+ "browser": "./lib/browser",
12
+ "typings": "./index.d.ts",
13
+ "scripts": {
14
+ "pretest": "rimraf coverage test/tmp",
15
+ "test": "istanbul cover test/run.js",
16
+ "posttest": "istanbul report lcov text",
17
+ "lint": "eslint lib/*.js test/*.js test/integration/*.js",
18
+ "report": "istanbul report lcov text",
19
+ "ci-lint": "is-node-modern 8 && npm run lint || is-node-not-modern 8",
20
+ "ci-test": "npm run test && npm run browser && npm run report",
21
+ "predebug": "rimraf coverage test/tmp",
22
+ "debug": "verbose=1 ./test/run.js",
23
+ "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage",
24
+ "check": "istanbul check-coverage coverage/coverage*.json",
25
+ "files": "pkgfiles --sort=name",
26
+ "get-version": "node -e \"console.log(require('./package.json').version)\"",
27
+ "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md",
28
+ "restore-readme": "mv README.md.bak README.md",
29
+ "prepublish": "in-publish && npm run update-readme || not-in-publish",
30
+ "postpublish": "npm run restore-readme"
31
+ },
32
+ "pre-commit": [
33
+ "lint",
34
+ "ci-test",
35
+ "check"
36
+ ],
37
+ "engines": {
38
+ "node": ">= 0.12"
39
+ },
40
+ "dependencies": {
41
+ "asynckit": "^0.4.0",
42
+ "combined-stream": "^1.0.6",
43
+ "mime-types": "^2.1.12"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^12.0.10",
47
+ "browserify": "^13.1.1",
48
+ "browserify-istanbul": "^2.0.0",
49
+ "coveralls": "^3.0.4",
50
+ "cross-spawn": "^6.0.5",
51
+ "eslint": "^6.0.1",
52
+ "fake": "^0.2.2",
53
+ "far": "^0.0.7",
54
+ "formidable": "^1.0.17",
55
+ "in-publish": "^2.0.0",
56
+ "is-node-modern": "^1.0.0",
57
+ "istanbul": "^0.4.5",
58
+ "obake": "^0.1.2",
59
+ "phantomjs-prebuilt": "^2.1.13",
60
+ "pkgfiles": "^2.3.0",
61
+ "pre-commit": "^1.1.3",
62
+ "request": "^2.88.0",
63
+ "rimraf": "^2.7.1",
64
+ "tape": "^4.6.2",
65
+ "typescript": "^3.5.2"
66
+ },
67
+ "license": "MIT"
68
+ }