speaker-calibration 2.1.6 → 2.1.8

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 (427) 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/server/PythonServerAPI.js +2 -2
  6. package/src/tasks/impulse-response/impulseResponse.js +8 -1
  7. package/src/tasks/volume/volume.js +28 -1
  8. package/dist/node_modules/.bin/mime +0 -12
  9. package/dist/node_modules/.bin/mime.cmd +0 -17
  10. package/dist/node_modules/.bin/mime.ps1 +0 -28
  11. package/dist/node_modules/.package-lock.json +0 -584
  12. package/dist/node_modules/accepts/HISTORY.md +0 -243
  13. package/dist/node_modules/accepts/LICENSE +0 -23
  14. package/dist/node_modules/accepts/README.md +0 -140
  15. package/dist/node_modules/accepts/index.js +0 -238
  16. package/dist/node_modules/accepts/package.json +0 -47
  17. package/dist/node_modules/array-flatten/LICENSE +0 -21
  18. package/dist/node_modules/array-flatten/README.md +0 -43
  19. package/dist/node_modules/array-flatten/array-flatten.js +0 -64
  20. package/dist/node_modules/array-flatten/package.json +0 -39
  21. package/dist/node_modules/body-parser/HISTORY.md +0 -657
  22. package/dist/node_modules/body-parser/LICENSE +0 -23
  23. package/dist/node_modules/body-parser/README.md +0 -464
  24. package/dist/node_modules/body-parser/SECURITY.md +0 -25
  25. package/dist/node_modules/body-parser/index.js +0 -156
  26. package/dist/node_modules/body-parser/lib/read.js +0 -205
  27. package/dist/node_modules/body-parser/lib/types/json.js +0 -236
  28. package/dist/node_modules/body-parser/lib/types/raw.js +0 -101
  29. package/dist/node_modules/body-parser/lib/types/text.js +0 -121
  30. package/dist/node_modules/body-parser/lib/types/urlencoded.js +0 -284
  31. package/dist/node_modules/body-parser/package.json +0 -56
  32. package/dist/node_modules/bytes/History.md +0 -97
  33. package/dist/node_modules/bytes/LICENSE +0 -23
  34. package/dist/node_modules/bytes/Readme.md +0 -152
  35. package/dist/node_modules/bytes/index.js +0 -170
  36. package/dist/node_modules/bytes/package.json +0 -42
  37. package/dist/node_modules/call-bind/.eslintignore +0 -1
  38. package/dist/node_modules/call-bind/.eslintrc +0 -17
  39. package/dist/node_modules/call-bind/.github/FUNDING.yml +0 -12
  40. package/dist/node_modules/call-bind/.nycrc +0 -13
  41. package/dist/node_modules/call-bind/CHANGELOG.md +0 -42
  42. package/dist/node_modules/call-bind/LICENSE +0 -21
  43. package/dist/node_modules/call-bind/README.md +0 -2
  44. package/dist/node_modules/call-bind/callBound.js +0 -15
  45. package/dist/node_modules/call-bind/index.js +0 -47
  46. package/dist/node_modules/call-bind/package.json +0 -80
  47. package/dist/node_modules/call-bind/test/callBound.js +0 -55
  48. package/dist/node_modules/call-bind/test/index.js +0 -66
  49. package/dist/node_modules/content-disposition/HISTORY.md +0 -60
  50. package/dist/node_modules/content-disposition/LICENSE +0 -22
  51. package/dist/node_modules/content-disposition/README.md +0 -142
  52. package/dist/node_modules/content-disposition/index.js +0 -458
  53. package/dist/node_modules/content-disposition/package.json +0 -44
  54. package/dist/node_modules/content-type/HISTORY.md +0 -24
  55. package/dist/node_modules/content-type/LICENSE +0 -22
  56. package/dist/node_modules/content-type/README.md +0 -92
  57. package/dist/node_modules/content-type/index.js +0 -222
  58. package/dist/node_modules/content-type/package.json +0 -40
  59. package/dist/node_modules/cookie/HISTORY.md +0 -142
  60. package/dist/node_modules/cookie/LICENSE +0 -24
  61. package/dist/node_modules/cookie/README.md +0 -302
  62. package/dist/node_modules/cookie/SECURITY.md +0 -25
  63. package/dist/node_modules/cookie/index.js +0 -270
  64. package/dist/node_modules/cookie/package.json +0 -44
  65. package/dist/node_modules/cookie-signature/History.md +0 -38
  66. package/dist/node_modules/cookie-signature/Readme.md +0 -42
  67. package/dist/node_modules/cookie-signature/index.js +0 -51
  68. package/dist/node_modules/cookie-signature/package.json +0 -18
  69. package/dist/node_modules/debug/.coveralls.yml +0 -1
  70. package/dist/node_modules/debug/.eslintrc +0 -11
  71. package/dist/node_modules/debug/.travis.yml +0 -14
  72. package/dist/node_modules/debug/CHANGELOG.md +0 -362
  73. package/dist/node_modules/debug/LICENSE +0 -19
  74. package/dist/node_modules/debug/Makefile +0 -50
  75. package/dist/node_modules/debug/README.md +0 -312
  76. package/dist/node_modules/debug/component.json +0 -19
  77. package/dist/node_modules/debug/karma.conf.js +0 -70
  78. package/dist/node_modules/debug/node.js +0 -1
  79. package/dist/node_modules/debug/package.json +0 -49
  80. package/dist/node_modules/debug/src/browser.js +0 -185
  81. package/dist/node_modules/debug/src/debug.js +0 -202
  82. package/dist/node_modules/debug/src/index.js +0 -10
  83. package/dist/node_modules/debug/src/inspector-log.js +0 -15
  84. package/dist/node_modules/debug/src/node.js +0 -248
  85. package/dist/node_modules/depd/History.md +0 -103
  86. package/dist/node_modules/depd/LICENSE +0 -22
  87. package/dist/node_modules/depd/Readme.md +0 -280
  88. package/dist/node_modules/depd/index.js +0 -538
  89. package/dist/node_modules/depd/lib/browser/index.js +0 -77
  90. package/dist/node_modules/depd/package.json +0 -45
  91. package/dist/node_modules/destroy/LICENSE +0 -23
  92. package/dist/node_modules/destroy/README.md +0 -63
  93. package/dist/node_modules/destroy/index.js +0 -209
  94. package/dist/node_modules/destroy/package.json +0 -48
  95. package/dist/node_modules/ee-first/LICENSE +0 -22
  96. package/dist/node_modules/ee-first/README.md +0 -80
  97. package/dist/node_modules/ee-first/index.js +0 -95
  98. package/dist/node_modules/ee-first/package.json +0 -29
  99. package/dist/node_modules/encodeurl/HISTORY.md +0 -14
  100. package/dist/node_modules/encodeurl/LICENSE +0 -22
  101. package/dist/node_modules/encodeurl/README.md +0 -128
  102. package/dist/node_modules/encodeurl/index.js +0 -60
  103. package/dist/node_modules/encodeurl/package.json +0 -40
  104. package/dist/node_modules/escape-html/LICENSE +0 -24
  105. package/dist/node_modules/escape-html/Readme.md +0 -43
  106. package/dist/node_modules/escape-html/index.js +0 -78
  107. package/dist/node_modules/escape-html/package.json +0 -24
  108. package/dist/node_modules/etag/HISTORY.md +0 -83
  109. package/dist/node_modules/etag/LICENSE +0 -22
  110. package/dist/node_modules/etag/README.md +0 -159
  111. package/dist/node_modules/etag/index.js +0 -131
  112. package/dist/node_modules/etag/package.json +0 -47
  113. package/dist/node_modules/express/History.md +0 -3588
  114. package/dist/node_modules/express/LICENSE +0 -24
  115. package/dist/node_modules/express/Readme.md +0 -166
  116. package/dist/node_modules/express/index.js +0 -11
  117. package/dist/node_modules/express/lib/application.js +0 -661
  118. package/dist/node_modules/express/lib/express.js +0 -116
  119. package/dist/node_modules/express/lib/middleware/init.js +0 -43
  120. package/dist/node_modules/express/lib/middleware/query.js +0 -47
  121. package/dist/node_modules/express/lib/request.js +0 -525
  122. package/dist/node_modules/express/lib/response.js +0 -1169
  123. package/dist/node_modules/express/lib/router/index.js +0 -673
  124. package/dist/node_modules/express/lib/router/layer.js +0 -181
  125. package/dist/node_modules/express/lib/router/route.js +0 -225
  126. package/dist/node_modules/express/lib/utils.js +0 -304
  127. package/dist/node_modules/express/lib/view.js +0 -182
  128. package/dist/node_modules/express/package.json +0 -99
  129. package/dist/node_modules/finalhandler/HISTORY.md +0 -195
  130. package/dist/node_modules/finalhandler/LICENSE +0 -22
  131. package/dist/node_modules/finalhandler/README.md +0 -147
  132. package/dist/node_modules/finalhandler/SECURITY.md +0 -25
  133. package/dist/node_modules/finalhandler/index.js +0 -336
  134. package/dist/node_modules/finalhandler/package.json +0 -46
  135. package/dist/node_modules/forwarded/HISTORY.md +0 -21
  136. package/dist/node_modules/forwarded/LICENSE +0 -22
  137. package/dist/node_modules/forwarded/README.md +0 -57
  138. package/dist/node_modules/forwarded/index.js +0 -90
  139. package/dist/node_modules/forwarded/package.json +0 -45
  140. package/dist/node_modules/fresh/HISTORY.md +0 -70
  141. package/dist/node_modules/fresh/LICENSE +0 -23
  142. package/dist/node_modules/fresh/README.md +0 -119
  143. package/dist/node_modules/fresh/index.js +0 -137
  144. package/dist/node_modules/fresh/package.json +0 -46
  145. package/dist/node_modules/function-bind/.editorconfig +0 -20
  146. package/dist/node_modules/function-bind/.eslintrc +0 -15
  147. package/dist/node_modules/function-bind/.jscs.json +0 -176
  148. package/dist/node_modules/function-bind/.travis.yml +0 -168
  149. package/dist/node_modules/function-bind/LICENSE +0 -20
  150. package/dist/node_modules/function-bind/README.md +0 -48
  151. package/dist/node_modules/function-bind/implementation.js +0 -52
  152. package/dist/node_modules/function-bind/index.js +0 -5
  153. package/dist/node_modules/function-bind/package.json +0 -63
  154. package/dist/node_modules/function-bind/test/.eslintrc +0 -9
  155. package/dist/node_modules/function-bind/test/index.js +0 -252
  156. package/dist/node_modules/get-intrinsic/.eslintrc +0 -37
  157. package/dist/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  158. package/dist/node_modules/get-intrinsic/.nycrc +0 -9
  159. package/dist/node_modules/get-intrinsic/CHANGELOG.md +0 -98
  160. package/dist/node_modules/get-intrinsic/LICENSE +0 -21
  161. package/dist/node_modules/get-intrinsic/README.md +0 -71
  162. package/dist/node_modules/get-intrinsic/index.js +0 -334
  163. package/dist/node_modules/get-intrinsic/package.json +0 -91
  164. package/dist/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  165. package/dist/node_modules/has/LICENSE-MIT +0 -22
  166. package/dist/node_modules/has/README.md +0 -18
  167. package/dist/node_modules/has/package.json +0 -48
  168. package/dist/node_modules/has/src/index.js +0 -5
  169. package/dist/node_modules/has/test/index.js +0 -10
  170. package/dist/node_modules/has-symbols/.eslintrc +0 -11
  171. package/dist/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  172. package/dist/node_modules/has-symbols/.nycrc +0 -9
  173. package/dist/node_modules/has-symbols/CHANGELOG.md +0 -75
  174. package/dist/node_modules/has-symbols/LICENSE +0 -21
  175. package/dist/node_modules/has-symbols/README.md +0 -46
  176. package/dist/node_modules/has-symbols/index.js +0 -13
  177. package/dist/node_modules/has-symbols/package.json +0 -101
  178. package/dist/node_modules/has-symbols/shams.js +0 -42
  179. package/dist/node_modules/has-symbols/test/index.js +0 -22
  180. package/dist/node_modules/has-symbols/test/shams/core-js.js +0 -28
  181. package/dist/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -28
  182. package/dist/node_modules/has-symbols/test/tests.js +0 -56
  183. package/dist/node_modules/http-errors/HISTORY.md +0 -180
  184. package/dist/node_modules/http-errors/LICENSE +0 -23
  185. package/dist/node_modules/http-errors/README.md +0 -169
  186. package/dist/node_modules/http-errors/index.js +0 -289
  187. package/dist/node_modules/http-errors/package.json +0 -50
  188. package/dist/node_modules/iconv-lite/Changelog.md +0 -162
  189. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  190. package/dist/node_modules/iconv-lite/README.md +0 -156
  191. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  192. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  193. package/dist/node_modules/iconv-lite/encodings/index.js +0 -22
  194. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -188
  195. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  196. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  197. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  198. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  199. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  200. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  201. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  202. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  203. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  204. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  205. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  206. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -177
  207. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -290
  208. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  209. package/dist/node_modules/iconv-lite/lib/extend-node.js +0 -217
  210. package/dist/node_modules/iconv-lite/lib/index.d.ts +0 -24
  211. package/dist/node_modules/iconv-lite/lib/index.js +0 -153
  212. package/dist/node_modules/iconv-lite/lib/streams.js +0 -121
  213. package/dist/node_modules/iconv-lite/package.json +0 -46
  214. package/dist/node_modules/inherits/LICENSE +0 -16
  215. package/dist/node_modules/inherits/README.md +0 -42
  216. package/dist/node_modules/inherits/inherits.js +0 -9
  217. package/dist/node_modules/inherits/inherits_browser.js +0 -27
  218. package/dist/node_modules/inherits/package.json +0 -29
  219. package/dist/node_modules/ipaddr.js/LICENSE +0 -19
  220. package/dist/node_modules/ipaddr.js/README.md +0 -233
  221. package/dist/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  222. package/dist/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  223. package/dist/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  224. package/dist/node_modules/ipaddr.js/package.json +0 -35
  225. package/dist/node_modules/media-typer/HISTORY.md +0 -22
  226. package/dist/node_modules/media-typer/LICENSE +0 -22
  227. package/dist/node_modules/media-typer/README.md +0 -81
  228. package/dist/node_modules/media-typer/index.js +0 -270
  229. package/dist/node_modules/media-typer/package.json +0 -26
  230. package/dist/node_modules/merge-descriptors/HISTORY.md +0 -21
  231. package/dist/node_modules/merge-descriptors/LICENSE +0 -23
  232. package/dist/node_modules/merge-descriptors/README.md +0 -48
  233. package/dist/node_modules/merge-descriptors/index.js +0 -60
  234. package/dist/node_modules/merge-descriptors/package.json +0 -32
  235. package/dist/node_modules/methods/HISTORY.md +0 -29
  236. package/dist/node_modules/methods/LICENSE +0 -24
  237. package/dist/node_modules/methods/README.md +0 -51
  238. package/dist/node_modules/methods/index.js +0 -69
  239. package/dist/node_modules/methods/package.json +0 -36
  240. package/dist/node_modules/mime/CHANGELOG.md +0 -164
  241. package/dist/node_modules/mime/LICENSE +0 -21
  242. package/dist/node_modules/mime/README.md +0 -90
  243. package/dist/node_modules/mime/cli.js +0 -8
  244. package/dist/node_modules/mime/mime.js +0 -108
  245. package/dist/node_modules/mime/package.json +0 -44
  246. package/dist/node_modules/mime/src/build.js +0 -53
  247. package/dist/node_modules/mime/src/test.js +0 -60
  248. package/dist/node_modules/mime/types.json +0 -1
  249. package/dist/node_modules/mime-db/HISTORY.md +0 -507
  250. package/dist/node_modules/mime-db/LICENSE +0 -23
  251. package/dist/node_modules/mime-db/README.md +0 -100
  252. package/dist/node_modules/mime-db/db.json +0 -8519
  253. package/dist/node_modules/mime-db/index.js +0 -12
  254. package/dist/node_modules/mime-db/package.json +0 -60
  255. package/dist/node_modules/mime-types/HISTORY.md +0 -397
  256. package/dist/node_modules/mime-types/LICENSE +0 -23
  257. package/dist/node_modules/mime-types/README.md +0 -113
  258. package/dist/node_modules/mime-types/index.js +0 -188
  259. package/dist/node_modules/mime-types/package.json +0 -44
  260. package/dist/node_modules/ms/index.js +0 -152
  261. package/dist/node_modules/ms/license.md +0 -21
  262. package/dist/node_modules/ms/package.json +0 -37
  263. package/dist/node_modules/ms/readme.md +0 -51
  264. package/dist/node_modules/negotiator/HISTORY.md +0 -108
  265. package/dist/node_modules/negotiator/LICENSE +0 -24
  266. package/dist/node_modules/negotiator/README.md +0 -203
  267. package/dist/node_modules/negotiator/index.js +0 -82
  268. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  269. package/dist/node_modules/negotiator/lib/encoding.js +0 -184
  270. package/dist/node_modules/negotiator/lib/language.js +0 -179
  271. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  272. package/dist/node_modules/negotiator/package.json +0 -42
  273. package/dist/node_modules/object-inspect/.eslintrc +0 -53
  274. package/dist/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  275. package/dist/node_modules/object-inspect/.nycrc +0 -13
  276. package/dist/node_modules/object-inspect/CHANGELOG.md +0 -360
  277. package/dist/node_modules/object-inspect/LICENSE +0 -21
  278. package/dist/node_modules/object-inspect/example/all.js +0 -23
  279. package/dist/node_modules/object-inspect/example/circular.js +0 -6
  280. package/dist/node_modules/object-inspect/example/fn.js +0 -5
  281. package/dist/node_modules/object-inspect/example/inspect.js +0 -10
  282. package/dist/node_modules/object-inspect/index.js +0 -512
  283. package/dist/node_modules/object-inspect/package-support.json +0 -20
  284. package/dist/node_modules/object-inspect/package.json +0 -94
  285. package/dist/node_modules/object-inspect/readme.markdown +0 -86
  286. package/dist/node_modules/object-inspect/test/bigint.js +0 -58
  287. package/dist/node_modules/object-inspect/test/browser/dom.js +0 -15
  288. package/dist/node_modules/object-inspect/test/circular.js +0 -16
  289. package/dist/node_modules/object-inspect/test/deep.js +0 -12
  290. package/dist/node_modules/object-inspect/test/element.js +0 -53
  291. package/dist/node_modules/object-inspect/test/err.js +0 -48
  292. package/dist/node_modules/object-inspect/test/fakes.js +0 -29
  293. package/dist/node_modules/object-inspect/test/fn.js +0 -76
  294. package/dist/node_modules/object-inspect/test/has.js +0 -15
  295. package/dist/node_modules/object-inspect/test/holes.js +0 -15
  296. package/dist/node_modules/object-inspect/test/indent-option.js +0 -271
  297. package/dist/node_modules/object-inspect/test/inspect.js +0 -139
  298. package/dist/node_modules/object-inspect/test/lowbyte.js +0 -12
  299. package/dist/node_modules/object-inspect/test/number.js +0 -58
  300. package/dist/node_modules/object-inspect/test/quoteStyle.js +0 -17
  301. package/dist/node_modules/object-inspect/test/toStringTag.js +0 -40
  302. package/dist/node_modules/object-inspect/test/undef.js +0 -12
  303. package/dist/node_modules/object-inspect/test/values.js +0 -211
  304. package/dist/node_modules/object-inspect/test-core-js.js +0 -26
  305. package/dist/node_modules/object-inspect/util.inspect.js +0 -1
  306. package/dist/node_modules/on-finished/HISTORY.md +0 -98
  307. package/dist/node_modules/on-finished/LICENSE +0 -23
  308. package/dist/node_modules/on-finished/README.md +0 -162
  309. package/dist/node_modules/on-finished/index.js +0 -234
  310. package/dist/node_modules/on-finished/package.json +0 -39
  311. package/dist/node_modules/parseurl/HISTORY.md +0 -58
  312. package/dist/node_modules/parseurl/LICENSE +0 -24
  313. package/dist/node_modules/parseurl/README.md +0 -133
  314. package/dist/node_modules/parseurl/index.js +0 -158
  315. package/dist/node_modules/parseurl/package.json +0 -40
  316. package/dist/node_modules/path-to-regexp/History.md +0 -36
  317. package/dist/node_modules/path-to-regexp/LICENSE +0 -21
  318. package/dist/node_modules/path-to-regexp/Readme.md +0 -35
  319. package/dist/node_modules/path-to-regexp/index.js +0 -129
  320. package/dist/node_modules/path-to-regexp/package.json +0 -30
  321. package/dist/node_modules/proxy-addr/HISTORY.md +0 -161
  322. package/dist/node_modules/proxy-addr/LICENSE +0 -22
  323. package/dist/node_modules/proxy-addr/README.md +0 -139
  324. package/dist/node_modules/proxy-addr/index.js +0 -327
  325. package/dist/node_modules/proxy-addr/package.json +0 -47
  326. package/dist/node_modules/qs/.editorconfig +0 -43
  327. package/dist/node_modules/qs/.eslintrc +0 -38
  328. package/dist/node_modules/qs/.github/FUNDING.yml +0 -12
  329. package/dist/node_modules/qs/.nycrc +0 -13
  330. package/dist/node_modules/qs/CHANGELOG.md +0 -546
  331. package/dist/node_modules/qs/LICENSE.md +0 -29
  332. package/dist/node_modules/qs/README.md +0 -625
  333. package/dist/node_modules/qs/dist/qs.js +0 -2054
  334. package/dist/node_modules/qs/lib/formats.js +0 -23
  335. package/dist/node_modules/qs/lib/index.js +0 -11
  336. package/dist/node_modules/qs/lib/parse.js +0 -263
  337. package/dist/node_modules/qs/lib/stringify.js +0 -326
  338. package/dist/node_modules/qs/lib/utils.js +0 -252
  339. package/dist/node_modules/qs/package.json +0 -77
  340. package/dist/node_modules/qs/test/parse.js +0 -855
  341. package/dist/node_modules/qs/test/stringify.js +0 -909
  342. package/dist/node_modules/qs/test/utils.js +0 -136
  343. package/dist/node_modules/range-parser/HISTORY.md +0 -56
  344. package/dist/node_modules/range-parser/LICENSE +0 -23
  345. package/dist/node_modules/range-parser/README.md +0 -84
  346. package/dist/node_modules/range-parser/index.js +0 -162
  347. package/dist/node_modules/range-parser/package.json +0 -44
  348. package/dist/node_modules/raw-body/HISTORY.md +0 -303
  349. package/dist/node_modules/raw-body/LICENSE +0 -22
  350. package/dist/node_modules/raw-body/README.md +0 -223
  351. package/dist/node_modules/raw-body/SECURITY.md +0 -24
  352. package/dist/node_modules/raw-body/index.d.ts +0 -87
  353. package/dist/node_modules/raw-body/index.js +0 -329
  354. package/dist/node_modules/raw-body/package.json +0 -49
  355. package/dist/node_modules/safe-buffer/LICENSE +0 -21
  356. package/dist/node_modules/safe-buffer/README.md +0 -584
  357. package/dist/node_modules/safe-buffer/index.d.ts +0 -187
  358. package/dist/node_modules/safe-buffer/index.js +0 -65
  359. package/dist/node_modules/safe-buffer/package.json +0 -51
  360. package/dist/node_modules/safer-buffer/LICENSE +0 -21
  361. package/dist/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  362. package/dist/node_modules/safer-buffer/Readme.md +0 -156
  363. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  364. package/dist/node_modules/safer-buffer/package.json +0 -34
  365. package/dist/node_modules/safer-buffer/safer.js +0 -77
  366. package/dist/node_modules/safer-buffer/tests.js +0 -406
  367. package/dist/node_modules/send/HISTORY.md +0 -521
  368. package/dist/node_modules/send/LICENSE +0 -23
  369. package/dist/node_modules/send/README.md +0 -327
  370. package/dist/node_modules/send/SECURITY.md +0 -24
  371. package/dist/node_modules/send/index.js +0 -1143
  372. package/dist/node_modules/send/node_modules/ms/index.js +0 -162
  373. package/dist/node_modules/send/node_modules/ms/license.md +0 -21
  374. package/dist/node_modules/send/node_modules/ms/package.json +0 -38
  375. package/dist/node_modules/send/node_modules/ms/readme.md +0 -59
  376. package/dist/node_modules/send/package.json +0 -62
  377. package/dist/node_modules/serve-static/HISTORY.md +0 -471
  378. package/dist/node_modules/serve-static/LICENSE +0 -25
  379. package/dist/node_modules/serve-static/README.md +0 -257
  380. package/dist/node_modules/serve-static/index.js +0 -210
  381. package/dist/node_modules/serve-static/package.json +0 -42
  382. package/dist/node_modules/setprototypeof/LICENSE +0 -13
  383. package/dist/node_modules/setprototypeof/README.md +0 -31
  384. package/dist/node_modules/setprototypeof/index.d.ts +0 -2
  385. package/dist/node_modules/setprototypeof/index.js +0 -17
  386. package/dist/node_modules/setprototypeof/package.json +0 -38
  387. package/dist/node_modules/setprototypeof/test/index.js +0 -24
  388. package/dist/node_modules/side-channel/.eslintignore +0 -1
  389. package/dist/node_modules/side-channel/.eslintrc +0 -11
  390. package/dist/node_modules/side-channel/.github/FUNDING.yml +0 -12
  391. package/dist/node_modules/side-channel/.nycrc +0 -13
  392. package/dist/node_modules/side-channel/CHANGELOG.md +0 -65
  393. package/dist/node_modules/side-channel/LICENSE +0 -21
  394. package/dist/node_modules/side-channel/README.md +0 -2
  395. package/dist/node_modules/side-channel/index.js +0 -124
  396. package/dist/node_modules/side-channel/package.json +0 -67
  397. package/dist/node_modules/side-channel/test/index.js +0 -78
  398. package/dist/node_modules/statuses/HISTORY.md +0 -82
  399. package/dist/node_modules/statuses/LICENSE +0 -23
  400. package/dist/node_modules/statuses/README.md +0 -136
  401. package/dist/node_modules/statuses/codes.json +0 -65
  402. package/dist/node_modules/statuses/index.js +0 -146
  403. package/dist/node_modules/statuses/package.json +0 -49
  404. package/dist/node_modules/toidentifier/HISTORY.md +0 -9
  405. package/dist/node_modules/toidentifier/LICENSE +0 -21
  406. package/dist/node_modules/toidentifier/README.md +0 -61
  407. package/dist/node_modules/toidentifier/index.js +0 -32
  408. package/dist/node_modules/toidentifier/package.json +0 -38
  409. package/dist/node_modules/type-is/HISTORY.md +0 -259
  410. package/dist/node_modules/type-is/LICENSE +0 -23
  411. package/dist/node_modules/type-is/README.md +0 -170
  412. package/dist/node_modules/type-is/index.js +0 -266
  413. package/dist/node_modules/type-is/package.json +0 -45
  414. package/dist/node_modules/unpipe/HISTORY.md +0 -4
  415. package/dist/node_modules/unpipe/LICENSE +0 -22
  416. package/dist/node_modules/unpipe/README.md +0 -43
  417. package/dist/node_modules/unpipe/index.js +0 -69
  418. package/dist/node_modules/unpipe/package.json +0 -27
  419. package/dist/node_modules/utils-merge/LICENSE +0 -20
  420. package/dist/node_modules/utils-merge/README.md +0 -34
  421. package/dist/node_modules/utils-merge/index.js +0 -23
  422. package/dist/node_modules/utils-merge/package.json +0 -40
  423. package/dist/node_modules/vary/HISTORY.md +0 -39
  424. package/dist/node_modules/vary/LICENSE +0 -22
  425. package/dist/node_modules/vary/README.md +0 -101
  426. package/dist/node_modules/vary/index.js +0 -149
  427. package/dist/node_modules/vary/package.json +0 -43
