speaker-calibration 2.1.6 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/dist/main.js +1110 -912
  2. package/dist/package-lock.json +1018 -1018
  3. package/dist/package.json +18 -18
  4. package/package.json +1 -1
  5. package/src/tasks/volume/volume.js +28 -1
  6. package/dist/node_modules/.bin/mime +0 -12
  7. package/dist/node_modules/.bin/mime.cmd +0 -17
  8. package/dist/node_modules/.bin/mime.ps1 +0 -28
  9. package/dist/node_modules/.package-lock.json +0 -584
  10. package/dist/node_modules/accepts/HISTORY.md +0 -243
  11. package/dist/node_modules/accepts/LICENSE +0 -23
  12. package/dist/node_modules/accepts/README.md +0 -140
  13. package/dist/node_modules/accepts/index.js +0 -238
  14. package/dist/node_modules/accepts/package.json +0 -47
  15. package/dist/node_modules/array-flatten/LICENSE +0 -21
  16. package/dist/node_modules/array-flatten/README.md +0 -43
  17. package/dist/node_modules/array-flatten/array-flatten.js +0 -64
  18. package/dist/node_modules/array-flatten/package.json +0 -39
  19. package/dist/node_modules/body-parser/HISTORY.md +0 -657
  20. package/dist/node_modules/body-parser/LICENSE +0 -23
  21. package/dist/node_modules/body-parser/README.md +0 -464
  22. package/dist/node_modules/body-parser/SECURITY.md +0 -25
  23. package/dist/node_modules/body-parser/index.js +0 -156
  24. package/dist/node_modules/body-parser/lib/read.js +0 -205
  25. package/dist/node_modules/body-parser/lib/types/json.js +0 -236
  26. package/dist/node_modules/body-parser/lib/types/raw.js +0 -101
  27. package/dist/node_modules/body-parser/lib/types/text.js +0 -121
  28. package/dist/node_modules/body-parser/lib/types/urlencoded.js +0 -284
  29. package/dist/node_modules/body-parser/package.json +0 -56
  30. package/dist/node_modules/bytes/History.md +0 -97
  31. package/dist/node_modules/bytes/LICENSE +0 -23
  32. package/dist/node_modules/bytes/Readme.md +0 -152
  33. package/dist/node_modules/bytes/index.js +0 -170
  34. package/dist/node_modules/bytes/package.json +0 -42
  35. package/dist/node_modules/call-bind/.eslintignore +0 -1
  36. package/dist/node_modules/call-bind/.eslintrc +0 -17
  37. package/dist/node_modules/call-bind/.github/FUNDING.yml +0 -12
  38. package/dist/node_modules/call-bind/.nycrc +0 -13
  39. package/dist/node_modules/call-bind/CHANGELOG.md +0 -42
  40. package/dist/node_modules/call-bind/LICENSE +0 -21
  41. package/dist/node_modules/call-bind/README.md +0 -2
  42. package/dist/node_modules/call-bind/callBound.js +0 -15
  43. package/dist/node_modules/call-bind/index.js +0 -47
  44. package/dist/node_modules/call-bind/package.json +0 -80
  45. package/dist/node_modules/call-bind/test/callBound.js +0 -55
  46. package/dist/node_modules/call-bind/test/index.js +0 -66
  47. package/dist/node_modules/content-disposition/HISTORY.md +0 -60
  48. package/dist/node_modules/content-disposition/LICENSE +0 -22
  49. package/dist/node_modules/content-disposition/README.md +0 -142
  50. package/dist/node_modules/content-disposition/index.js +0 -458
  51. package/dist/node_modules/content-disposition/package.json +0 -44
  52. package/dist/node_modules/content-type/HISTORY.md +0 -24
  53. package/dist/node_modules/content-type/LICENSE +0 -22
  54. package/dist/node_modules/content-type/README.md +0 -92
  55. package/dist/node_modules/content-type/index.js +0 -222
  56. package/dist/node_modules/content-type/package.json +0 -40
  57. package/dist/node_modules/cookie/HISTORY.md +0 -142
  58. package/dist/node_modules/cookie/LICENSE +0 -24
  59. package/dist/node_modules/cookie/README.md +0 -302
  60. package/dist/node_modules/cookie/SECURITY.md +0 -25
  61. package/dist/node_modules/cookie/index.js +0 -270
  62. package/dist/node_modules/cookie/package.json +0 -44
  63. package/dist/node_modules/cookie-signature/History.md +0 -38
  64. package/dist/node_modules/cookie-signature/Readme.md +0 -42
  65. package/dist/node_modules/cookie-signature/index.js +0 -51
  66. package/dist/node_modules/cookie-signature/package.json +0 -18
  67. package/dist/node_modules/debug/.coveralls.yml +0 -1
  68. package/dist/node_modules/debug/.eslintrc +0 -11
  69. package/dist/node_modules/debug/.travis.yml +0 -14
  70. package/dist/node_modules/debug/CHANGELOG.md +0 -362
  71. package/dist/node_modules/debug/LICENSE +0 -19
  72. package/dist/node_modules/debug/Makefile +0 -50
  73. package/dist/node_modules/debug/README.md +0 -312
  74. package/dist/node_modules/debug/component.json +0 -19
  75. package/dist/node_modules/debug/karma.conf.js +0 -70
  76. package/dist/node_modules/debug/node.js +0 -1
  77. package/dist/node_modules/debug/package.json +0 -49
  78. package/dist/node_modules/debug/src/browser.js +0 -185
  79. package/dist/node_modules/debug/src/debug.js +0 -202
  80. package/dist/node_modules/debug/src/index.js +0 -10
  81. package/dist/node_modules/debug/src/inspector-log.js +0 -15
  82. package/dist/node_modules/debug/src/node.js +0 -248
  83. package/dist/node_modules/depd/History.md +0 -103
  84. package/dist/node_modules/depd/LICENSE +0 -22
  85. package/dist/node_modules/depd/Readme.md +0 -280
  86. package/dist/node_modules/depd/index.js +0 -538
  87. package/dist/node_modules/depd/lib/browser/index.js +0 -77
  88. package/dist/node_modules/depd/package.json +0 -45
  89. package/dist/node_modules/destroy/LICENSE +0 -23
  90. package/dist/node_modules/destroy/README.md +0 -63
  91. package/dist/node_modules/destroy/index.js +0 -209
  92. package/dist/node_modules/destroy/package.json +0 -48
  93. package/dist/node_modules/ee-first/LICENSE +0 -22
  94. package/dist/node_modules/ee-first/README.md +0 -80
  95. package/dist/node_modules/ee-first/index.js +0 -95
  96. package/dist/node_modules/ee-first/package.json +0 -29
  97. package/dist/node_modules/encodeurl/HISTORY.md +0 -14
  98. package/dist/node_modules/encodeurl/LICENSE +0 -22
  99. package/dist/node_modules/encodeurl/README.md +0 -128
  100. package/dist/node_modules/encodeurl/index.js +0 -60
  101. package/dist/node_modules/encodeurl/package.json +0 -40
  102. package/dist/node_modules/escape-html/LICENSE +0 -24
  103. package/dist/node_modules/escape-html/Readme.md +0 -43
  104. package/dist/node_modules/escape-html/index.js +0 -78
  105. package/dist/node_modules/escape-html/package.json +0 -24
  106. package/dist/node_modules/etag/HISTORY.md +0 -83
  107. package/dist/node_modules/etag/LICENSE +0 -22
  108. package/dist/node_modules/etag/README.md +0 -159
  109. package/dist/node_modules/etag/index.js +0 -131
  110. package/dist/node_modules/etag/package.json +0 -47
  111. package/dist/node_modules/express/History.md +0 -3588
  112. package/dist/node_modules/express/LICENSE +0 -24
  113. package/dist/node_modules/express/Readme.md +0 -166
  114. package/dist/node_modules/express/index.js +0 -11
  115. package/dist/node_modules/express/lib/application.js +0 -661
  116. package/dist/node_modules/express/lib/express.js +0 -116
  117. package/dist/node_modules/express/lib/middleware/init.js +0 -43
  118. package/dist/node_modules/express/lib/middleware/query.js +0 -47
  119. package/dist/node_modules/express/lib/request.js +0 -525
  120. package/dist/node_modules/express/lib/response.js +0 -1169
  121. package/dist/node_modules/express/lib/router/index.js +0 -673
  122. package/dist/node_modules/express/lib/router/layer.js +0 -181
  123. package/dist/node_modules/express/lib/router/route.js +0 -225
  124. package/dist/node_modules/express/lib/utils.js +0 -304
  125. package/dist/node_modules/express/lib/view.js +0 -182
  126. package/dist/node_modules/express/package.json +0 -99
  127. package/dist/node_modules/finalhandler/HISTORY.md +0 -195
  128. package/dist/node_modules/finalhandler/LICENSE +0 -22
  129. package/dist/node_modules/finalhandler/README.md +0 -147
  130. package/dist/node_modules/finalhandler/SECURITY.md +0 -25
  131. package/dist/node_modules/finalhandler/index.js +0 -336
  132. package/dist/node_modules/finalhandler/package.json +0 -46
  133. package/dist/node_modules/forwarded/HISTORY.md +0 -21
  134. package/dist/node_modules/forwarded/LICENSE +0 -22
  135. package/dist/node_modules/forwarded/README.md +0 -57
  136. package/dist/node_modules/forwarded/index.js +0 -90
  137. package/dist/node_modules/forwarded/package.json +0 -45
  138. package/dist/node_modules/fresh/HISTORY.md +0 -70
  139. package/dist/node_modules/fresh/LICENSE +0 -23
  140. package/dist/node_modules/fresh/README.md +0 -119
  141. package/dist/node_modules/fresh/index.js +0 -137
  142. package/dist/node_modules/fresh/package.json +0 -46
  143. package/dist/node_modules/function-bind/.editorconfig +0 -20
  144. package/dist/node_modules/function-bind/.eslintrc +0 -15
  145. package/dist/node_modules/function-bind/.jscs.json +0 -176
  146. package/dist/node_modules/function-bind/.travis.yml +0 -168
  147. package/dist/node_modules/function-bind/LICENSE +0 -20
  148. package/dist/node_modules/function-bind/README.md +0 -48
  149. package/dist/node_modules/function-bind/implementation.js +0 -52
  150. package/dist/node_modules/function-bind/index.js +0 -5
  151. package/dist/node_modules/function-bind/package.json +0 -63
  152. package/dist/node_modules/function-bind/test/.eslintrc +0 -9
  153. package/dist/node_modules/function-bind/test/index.js +0 -252
  154. package/dist/node_modules/get-intrinsic/.eslintrc +0 -37
  155. package/dist/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  156. package/dist/node_modules/get-intrinsic/.nycrc +0 -9
  157. package/dist/node_modules/get-intrinsic/CHANGELOG.md +0 -98
  158. package/dist/node_modules/get-intrinsic/LICENSE +0 -21
  159. package/dist/node_modules/get-intrinsic/README.md +0 -71
  160. package/dist/node_modules/get-intrinsic/index.js +0 -334
  161. package/dist/node_modules/get-intrinsic/package.json +0 -91
  162. package/dist/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  163. package/dist/node_modules/has/LICENSE-MIT +0 -22
  164. package/dist/node_modules/has/README.md +0 -18
  165. package/dist/node_modules/has/package.json +0 -48
  166. package/dist/node_modules/has/src/index.js +0 -5
  167. package/dist/node_modules/has/test/index.js +0 -10
  168. package/dist/node_modules/has-symbols/.eslintrc +0 -11
  169. package/dist/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  170. package/dist/node_modules/has-symbols/.nycrc +0 -9
  171. package/dist/node_modules/has-symbols/CHANGELOG.md +0 -75
  172. package/dist/node_modules/has-symbols/LICENSE +0 -21
  173. package/dist/node_modules/has-symbols/README.md +0 -46
  174. package/dist/node_modules/has-symbols/index.js +0 -13
  175. package/dist/node_modules/has-symbols/package.json +0 -101
  176. package/dist/node_modules/has-symbols/shams.js +0 -42
  177. package/dist/node_modules/has-symbols/test/index.js +0 -22
  178. package/dist/node_modules/has-symbols/test/shams/core-js.js +0 -28
  179. package/dist/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -28
  180. package/dist/node_modules/has-symbols/test/tests.js +0 -56
  181. package/dist/node_modules/http-errors/HISTORY.md +0 -180
  182. package/dist/node_modules/http-errors/LICENSE +0 -23
  183. package/dist/node_modules/http-errors/README.md +0 -169
  184. package/dist/node_modules/http-errors/index.js +0 -289
  185. package/dist/node_modules/http-errors/package.json +0 -50
  186. package/dist/node_modules/iconv-lite/Changelog.md +0 -162
  187. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  188. package/dist/node_modules/iconv-lite/README.md +0 -156
  189. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  190. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  191. package/dist/node_modules/iconv-lite/encodings/index.js +0 -22
  192. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -188
  193. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  194. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  195. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  196. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  197. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  198. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  199. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  200. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  201. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  202. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  203. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  204. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -177
  205. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -290
  206. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  207. package/dist/node_modules/iconv-lite/lib/extend-node.js +0 -217
  208. package/dist/node_modules/iconv-lite/lib/index.d.ts +0 -24
  209. package/dist/node_modules/iconv-lite/lib/index.js +0 -153
  210. package/dist/node_modules/iconv-lite/lib/streams.js +0 -121
  211. package/dist/node_modules/iconv-lite/package.json +0 -46
  212. package/dist/node_modules/inherits/LICENSE +0 -16
  213. package/dist/node_modules/inherits/README.md +0 -42
  214. package/dist/node_modules/inherits/inherits.js +0 -9
  215. package/dist/node_modules/inherits/inherits_browser.js +0 -27
  216. package/dist/node_modules/inherits/package.json +0 -29
  217. package/dist/node_modules/ipaddr.js/LICENSE +0 -19
  218. package/dist/node_modules/ipaddr.js/README.md +0 -233
  219. package/dist/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  220. package/dist/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  221. package/dist/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  222. package/dist/node_modules/ipaddr.js/package.json +0 -35
  223. package/dist/node_modules/media-typer/HISTORY.md +0 -22
  224. package/dist/node_modules/media-typer/LICENSE +0 -22
  225. package/dist/node_modules/media-typer/README.md +0 -81
  226. package/dist/node_modules/media-typer/index.js +0 -270
  227. package/dist/node_modules/media-typer/package.json +0 -26
  228. package/dist/node_modules/merge-descriptors/HISTORY.md +0 -21
  229. package/dist/node_modules/merge-descriptors/LICENSE +0 -23
  230. package/dist/node_modules/merge-descriptors/README.md +0 -48
  231. package/dist/node_modules/merge-descriptors/index.js +0 -60
  232. package/dist/node_modules/merge-descriptors/package.json +0 -32
  233. package/dist/node_modules/methods/HISTORY.md +0 -29
  234. package/dist/node_modules/methods/LICENSE +0 -24
  235. package/dist/node_modules/methods/README.md +0 -51
  236. package/dist/node_modules/methods/index.js +0 -69
  237. package/dist/node_modules/methods/package.json +0 -36
  238. package/dist/node_modules/mime/CHANGELOG.md +0 -164
  239. package/dist/node_modules/mime/LICENSE +0 -21
  240. package/dist/node_modules/mime/README.md +0 -90
  241. package/dist/node_modules/mime/cli.js +0 -8
  242. package/dist/node_modules/mime/mime.js +0 -108
  243. package/dist/node_modules/mime/package.json +0 -44
  244. package/dist/node_modules/mime/src/build.js +0 -53
  245. package/dist/node_modules/mime/src/test.js +0 -60
  246. package/dist/node_modules/mime/types.json +0 -1
  247. package/dist/node_modules/mime-db/HISTORY.md +0 -507
  248. package/dist/node_modules/mime-db/LICENSE +0 -23
  249. package/dist/node_modules/mime-db/README.md +0 -100
  250. package/dist/node_modules/mime-db/db.json +0 -8519
  251. package/dist/node_modules/mime-db/index.js +0 -12
  252. package/dist/node_modules/mime-db/package.json +0 -60
  253. package/dist/node_modules/mime-types/HISTORY.md +0 -397
  254. package/dist/node_modules/mime-types/LICENSE +0 -23
  255. package/dist/node_modules/mime-types/README.md +0 -113
  256. package/dist/node_modules/mime-types/index.js +0 -188
  257. package/dist/node_modules/mime-types/package.json +0 -44
  258. package/dist/node_modules/ms/index.js +0 -152
  259. package/dist/node_modules/ms/license.md +0 -21
  260. package/dist/node_modules/ms/package.json +0 -37
  261. package/dist/node_modules/ms/readme.md +0 -51
  262. package/dist/node_modules/negotiator/HISTORY.md +0 -108
  263. package/dist/node_modules/negotiator/LICENSE +0 -24
  264. package/dist/node_modules/negotiator/README.md +0 -203
  265. package/dist/node_modules/negotiator/index.js +0 -82
  266. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  267. package/dist/node_modules/negotiator/lib/encoding.js +0 -184
  268. package/dist/node_modules/negotiator/lib/language.js +0 -179
  269. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  270. package/dist/node_modules/negotiator/package.json +0 -42
  271. package/dist/node_modules/object-inspect/.eslintrc +0 -53
  272. package/dist/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  273. package/dist/node_modules/object-inspect/.nycrc +0 -13
  274. package/dist/node_modules/object-inspect/CHANGELOG.md +0 -360
  275. package/dist/node_modules/object-inspect/LICENSE +0 -21
  276. package/dist/node_modules/object-inspect/example/all.js +0 -23
  277. package/dist/node_modules/object-inspect/example/circular.js +0 -6
  278. package/dist/node_modules/object-inspect/example/fn.js +0 -5
  279. package/dist/node_modules/object-inspect/example/inspect.js +0 -10
  280. package/dist/node_modules/object-inspect/index.js +0 -512
  281. package/dist/node_modules/object-inspect/package-support.json +0 -20
  282. package/dist/node_modules/object-inspect/package.json +0 -94
  283. package/dist/node_modules/object-inspect/readme.markdown +0 -86
  284. package/dist/node_modules/object-inspect/test/bigint.js +0 -58
  285. package/dist/node_modules/object-inspect/test/browser/dom.js +0 -15
  286. package/dist/node_modules/object-inspect/test/circular.js +0 -16
  287. package/dist/node_modules/object-inspect/test/deep.js +0 -12
  288. package/dist/node_modules/object-inspect/test/element.js +0 -53
  289. package/dist/node_modules/object-inspect/test/err.js +0 -48
  290. package/dist/node_modules/object-inspect/test/fakes.js +0 -29
  291. package/dist/node_modules/object-inspect/test/fn.js +0 -76
  292. package/dist/node_modules/object-inspect/test/has.js +0 -15
  293. package/dist/node_modules/object-inspect/test/holes.js +0 -15
  294. package/dist/node_modules/object-inspect/test/indent-option.js +0 -271
  295. package/dist/node_modules/object-inspect/test/inspect.js +0 -139
  296. package/dist/node_modules/object-inspect/test/lowbyte.js +0 -12
  297. package/dist/node_modules/object-inspect/test/number.js +0 -58
  298. package/dist/node_modules/object-inspect/test/quoteStyle.js +0 -17
  299. package/dist/node_modules/object-inspect/test/toStringTag.js +0 -40
  300. package/dist/node_modules/object-inspect/test/undef.js +0 -12
  301. package/dist/node_modules/object-inspect/test/values.js +0 -211
  302. package/dist/node_modules/object-inspect/test-core-js.js +0 -26
  303. package/dist/node_modules/object-inspect/util.inspect.js +0 -1
  304. package/dist/node_modules/on-finished/HISTORY.md +0 -98
  305. package/dist/node_modules/on-finished/LICENSE +0 -23
  306. package/dist/node_modules/on-finished/README.md +0 -162
  307. package/dist/node_modules/on-finished/index.js +0 -234
  308. package/dist/node_modules/on-finished/package.json +0 -39
  309. package/dist/node_modules/parseurl/HISTORY.md +0 -58
  310. package/dist/node_modules/parseurl/LICENSE +0 -24
  311. package/dist/node_modules/parseurl/README.md +0 -133
  312. package/dist/node_modules/parseurl/index.js +0 -158
  313. package/dist/node_modules/parseurl/package.json +0 -40
  314. package/dist/node_modules/path-to-regexp/History.md +0 -36
  315. package/dist/node_modules/path-to-regexp/LICENSE +0 -21
  316. package/dist/node_modules/path-to-regexp/Readme.md +0 -35
  317. package/dist/node_modules/path-to-regexp/index.js +0 -129
  318. package/dist/node_modules/path-to-regexp/package.json +0 -30
  319. package/dist/node_modules/proxy-addr/HISTORY.md +0 -161
  320. package/dist/node_modules/proxy-addr/LICENSE +0 -22
  321. package/dist/node_modules/proxy-addr/README.md +0 -139
  322. package/dist/node_modules/proxy-addr/index.js +0 -327
  323. package/dist/node_modules/proxy-addr/package.json +0 -47
  324. package/dist/node_modules/qs/.editorconfig +0 -43
  325. package/dist/node_modules/qs/.eslintrc +0 -38
  326. package/dist/node_modules/qs/.github/FUNDING.yml +0 -12
  327. package/dist/node_modules/qs/.nycrc +0 -13
  328. package/dist/node_modules/qs/CHANGELOG.md +0 -546
  329. package/dist/node_modules/qs/LICENSE.md +0 -29
  330. package/dist/node_modules/qs/README.md +0 -625
  331. package/dist/node_modules/qs/dist/qs.js +0 -2054
  332. package/dist/node_modules/qs/lib/formats.js +0 -23
  333. package/dist/node_modules/qs/lib/index.js +0 -11
  334. package/dist/node_modules/qs/lib/parse.js +0 -263
  335. package/dist/node_modules/qs/lib/stringify.js +0 -326
  336. package/dist/node_modules/qs/lib/utils.js +0 -252
  337. package/dist/node_modules/qs/package.json +0 -77
  338. package/dist/node_modules/qs/test/parse.js +0 -855
  339. package/dist/node_modules/qs/test/stringify.js +0 -909
  340. package/dist/node_modules/qs/test/utils.js +0 -136
  341. package/dist/node_modules/range-parser/HISTORY.md +0 -56
  342. package/dist/node_modules/range-parser/LICENSE +0 -23
  343. package/dist/node_modules/range-parser/README.md +0 -84
  344. package/dist/node_modules/range-parser/index.js +0 -162
  345. package/dist/node_modules/range-parser/package.json +0 -44
  346. package/dist/node_modules/raw-body/HISTORY.md +0 -303
  347. package/dist/node_modules/raw-body/LICENSE +0 -22
  348. package/dist/node_modules/raw-body/README.md +0 -223
  349. package/dist/node_modules/raw-body/SECURITY.md +0 -24
  350. package/dist/node_modules/raw-body/index.d.ts +0 -87
  351. package/dist/node_modules/raw-body/index.js +0 -329
  352. package/dist/node_modules/raw-body/package.json +0 -49
  353. package/dist/node_modules/safe-buffer/LICENSE +0 -21
  354. package/dist/node_modules/safe-buffer/README.md +0 -584
  355. package/dist/node_modules/safe-buffer/index.d.ts +0 -187
  356. package/dist/node_modules/safe-buffer/index.js +0 -65
  357. package/dist/node_modules/safe-buffer/package.json +0 -51
  358. package/dist/node_modules/safer-buffer/LICENSE +0 -21
  359. package/dist/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  360. package/dist/node_modules/safer-buffer/Readme.md +0 -156
  361. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  362. package/dist/node_modules/safer-buffer/package.json +0 -34
  363. package/dist/node_modules/safer-buffer/safer.js +0 -77
  364. package/dist/node_modules/safer-buffer/tests.js +0 -406
  365. package/dist/node_modules/send/HISTORY.md +0 -521
  366. package/dist/node_modules/send/LICENSE +0 -23
  367. package/dist/node_modules/send/README.md +0 -327
  368. package/dist/node_modules/send/SECURITY.md +0 -24
  369. package/dist/node_modules/send/index.js +0 -1143
  370. package/dist/node_modules/send/node_modules/ms/index.js +0 -162
  371. package/dist/node_modules/send/node_modules/ms/license.md +0 -21
  372. package/dist/node_modules/send/node_modules/ms/package.json +0 -38
  373. package/dist/node_modules/send/node_modules/ms/readme.md +0 -59
  374. package/dist/node_modules/send/package.json +0 -62
  375. package/dist/node_modules/serve-static/HISTORY.md +0 -471
  376. package/dist/node_modules/serve-static/LICENSE +0 -25
  377. package/dist/node_modules/serve-static/README.md +0 -257
  378. package/dist/node_modules/serve-static/index.js +0 -210
  379. package/dist/node_modules/serve-static/package.json +0 -42
  380. package/dist/node_modules/setprototypeof/LICENSE +0 -13
  381. package/dist/node_modules/setprototypeof/README.md +0 -31
  382. package/dist/node_modules/setprototypeof/index.d.ts +0 -2
  383. package/dist/node_modules/setprototypeof/index.js +0 -17
  384. package/dist/node_modules/setprototypeof/package.json +0 -38
  385. package/dist/node_modules/setprototypeof/test/index.js +0 -24
  386. package/dist/node_modules/side-channel/.eslintignore +0 -1
  387. package/dist/node_modules/side-channel/.eslintrc +0 -11
  388. package/dist/node_modules/side-channel/.github/FUNDING.yml +0 -12
  389. package/dist/node_modules/side-channel/.nycrc +0 -13
  390. package/dist/node_modules/side-channel/CHANGELOG.md +0 -65
  391. package/dist/node_modules/side-channel/LICENSE +0 -21
  392. package/dist/node_modules/side-channel/README.md +0 -2
  393. package/dist/node_modules/side-channel/index.js +0 -124
  394. package/dist/node_modules/side-channel/package.json +0 -67
  395. package/dist/node_modules/side-channel/test/index.js +0 -78
  396. package/dist/node_modules/statuses/HISTORY.md +0 -82
  397. package/dist/node_modules/statuses/LICENSE +0 -23
  398. package/dist/node_modules/statuses/README.md +0 -136
  399. package/dist/node_modules/statuses/codes.json +0 -65
  400. package/dist/node_modules/statuses/index.js +0 -146
  401. package/dist/node_modules/statuses/package.json +0 -49
  402. package/dist/node_modules/toidentifier/HISTORY.md +0 -9
  403. package/dist/node_modules/toidentifier/LICENSE +0 -21
  404. package/dist/node_modules/toidentifier/README.md +0 -61
  405. package/dist/node_modules/toidentifier/index.js +0 -32
  406. package/dist/node_modules/toidentifier/package.json +0 -38
  407. package/dist/node_modules/type-is/HISTORY.md +0 -259
  408. package/dist/node_modules/type-is/LICENSE +0 -23
  409. package/dist/node_modules/type-is/README.md +0 -170
  410. package/dist/node_modules/type-is/index.js +0 -266
  411. package/dist/node_modules/type-is/package.json +0 -45
  412. package/dist/node_modules/unpipe/HISTORY.md +0 -4
  413. package/dist/node_modules/unpipe/LICENSE +0 -22
  414. package/dist/node_modules/unpipe/README.md +0 -43
  415. package/dist/node_modules/unpipe/index.js +0 -69
  416. package/dist/node_modules/unpipe/package.json +0 -27
  417. package/dist/node_modules/utils-merge/LICENSE +0 -20
  418. package/dist/node_modules/utils-merge/README.md +0 -34
  419. package/dist/node_modules/utils-merge/index.js +0 -23
  420. package/dist/node_modules/utils-merge/package.json +0 -40
  421. package/dist/node_modules/vary/HISTORY.md +0 -39
  422. package/dist/node_modules/vary/LICENSE +0 -22
  423. package/dist/node_modules/vary/README.md +0 -101
  424. package/dist/node_modules/vary/index.js +0 -149
  425. package/dist/node_modules/vary/package.json +0 -43
