speaker-calibration 2.1.5 → 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 (426) hide show
  1. package/dist/example/speakerUI.js +7 -3
  2. package/dist/main.js +1110 -912
  3. package/dist/package-lock.json +1018 -1018
  4. package/dist/package.json +18 -18
  5. package/package.json +1 -1
  6. package/src/tasks/volume/volume.js +30 -3
  7. package/dist/node_modules/.bin/mime +0 -12
  8. package/dist/node_modules/.bin/mime.cmd +0 -17
  9. package/dist/node_modules/.bin/mime.ps1 +0 -28
  10. package/dist/node_modules/.package-lock.json +0 -584
  11. package/dist/node_modules/accepts/HISTORY.md +0 -243
  12. package/dist/node_modules/accepts/LICENSE +0 -23
  13. package/dist/node_modules/accepts/README.md +0 -140
  14. package/dist/node_modules/accepts/index.js +0 -238
  15. package/dist/node_modules/accepts/package.json +0 -47
  16. package/dist/node_modules/array-flatten/LICENSE +0 -21
  17. package/dist/node_modules/array-flatten/README.md +0 -43
  18. package/dist/node_modules/array-flatten/array-flatten.js +0 -64
  19. package/dist/node_modules/array-flatten/package.json +0 -39
  20. package/dist/node_modules/body-parser/HISTORY.md +0 -657
  21. package/dist/node_modules/body-parser/LICENSE +0 -23
  22. package/dist/node_modules/body-parser/README.md +0 -464
  23. package/dist/node_modules/body-parser/SECURITY.md +0 -25
  24. package/dist/node_modules/body-parser/index.js +0 -156
  25. package/dist/node_modules/body-parser/lib/read.js +0 -205
  26. package/dist/node_modules/body-parser/lib/types/json.js +0 -236
  27. package/dist/node_modules/body-parser/lib/types/raw.js +0 -101
  28. package/dist/node_modules/body-parser/lib/types/text.js +0 -121
  29. package/dist/node_modules/body-parser/lib/types/urlencoded.js +0 -284
  30. package/dist/node_modules/body-parser/package.json +0 -56
  31. package/dist/node_modules/bytes/History.md +0 -97
  32. package/dist/node_modules/bytes/LICENSE +0 -23
  33. package/dist/node_modules/bytes/Readme.md +0 -152
  34. package/dist/node_modules/bytes/index.js +0 -170
  35. package/dist/node_modules/bytes/package.json +0 -42
  36. package/dist/node_modules/call-bind/.eslintignore +0 -1
  37. package/dist/node_modules/call-bind/.eslintrc +0 -17
  38. package/dist/node_modules/call-bind/.github/FUNDING.yml +0 -12
  39. package/dist/node_modules/call-bind/.nycrc +0 -13
  40. package/dist/node_modules/call-bind/CHANGELOG.md +0 -42
  41. package/dist/node_modules/call-bind/LICENSE +0 -21
  42. package/dist/node_modules/call-bind/README.md +0 -2
  43. package/dist/node_modules/call-bind/callBound.js +0 -15
  44. package/dist/node_modules/call-bind/index.js +0 -47
  45. package/dist/node_modules/call-bind/package.json +0 -80
  46. package/dist/node_modules/call-bind/test/callBound.js +0 -55
  47. package/dist/node_modules/call-bind/test/index.js +0 -66
  48. package/dist/node_modules/content-disposition/HISTORY.md +0 -60
  49. package/dist/node_modules/content-disposition/LICENSE +0 -22
  50. package/dist/node_modules/content-disposition/README.md +0 -142
  51. package/dist/node_modules/content-disposition/index.js +0 -458
  52. package/dist/node_modules/content-disposition/package.json +0 -44
  53. package/dist/node_modules/content-type/HISTORY.md +0 -24
  54. package/dist/node_modules/content-type/LICENSE +0 -22
  55. package/dist/node_modules/content-type/README.md +0 -92
  56. package/dist/node_modules/content-type/index.js +0 -222
  57. package/dist/node_modules/content-type/package.json +0 -40
  58. package/dist/node_modules/cookie/HISTORY.md +0 -142
  59. package/dist/node_modules/cookie/LICENSE +0 -24
  60. package/dist/node_modules/cookie/README.md +0 -302
  61. package/dist/node_modules/cookie/SECURITY.md +0 -25
  62. package/dist/node_modules/cookie/index.js +0 -270
  63. package/dist/node_modules/cookie/package.json +0 -44
  64. package/dist/node_modules/cookie-signature/History.md +0 -38
  65. package/dist/node_modules/cookie-signature/Readme.md +0 -42
  66. package/dist/node_modules/cookie-signature/index.js +0 -51
  67. package/dist/node_modules/cookie-signature/package.json +0 -18
  68. package/dist/node_modules/debug/.coveralls.yml +0 -1
  69. package/dist/node_modules/debug/.eslintrc +0 -11
  70. package/dist/node_modules/debug/.travis.yml +0 -14
  71. package/dist/node_modules/debug/CHANGELOG.md +0 -362
  72. package/dist/node_modules/debug/LICENSE +0 -19
  73. package/dist/node_modules/debug/Makefile +0 -50
  74. package/dist/node_modules/debug/README.md +0 -312
  75. package/dist/node_modules/debug/component.json +0 -19
  76. package/dist/node_modules/debug/karma.conf.js +0 -70
  77. package/dist/node_modules/debug/node.js +0 -1
  78. package/dist/node_modules/debug/package.json +0 -49
  79. package/dist/node_modules/debug/src/browser.js +0 -185
  80. package/dist/node_modules/debug/src/debug.js +0 -202
  81. package/dist/node_modules/debug/src/index.js +0 -10
  82. package/dist/node_modules/debug/src/inspector-log.js +0 -15
  83. package/dist/node_modules/debug/src/node.js +0 -248
  84. package/dist/node_modules/depd/History.md +0 -103
  85. package/dist/node_modules/depd/LICENSE +0 -22
  86. package/dist/node_modules/depd/Readme.md +0 -280
  87. package/dist/node_modules/depd/index.js +0 -538
  88. package/dist/node_modules/depd/lib/browser/index.js +0 -77
  89. package/dist/node_modules/depd/package.json +0 -45
  90. package/dist/node_modules/destroy/LICENSE +0 -23
  91. package/dist/node_modules/destroy/README.md +0 -63
  92. package/dist/node_modules/destroy/index.js +0 -209
  93. package/dist/node_modules/destroy/package.json +0 -48
  94. package/dist/node_modules/ee-first/LICENSE +0 -22
  95. package/dist/node_modules/ee-first/README.md +0 -80
  96. package/dist/node_modules/ee-first/index.js +0 -95
  97. package/dist/node_modules/ee-first/package.json +0 -29
  98. package/dist/node_modules/encodeurl/HISTORY.md +0 -14
  99. package/dist/node_modules/encodeurl/LICENSE +0 -22
  100. package/dist/node_modules/encodeurl/README.md +0 -128
  101. package/dist/node_modules/encodeurl/index.js +0 -60
  102. package/dist/node_modules/encodeurl/package.json +0 -40
  103. package/dist/node_modules/escape-html/LICENSE +0 -24
  104. package/dist/node_modules/escape-html/Readme.md +0 -43
  105. package/dist/node_modules/escape-html/index.js +0 -78
  106. package/dist/node_modules/escape-html/package.json +0 -24
  107. package/dist/node_modules/etag/HISTORY.md +0 -83
  108. package/dist/node_modules/etag/LICENSE +0 -22
  109. package/dist/node_modules/etag/README.md +0 -159
  110. package/dist/node_modules/etag/index.js +0 -131
  111. package/dist/node_modules/etag/package.json +0 -47
  112. package/dist/node_modules/express/History.md +0 -3588
  113. package/dist/node_modules/express/LICENSE +0 -24
  114. package/dist/node_modules/express/Readme.md +0 -166
  115. package/dist/node_modules/express/index.js +0 -11
  116. package/dist/node_modules/express/lib/application.js +0 -661
  117. package/dist/node_modules/express/lib/express.js +0 -116
  118. package/dist/node_modules/express/lib/middleware/init.js +0 -43
  119. package/dist/node_modules/express/lib/middleware/query.js +0 -47
  120. package/dist/node_modules/express/lib/request.js +0 -525
  121. package/dist/node_modules/express/lib/response.js +0 -1169
  122. package/dist/node_modules/express/lib/router/index.js +0 -673
  123. package/dist/node_modules/express/lib/router/layer.js +0 -181
  124. package/dist/node_modules/express/lib/router/route.js +0 -225
  125. package/dist/node_modules/express/lib/utils.js +0 -304
  126. package/dist/node_modules/express/lib/view.js +0 -182
  127. package/dist/node_modules/express/package.json +0 -99
  128. package/dist/node_modules/finalhandler/HISTORY.md +0 -195
  129. package/dist/node_modules/finalhandler/LICENSE +0 -22
  130. package/dist/node_modules/finalhandler/README.md +0 -147
  131. package/dist/node_modules/finalhandler/SECURITY.md +0 -25
  132. package/dist/node_modules/finalhandler/index.js +0 -336
  133. package/dist/node_modules/finalhandler/package.json +0 -46
  134. package/dist/node_modules/forwarded/HISTORY.md +0 -21
  135. package/dist/node_modules/forwarded/LICENSE +0 -22
  136. package/dist/node_modules/forwarded/README.md +0 -57
  137. package/dist/node_modules/forwarded/index.js +0 -90
  138. package/dist/node_modules/forwarded/package.json +0 -45
  139. package/dist/node_modules/fresh/HISTORY.md +0 -70
  140. package/dist/node_modules/fresh/LICENSE +0 -23
  141. package/dist/node_modules/fresh/README.md +0 -119
  142. package/dist/node_modules/fresh/index.js +0 -137
  143. package/dist/node_modules/fresh/package.json +0 -46
  144. package/dist/node_modules/function-bind/.editorconfig +0 -20
  145. package/dist/node_modules/function-bind/.eslintrc +0 -15
  146. package/dist/node_modules/function-bind/.jscs.json +0 -176
  147. package/dist/node_modules/function-bind/.travis.yml +0 -168
  148. package/dist/node_modules/function-bind/LICENSE +0 -20
  149. package/dist/node_modules/function-bind/README.md +0 -48
  150. package/dist/node_modules/function-bind/implementation.js +0 -52
  151. package/dist/node_modules/function-bind/index.js +0 -5
  152. package/dist/node_modules/function-bind/package.json +0 -63
  153. package/dist/node_modules/function-bind/test/.eslintrc +0 -9
  154. package/dist/node_modules/function-bind/test/index.js +0 -252
  155. package/dist/node_modules/get-intrinsic/.eslintrc +0 -37
  156. package/dist/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  157. package/dist/node_modules/get-intrinsic/.nycrc +0 -9
  158. package/dist/node_modules/get-intrinsic/CHANGELOG.md +0 -98
  159. package/dist/node_modules/get-intrinsic/LICENSE +0 -21
  160. package/dist/node_modules/get-intrinsic/README.md +0 -71
  161. package/dist/node_modules/get-intrinsic/index.js +0 -334
  162. package/dist/node_modules/get-intrinsic/package.json +0 -91
  163. package/dist/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  164. package/dist/node_modules/has/LICENSE-MIT +0 -22
  165. package/dist/node_modules/has/README.md +0 -18
  166. package/dist/node_modules/has/package.json +0 -48
  167. package/dist/node_modules/has/src/index.js +0 -5
  168. package/dist/node_modules/has/test/index.js +0 -10
  169. package/dist/node_modules/has-symbols/.eslintrc +0 -11
  170. package/dist/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  171. package/dist/node_modules/has-symbols/.nycrc +0 -9
  172. package/dist/node_modules/has-symbols/CHANGELOG.md +0 -75
  173. package/dist/node_modules/has-symbols/LICENSE +0 -21
  174. package/dist/node_modules/has-symbols/README.md +0 -46
  175. package/dist/node_modules/has-symbols/index.js +0 -13
  176. package/dist/node_modules/has-symbols/package.json +0 -101
  177. package/dist/node_modules/has-symbols/shams.js +0 -42
  178. package/dist/node_modules/has-symbols/test/index.js +0 -22
  179. package/dist/node_modules/has-symbols/test/shams/core-js.js +0 -28
  180. package/dist/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -28
  181. package/dist/node_modules/has-symbols/test/tests.js +0 -56
  182. package/dist/node_modules/http-errors/HISTORY.md +0 -180
  183. package/dist/node_modules/http-errors/LICENSE +0 -23
  184. package/dist/node_modules/http-errors/README.md +0 -169
  185. package/dist/node_modules/http-errors/index.js +0 -289
  186. package/dist/node_modules/http-errors/package.json +0 -50
  187. package/dist/node_modules/iconv-lite/Changelog.md +0 -162
  188. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  189. package/dist/node_modules/iconv-lite/README.md +0 -156
  190. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  191. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  192. package/dist/node_modules/iconv-lite/encodings/index.js +0 -22
  193. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -188
  194. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  195. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  196. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  197. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  198. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  199. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  200. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  201. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  202. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  203. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  204. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  205. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -177
  206. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -290
  207. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  208. package/dist/node_modules/iconv-lite/lib/extend-node.js +0 -217
  209. package/dist/node_modules/iconv-lite/lib/index.d.ts +0 -24
  210. package/dist/node_modules/iconv-lite/lib/index.js +0 -153
  211. package/dist/node_modules/iconv-lite/lib/streams.js +0 -121
  212. package/dist/node_modules/iconv-lite/package.json +0 -46
  213. package/dist/node_modules/inherits/LICENSE +0 -16
  214. package/dist/node_modules/inherits/README.md +0 -42
  215. package/dist/node_modules/inherits/inherits.js +0 -9
  216. package/dist/node_modules/inherits/inherits_browser.js +0 -27
  217. package/dist/node_modules/inherits/package.json +0 -29
  218. package/dist/node_modules/ipaddr.js/LICENSE +0 -19
  219. package/dist/node_modules/ipaddr.js/README.md +0 -233
  220. package/dist/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  221. package/dist/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  222. package/dist/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  223. package/dist/node_modules/ipaddr.js/package.json +0 -35
  224. package/dist/node_modules/media-typer/HISTORY.md +0 -22
  225. package/dist/node_modules/media-typer/LICENSE +0 -22
  226. package/dist/node_modules/media-typer/README.md +0 -81
  227. package/dist/node_modules/media-typer/index.js +0 -270
  228. package/dist/node_modules/media-typer/package.json +0 -26
  229. package/dist/node_modules/merge-descriptors/HISTORY.md +0 -21
  230. package/dist/node_modules/merge-descriptors/LICENSE +0 -23
  231. package/dist/node_modules/merge-descriptors/README.md +0 -48
  232. package/dist/node_modules/merge-descriptors/index.js +0 -60
  233. package/dist/node_modules/merge-descriptors/package.json +0 -32
  234. package/dist/node_modules/methods/HISTORY.md +0 -29
  235. package/dist/node_modules/methods/LICENSE +0 -24
  236. package/dist/node_modules/methods/README.md +0 -51
  237. package/dist/node_modules/methods/index.js +0 -69
  238. package/dist/node_modules/methods/package.json +0 -36
  239. package/dist/node_modules/mime/CHANGELOG.md +0 -164
  240. package/dist/node_modules/mime/LICENSE +0 -21
  241. package/dist/node_modules/mime/README.md +0 -90
  242. package/dist/node_modules/mime/cli.js +0 -8
  243. package/dist/node_modules/mime/mime.js +0 -108
  244. package/dist/node_modules/mime/package.json +0 -44
  245. package/dist/node_modules/mime/src/build.js +0 -53
  246. package/dist/node_modules/mime/src/test.js +0 -60
  247. package/dist/node_modules/mime/types.json +0 -1
  248. package/dist/node_modules/mime-db/HISTORY.md +0 -507
  249. package/dist/node_modules/mime-db/LICENSE +0 -23
  250. package/dist/node_modules/mime-db/README.md +0 -100
  251. package/dist/node_modules/mime-db/db.json +0 -8519
  252. package/dist/node_modules/mime-db/index.js +0 -12
  253. package/dist/node_modules/mime-db/package.json +0 -60
  254. package/dist/node_modules/mime-types/HISTORY.md +0 -397
  255. package/dist/node_modules/mime-types/LICENSE +0 -23
  256. package/dist/node_modules/mime-types/README.md +0 -113
  257. package/dist/node_modules/mime-types/index.js +0 -188
  258. package/dist/node_modules/mime-types/package.json +0 -44
  259. package/dist/node_modules/ms/index.js +0 -152
  260. package/dist/node_modules/ms/license.md +0 -21
  261. package/dist/node_modules/ms/package.json +0 -37
  262. package/dist/node_modules/ms/readme.md +0 -51
  263. package/dist/node_modules/negotiator/HISTORY.md +0 -108
  264. package/dist/node_modules/negotiator/LICENSE +0 -24
  265. package/dist/node_modules/negotiator/README.md +0 -203
  266. package/dist/node_modules/negotiator/index.js +0 -82
  267. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  268. package/dist/node_modules/negotiator/lib/encoding.js +0 -184
  269. package/dist/node_modules/negotiator/lib/language.js +0 -179
  270. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  271. package/dist/node_modules/negotiator/package.json +0 -42
  272. package/dist/node_modules/object-inspect/.eslintrc +0 -53
  273. package/dist/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  274. package/dist/node_modules/object-inspect/.nycrc +0 -13
  275. package/dist/node_modules/object-inspect/CHANGELOG.md +0 -360
  276. package/dist/node_modules/object-inspect/LICENSE +0 -21
  277. package/dist/node_modules/object-inspect/example/all.js +0 -23
  278. package/dist/node_modules/object-inspect/example/circular.js +0 -6
  279. package/dist/node_modules/object-inspect/example/fn.js +0 -5
  280. package/dist/node_modules/object-inspect/example/inspect.js +0 -10
  281. package/dist/node_modules/object-inspect/index.js +0 -512
  282. package/dist/node_modules/object-inspect/package-support.json +0 -20
  283. package/dist/node_modules/object-inspect/package.json +0 -94
  284. package/dist/node_modules/object-inspect/readme.markdown +0 -86
  285. package/dist/node_modules/object-inspect/test/bigint.js +0 -58
  286. package/dist/node_modules/object-inspect/test/browser/dom.js +0 -15
  287. package/dist/node_modules/object-inspect/test/circular.js +0 -16
  288. package/dist/node_modules/object-inspect/test/deep.js +0 -12
  289. package/dist/node_modules/object-inspect/test/element.js +0 -53
  290. package/dist/node_modules/object-inspect/test/err.js +0 -48
  291. package/dist/node_modules/object-inspect/test/fakes.js +0 -29
  292. package/dist/node_modules/object-inspect/test/fn.js +0 -76
  293. package/dist/node_modules/object-inspect/test/has.js +0 -15
  294. package/dist/node_modules/object-inspect/test/holes.js +0 -15
  295. package/dist/node_modules/object-inspect/test/indent-option.js +0 -271
  296. package/dist/node_modules/object-inspect/test/inspect.js +0 -139
  297. package/dist/node_modules/object-inspect/test/lowbyte.js +0 -12
  298. package/dist/node_modules/object-inspect/test/number.js +0 -58
  299. package/dist/node_modules/object-inspect/test/quoteStyle.js +0 -17
  300. package/dist/node_modules/object-inspect/test/toStringTag.js +0 -40
  301. package/dist/node_modules/object-inspect/test/undef.js +0 -12
  302. package/dist/node_modules/object-inspect/test/values.js +0 -211
  303. package/dist/node_modules/object-inspect/test-core-js.js +0 -26
  304. package/dist/node_modules/object-inspect/util.inspect.js +0 -1
  305. package/dist/node_modules/on-finished/HISTORY.md +0 -98
  306. package/dist/node_modules/on-finished/LICENSE +0 -23
  307. package/dist/node_modules/on-finished/README.md +0 -162
  308. package/dist/node_modules/on-finished/index.js +0 -234
  309. package/dist/node_modules/on-finished/package.json +0 -39
  310. package/dist/node_modules/parseurl/HISTORY.md +0 -58
  311. package/dist/node_modules/parseurl/LICENSE +0 -24
  312. package/dist/node_modules/parseurl/README.md +0 -133
  313. package/dist/node_modules/parseurl/index.js +0 -158
  314. package/dist/node_modules/parseurl/package.json +0 -40
  315. package/dist/node_modules/path-to-regexp/History.md +0 -36
  316. package/dist/node_modules/path-to-regexp/LICENSE +0 -21
  317. package/dist/node_modules/path-to-regexp/Readme.md +0 -35
  318. package/dist/node_modules/path-to-regexp/index.js +0 -129
  319. package/dist/node_modules/path-to-regexp/package.json +0 -30
  320. package/dist/node_modules/proxy-addr/HISTORY.md +0 -161
  321. package/dist/node_modules/proxy-addr/LICENSE +0 -22
  322. package/dist/node_modules/proxy-addr/README.md +0 -139
  323. package/dist/node_modules/proxy-addr/index.js +0 -327
  324. package/dist/node_modules/proxy-addr/package.json +0 -47
  325. package/dist/node_modules/qs/.editorconfig +0 -43
  326. package/dist/node_modules/qs/.eslintrc +0 -38
  327. package/dist/node_modules/qs/.github/FUNDING.yml +0 -12
  328. package/dist/node_modules/qs/.nycrc +0 -13
  329. package/dist/node_modules/qs/CHANGELOG.md +0 -546
  330. package/dist/node_modules/qs/LICENSE.md +0 -29
  331. package/dist/node_modules/qs/README.md +0 -625
  332. package/dist/node_modules/qs/dist/qs.js +0 -2054
  333. package/dist/node_modules/qs/lib/formats.js +0 -23
  334. package/dist/node_modules/qs/lib/index.js +0 -11
  335. package/dist/node_modules/qs/lib/parse.js +0 -263
  336. package/dist/node_modules/qs/lib/stringify.js +0 -326
  337. package/dist/node_modules/qs/lib/utils.js +0 -252
  338. package/dist/node_modules/qs/package.json +0 -77
  339. package/dist/node_modules/qs/test/parse.js +0 -855
  340. package/dist/node_modules/qs/test/stringify.js +0 -909
  341. package/dist/node_modules/qs/test/utils.js +0 -136
  342. package/dist/node_modules/range-parser/HISTORY.md +0 -56
  343. package/dist/node_modules/range-parser/LICENSE +0 -23
  344. package/dist/node_modules/range-parser/README.md +0 -84
  345. package/dist/node_modules/range-parser/index.js +0 -162
  346. package/dist/node_modules/range-parser/package.json +0 -44
  347. package/dist/node_modules/raw-body/HISTORY.md +0 -303
  348. package/dist/node_modules/raw-body/LICENSE +0 -22
  349. package/dist/node_modules/raw-body/README.md +0 -223
  350. package/dist/node_modules/raw-body/SECURITY.md +0 -24
  351. package/dist/node_modules/raw-body/index.d.ts +0 -87
  352. package/dist/node_modules/raw-body/index.js +0 -329
  353. package/dist/node_modules/raw-body/package.json +0 -49
  354. package/dist/node_modules/safe-buffer/LICENSE +0 -21
  355. package/dist/node_modules/safe-buffer/README.md +0 -584
  356. package/dist/node_modules/safe-buffer/index.d.ts +0 -187
  357. package/dist/node_modules/safe-buffer/index.js +0 -65
  358. package/dist/node_modules/safe-buffer/package.json +0 -51
  359. package/dist/node_modules/safer-buffer/LICENSE +0 -21
  360. package/dist/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  361. package/dist/node_modules/safer-buffer/Readme.md +0 -156
  362. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  363. package/dist/node_modules/safer-buffer/package.json +0 -34
  364. package/dist/node_modules/safer-buffer/safer.js +0 -77
  365. package/dist/node_modules/safer-buffer/tests.js +0 -406
  366. package/dist/node_modules/send/HISTORY.md +0 -521
  367. package/dist/node_modules/send/LICENSE +0 -23
  368. package/dist/node_modules/send/README.md +0 -327
  369. package/dist/node_modules/send/SECURITY.md +0 -24
  370. package/dist/node_modules/send/index.js +0 -1143
  371. package/dist/node_modules/send/node_modules/ms/index.js +0 -162
  372. package/dist/node_modules/send/node_modules/ms/license.md +0 -21
  373. package/dist/node_modules/send/node_modules/ms/package.json +0 -38
  374. package/dist/node_modules/send/node_modules/ms/readme.md +0 -59
  375. package/dist/node_modules/send/package.json +0 -62
  376. package/dist/node_modules/serve-static/HISTORY.md +0 -471
  377. package/dist/node_modules/serve-static/LICENSE +0 -25
  378. package/dist/node_modules/serve-static/README.md +0 -257
  379. package/dist/node_modules/serve-static/index.js +0 -210
  380. package/dist/node_modules/serve-static/package.json +0 -42
  381. package/dist/node_modules/setprototypeof/LICENSE +0 -13
  382. package/dist/node_modules/setprototypeof/README.md +0 -31
  383. package/dist/node_modules/setprototypeof/index.d.ts +0 -2
  384. package/dist/node_modules/setprototypeof/index.js +0 -17
  385. package/dist/node_modules/setprototypeof/package.json +0 -38
  386. package/dist/node_modules/setprototypeof/test/index.js +0 -24
  387. package/dist/node_modules/side-channel/.eslintignore +0 -1
  388. package/dist/node_modules/side-channel/.eslintrc +0 -11
  389. package/dist/node_modules/side-channel/.github/FUNDING.yml +0 -12
  390. package/dist/node_modules/side-channel/.nycrc +0 -13
  391. package/dist/node_modules/side-channel/CHANGELOG.md +0 -65
  392. package/dist/node_modules/side-channel/LICENSE +0 -21
  393. package/dist/node_modules/side-channel/README.md +0 -2
  394. package/dist/node_modules/side-channel/index.js +0 -124
  395. package/dist/node_modules/side-channel/package.json +0 -67
  396. package/dist/node_modules/side-channel/test/index.js +0 -78
  397. package/dist/node_modules/statuses/HISTORY.md +0 -82
  398. package/dist/node_modules/statuses/LICENSE +0 -23
  399. package/dist/node_modules/statuses/README.md +0 -136
  400. package/dist/node_modules/statuses/codes.json +0 -65
  401. package/dist/node_modules/statuses/index.js +0 -146
  402. package/dist/node_modules/statuses/package.json +0 -49
  403. package/dist/node_modules/toidentifier/HISTORY.md +0 -9
  404. package/dist/node_modules/toidentifier/LICENSE +0 -21
  405. package/dist/node_modules/toidentifier/README.md +0 -61
  406. package/dist/node_modules/toidentifier/index.js +0 -32
  407. package/dist/node_modules/toidentifier/package.json +0 -38
  408. package/dist/node_modules/type-is/HISTORY.md +0 -259
  409. package/dist/node_modules/type-is/LICENSE +0 -23
  410. package/dist/node_modules/type-is/README.md +0 -170
  411. package/dist/node_modules/type-is/index.js +0 -266
  412. package/dist/node_modules/type-is/package.json +0 -45
  413. package/dist/node_modules/unpipe/HISTORY.md +0 -4
  414. package/dist/node_modules/unpipe/LICENSE +0 -22
  415. package/dist/node_modules/unpipe/README.md +0 -43
  416. package/dist/node_modules/unpipe/index.js +0 -69
  417. package/dist/node_modules/unpipe/package.json +0 -27
  418. package/dist/node_modules/utils-merge/LICENSE +0 -20
  419. package/dist/node_modules/utils-merge/README.md +0 -34
  420. package/dist/node_modules/utils-merge/index.js +0 -23
  421. package/dist/node_modules/utils-merge/package.json +0 -40
  422. package/dist/node_modules/vary/HISTORY.md +0 -39
  423. package/dist/node_modules/vary/LICENSE +0 -22
  424. package/dist/node_modules/vary/README.md +0 -101
  425. package/dist/node_modules/vary/index.js +0 -149
  426. 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
- }