@@ -1,1143 +0,0 @@
1
- /*!
2
- * send
3
- * Copyright(c) 2012 TJ Holowaychuk
4
- * Copyright(c) 2014-2022 Douglas Christopher Wilson
5
- * MIT Licensed
6
- */
7
-
8
- 'use strict'
9
-
10
- /**
11
- * Module dependencies.
12
- * @private
13
- */
14
-
15
- var createError = require('http-errors')
16
- var debug = require('debug')('send')
17
- var deprecate = require('depd')('send')
18
- var destroy = require('destroy')
19
- var encodeUrl = require('encodeurl')
20
- var escapeHtml = require('escape-html')
21
- var etag = require('etag')
22
- var fresh = require('fresh')
23
- var fs = require('fs')
24
- var mime = require('mime')
25
- var ms = require('ms')
26
- var onFinished = require('on-finished')
27
- var parseRange = require('range-parser')
28
- var path = require('path')
29
- var statuses = require('statuses')
30
- var Stream = require('stream')
31
- var util = require('util')
32
-
33
- /**
34
- * Path function references.
35
- * @private
36
- */
37
-
38
- var extname = path.extname
39
- var join = path.join
40
- var normalize = path.normalize
41
- var resolve = path.resolve
42
- var sep = path.sep
43
-
44
- /**
45
- * Regular expression for identifying a bytes Range header.
46
- * @private
47
- */
48
-
49
- var BYTES_RANGE_REGEXP = /^ *bytes=/
50
-
51
- /**
52
- * Maximum value allowed for the max age.
53
- * @private
54
- */
55
-
56
- var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year
57
-
58
- /**
59
- * Regular expression to match a path with a directory up component.
60
- * @private
61
- */
62
-
63
- var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/
64
-
65
- /**
66
- * Module exports.
67
- * @public
68
- */
69
-
70
- module.exports = send
71
- module.exports.mime = mime
72
-
73
- /**
74
- * Return a `SendStream` for `req` and `path`.
75
- *
76
- * @param {object} req
77
- * @param {string} path
78
- * @param {object} [options]
79
- * @return {SendStream}
80
- * @public
81
- */
82
-
83
- function send (req, path, options) {
84
- return new SendStream(req, path, options)
85
- }
86
-
87
- /**
88
- * Initialize a `SendStream` with the given `path`.
89
- *
90
- * @param {Request} req
91
- * @param {String} path
92
- * @param {object} [options]
93
- * @private
94
- */
95
-
96
- function SendStream (req, path, options) {
97
- Stream.call(this)
98
-
99
- var opts = options || {}
100
-
101
- this.options = opts
102
- this.path = path
103
- this.req = req
104
-
105
- this._acceptRanges = opts.acceptRanges !== undefined
106
- ? Boolean(opts.acceptRanges)
107
- : true
108
-
109
- this._cacheControl = opts.cacheControl !== undefined
110
- ? Boolean(opts.cacheControl)
111
- : true
112
-
113
- this._etag = opts.etag !== undefined
114
- ? Boolean(opts.etag)
115
- : true
116
-
117
- this._dotfiles = opts.dotfiles !== undefined
118
- ? opts.dotfiles
119
- : 'ignore'
120
-
121
- if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') {
122
- throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"')
123
- }
124
-
125
- this._hidden = Boolean(opts.hidden)
126
-
127
- if (opts.hidden !== undefined) {
128
- deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead')
129
- }
130
-
131
- // legacy support
132
- if (opts.dotfiles === undefined) {
133
- this._dotfiles = undefined
134
- }
135
-
136
- this._extensions = opts.extensions !== undefined
137
- ? normalizeList(opts.extensions, 'extensions option')
138
- : []
139
-
140
- this._immutable = opts.immutable !== undefined
141
- ? Boolean(opts.immutable)
142
- : false
143
-
144
- this._index = opts.index !== undefined
145
- ? normalizeList(opts.index, 'index option')
146
- : ['index.html']
147
-
148
- this._lastModified = opts.lastModified !== undefined
149
- ? Boolean(opts.lastModified)
150
- : true
151
-
152
- this._maxage = opts.maxAge || opts.maxage
153
- this._maxage = typeof this._maxage === 'string'
154
- ? ms(this._maxage)
155
- : Number(this._maxage)
156
- this._maxage = !isNaN(this._maxage)
157
- ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
158
- : 0
159
-
160
- this._root = opts.root
161
- ? resolve(opts.root)
162
- : null
163
-
164
- if (!this._root && opts.from) {
165
- this.from(opts.from)
166
- }
167
- }
168
-
169
- /**
170
- * Inherits from `Stream`.
171
- */
172
-
173
- util.inherits(SendStream, Stream)
174
-
175
- /**
176
- * Enable or disable etag generation.
177
- *
178
- * @param {Boolean} val
179
- * @return {SendStream}
180
- * @api public
181
- */
182
-
183
- SendStream.prototype.etag = deprecate.function(function etag (val) {
184
- this._etag = Boolean(val)
185
- debug('etag %s', this._etag)
186
- return this
187
- }, 'send.etag: pass etag as option')
188
-
189
- /**
190
- * Enable or disable "hidden" (dot) files.
191
- *
192
- * @param {Boolean} path
193
- * @return {SendStream}
194
- * @api public
195
- */
196
-
197
- SendStream.prototype.hidden = deprecate.function(function hidden (val) {
198
- this._hidden = Boolean(val)
199
- this._dotfiles = undefined
200
- debug('hidden %s', this._hidden)
201
- return this
202
- }, 'send.hidden: use dotfiles option')
203
-
204
- /**
205
- * Set index `paths`, set to a falsy
206
- * value to disable index support.
207
- *
208
- * @param {String|Boolean|Array} paths
209
- * @return {SendStream}
210
- * @api public
211
- */
212
-
213
- SendStream.prototype.index = deprecate.function(function index (paths) {
214
- var index = !paths ? [] : normalizeList(paths, 'paths argument')
215
- debug('index %o', paths)
216
- this._index = index
217
- return this
218
- }, 'send.index: pass index as option')
219
-
220
- /**
221
- * Set root `path`.
222
- *
223
- * @param {String} path
224
- * @return {SendStream}
225
- * @api public
226
- */
227
-
228
- SendStream.prototype.root = function root (path) {
229
- this._root = resolve(String(path))
230
- debug('root %s', this._root)
231
- return this
232
- }
233
-
234
- SendStream.prototype.from = deprecate.function(SendStream.prototype.root,
235
- 'send.from: pass root as option')
236
-
237
- SendStream.prototype.root = deprecate.function(SendStream.prototype.root,
238
- 'send.root: pass root as option')
239
-
240
- /**
241
- * Set max-age to `maxAge`.
242
- *
243
- * @param {Number} maxAge
244
- * @return {SendStream}
245
- * @api public
246
- */
247
-
248
- SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) {
249
- this._maxage = typeof maxAge === 'string'
250
- ? ms(maxAge)
251
- : Number(maxAge)
252
- this._maxage = !isNaN(this._maxage)
253
- ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
254
- : 0
255
- debug('max-age %d', this._maxage)
256
- return this
257
- }, 'send.maxage: pass maxAge as option')
258
-
259
- /**
260
- * Emit error with `status`.
261
- *
262
- * @param {number} status
263
- * @param {Error} [err]
264
- * @private
265
- */
266
-
267
- SendStream.prototype.error = function error (status, err) {
268
- // emit if listeners instead of responding
269
- if (hasListeners(this, 'error')) {
270
- return this.emit('error', createHttpError(status, err))
271
- }
272
-
273
- var res = this.res
274
- var msg = statuses.message[status] || String(status)
275
- var doc = createHtmlDocument('Error', escapeHtml(msg))
276
-
277
- // clear existing headers
278
- clearHeaders(res)
279
-
280
- // add error headers
281
- if (err && err.headers) {
282
- setHeaders(res, err.headers)
283
- }
284
-
285
- // send basic response
286
- res.statusCode = status
287
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
288
- res.setHeader('Content-Length', Buffer.byteLength(doc))
289
- res.setHeader('Content-Security-Policy', "default-src 'none'")
290
- res.setHeader('X-Content-Type-Options', 'nosniff')
291
- res.end(doc)
292
- }
293
-
294
- /**
295
- * Check if the pathname ends with "/".
296
- *
297
- * @return {boolean}
298
- * @private
299
- */
300
-
301
- SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () {
302
- return this.path[this.path.length - 1] === '/'
303
- }
304
-
305
- /**
306
- * Check if this is a conditional GET request.
307
- *
308
- * @return {Boolean}
309
- * @api private
310
- */
311
-
312
- SendStream.prototype.isConditionalGET = function isConditionalGET () {
313
- return this.req.headers['if-match'] ||
314
- this.req.headers['if-unmodified-since'] ||
315
- this.req.headers['if-none-match'] ||
316
- this.req.headers['if-modified-since']
317
- }
318
-
319
- /**
320
- * Check if the request preconditions failed.
321
- *
322
- * @return {boolean}
323
- * @private
324
- */
325
-
326
- SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () {
327
- var req = this.req
328
- var res = this.res
329
-
330
- // if-match
331
- var match = req.headers['if-match']
332
- if (match) {
333
- var etag = res.getHeader('ETag')
334
- return !etag || (match !== '*' && parseTokenList(match).every(function (match) {
335
- return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag
336
- }))
337
- }
338
-
339
- // if-unmodified-since
340
- var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since'])
341
- if (!isNaN(unmodifiedSince)) {
342
- var lastModified = parseHttpDate(res.getHeader('Last-Modified'))
343
- return isNaN(lastModified) || lastModified > unmodifiedSince
344
- }
345
-
346
- return false
347
- }
348
-
349
- /**
350
- * Strip various content header fields for a change in entity.
351
- *
352
- * @private
353
- */
354
-
355
- SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () {
356
- var res = this.res
357
-
358
- res.removeHeader('Content-Encoding')
359
- res.removeHeader('Content-Language')
360
- res.removeHeader('Content-Length')
361
- res.removeHeader('Content-Range')
362
- res.removeHeader('Content-Type')
363
- }
364
-
365
- /**
366
- * Respond with 304 not modified.
367
- *
368
- * @api private
369
- */
370
-
371
- SendStream.prototype.notModified = function notModified () {
372
- var res = this.res
373
- debug('not modified')
374
- this.removeContentHeaderFields()
375
- res.statusCode = 304
376
- res.end()
377
- }
378
-
379
- /**
380
- * Raise error that headers already sent.
381
- *
382
- * @api private
383
- */
384
-
385
- SendStream.prototype.headersAlreadySent = function headersAlreadySent () {
386
- var err = new Error('Can\'t set headers after they are sent.')
387
- debug('headers already sent')
388
- this.error(500, err)
389
- }
390
-
391
- /**
392
- * Check if the request is cacheable, aka
393
- * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}).
394
- *
395
- * @return {Boolean}
396
- * @api private
397
- */
398
-
399
- SendStream.prototype.isCachable = function isCachable () {
400
- var statusCode = this.res.statusCode
401
- return (statusCode >= 200 && statusCode < 300) ||
402
- statusCode === 304
403
- }
404
-
405
- /**
406
- * Handle stat() error.
407
- *
408
- * @param {Error} error
409
- * @private
410
- */
411
-
412
- SendStream.prototype.onStatError = function onStatError (error) {
413
- switch (error.code) {
414
- case 'ENAMETOOLONG':
415
- case 'ENOENT':
416
- case 'ENOTDIR':
417
- this.error(404, error)
418
- break
419
- default:
420
- this.error(500, error)
421
- break
422
- }
423
- }
424
-
425
- /**
426
- * Check if the cache is fresh.
427
- *
428
- * @return {Boolean}
429
- * @api private
430
- */
431
-
432
- SendStream.prototype.isFresh = function isFresh () {
433
- return fresh(this.req.headers, {
434
- etag: this.res.getHeader('ETag'),
435
- 'last-modified': this.res.getHeader('Last-Modified')
436
- })
437
- }
438
-
439
- /**
440
- * Check if the range is fresh.
441
- *
442
- * @return {Boolean}
443
- * @api private
444
- */
445
-
446
- SendStream.prototype.isRangeFresh = function isRangeFresh () {
447
- var ifRange = this.req.headers['if-range']
448
-
449
- if (!ifRange) {
450
- return true
451
- }
452
-
453
- // if-range as etag
454
- if (ifRange.indexOf('"') !== -1) {
455
- var etag = this.res.getHeader('ETag')
456
- return Boolean(etag && ifRange.indexOf(etag) !== -1)
457
- }
458
-
459
- // if-range as modified date
460
- var lastModified = this.res.getHeader('Last-Modified')
461
- return parseHttpDate(lastModified) <= parseHttpDate(ifRange)
462
- }
463
-
464
- /**
465
- * Redirect to path.
466
- *
467
- * @param {string} path
468
- * @private
469
- */
470
-
471
- SendStream.prototype.redirect = function redirect (path) {
472
- var res = this.res
473
-
474
- if (hasListeners(this, 'directory')) {
475
- this.emit('directory', res, path)
476
- return
477
- }
478
-
479
- if (this.hasTrailingSlash()) {
480
- this.error(403)
481
- return
482
- }
483
-
484
- var loc = encodeUrl(collapseLeadingSlashes(this.path + '/'))
485
- var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
486
- escapeHtml(loc) + '</a>')
487
-
488
- // redirect
489
- res.statusCode = 301
490
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
491
- res.setHeader('Content-Length', Buffer.byteLength(doc))
492
- res.setHeader('Content-Security-Policy', "default-src 'none'")
493
- res.setHeader('X-Content-Type-Options', 'nosniff')
494
- res.setHeader('Location', loc)
495
- res.end(doc)
496
- }
497
-
498
- /**
499
- * Pipe to `res.
500
- *
501
- * @param {Stream} res
502
- * @return {Stream} res
503
- * @api public
504
- */
505
-
506
- SendStream.prototype.pipe = function pipe (res) {
507
- // root path
508
- var root = this._root
509
-
510
- // references
511
- this.res = res
512
-
513
- // decode the path
514
- var path = decode(this.path)
515
- if (path === -1) {
516
- this.error(400)
517
- return res
518
- }
519
-
520
- // null byte(s)
521
- if (~path.indexOf('\0')) {
522
- this.error(400)
523
- return res
524
- }
525
-
526
- var parts
527
- if (root !== null) {
528
- // normalize
529
- if (path) {
530
- path = normalize('.' + sep + path)
531
- }
532
-
533
- // malicious path
534
- if (UP_PATH_REGEXP.test(path)) {
535
- debug('malicious path "%s"', path)
536
- this.error(403)
537
- return res
538
- }
539
-
540
- // explode path parts
541
- parts = path.split(sep)
542
-
543
- // join / normalize from optional root dir
544
- path = normalize(join(root, path))
545
- } else {
546
- // ".." is malicious without "root"
547
- if (UP_PATH_REGEXP.test(path)) {
548
- debug('malicious path "%s"', path)
549
- this.error(403)
550
- return res
551
- }
552
-
553
- // explode path parts
554
- parts = normalize(path).split(sep)
555
-
556
- // resolve the path
557
- path = resolve(path)
558
- }
559
-
560
- // dotfile handling
561
- if (containsDotFile(parts)) {
562
- var access = this._dotfiles
563
-
564
- // legacy support
565
- if (access === undefined) {
566
- access = parts[parts.length - 1][0] === '.'
567
- ? (this._hidden ? 'allow' : 'ignore')
568
- : 'allow'
569
- }
570
-
571
- debug('%s dotfile "%s"', access, path)
572
- switch (access) {
573
- case 'allow':
574
- break
575
- case 'deny':
576
- this.error(403)
577
- return res
578
- case 'ignore':
579
- default:
580
- this.error(404)
581
- return res
582
- }
583
- }
584
-
585
- // index file support
586
- if (this._index.length && this.hasTrailingSlash()) {
587
- this.sendIndex(path)
588
- return res
589
- }
590
-
591
- this.sendFile(path)
592
- return res
593
- }
594
-
595
- /**
596
- * Transfer `path`.
597
- *
598
- * @param {String} path
599
- * @api public
600
- */
601
-
602
- SendStream.prototype.send = function send (path, stat) {
603
- var len = stat.size
604
- var options = this.options
605
- var opts = {}
606
- var res = this.res
607
- var req = this.req
608
- var ranges = req.headers.range
609
- var offset = options.start || 0
610
-
611
- if (headersSent(res)) {
612
- // impossible to send now
613
- this.headersAlreadySent()
614
- return
615
- }
616
-
617
- debug('pipe "%s"', path)
618
-
619
- // set header fields
620
- this.setHeader(path, stat)
621
-
622
- // set content-type
623
- this.type(path)
624
-
625
- // conditional GET support
626
- if (this.isConditionalGET()) {
627
- if (this.isPreconditionFailure()) {
628
- this.error(412)
629
- return
630
- }
631
-
632
- if (this.isCachable() && this.isFresh()) {
633
- this.notModified()
634
- return
635
- }
636
- }
637
-
638
- // adjust len to start/end options
639
- len = Math.max(0, len - offset)
640
- if (options.end !== undefined) {
641
- var bytes = options.end - offset + 1
642
- if (len > bytes) len = bytes
643
- }
644
-
645
- // Range support
646
- if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
647
- // parse
648
- ranges = parseRange(len, ranges, {
649
- combine: true
650
- })
651
-
652
- // If-Range support
653
- if (!this.isRangeFresh()) {
654
- debug('range stale')
655
- ranges = -2
656
- }
657
-
658
- // unsatisfiable
659
- if (ranges === -1) {
660
- debug('range unsatisfiable')
661
-
662
- // Content-Range
663
- res.setHeader('Content-Range', contentRange('bytes', len))
664
-
665
- // 416 Requested Range Not Satisfiable
666
- return this.error(416, {
667
- headers: { 'Content-Range': res.getHeader('Content-Range') }
668
- })
669
- }
670
-
671
- // valid (syntactically invalid/multiple ranges are treated as a regular response)
672
- if (ranges !== -2 && ranges.length === 1) {
673
- debug('range %j', ranges)
674
-
675
- // Content-Range
676
- res.statusCode = 206
677
- res.setHeader('Content-Range', contentRange('bytes', len, ranges[0]))
678
-
679
- // adjust for requested range
680
- offset += ranges[0].start
681
- len = ranges[0].end - ranges[0].start + 1
682
- }
683
- }
684
-
685
- // clone options
686
- for (var prop in options) {
687
- opts[prop] = options[prop]
688
- }
689
-
690
- // set read options
691
- opts.start = offset
692
- opts.end = Math.max(offset, offset + len - 1)
693
-
694
- // content-length
695
- res.setHeader('Content-Length', len)
696
-
697
- // HEAD support
698
- if (req.method === 'HEAD') {
699
- res.end()
700
- return
701
- }
702
-
703
- this.stream(path, opts)
704
- }
705
-
706
- /**
707
- * Transfer file for `path`.
708
- *
709
- * @param {String} path
710
- * @api private
711
- */
712
- SendStream.prototype.sendFile = function sendFile (path) {
713
- var i = 0
714
- var self = this
715
-
716
- debug('stat "%s"', path)
717
- fs.stat(path, function onstat (err, stat) {
718
- if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {
719
- // not found, check extensions
720
- return next(err)
721
- }
722
- if (err) return self.onStatError(err)
723
- if (stat.isDirectory()) return self.redirect(path)
724
- self.emit('file', path, stat)
725
- self.send(path, stat)
726
- })
727
-
728
- function next (err) {
729
- if (self._extensions.length <= i) {
730
- return err
731
- ? self.onStatError(err)
732
- : self.error(404)
733
- }
734
-
735
- var p = path + '.' + self._extensions[i++]
736
-
737
- debug('stat "%s"', p)
738
- fs.stat(p, function (err, stat) {
739
- if (err) return next(err)
740
- if (stat.isDirectory()) return next()
741
- self.emit('file', p, stat)
742
- self.send(p, stat)
743
- })
744
- }
745
- }
746
-
747
- /**
748
- * Transfer index for `path`.
749
- *
750
- * @param {String} path
751
- * @api private
752
- */
753
- SendStream.prototype.sendIndex = function sendIndex (path) {
754
- var i = -1
755
- var self = this
756
-
757
- function next (err) {
758
- if (++i >= self._index.length) {
759
- if (err) return self.onStatError(err)
760
- return self.error(404)
761
- }
762
-
763
- var p = join(path, self._index[i])
764
-
765
- debug('stat "%s"', p)
766
- fs.stat(p, function (err, stat) {
767
- if (err) return next(err)
768
- if (stat.isDirectory()) return next()
769
- self.emit('file', p, stat)
770
- self.send(p, stat)
771
- })
772
- }
773
-
774
- next()
775
- }
776
-
777
- /**
778
- * Stream `path` to the response.
779
- *
780
- * @param {String} path
781
- * @param {Object} options
782
- * @api private
783
- */
784
-
785
- SendStream.prototype.stream = function stream (path, options) {
786
- var self = this
787
- var res = this.res
788
-
789
- // pipe
790
- var stream = fs.createReadStream(path, options)
791
- this.emit('stream', stream)
792
- stream.pipe(res)
793
-
794
- // cleanup
795
- function cleanup () {
796
- destroy(stream, true)
797
- }
798
-
799
- // response finished, cleanup
800
- onFinished(res, cleanup)
801
-
802
- // error handling
803
- stream.on('error', function onerror (err) {
804
- // clean up stream early
805
- cleanup()
806
-
807
- // error
808
- self.onStatError(err)
809
- })
810
-
811
- // end
812
- stream.on('end', function onend () {
813
- self.emit('end')
814
- })
815
- }
816
-
817
- /**
818
- * Set content-type based on `path`
819
- * if it hasn't been explicitly set.
820
- *
821
- * @param {String} path
822
- * @api private
823
- */
824
-
825
- SendStream.prototype.type = function type (path) {
826
- var res = this.res
827
-
828
- if (res.getHeader('Content-Type')) return
829
-
830
- var type = mime.lookup(path)
831
-
832
- if (!type) {
833
- debug('no content-type')
834
- return
835
- }
836
-
837
- var charset = mime.charsets.lookup(type)
838
-
839
- debug('content-type %s', type)
840
- res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''))
841
- }
842
-
843
- /**
844
- * Set response header fields, most
845
- * fields may be pre-defined.
846
- *
847
- * @param {String} path
848
- * @param {Object} stat
849
- * @api private
850
- */
851
-
852
- SendStream.prototype.setHeader = function setHeader (path, stat) {
853
- var res = this.res
854
-
855
- this.emit('headers', res, path, stat)
856
-
857
- if (this._acceptRanges && !res.getHeader('Accept-Ranges')) {
858
- debug('accept ranges')
859
- res.setHeader('Accept-Ranges', 'bytes')
860
- }
861
-
862
- if (this._cacheControl && !res.getHeader('Cache-Control')) {
863
- var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000)
864
-
865
- if (this._immutable) {
866
- cacheControl += ', immutable'
867
- }
868
-
869
- debug('cache-control %s', cacheControl)
870
- res.setHeader('Cache-Control', cacheControl)
871
- }
872
-
873
- if (this._lastModified && !res.getHeader('Last-Modified')) {
874
- var modified = stat.mtime.toUTCString()
875
- debug('modified %s', modified)
876
- res.setHeader('Last-Modified', modified)
877
- }
878
-
879
- if (this._etag && !res.getHeader('ETag')) {
880
- var val = etag(stat)
881
- debug('etag %s', val)
882
- res.setHeader('ETag', val)
883
- }
884
- }
885
-
886
- /**
887
- * Clear all headers from a response.
888
- *
889
- * @param {object} res
890
- * @private
891
- */
892
-
893
- function clearHeaders (res) {
894
- var headers = getHeaderNames(res)
895
-
896
- for (var i = 0; i < headers.length; i++) {
897
- res.removeHeader(headers[i])
898
- }
899
- }
900
-
901
- /**
902
- * Collapse all leading slashes into a single slash
903
- *
904
- * @param {string} str
905
- * @private
906
- */
907
- function collapseLeadingSlashes (str) {
908
- for (var i = 0; i < str.length; i++) {
909
- if (str[i] !== '/') {
910
- break
911
- }
912
- }
913
-
914
- return i > 1
915
- ? '/' + str.substr(i)
916
- : str
917
- }
918
-
919
- /**
920
- * Determine if path parts contain a dotfile.
921
- *
922
- * @api private
923
- */
924
-
925
- function containsDotFile (parts) {
926
- for (var i = 0; i < parts.length; i++) {
927
- var part = parts[i]
928
- if (part.length > 1 && part[0] === '.') {
929
- return true
930
- }
931
- }
932
-
933
- return false
934
- }
935
-
936
- /**
937
- * Create a Content-Range header.
938
- *
939
- * @param {string} type
940
- * @param {number} size
941
- * @param {array} [range]
942
- */
943
-
944
- function contentRange (type, size, range) {
945
- return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size
946
- }
947
-
948
- /**
949
- * Create a minimal HTML document.
950
- *
951
- * @param {string} title
952
- * @param {string} body
953
- * @private
954
- */
955
-
956
- function createHtmlDocument (title, body) {
957
- return '<!DOCTYPE html>\n' +
958
- '<html lang="en">\n' +
959
- '<head>\n' +
960
- '<meta charset="utf-8">\n' +
961
- '<title>' + title + '</title>\n' +
962
- '</head>\n' +
963
- '<body>\n' +
964
- '<pre>' + body + '</pre>\n' +
965
- '</body>\n' +
966
- '</html>\n'
967
- }
968
-
969
- /**
970
- * Create a HttpError object from simple arguments.
971
- *
972
- * @param {number} status
973
- * @param {Error|object} err
974
- * @private
975
- */
976
-
977
- function createHttpError (status, err) {
978
- if (!err) {
979
- return createError(status)
980
- }
981
-
982
- return err instanceof Error
983
- ? createError(status, err, { expose: false })
984
- : createError(status, err)
985
- }
986
-
987
- /**
988
- * decodeURIComponent.
989
- *
990
- * Allows V8 to only deoptimize this fn instead of all
991
- * of send().
992
- *
993
- * @param {String} path
994
- * @api private
995
- */
996
-
997
- function decode (path) {
998
- try {
999
- return decodeURIComponent(path)
1000
- } catch (err) {
1001
- return -1
1002
- }
1003
- }
1004
-
1005
- /**
1006
- * Get the header names on a respnse.
1007
- *
1008
- * @param {object} res
1009
- * @returns {array[string]}
1010
- * @private
1011
- */
1012
-
1013
- function getHeaderNames (res) {
1014
- return typeof res.getHeaderNames !== 'function'
1015
- ? Object.keys(res._headers || {})
1016
- : res.getHeaderNames()
1017
- }
1018
-
1019
- /**
1020
- * Determine if emitter has listeners of a given type.
1021
- *
1022
- * The way to do this check is done three different ways in Node.js >= 0.8
1023
- * so this consolidates them into a minimal set using instance methods.
1024
- *
1025
- * @param {EventEmitter} emitter
1026
- * @param {string} type
1027
- * @returns {boolean}
1028
- * @private
1029
- */
1030
-
1031
- function hasListeners (emitter, type) {
1032
- var count = typeof emitter.listenerCount !== 'function'
1033
- ? emitter.listeners(type).length
1034
- : emitter.listenerCount(type)
1035
-
1036
- return count > 0
1037
- }
1038
-
1039
- /**
1040
- * Determine if the response headers have been sent.
1041
- *
1042
- * @param {object} res
1043
- * @returns {boolean}
1044
- * @private
1045
- */
1046
-
1047
- function headersSent (res) {
1048
- return typeof res.headersSent !== 'boolean'
1049
- ? Boolean(res._header)
1050
- : res.headersSent
1051
- }
1052
-
1053
- /**
1054
- * Normalize the index option into an array.
1055
- *
1056
- * @param {boolean|string|array} val
1057
- * @param {string} name
1058
- * @private
1059
- */
1060
-
1061
- function normalizeList (val, name) {
1062
- var list = [].concat(val || [])
1063
-
1064
- for (var i = 0; i < list.length; i++) {
1065
- if (typeof list[i] !== 'string') {
1066
- throw new TypeError(name + ' must be array of strings or false')
1067
- }
1068
- }
1069
-
1070
- return list
1071
- }
1072
-
1073
- /**
1074
- * Parse an HTTP Date into a number.
1075
- *
1076
- * @param {string} date
1077
- * @private
1078
- */
1079
-
1080
- function parseHttpDate (date) {
1081
- var timestamp = date && Date.parse(date)
1082
-
1083
- return typeof timestamp === 'number'
1084
- ? timestamp
1085
- : NaN
1086
- }
1087
-
1088
- /**
1089
- * Parse a HTTP token list.
1090
- *
1091
- * @param {string} str
1092
- * @private
1093
- */
1094
-
1095
- function parseTokenList (str) {
1096
- var end = 0
1097
- var list = []
1098
- var start = 0
1099
-
1100
- // gather tokens
1101
- for (var i = 0, len = str.length; i < len; i++) {
1102
- switch (str.charCodeAt(i)) {
1103
- case 0x20: /* */
1104
- if (start === end) {
1105
- start = end = i + 1
1106
- }
1107
- break
1108
- case 0x2c: /* , */
1109
- if (start !== end) {
1110
- list.push(str.substring(start, end))
1111
- }
1112
- start = end = i + 1
1113
- break
1114
- default:
1115
- end = i + 1
1116
- break
1117
- }
1118
- }
1119
-
1120
- // final token
1121
- if (start !== end) {
1122
- list.push(str.substring(start, end))
1123
- }
1124
-
1125
- return list
1126
- }
1127
-
1128
- /**
1129
- * Set an object of headers on a response.
1130
- *
1131
- * @param {object} res
1132
- * @param {object} headers
1133
- * @private
1134
- */
1135
-
1136
- function setHeaders (res, headers) {
1137
- var keys = Object.keys(headers)
1138
-
1139
- for (var i = 0; i < keys.length; i++) {
1140
- var key = keys[i]
1141
- res.setHeader(key, headers[key])
1142
- }
1143
- }