@@ -1,187 +0,0 @@
1
- declare module "safe-buffer" {
2
- export class Buffer {
3
- length: number
4
- write(string: string, offset?: number, length?: number, encoding?: string): number;
5
- toString(encoding?: string, start?: number, end?: number): string;
6
- toJSON(): { type: 'Buffer', data: any[] };
7
- equals(otherBuffer: Buffer): boolean;
8
- compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
9
- copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
10
- slice(start?: number, end?: number): Buffer;
11
- writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
12
- writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
13
- writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
14
- writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
15
- readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
16
- readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
17
- readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
18
- readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
19
- readUInt8(offset: number, noAssert?: boolean): number;
20
- readUInt16LE(offset: number, noAssert?: boolean): number;
21
- readUInt16BE(offset: number, noAssert?: boolean): number;
22
- readUInt32LE(offset: number, noAssert?: boolean): number;
23
- readUInt32BE(offset: number, noAssert?: boolean): number;
24
- readInt8(offset: number, noAssert?: boolean): number;
25
- readInt16LE(offset: number, noAssert?: boolean): number;
26
- readInt16BE(offset: number, noAssert?: boolean): number;
27
- readInt32LE(offset: number, noAssert?: boolean): number;
28
- readInt32BE(offset: number, noAssert?: boolean): number;
29
- readFloatLE(offset: number, noAssert?: boolean): number;
30
- readFloatBE(offset: number, noAssert?: boolean): number;
31
- readDoubleLE(offset: number, noAssert?: boolean): number;
32
- readDoubleBE(offset: number, noAssert?: boolean): number;
33
- swap16(): Buffer;
34
- swap32(): Buffer;
35
- swap64(): Buffer;
36
- writeUInt8(value: number, offset: number, noAssert?: boolean): number;
37
- writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
38
- writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
39
- writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
40
- writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
41
- writeInt8(value: number, offset: number, noAssert?: boolean): number;
42
- writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
43
- writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
44
- writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
45
- writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
46
- writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
47
- writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
48
- writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
49
- writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
50
- fill(value: any, offset?: number, end?: number): this;
51
- indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
52
- lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
53
- includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;
54
-
55
- /**
56
- * Allocates a new buffer containing the given {str}.
57
- *
58
- * @param str String to store in buffer.
59
- * @param encoding encoding to use, optional. Default is 'utf8'
60
- */
61
- constructor (str: string, encoding?: string);
62
- /**
63
- * Allocates a new buffer of {size} octets.
64
- *
65
- * @param size count of octets to allocate.
66
- */
67
- constructor (size: number);
68
- /**
69
- * Allocates a new buffer containing the given {array} of octets.
70
- *
71
- * @param array The octets to store.
72
- */
73
- constructor (array: Uint8Array);
74
- /**
75
- * Produces a Buffer backed by the same allocated memory as
76
- * the given {ArrayBuffer}.
77
- *
78
- *
79
- * @param arrayBuffer The ArrayBuffer with which to share memory.
80
- */
81
- constructor (arrayBuffer: ArrayBuffer);
82
- /**
83
- * Allocates a new buffer containing the given {array} of octets.
84
- *
85
- * @param array The octets to store.
86
- */
87
- constructor (array: any[]);
88
- /**
89
- * Copies the passed {buffer} data onto a new {Buffer} instance.
90
- *
91
- * @param buffer The buffer to copy.
92
- */
93
- constructor (buffer: Buffer);
94
- prototype: Buffer;
95
- /**
96
- * Allocates a new Buffer using an {array} of octets.
97
- *
98
- * @param array
99
- */
100
- static from(array: any[]): Buffer;
101
- /**
102
- * When passed a reference to the .buffer property of a TypedArray instance,
103
- * the newly created Buffer will share the same allocated memory as the TypedArray.
104
- * The optional {byteOffset} and {length} arguments specify a memory range
105
- * within the {arrayBuffer} that will be shared by the Buffer.
106
- *
107
- * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()
108
- * @param byteOffset
109
- * @param length
110
- */
111
- static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
112
- /**
113
- * Copies the passed {buffer} data onto a new Buffer instance.
114
- *
115
- * @param buffer
116
- */
117
- static from(buffer: Buffer): Buffer;
118
- /**
119
- * Creates a new Buffer containing the given JavaScript string {str}.
120
- * If provided, the {encoding} parameter identifies the character encoding.
121
- * If not provided, {encoding} defaults to 'utf8'.
122
- *
123
- * @param str
124
- */
125
- static from(str: string, encoding?: string): Buffer;
126
- /**
127
- * Returns true if {obj} is a Buffer
128
- *
129
- * @param obj object to test.
130
- */
131
- static isBuffer(obj: any): obj is Buffer;
132
- /**
133
- * Returns true if {encoding} is a valid encoding argument.
134
- * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
135
- *
136
- * @param encoding string to test.
137
- */
138
- static isEncoding(encoding: string): boolean;
139
- /**
140
- * Gives the actual byte length of a string. encoding defaults to 'utf8'.
141
- * This is not the same as String.prototype.length since that returns the number of characters in a string.
142
- *
143
- * @param string string to test.
144
- * @param encoding encoding used to evaluate (defaults to 'utf8')
145
- */
146
- static byteLength(string: string, encoding?: string): number;
147
- /**
148
- * Returns a buffer which is the result of concatenating all the buffers in the list together.
149
- *
150
- * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.
151
- * If the list has exactly one item, then the first item of the list is returned.
152
- * If the list has more than one item, then a new Buffer is created.
153
- *
154
- * @param list An array of Buffer objects to concatenate
155
- * @param totalLength Total length of the buffers when concatenated.
156
- * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.
157
- */
158
- static concat(list: Buffer[], totalLength?: number): Buffer;
159
- /**
160
- * The same as buf1.compare(buf2).
161
- */
162
- static compare(buf1: Buffer, buf2: Buffer): number;
163
- /**
164
- * Allocates a new buffer of {size} octets.
165
- *
166
- * @param size count of octets to allocate.
167
- * @param fill if specified, buffer will be initialized by calling buf.fill(fill).
168
- * If parameter is omitted, buffer will be filled with zeros.
169
- * @param encoding encoding used for call to buf.fill while initalizing
170
- */
171
- static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
172
- /**
173
- * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents
174
- * of the newly created Buffer are unknown and may contain sensitive data.
175
- *
176
- * @param size count of octets to allocate
177
- */
178
- static allocUnsafe(size: number): Buffer;
179
- /**
180
- * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents
181
- * of the newly created Buffer are unknown and may contain sensitive data.
182
- *
183
- * @param size count of octets to allocate
184
- */
185
- static allocUnsafeSlow(size: number): Buffer;
186
- }
187
- }
@@ -1,65 +0,0 @@
1
- /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
2
- /* eslint-disable node/no-deprecated-api */
3
- var buffer = require('buffer')
4
- var Buffer = buffer.Buffer
5
-
6
- // alternative to using Object.keys for old browsers
7
- function copyProps (src, dst) {
8
- for (var key in src) {
9
- dst[key] = src[key]
10
- }
11
- }
12
- if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
13
- module.exports = buffer
14
- } else {
15
- // Copy properties from require('buffer')
16
- copyProps(buffer, exports)
17
- exports.Buffer = SafeBuffer
18
- }
19
-
20
- function SafeBuffer (arg, encodingOrOffset, length) {
21
- return Buffer(arg, encodingOrOffset, length)
22
- }
23
-
24
- SafeBuffer.prototype = Object.create(Buffer.prototype)
25
-
26
- // Copy static methods from Buffer
27
- copyProps(Buffer, SafeBuffer)
28
-
29
- SafeBuffer.from = function (arg, encodingOrOffset, length) {
30
- if (typeof arg === 'number') {
31
- throw new TypeError('Argument must not be a number')
32
- }
33
- return Buffer(arg, encodingOrOffset, length)
34
- }
35
-
36
- SafeBuffer.alloc = function (size, fill, encoding) {
37
- if (typeof size !== 'number') {
38
- throw new TypeError('Argument must be a number')
39
- }
40
- var buf = Buffer(size)
41
- if (fill !== undefined) {
42
- if (typeof encoding === 'string') {
43
- buf.fill(fill, encoding)
44
- } else {
45
- buf.fill(fill)
46
- }
47
- } else {
48
- buf.fill(0)
49
- }
50
- return buf
51
- }
52
-
53
- SafeBuffer.allocUnsafe = function (size) {
54
- if (typeof size !== 'number') {
55
- throw new TypeError('Argument must be a number')
56
- }
57
- return Buffer(size)
58
- }
59
-
60
- SafeBuffer.allocUnsafeSlow = function (size) {
61
- if (typeof size !== 'number') {
62
- throw new TypeError('Argument must be a number')
63
- }
64
- return buffer.SlowBuffer(size)
65
- }
@@ -1,51 +0,0 @@
1
- {
2
- "name": "safe-buffer",
3
- "description": "Safer Node.js Buffer API",
4
- "version": "5.2.1",
5
- "author": {
6
- "name": "Feross Aboukhadijeh",
7
- "email": "feross@feross.org",
8
- "url": "https://feross.org"
9
- },
10
- "bugs": {
11
- "url": "https://github.com/feross/safe-buffer/issues"
12
- },
13
- "devDependencies": {
14
- "standard": "*",
15
- "tape": "^5.0.0"
16
- },
17
- "homepage": "https://github.com/feross/safe-buffer",
18
- "keywords": [
19
- "buffer",
20
- "buffer allocate",
21
- "node security",
22
- "safe",
23
- "safe-buffer",
24
- "security",
25
- "uninitialized"
26
- ],
27
- "license": "MIT",
28
- "main": "index.js",
29
- "types": "index.d.ts",
30
- "repository": {
31
- "type": "git",
32
- "url": "git://github.com/feross/safe-buffer.git"
33
- },
34
- "scripts": {
35
- "test": "standard && tape test/*.js"
36
- },
37
- "funding": [
38
- {
39
- "type": "github",
40
- "url": "https://github.com/sponsors/feross"
41
- },
42
- {
43
- "type": "patreon",
44
- "url": "https://www.patreon.com/feross"
45
- },
46
- {
47
- "type": "consulting",
48
- "url": "https://feross.org/support"
49
- }
50
- ]
51
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2018 Nikita Skovoroda <chalkerx@gmail.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,268 +0,0 @@
1
- # Porting to the Buffer.from/Buffer.alloc API
2
-
3
- <a id="overview"></a>
4
- ## Overview
5
-
6
- - [Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.](#variant-1) (*recommended*)
7
- - [Variant 2: Use a polyfill](#variant-2)
8
- - [Variant 3: manual detection, with safeguards](#variant-3)
9
-
10
- ### Finding problematic bits of code using grep
11
-
12
- Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`.
13
-
14
- It will find all the potentially unsafe places in your own code (with some considerably unlikely
15
- exceptions).
16
-
17
- ### Finding problematic bits of code using Node.js 8
18
-
19
- If you’re using Node.js ≥ 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code:
20
-
21
- - `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js.
22
- - `--trace-deprecation` does the same thing, but only for deprecation warnings.
23
- - `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8.
24
-
25
- You can set these flags using an environment variable:
26
-
27
- ```console
28
- $ export NODE_OPTIONS='--trace-warnings --pending-deprecation'
29
- $ cat example.js
30
- 'use strict';
31
- const foo = new Buffer('foo');
32
- $ node example.js
33
- (node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead.
34
- at showFlaggedDeprecation (buffer.js:127:13)
35
- at new Buffer (buffer.js:148:3)
36
- at Object.<anonymous> (/path/to/example.js:2:13)
37
- [... more stack trace lines ...]
38
- ```
39
-
40
- ### Finding problematic bits of code using linters
41
-
42
- Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
43
- or
44
- [node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
45
- also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets.
46
-
47
- There is a drawback, though, that it doesn't always
48
- [work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is
49
- overriden e.g. with a polyfill, so recommended is a combination of this and some other method
50
- described above.
51
-
52
- <a id="variant-1"></a>
53
- ## Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.
54
-
55
- This is the recommended solution nowadays that would imply only minimal overhead.
56
-
57
- The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (→ [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible.
58
-
59
- What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way:
60
-
61
- - For `new Buffer(number)`, replace it with `Buffer.alloc(number)`.
62
- - For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`).
63
- - For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`.
64
-
65
- Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than
66
- `new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling.
67
-
68
- Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
69
- or
70
- [node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
71
- is recommended to avoid accidential unsafe Buffer API usage.
72
-
73
- There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005)
74
- for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`.
75
- Note that it currently only works with cases where the arguments are literals or where the
76
- constructor is invoked with two arguments.
77
-
78
- _If you currently support those older Node.js versions and dropping them would be a semver-major change
79
- for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2)
80
- or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive
81
- the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and
82
- your users will not observe a runtime deprecation warning when running your code on Node.js 10._
83
-
84
- <a id="variant-2"></a>
85
- ## Variant 2: Use a polyfill
86
-
87
- Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older
88
- Node.js versions.
89
-
90
- You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill
91
- `const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api.
92
-
93
- Make sure that you do not use old `new Buffer` API — in any files where the line above is added,
94
- using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though.
95
-
96
- Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or
97
- [buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) —
98
- those are great, the only downsides being 4 deps in the tree and slightly more code changes to
99
- migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only
100
- `Buffer.from` polyfilled — `buffer-from` alone which comes with no extra dependencies.
101
-
102
- _Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) — it also
103
- provides a polyfill, but takes a different approach which has
104
- [it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you
105
- to also use the older `new Buffer()` API in your code, though — but that's arguably a benefit, as
106
- it is problematic, can cause issues in your code, and will start emitting runtime deprecation
107
- warnings starting with Node.js 10._
108
-
109
- Note that in either case, it is important that you also remove all calls to the old Buffer
110
- API manually — just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides
111
- a polyfill for the new API. I have seen people doing that mistake.
112
-
113
- Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
114
- or
115
- [node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
116
- is recommended.
117
-
118
- _Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._
119
-
120
- <a id="variant-3"></a>
121
- ## Variant 3 — manual detection, with safeguards
122
-
123
- This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own
124
- wrapper around them.
125
-
126
- ### Buffer(0)
127
-
128
- This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which
129
- returns the same result all the way down to Node.js 0.8.x.
130
-
131
- ### Buffer(notNumber)
132
-
133
- Before:
134
-
135
- ```js
136
- var buf = new Buffer(notNumber, encoding);
137
- ```
138
-
139
- After:
140
-
141
- ```js
142
- var buf;
143
- if (Buffer.from && Buffer.from !== Uint8Array.from) {
144
- buf = Buffer.from(notNumber, encoding);
145
- } else {
146
- if (typeof notNumber === 'number')
147
- throw new Error('The "size" argument must be of type number.');
148
- buf = new Buffer(notNumber, encoding);
149
- }
150
- ```
151
-
152
- `encoding` is optional.
153
-
154
- Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not
155
- hard-coded) and _is not caused by the deprecation of Buffer constructor_ — it's exactly _why_ the
156
- Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous
157
- security issues — situations when unsanitized user input could end up in the `Buffer(arg)` create
158
- problems ranging from DoS to leaking sensitive information to the attacker from the process memory.
159
-
160
- When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can
161
- be omitted.
162
-
163
- Also note that using TypeScript does not fix this problem for you — when libs written in
164
- `TypeScript` are used from JS, or when user input ends up there — it behaves exactly as pure JS, as
165
- all type checks are translation-time only and are not present in the actual JS code which TS
166
- compiles to.
167
-
168
- ### Buffer(number)
169
-
170
- For Node.js 0.10.x (and below) support:
171
-
172
- ```js
173
- var buf;
174
- if (Buffer.alloc) {
175
- buf = Buffer.alloc(number);
176
- } else {
177
- buf = new Buffer(number);
178
- buf.fill(0);
179
- }
180
- ```
181
-
182
- Otherwise (Node.js ≥ 0.12.x):
183
-
184
- ```js
185
- const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0);
186
- ```
187
-
188
- ## Regarding Buffer.allocUnsafe
189
-
190
- Be extra cautious when using `Buffer.allocUnsafe`:
191
- * Don't use it if you don't have a good reason to
192
- * e.g. you probably won't ever see a performance difference for small buffers, in fact, those
193
- might be even faster with `Buffer.alloc()`,
194
- * if your code is not in the hot code path — you also probably won't notice a difference,
195
- * keep in mind that zero-filling minimizes the potential risks.
196
- * If you use it, make sure that you never return the buffer in a partially-filled state,
197
- * if you are writing to it sequentially — always truncate it to the actuall written length
198
-
199
- Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues,
200
- ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs)
201
- leaking to the remote attacker.
202
-
203
- _Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js
204
- version (and lacking type checks also adds DoS to the list of potential problems)._
205
-
206
- <a id="faq"></a>
207
- ## FAQ
208
-
209
- <a id="design-flaws"></a>
210
- ### What is wrong with the `Buffer` constructor?
211
-
212
- The `Buffer` constructor could be used to create a buffer in many different ways:
213
-
214
- - `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained
215
- *arbitrary memory* for performance reasons, which could include anything ranging from
216
- program source code to passwords and encryption keys.
217
- - `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of
218
- the string `'abc'`. A second argument could specify another encoding: For example,
219
- `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original
220
- sequence of bytes that it represents.
221
- - There are several other combinations of arguments.
222
-
223
- This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell
224
- what exactly the contents of the generated buffer are* without knowing the type of `foo`.
225
-
226
- Sometimes, the value of `foo` comes from an external source. For example, this function
227
- could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form:
228
-
229
- ```
230
- function stringToBase64(req, res) {
231
- // The request body should have the format of `{ string: 'foobar' }`
232
- const rawBytes = new Buffer(req.body.string)
233
- const encoded = rawBytes.toString('base64')
234
- res.end({ encoded: encoded })
235
- }
236
- ```
237
-
238
- Note that this code does *not* validate the type of `req.body.string`:
239
-
240
- - `req.body.string` is expected to be a string. If this is the case, all goes well.
241
- - `req.body.string` is controlled by the client that sends the request.
242
- - If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes:
243
- - Before Node.js 8, the content would be uninitialized
244
- - After Node.js 8, the content would be `50` bytes with the value `0`
245
-
246
- Because of the missing type check, an attacker could intentionally send a number
247
- as part of the request. Using this, they can either:
248
-
249
- - Read uninitialized memory. This **will** leak passwords, encryption keys and other
250
- kinds of sensitive information. (Information leak)
251
- - Force the program to allocate a large amount of memory. For example, when specifying
252
- `500000000` as the input value, each request will allocate 500MB of memory.
253
- This can be used to either exhaust the memory available of a program completely
254
- and make it crash, or slow it down significantly. (Denial of Service)
255
-
256
- Both of these scenarios are considered serious security issues in a real-world
257
- web server context.
258
-
259
- when using `Buffer.from(req.body.string)` instead, passing a number will always
260
- throw an exception instead, giving a controlled behaviour that can always be
261
- handled by the program.
262
-
263
- <a id="ecosystem-usage"></a>
264
- ### The `Buffer()` constructor has been deprecated for a while. Is this really an issue?
265
-
266
- Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still
267
- widely used. This includes new code, and overall usage of such code has actually been
268
- *increasing*.