@7nsane/zift 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/package.json +1 -1
  2. package/zift-user-test/node_modules/.package-lock.json +0 -819
  3. package/zift-user-test/node_modules/accepts/HISTORY.md +0 -250
  4. package/zift-user-test/node_modules/accepts/LICENSE +0 -23
  5. package/zift-user-test/node_modules/accepts/README.md +0 -140
  6. package/zift-user-test/node_modules/accepts/index.js +0 -238
  7. package/zift-user-test/node_modules/accepts/package.json +0 -47
  8. package/zift-user-test/node_modules/body-parser/LICENSE +0 -23
  9. package/zift-user-test/node_modules/body-parser/README.md +0 -494
  10. package/zift-user-test/node_modules/body-parser/index.js +0 -71
  11. package/zift-user-test/node_modules/body-parser/lib/read.js +0 -247
  12. package/zift-user-test/node_modules/body-parser/lib/types/json.js +0 -158
  13. package/zift-user-test/node_modules/body-parser/lib/types/raw.js +0 -42
  14. package/zift-user-test/node_modules/body-parser/lib/types/text.js +0 -36
  15. package/zift-user-test/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  16. package/zift-user-test/node_modules/body-parser/lib/utils.js +0 -98
  17. package/zift-user-test/node_modules/body-parser/package.json +0 -52
  18. package/zift-user-test/node_modules/bytes/History.md +0 -97
  19. package/zift-user-test/node_modules/bytes/LICENSE +0 -23
  20. package/zift-user-test/node_modules/bytes/Readme.md +0 -152
  21. package/zift-user-test/node_modules/bytes/index.js +0 -170
  22. package/zift-user-test/node_modules/bytes/package.json +0 -42
  23. package/zift-user-test/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  24. package/zift-user-test/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  25. package/zift-user-test/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  26. package/zift-user-test/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  27. package/zift-user-test/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  28. package/zift-user-test/node_modules/call-bind-apply-helpers/README.md +0 -62
  29. package/zift-user-test/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  30. package/zift-user-test/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  31. package/zift-user-test/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  32. package/zift-user-test/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  33. package/zift-user-test/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  34. package/zift-user-test/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  35. package/zift-user-test/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  36. package/zift-user-test/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  37. package/zift-user-test/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  38. package/zift-user-test/node_modules/call-bind-apply-helpers/index.js +0 -15
  39. package/zift-user-test/node_modules/call-bind-apply-helpers/package.json +0 -85
  40. package/zift-user-test/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  41. package/zift-user-test/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  42. package/zift-user-test/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  43. package/zift-user-test/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  44. package/zift-user-test/node_modules/call-bound/.eslintrc +0 -13
  45. package/zift-user-test/node_modules/call-bound/.github/FUNDING.yml +0 -12
  46. package/zift-user-test/node_modules/call-bound/.nycrc +0 -9
  47. package/zift-user-test/node_modules/call-bound/CHANGELOG.md +0 -42
  48. package/zift-user-test/node_modules/call-bound/LICENSE +0 -21
  49. package/zift-user-test/node_modules/call-bound/README.md +0 -53
  50. package/zift-user-test/node_modules/call-bound/index.d.ts +0 -94
  51. package/zift-user-test/node_modules/call-bound/index.js +0 -19
  52. package/zift-user-test/node_modules/call-bound/package.json +0 -99
  53. package/zift-user-test/node_modules/call-bound/test/index.js +0 -61
  54. package/zift-user-test/node_modules/call-bound/tsconfig.json +0 -10
  55. package/zift-user-test/node_modules/content-disposition/HISTORY.md +0 -72
  56. package/zift-user-test/node_modules/content-disposition/LICENSE +0 -22
  57. package/zift-user-test/node_modules/content-disposition/README.md +0 -142
  58. package/zift-user-test/node_modules/content-disposition/index.js +0 -458
  59. package/zift-user-test/node_modules/content-disposition/package.json +0 -43
  60. package/zift-user-test/node_modules/content-type/HISTORY.md +0 -29
  61. package/zift-user-test/node_modules/content-type/LICENSE +0 -22
  62. package/zift-user-test/node_modules/content-type/README.md +0 -94
  63. package/zift-user-test/node_modules/content-type/index.js +0 -225
  64. package/zift-user-test/node_modules/content-type/package.json +0 -42
  65. package/zift-user-test/node_modules/cookie/LICENSE +0 -24
  66. package/zift-user-test/node_modules/cookie/README.md +0 -317
  67. package/zift-user-test/node_modules/cookie/SECURITY.md +0 -25
  68. package/zift-user-test/node_modules/cookie/index.js +0 -335
  69. package/zift-user-test/node_modules/cookie/package.json +0 -44
  70. package/zift-user-test/node_modules/cookie-signature/History.md +0 -70
  71. package/zift-user-test/node_modules/cookie-signature/LICENSE +0 -22
  72. package/zift-user-test/node_modules/cookie-signature/Readme.md +0 -23
  73. package/zift-user-test/node_modules/cookie-signature/index.js +0 -47
  74. package/zift-user-test/node_modules/cookie-signature/package.json +0 -24
  75. package/zift-user-test/node_modules/debug/LICENSE +0 -20
  76. package/zift-user-test/node_modules/debug/README.md +0 -481
  77. package/zift-user-test/node_modules/debug/package.json +0 -64
  78. package/zift-user-test/node_modules/debug/src/browser.js +0 -272
  79. package/zift-user-test/node_modules/debug/src/common.js +0 -292
  80. package/zift-user-test/node_modules/debug/src/index.js +0 -10
  81. package/zift-user-test/node_modules/debug/src/node.js +0 -263
  82. package/zift-user-test/node_modules/depd/History.md +0 -103
  83. package/zift-user-test/node_modules/depd/LICENSE +0 -22
  84. package/zift-user-test/node_modules/depd/Readme.md +0 -280
  85. package/zift-user-test/node_modules/depd/index.js +0 -538
  86. package/zift-user-test/node_modules/depd/lib/browser/index.js +0 -77
  87. package/zift-user-test/node_modules/depd/package.json +0 -45
  88. package/zift-user-test/node_modules/dunder-proto/.eslintrc +0 -5
  89. package/zift-user-test/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  90. package/zift-user-test/node_modules/dunder-proto/.nycrc +0 -13
  91. package/zift-user-test/node_modules/dunder-proto/CHANGELOG.md +0 -24
  92. package/zift-user-test/node_modules/dunder-proto/LICENSE +0 -21
  93. package/zift-user-test/node_modules/dunder-proto/README.md +0 -54
  94. package/zift-user-test/node_modules/dunder-proto/get.d.ts +0 -5
  95. package/zift-user-test/node_modules/dunder-proto/get.js +0 -30
  96. package/zift-user-test/node_modules/dunder-proto/package.json +0 -76
  97. package/zift-user-test/node_modules/dunder-proto/set.d.ts +0 -5
  98. package/zift-user-test/node_modules/dunder-proto/set.js +0 -35
  99. package/zift-user-test/node_modules/dunder-proto/test/get.js +0 -34
  100. package/zift-user-test/node_modules/dunder-proto/test/index.js +0 -4
  101. package/zift-user-test/node_modules/dunder-proto/test/set.js +0 -50
  102. package/zift-user-test/node_modules/dunder-proto/tsconfig.json +0 -9
  103. package/zift-user-test/node_modules/ee-first/LICENSE +0 -22
  104. package/zift-user-test/node_modules/ee-first/README.md +0 -80
  105. package/zift-user-test/node_modules/ee-first/index.js +0 -95
  106. package/zift-user-test/node_modules/ee-first/package.json +0 -29
  107. package/zift-user-test/node_modules/encodeurl/LICENSE +0 -22
  108. package/zift-user-test/node_modules/encodeurl/README.md +0 -109
  109. package/zift-user-test/node_modules/encodeurl/index.js +0 -60
  110. package/zift-user-test/node_modules/encodeurl/package.json +0 -40
  111. package/zift-user-test/node_modules/es-define-property/.eslintrc +0 -13
  112. package/zift-user-test/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  113. package/zift-user-test/node_modules/es-define-property/.nycrc +0 -9
  114. package/zift-user-test/node_modules/es-define-property/CHANGELOG.md +0 -29
  115. package/zift-user-test/node_modules/es-define-property/LICENSE +0 -21
  116. package/zift-user-test/node_modules/es-define-property/README.md +0 -49
  117. package/zift-user-test/node_modules/es-define-property/index.d.ts +0 -3
  118. package/zift-user-test/node_modules/es-define-property/index.js +0 -14
  119. package/zift-user-test/node_modules/es-define-property/package.json +0 -81
  120. package/zift-user-test/node_modules/es-define-property/test/index.js +0 -56
  121. package/zift-user-test/node_modules/es-define-property/tsconfig.json +0 -10
  122. package/zift-user-test/node_modules/es-errors/.eslintrc +0 -5
  123. package/zift-user-test/node_modules/es-errors/.github/FUNDING.yml +0 -12
  124. package/zift-user-test/node_modules/es-errors/CHANGELOG.md +0 -40
  125. package/zift-user-test/node_modules/es-errors/LICENSE +0 -21
  126. package/zift-user-test/node_modules/es-errors/README.md +0 -55
  127. package/zift-user-test/node_modules/es-errors/eval.d.ts +0 -3
  128. package/zift-user-test/node_modules/es-errors/eval.js +0 -4
  129. package/zift-user-test/node_modules/es-errors/index.d.ts +0 -3
  130. package/zift-user-test/node_modules/es-errors/index.js +0 -4
  131. package/zift-user-test/node_modules/es-errors/package.json +0 -80
  132. package/zift-user-test/node_modules/es-errors/range.d.ts +0 -3
  133. package/zift-user-test/node_modules/es-errors/range.js +0 -4
  134. package/zift-user-test/node_modules/es-errors/ref.d.ts +0 -3
  135. package/zift-user-test/node_modules/es-errors/ref.js +0 -4
  136. package/zift-user-test/node_modules/es-errors/syntax.d.ts +0 -3
  137. package/zift-user-test/node_modules/es-errors/syntax.js +0 -4
  138. package/zift-user-test/node_modules/es-errors/test/index.js +0 -19
  139. package/zift-user-test/node_modules/es-errors/tsconfig.json +0 -49
  140. package/zift-user-test/node_modules/es-errors/type.d.ts +0 -3
  141. package/zift-user-test/node_modules/es-errors/type.js +0 -4
  142. package/zift-user-test/node_modules/es-errors/uri.d.ts +0 -3
  143. package/zift-user-test/node_modules/es-errors/uri.js +0 -4
  144. package/zift-user-test/node_modules/es-object-atoms/.eslintrc +0 -16
  145. package/zift-user-test/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  146. package/zift-user-test/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  147. package/zift-user-test/node_modules/es-object-atoms/LICENSE +0 -21
  148. package/zift-user-test/node_modules/es-object-atoms/README.md +0 -63
  149. package/zift-user-test/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  150. package/zift-user-test/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  151. package/zift-user-test/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  152. package/zift-user-test/node_modules/es-object-atoms/ToObject.js +0 -10
  153. package/zift-user-test/node_modules/es-object-atoms/index.d.ts +0 -3
  154. package/zift-user-test/node_modules/es-object-atoms/index.js +0 -4
  155. package/zift-user-test/node_modules/es-object-atoms/isObject.d.ts +0 -3
  156. package/zift-user-test/node_modules/es-object-atoms/isObject.js +0 -6
  157. package/zift-user-test/node_modules/es-object-atoms/package.json +0 -80
  158. package/zift-user-test/node_modules/es-object-atoms/test/index.js +0 -38
  159. package/zift-user-test/node_modules/es-object-atoms/tsconfig.json +0 -6
  160. package/zift-user-test/node_modules/escape-html/LICENSE +0 -24
  161. package/zift-user-test/node_modules/escape-html/Readme.md +0 -43
  162. package/zift-user-test/node_modules/escape-html/index.js +0 -78
  163. package/zift-user-test/node_modules/escape-html/package.json +0 -24
  164. package/zift-user-test/node_modules/etag/HISTORY.md +0 -83
  165. package/zift-user-test/node_modules/etag/LICENSE +0 -22
  166. package/zift-user-test/node_modules/etag/README.md +0 -159
  167. package/zift-user-test/node_modules/etag/index.js +0 -131
  168. package/zift-user-test/node_modules/etag/package.json +0 -47
  169. package/zift-user-test/node_modules/express/LICENSE +0 -24
  170. package/zift-user-test/node_modules/express/Readme.md +0 -276
  171. package/zift-user-test/node_modules/express/index.js +0 -11
  172. package/zift-user-test/node_modules/express/lib/application.js +0 -631
  173. package/zift-user-test/node_modules/express/lib/express.js +0 -81
  174. package/zift-user-test/node_modules/express/lib/request.js +0 -514
  175. package/zift-user-test/node_modules/express/lib/response.js +0 -1053
  176. package/zift-user-test/node_modules/express/lib/utils.js +0 -271
  177. package/zift-user-test/node_modules/express/lib/view.js +0 -205
  178. package/zift-user-test/node_modules/express/package.json +0 -99
  179. package/zift-user-test/node_modules/finalhandler/HISTORY.md +0 -239
  180. package/zift-user-test/node_modules/finalhandler/LICENSE +0 -22
  181. package/zift-user-test/node_modules/finalhandler/README.md +0 -150
  182. package/zift-user-test/node_modules/finalhandler/index.js +0 -293
  183. package/zift-user-test/node_modules/finalhandler/package.json +0 -47
  184. package/zift-user-test/node_modules/forwarded/HISTORY.md +0 -21
  185. package/zift-user-test/node_modules/forwarded/LICENSE +0 -22
  186. package/zift-user-test/node_modules/forwarded/README.md +0 -57
  187. package/zift-user-test/node_modules/forwarded/index.js +0 -90
  188. package/zift-user-test/node_modules/forwarded/package.json +0 -45
  189. package/zift-user-test/node_modules/fresh/HISTORY.md +0 -80
  190. package/zift-user-test/node_modules/fresh/LICENSE +0 -23
  191. package/zift-user-test/node_modules/fresh/README.md +0 -117
  192. package/zift-user-test/node_modules/fresh/index.js +0 -136
  193. package/zift-user-test/node_modules/fresh/package.json +0 -46
  194. package/zift-user-test/node_modules/function-bind/.eslintrc +0 -21
  195. package/zift-user-test/node_modules/function-bind/.github/FUNDING.yml +0 -12
  196. package/zift-user-test/node_modules/function-bind/.github/SECURITY.md +0 -3
  197. package/zift-user-test/node_modules/function-bind/.nycrc +0 -13
  198. package/zift-user-test/node_modules/function-bind/CHANGELOG.md +0 -136
  199. package/zift-user-test/node_modules/function-bind/LICENSE +0 -20
  200. package/zift-user-test/node_modules/function-bind/README.md +0 -46
  201. package/zift-user-test/node_modules/function-bind/implementation.js +0 -84
  202. package/zift-user-test/node_modules/function-bind/index.js +0 -5
  203. package/zift-user-test/node_modules/function-bind/package.json +0 -87
  204. package/zift-user-test/node_modules/function-bind/test/.eslintrc +0 -9
  205. package/zift-user-test/node_modules/function-bind/test/index.js +0 -252
  206. package/zift-user-test/node_modules/get-intrinsic/.eslintrc +0 -42
  207. package/zift-user-test/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  208. package/zift-user-test/node_modules/get-intrinsic/.nycrc +0 -9
  209. package/zift-user-test/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  210. package/zift-user-test/node_modules/get-intrinsic/LICENSE +0 -21
  211. package/zift-user-test/node_modules/get-intrinsic/README.md +0 -71
  212. package/zift-user-test/node_modules/get-intrinsic/index.js +0 -378
  213. package/zift-user-test/node_modules/get-intrinsic/package.json +0 -97
  214. package/zift-user-test/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  215. package/zift-user-test/node_modules/get-proto/.eslintrc +0 -10
  216. package/zift-user-test/node_modules/get-proto/.github/FUNDING.yml +0 -12
  217. package/zift-user-test/node_modules/get-proto/.nycrc +0 -9
  218. package/zift-user-test/node_modules/get-proto/CHANGELOG.md +0 -21
  219. package/zift-user-test/node_modules/get-proto/LICENSE +0 -21
  220. package/zift-user-test/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  221. package/zift-user-test/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  222. package/zift-user-test/node_modules/get-proto/README.md +0 -50
  223. package/zift-user-test/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  224. package/zift-user-test/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  225. package/zift-user-test/node_modules/get-proto/index.d.ts +0 -5
  226. package/zift-user-test/node_modules/get-proto/index.js +0 -27
  227. package/zift-user-test/node_modules/get-proto/package.json +0 -81
  228. package/zift-user-test/node_modules/get-proto/test/index.js +0 -68
  229. package/zift-user-test/node_modules/get-proto/tsconfig.json +0 -9
  230. package/zift-user-test/node_modules/gopd/.eslintrc +0 -16
  231. package/zift-user-test/node_modules/gopd/.github/FUNDING.yml +0 -12
  232. package/zift-user-test/node_modules/gopd/CHANGELOG.md +0 -45
  233. package/zift-user-test/node_modules/gopd/LICENSE +0 -21
  234. package/zift-user-test/node_modules/gopd/README.md +0 -40
  235. package/zift-user-test/node_modules/gopd/gOPD.d.ts +0 -1
  236. package/zift-user-test/node_modules/gopd/gOPD.js +0 -4
  237. package/zift-user-test/node_modules/gopd/index.d.ts +0 -5
  238. package/zift-user-test/node_modules/gopd/index.js +0 -15
  239. package/zift-user-test/node_modules/gopd/package.json +0 -77
  240. package/zift-user-test/node_modules/gopd/test/index.js +0 -36
  241. package/zift-user-test/node_modules/gopd/tsconfig.json +0 -9
  242. package/zift-user-test/node_modules/has-symbols/.eslintrc +0 -11
  243. package/zift-user-test/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  244. package/zift-user-test/node_modules/has-symbols/.nycrc +0 -9
  245. package/zift-user-test/node_modules/has-symbols/CHANGELOG.md +0 -91
  246. package/zift-user-test/node_modules/has-symbols/LICENSE +0 -21
  247. package/zift-user-test/node_modules/has-symbols/README.md +0 -46
  248. package/zift-user-test/node_modules/has-symbols/index.d.ts +0 -3
  249. package/zift-user-test/node_modules/has-symbols/index.js +0 -14
  250. package/zift-user-test/node_modules/has-symbols/package.json +0 -111
  251. package/zift-user-test/node_modules/has-symbols/shams.d.ts +0 -3
  252. package/zift-user-test/node_modules/has-symbols/shams.js +0 -45
  253. package/zift-user-test/node_modules/has-symbols/test/index.js +0 -22
  254. package/zift-user-test/node_modules/has-symbols/test/shams/core-js.js +0 -29
  255. package/zift-user-test/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  256. package/zift-user-test/node_modules/has-symbols/test/tests.js +0 -58
  257. package/zift-user-test/node_modules/has-symbols/tsconfig.json +0 -10
  258. package/zift-user-test/node_modules/hasown/.eslintrc +0 -5
  259. package/zift-user-test/node_modules/hasown/.github/FUNDING.yml +0 -12
  260. package/zift-user-test/node_modules/hasown/.nycrc +0 -13
  261. package/zift-user-test/node_modules/hasown/CHANGELOG.md +0 -40
  262. package/zift-user-test/node_modules/hasown/LICENSE +0 -21
  263. package/zift-user-test/node_modules/hasown/README.md +0 -40
  264. package/zift-user-test/node_modules/hasown/index.d.ts +0 -3
  265. package/zift-user-test/node_modules/hasown/index.js +0 -8
  266. package/zift-user-test/node_modules/hasown/package.json +0 -92
  267. package/zift-user-test/node_modules/hasown/tsconfig.json +0 -6
  268. package/zift-user-test/node_modules/http-errors/HISTORY.md +0 -186
  269. package/zift-user-test/node_modules/http-errors/LICENSE +0 -23
  270. package/zift-user-test/node_modules/http-errors/README.md +0 -169
  271. package/zift-user-test/node_modules/http-errors/index.js +0 -290
  272. package/zift-user-test/node_modules/http-errors/package.json +0 -54
  273. package/zift-user-test/node_modules/iconv-lite/LICENSE +0 -21
  274. package/zift-user-test/node_modules/iconv-lite/README.md +0 -138
  275. package/zift-user-test/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  276. package/zift-user-test/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  277. package/zift-user-test/node_modules/iconv-lite/encodings/index.js +0 -23
  278. package/zift-user-test/node_modules/iconv-lite/encodings/internal.js +0 -218
  279. package/zift-user-test/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  280. package/zift-user-test/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  281. package/zift-user-test/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  282. package/zift-user-test/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  283. package/zift-user-test/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  284. package/zift-user-test/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  285. package/zift-user-test/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  286. package/zift-user-test/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  287. package/zift-user-test/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  288. package/zift-user-test/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  289. package/zift-user-test/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  290. package/zift-user-test/node_modules/iconv-lite/encodings/utf16.js +0 -187
  291. package/zift-user-test/node_modules/iconv-lite/encodings/utf32.js +0 -307
  292. package/zift-user-test/node_modules/iconv-lite/encodings/utf7.js +0 -283
  293. package/zift-user-test/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  294. package/zift-user-test/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  295. package/zift-user-test/node_modules/iconv-lite/lib/index.d.ts +0 -129
  296. package/zift-user-test/node_modules/iconv-lite/lib/index.js +0 -182
  297. package/zift-user-test/node_modules/iconv-lite/lib/streams.js +0 -105
  298. package/zift-user-test/node_modules/iconv-lite/package.json +0 -70
  299. package/zift-user-test/node_modules/iconv-lite/types/encodings.d.ts +0 -423
  300. package/zift-user-test/node_modules/inherits/LICENSE +0 -16
  301. package/zift-user-test/node_modules/inherits/README.md +0 -42
  302. package/zift-user-test/node_modules/inherits/inherits.js +0 -9
  303. package/zift-user-test/node_modules/inherits/inherits_browser.js +0 -27
  304. package/zift-user-test/node_modules/inherits/package.json +0 -29
  305. package/zift-user-test/node_modules/ipaddr.js/LICENSE +0 -19
  306. package/zift-user-test/node_modules/ipaddr.js/README.md +0 -233
  307. package/zift-user-test/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  308. package/zift-user-test/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  309. package/zift-user-test/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  310. package/zift-user-test/node_modules/ipaddr.js/package.json +0 -35
  311. package/zift-user-test/node_modules/is-promise/LICENSE +0 -19
  312. package/zift-user-test/node_modules/is-promise/index.d.ts +0 -2
  313. package/zift-user-test/node_modules/is-promise/index.js +0 -6
  314. package/zift-user-test/node_modules/is-promise/index.mjs +0 -3
  315. package/zift-user-test/node_modules/is-promise/package.json +0 -30
  316. package/zift-user-test/node_modules/is-promise/readme.md +0 -33
  317. package/zift-user-test/node_modules/math-intrinsics/.eslintrc +0 -16
  318. package/zift-user-test/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  319. package/zift-user-test/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  320. package/zift-user-test/node_modules/math-intrinsics/LICENSE +0 -21
  321. package/zift-user-test/node_modules/math-intrinsics/README.md +0 -50
  322. package/zift-user-test/node_modules/math-intrinsics/abs.d.ts +0 -1
  323. package/zift-user-test/node_modules/math-intrinsics/abs.js +0 -4
  324. package/zift-user-test/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  325. package/zift-user-test/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  326. package/zift-user-test/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  327. package/zift-user-test/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  328. package/zift-user-test/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  329. package/zift-user-test/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  330. package/zift-user-test/node_modules/math-intrinsics/floor.d.ts +0 -1
  331. package/zift-user-test/node_modules/math-intrinsics/floor.js +0 -4
  332. package/zift-user-test/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  333. package/zift-user-test/node_modules/math-intrinsics/isFinite.js +0 -12
  334. package/zift-user-test/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  335. package/zift-user-test/node_modules/math-intrinsics/isInteger.js +0 -16
  336. package/zift-user-test/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  337. package/zift-user-test/node_modules/math-intrinsics/isNaN.js +0 -6
  338. package/zift-user-test/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  339. package/zift-user-test/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  340. package/zift-user-test/node_modules/math-intrinsics/max.d.ts +0 -1
  341. package/zift-user-test/node_modules/math-intrinsics/max.js +0 -4
  342. package/zift-user-test/node_modules/math-intrinsics/min.d.ts +0 -1
  343. package/zift-user-test/node_modules/math-intrinsics/min.js +0 -4
  344. package/zift-user-test/node_modules/math-intrinsics/mod.d.ts +0 -3
  345. package/zift-user-test/node_modules/math-intrinsics/mod.js +0 -9
  346. package/zift-user-test/node_modules/math-intrinsics/package.json +0 -86
  347. package/zift-user-test/node_modules/math-intrinsics/pow.d.ts +0 -1
  348. package/zift-user-test/node_modules/math-intrinsics/pow.js +0 -4
  349. package/zift-user-test/node_modules/math-intrinsics/round.d.ts +0 -1
  350. package/zift-user-test/node_modules/math-intrinsics/round.js +0 -4
  351. package/zift-user-test/node_modules/math-intrinsics/sign.d.ts +0 -3
  352. package/zift-user-test/node_modules/math-intrinsics/sign.js +0 -11
  353. package/zift-user-test/node_modules/math-intrinsics/test/index.js +0 -192
  354. package/zift-user-test/node_modules/math-intrinsics/tsconfig.json +0 -3
  355. package/zift-user-test/node_modules/media-typer/HISTORY.md +0 -50
  356. package/zift-user-test/node_modules/media-typer/LICENSE +0 -22
  357. package/zift-user-test/node_modules/media-typer/README.md +0 -93
  358. package/zift-user-test/node_modules/media-typer/index.js +0 -143
  359. package/zift-user-test/node_modules/media-typer/package.json +0 -33
  360. package/zift-user-test/node_modules/merge-descriptors/index.d.ts +0 -11
  361. package/zift-user-test/node_modules/merge-descriptors/index.js +0 -26
  362. package/zift-user-test/node_modules/merge-descriptors/license +0 -11
  363. package/zift-user-test/node_modules/merge-descriptors/package.json +0 -50
  364. package/zift-user-test/node_modules/merge-descriptors/readme.md +0 -55
  365. package/zift-user-test/node_modules/mime-db/HISTORY.md +0 -541
  366. package/zift-user-test/node_modules/mime-db/LICENSE +0 -23
  367. package/zift-user-test/node_modules/mime-db/README.md +0 -109
  368. package/zift-user-test/node_modules/mime-db/db.json +0 -9342
  369. package/zift-user-test/node_modules/mime-db/index.js +0 -12
  370. package/zift-user-test/node_modules/mime-db/package.json +0 -56
  371. package/zift-user-test/node_modules/mime-types/HISTORY.md +0 -428
  372. package/zift-user-test/node_modules/mime-types/LICENSE +0 -23
  373. package/zift-user-test/node_modules/mime-types/README.md +0 -126
  374. package/zift-user-test/node_modules/mime-types/index.js +0 -211
  375. package/zift-user-test/node_modules/mime-types/mimeScore.js +0 -57
  376. package/zift-user-test/node_modules/mime-types/package.json +0 -49
  377. package/zift-user-test/node_modules/ms/index.js +0 -162
  378. package/zift-user-test/node_modules/ms/license.md +0 -21
  379. package/zift-user-test/node_modules/ms/package.json +0 -38
  380. package/zift-user-test/node_modules/ms/readme.md +0 -59
  381. package/zift-user-test/node_modules/negotiator/HISTORY.md +0 -114
  382. package/zift-user-test/node_modules/negotiator/LICENSE +0 -24
  383. package/zift-user-test/node_modules/negotiator/README.md +0 -212
  384. package/zift-user-test/node_modules/negotiator/index.js +0 -83
  385. package/zift-user-test/node_modules/negotiator/lib/charset.js +0 -169
  386. package/zift-user-test/node_modules/negotiator/lib/encoding.js +0 -205
  387. package/zift-user-test/node_modules/negotiator/lib/language.js +0 -179
  388. package/zift-user-test/node_modules/negotiator/lib/mediaType.js +0 -294
  389. package/zift-user-test/node_modules/negotiator/package.json +0 -43
  390. package/zift-user-test/node_modules/object-inspect/.eslintrc +0 -53
  391. package/zift-user-test/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  392. package/zift-user-test/node_modules/object-inspect/.nycrc +0 -13
  393. package/zift-user-test/node_modules/object-inspect/CHANGELOG.md +0 -424
  394. package/zift-user-test/node_modules/object-inspect/LICENSE +0 -21
  395. package/zift-user-test/node_modules/object-inspect/example/all.js +0 -23
  396. package/zift-user-test/node_modules/object-inspect/example/circular.js +0 -6
  397. package/zift-user-test/node_modules/object-inspect/example/fn.js +0 -5
  398. package/zift-user-test/node_modules/object-inspect/example/inspect.js +0 -10
  399. package/zift-user-test/node_modules/object-inspect/index.js +0 -544
  400. package/zift-user-test/node_modules/object-inspect/package-support.json +0 -20
  401. package/zift-user-test/node_modules/object-inspect/package.json +0 -105
  402. package/zift-user-test/node_modules/object-inspect/readme.markdown +0 -84
  403. package/zift-user-test/node_modules/object-inspect/test/bigint.js +0 -58
  404. package/zift-user-test/node_modules/object-inspect/test/browser/dom.js +0 -15
  405. package/zift-user-test/node_modules/object-inspect/test/circular.js +0 -16
  406. package/zift-user-test/node_modules/object-inspect/test/deep.js +0 -12
  407. package/zift-user-test/node_modules/object-inspect/test/element.js +0 -53
  408. package/zift-user-test/node_modules/object-inspect/test/err.js +0 -48
  409. package/zift-user-test/node_modules/object-inspect/test/fakes.js +0 -29
  410. package/zift-user-test/node_modules/object-inspect/test/fn.js +0 -76
  411. package/zift-user-test/node_modules/object-inspect/test/global.js +0 -17
  412. package/zift-user-test/node_modules/object-inspect/test/has.js +0 -15
  413. package/zift-user-test/node_modules/object-inspect/test/holes.js +0 -15
  414. package/zift-user-test/node_modules/object-inspect/test/indent-option.js +0 -271
  415. package/zift-user-test/node_modules/object-inspect/test/inspect.js +0 -139
  416. package/zift-user-test/node_modules/object-inspect/test/lowbyte.js +0 -12
  417. package/zift-user-test/node_modules/object-inspect/test/number.js +0 -58
  418. package/zift-user-test/node_modules/object-inspect/test/quoteStyle.js +0 -26
  419. package/zift-user-test/node_modules/object-inspect/test/toStringTag.js +0 -40
  420. package/zift-user-test/node_modules/object-inspect/test/undef.js +0 -12
  421. package/zift-user-test/node_modules/object-inspect/test/values.js +0 -261
  422. package/zift-user-test/node_modules/object-inspect/test-core-js.js +0 -26
  423. package/zift-user-test/node_modules/object-inspect/util.inspect.js +0 -1
  424. package/zift-user-test/node_modules/on-finished/HISTORY.md +0 -98
  425. package/zift-user-test/node_modules/on-finished/LICENSE +0 -23
  426. package/zift-user-test/node_modules/on-finished/README.md +0 -162
  427. package/zift-user-test/node_modules/on-finished/index.js +0 -234
  428. package/zift-user-test/node_modules/on-finished/package.json +0 -39
  429. package/zift-user-test/node_modules/once/LICENSE +0 -15
  430. package/zift-user-test/node_modules/once/README.md +0 -79
  431. package/zift-user-test/node_modules/once/once.js +0 -42
  432. package/zift-user-test/node_modules/once/package.json +0 -33
  433. package/zift-user-test/node_modules/parseurl/HISTORY.md +0 -58
  434. package/zift-user-test/node_modules/parseurl/LICENSE +0 -24
  435. package/zift-user-test/node_modules/parseurl/README.md +0 -133
  436. package/zift-user-test/node_modules/parseurl/index.js +0 -158
  437. package/zift-user-test/node_modules/parseurl/package.json +0 -40
  438. package/zift-user-test/node_modules/path-to-regexp/LICENSE +0 -21
  439. package/zift-user-test/node_modules/path-to-regexp/Readme.md +0 -224
  440. package/zift-user-test/node_modules/path-to-regexp/dist/index.d.ts +0 -144
  441. package/zift-user-test/node_modules/path-to-regexp/dist/index.js +0 -409
  442. package/zift-user-test/node_modules/path-to-regexp/dist/index.js.map +0 -1
  443. package/zift-user-test/node_modules/path-to-regexp/package.json +0 -64
  444. package/zift-user-test/node_modules/proxy-addr/HISTORY.md +0 -161
  445. package/zift-user-test/node_modules/proxy-addr/LICENSE +0 -22
  446. package/zift-user-test/node_modules/proxy-addr/README.md +0 -139
  447. package/zift-user-test/node_modules/proxy-addr/index.js +0 -327
  448. package/zift-user-test/node_modules/proxy-addr/package.json +0 -47
  449. package/zift-user-test/node_modules/qs/.editorconfig +0 -46
  450. package/zift-user-test/node_modules/qs/.github/FUNDING.yml +0 -12
  451. package/zift-user-test/node_modules/qs/.github/SECURITY.md +0 -11
  452. package/zift-user-test/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  453. package/zift-user-test/node_modules/qs/.nycrc +0 -13
  454. package/zift-user-test/node_modules/qs/CHANGELOG.md +0 -806
  455. package/zift-user-test/node_modules/qs/LICENSE.md +0 -29
  456. package/zift-user-test/node_modules/qs/README.md +0 -758
  457. package/zift-user-test/node_modules/qs/dist/qs.js +0 -141
  458. package/zift-user-test/node_modules/qs/eslint.config.mjs +0 -56
  459. package/zift-user-test/node_modules/qs/lib/formats.js +0 -23
  460. package/zift-user-test/node_modules/qs/lib/index.js +0 -11
  461. package/zift-user-test/node_modules/qs/lib/parse.js +0 -373
  462. package/zift-user-test/node_modules/qs/lib/stringify.js +0 -356
  463. package/zift-user-test/node_modules/qs/lib/utils.js +0 -342
  464. package/zift-user-test/node_modules/qs/package.json +0 -94
  465. package/zift-user-test/node_modules/qs/test/empty-keys-cases.js +0 -267
  466. package/zift-user-test/node_modules/qs/test/parse.js +0 -1568
  467. package/zift-user-test/node_modules/qs/test/stringify.js +0 -1310
  468. package/zift-user-test/node_modules/qs/test/utils.js +0 -404
  469. package/zift-user-test/node_modules/range-parser/HISTORY.md +0 -56
  470. package/zift-user-test/node_modules/range-parser/LICENSE +0 -23
  471. package/zift-user-test/node_modules/range-parser/README.md +0 -84
  472. package/zift-user-test/node_modules/range-parser/index.js +0 -162
  473. package/zift-user-test/node_modules/range-parser/package.json +0 -44
  474. package/zift-user-test/node_modules/raw-body/LICENSE +0 -22
  475. package/zift-user-test/node_modules/raw-body/README.md +0 -223
  476. package/zift-user-test/node_modules/raw-body/index.d.ts +0 -85
  477. package/zift-user-test/node_modules/raw-body/index.js +0 -336
  478. package/zift-user-test/node_modules/raw-body/package.json +0 -46
  479. package/zift-user-test/node_modules/router/HISTORY.md +0 -228
  480. package/zift-user-test/node_modules/router/LICENSE +0 -23
  481. package/zift-user-test/node_modules/router/README.md +0 -416
  482. package/zift-user-test/node_modules/router/index.js +0 -748
  483. package/zift-user-test/node_modules/router/lib/layer.js +0 -247
  484. package/zift-user-test/node_modules/router/lib/route.js +0 -242
  485. package/zift-user-test/node_modules/router/package.json +0 -44
  486. package/zift-user-test/node_modules/safer-buffer/LICENSE +0 -21
  487. package/zift-user-test/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  488. package/zift-user-test/node_modules/safer-buffer/Readme.md +0 -156
  489. package/zift-user-test/node_modules/safer-buffer/dangerous.js +0 -58
  490. package/zift-user-test/node_modules/safer-buffer/package.json +0 -34
  491. package/zift-user-test/node_modules/safer-buffer/safer.js +0 -77
  492. package/zift-user-test/node_modules/safer-buffer/tests.js +0 -406
  493. package/zift-user-test/node_modules/send/LICENSE +0 -23
  494. package/zift-user-test/node_modules/send/README.md +0 -317
  495. package/zift-user-test/node_modules/send/index.js +0 -997
  496. package/zift-user-test/node_modules/send/package.json +0 -63
  497. package/zift-user-test/node_modules/serve-static/LICENSE +0 -25
  498. package/zift-user-test/node_modules/serve-static/README.md +0 -253
  499. package/zift-user-test/node_modules/serve-static/index.js +0 -208
  500. package/zift-user-test/node_modules/serve-static/package.json +0 -44
  501. package/zift-user-test/node_modules/setprototypeof/LICENSE +0 -13
  502. package/zift-user-test/node_modules/setprototypeof/README.md +0 -31
  503. package/zift-user-test/node_modules/setprototypeof/index.d.ts +0 -2
  504. package/zift-user-test/node_modules/setprototypeof/index.js +0 -17
  505. package/zift-user-test/node_modules/setprototypeof/package.json +0 -38
  506. package/zift-user-test/node_modules/setprototypeof/test/index.js +0 -24
  507. package/zift-user-test/node_modules/side-channel/.editorconfig +0 -9
  508. package/zift-user-test/node_modules/side-channel/.eslintrc +0 -12
  509. package/zift-user-test/node_modules/side-channel/.github/FUNDING.yml +0 -12
  510. package/zift-user-test/node_modules/side-channel/.nycrc +0 -13
  511. package/zift-user-test/node_modules/side-channel/CHANGELOG.md +0 -110
  512. package/zift-user-test/node_modules/side-channel/LICENSE +0 -21
  513. package/zift-user-test/node_modules/side-channel/README.md +0 -61
  514. package/zift-user-test/node_modules/side-channel/index.d.ts +0 -14
  515. package/zift-user-test/node_modules/side-channel/index.js +0 -43
  516. package/zift-user-test/node_modules/side-channel/package.json +0 -85
  517. package/zift-user-test/node_modules/side-channel/test/index.js +0 -104
  518. package/zift-user-test/node_modules/side-channel/tsconfig.json +0 -9
  519. package/zift-user-test/node_modules/side-channel-list/.editorconfig +0 -9
  520. package/zift-user-test/node_modules/side-channel-list/.eslintrc +0 -11
  521. package/zift-user-test/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  522. package/zift-user-test/node_modules/side-channel-list/.nycrc +0 -13
  523. package/zift-user-test/node_modules/side-channel-list/CHANGELOG.md +0 -15
  524. package/zift-user-test/node_modules/side-channel-list/LICENSE +0 -21
  525. package/zift-user-test/node_modules/side-channel-list/README.md +0 -62
  526. package/zift-user-test/node_modules/side-channel-list/index.d.ts +0 -13
  527. package/zift-user-test/node_modules/side-channel-list/index.js +0 -113
  528. package/zift-user-test/node_modules/side-channel-list/list.d.ts +0 -14
  529. package/zift-user-test/node_modules/side-channel-list/package.json +0 -77
  530. package/zift-user-test/node_modules/side-channel-list/test/index.js +0 -104
  531. package/zift-user-test/node_modules/side-channel-list/tsconfig.json +0 -9
  532. package/zift-user-test/node_modules/side-channel-map/.editorconfig +0 -9
  533. package/zift-user-test/node_modules/side-channel-map/.eslintrc +0 -11
  534. package/zift-user-test/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  535. package/zift-user-test/node_modules/side-channel-map/.nycrc +0 -13
  536. package/zift-user-test/node_modules/side-channel-map/CHANGELOG.md +0 -22
  537. package/zift-user-test/node_modules/side-channel-map/LICENSE +0 -21
  538. package/zift-user-test/node_modules/side-channel-map/README.md +0 -62
  539. package/zift-user-test/node_modules/side-channel-map/index.d.ts +0 -15
  540. package/zift-user-test/node_modules/side-channel-map/index.js +0 -68
  541. package/zift-user-test/node_modules/side-channel-map/package.json +0 -80
  542. package/zift-user-test/node_modules/side-channel-map/test/index.js +0 -114
  543. package/zift-user-test/node_modules/side-channel-map/tsconfig.json +0 -9
  544. package/zift-user-test/node_modules/side-channel-weakmap/.editorconfig +0 -9
  545. package/zift-user-test/node_modules/side-channel-weakmap/.eslintrc +0 -12
  546. package/zift-user-test/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  547. package/zift-user-test/node_modules/side-channel-weakmap/.nycrc +0 -13
  548. package/zift-user-test/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  549. package/zift-user-test/node_modules/side-channel-weakmap/LICENSE +0 -21
  550. package/zift-user-test/node_modules/side-channel-weakmap/README.md +0 -62
  551. package/zift-user-test/node_modules/side-channel-weakmap/index.d.ts +0 -15
  552. package/zift-user-test/node_modules/side-channel-weakmap/index.js +0 -84
  553. package/zift-user-test/node_modules/side-channel-weakmap/package.json +0 -87
  554. package/zift-user-test/node_modules/side-channel-weakmap/test/index.js +0 -114
  555. package/zift-user-test/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  556. package/zift-user-test/node_modules/statuses/HISTORY.md +0 -87
  557. package/zift-user-test/node_modules/statuses/LICENSE +0 -23
  558. package/zift-user-test/node_modules/statuses/README.md +0 -139
  559. package/zift-user-test/node_modules/statuses/codes.json +0 -65
  560. package/zift-user-test/node_modules/statuses/index.js +0 -146
  561. package/zift-user-test/node_modules/statuses/package.json +0 -49
  562. package/zift-user-test/node_modules/toidentifier/HISTORY.md +0 -9
  563. package/zift-user-test/node_modules/toidentifier/LICENSE +0 -21
  564. package/zift-user-test/node_modules/toidentifier/README.md +0 -61
  565. package/zift-user-test/node_modules/toidentifier/index.js +0 -32
  566. package/zift-user-test/node_modules/toidentifier/package.json +0 -38
  567. package/zift-user-test/node_modules/type-is/HISTORY.md +0 -292
  568. package/zift-user-test/node_modules/type-is/LICENSE +0 -23
  569. package/zift-user-test/node_modules/type-is/README.md +0 -198
  570. package/zift-user-test/node_modules/type-is/index.js +0 -250
  571. package/zift-user-test/node_modules/type-is/package.json +0 -47
  572. package/zift-user-test/node_modules/unpipe/HISTORY.md +0 -4
  573. package/zift-user-test/node_modules/unpipe/LICENSE +0 -22
  574. package/zift-user-test/node_modules/unpipe/README.md +0 -43
  575. package/zift-user-test/node_modules/unpipe/index.js +0 -69
  576. package/zift-user-test/node_modules/unpipe/package.json +0 -27
  577. package/zift-user-test/node_modules/vary/HISTORY.md +0 -39
  578. package/zift-user-test/node_modules/vary/LICENSE +0 -22
  579. package/zift-user-test/node_modules/vary/README.md +0 -101
  580. package/zift-user-test/node_modules/vary/index.js +0 -149
  581. package/zift-user-test/node_modules/vary/package.json +0 -43
  582. package/zift-user-test/node_modules/wrappy/LICENSE +0 -15
  583. package/zift-user-test/node_modules/wrappy/README.md +0 -36
  584. package/zift-user-test/node_modules/wrappy/package.json +0 -29
  585. package/zift-user-test/node_modules/wrappy/wrappy.js +0 -33
  586. package/zift-user-test/package-lock.json +0 -827
  587. package/zift-user-test/package.json +0 -16
@@ -1,1053 +0,0 @@
1
- /*!
2
- * express
3
- * Copyright(c) 2009-2013 TJ Holowaychuk
4
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
5
- * MIT Licensed
6
- */
7
-
8
- 'use strict';
9
-
10
- /**
11
- * Module dependencies.
12
- * @private
13
- */
14
-
15
- var contentDisposition = require('content-disposition');
16
- var createError = require('http-errors')
17
- var deprecate = require('depd')('express');
18
- var encodeUrl = require('encodeurl');
19
- var escapeHtml = require('escape-html');
20
- var http = require('node:http');
21
- var onFinished = require('on-finished');
22
- var mime = require('mime-types')
23
- var path = require('node:path');
24
- var pathIsAbsolute = require('node:path').isAbsolute;
25
- var statuses = require('statuses')
26
- var sign = require('cookie-signature').sign;
27
- var normalizeType = require('./utils').normalizeType;
28
- var normalizeTypes = require('./utils').normalizeTypes;
29
- var setCharset = require('./utils').setCharset;
30
- var cookie = require('cookie');
31
- var send = require('send');
32
- var extname = path.extname;
33
- var resolve = path.resolve;
34
- var vary = require('vary');
35
- const { Buffer } = require('node:buffer');
36
-
37
- /**
38
- * Response prototype.
39
- * @public
40
- */
41
-
42
- var res = Object.create(http.ServerResponse.prototype)
43
-
44
- /**
45
- * Module exports.
46
- * @public
47
- */
48
-
49
- module.exports = res
50
-
51
- /**
52
- * Set the HTTP status code for the response.
53
- *
54
- * Expects an integer value between 100 and 999 inclusive.
55
- * Throws an error if the provided status code is not an integer or if it's outside the allowable range.
56
- *
57
- * @param {number} code - The HTTP status code to set.
58
- * @return {ServerResponse} - Returns itself for chaining methods.
59
- * @throws {TypeError} If `code` is not an integer.
60
- * @throws {RangeError} If `code` is outside the range 100 to 999.
61
- * @public
62
- */
63
-
64
- res.status = function status(code) {
65
- // Check if the status code is not an integer
66
- if (!Number.isInteger(code)) {
67
- throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`);
68
- }
69
- // Check if the status code is outside of Node's valid range
70
- if (code < 100 || code > 999) {
71
- throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`);
72
- }
73
-
74
- this.statusCode = code;
75
- return this;
76
- };
77
-
78
- /**
79
- * Set Link header field with the given `links`.
80
- *
81
- * Examples:
82
- *
83
- * res.links({
84
- * next: 'http://api.example.com/users?page=2',
85
- * last: 'http://api.example.com/users?page=5',
86
- * pages: [
87
- * 'http://api.example.com/users?page=1',
88
- * 'http://api.example.com/users?page=2'
89
- * ]
90
- * });
91
- *
92
- * @param {Object} links
93
- * @return {ServerResponse}
94
- * @public
95
- */
96
-
97
- res.links = function(links) {
98
- var link = this.get('Link') || '';
99
- if (link) link += ', ';
100
- return this.set('Link', link + Object.keys(links).map(function(rel) {
101
- // Allow multiple links if links[rel] is an array
102
- if (Array.isArray(links[rel])) {
103
- return links[rel].map(function (singleLink) {
104
- return `<${singleLink}>; rel="${rel}"`;
105
- }).join(', ');
106
- } else {
107
- return `<${links[rel]}>; rel="${rel}"`;
108
- }
109
- }).join(', '));
110
- };
111
-
112
- /**
113
- * Send a response.
114
- *
115
- * Examples:
116
- *
117
- * res.send(Buffer.from('wahoo'));
118
- * res.send({ some: 'json' });
119
- * res.send('<p>some html</p>');
120
- *
121
- * @param {string|number|boolean|object|Buffer} body
122
- * @public
123
- */
124
-
125
- res.send = function send(body) {
126
- var chunk = body;
127
- var encoding;
128
- var req = this.req;
129
- var type;
130
-
131
- // settings
132
- var app = this.app;
133
-
134
- switch (typeof chunk) {
135
- // string defaulting to html
136
- case 'string':
137
- if (!this.get('Content-Type')) {
138
- this.type('html');
139
- }
140
- break;
141
- case 'boolean':
142
- case 'number':
143
- case 'object':
144
- if (chunk === null) {
145
- chunk = '';
146
- } else if (ArrayBuffer.isView(chunk)) {
147
- if (!this.get('Content-Type')) {
148
- this.type('bin');
149
- }
150
- } else {
151
- return this.json(chunk);
152
- }
153
- break;
154
- }
155
-
156
- // write strings in utf-8
157
- if (typeof chunk === 'string') {
158
- encoding = 'utf8';
159
- type = this.get('Content-Type');
160
-
161
- // reflect this in content-type
162
- if (typeof type === 'string') {
163
- this.set('Content-Type', setCharset(type, 'utf-8'));
164
- }
165
- }
166
-
167
- // determine if ETag should be generated
168
- var etagFn = app.get('etag fn')
169
- var generateETag = !this.get('ETag') && typeof etagFn === 'function'
170
-
171
- // populate Content-Length
172
- var len
173
- if (chunk !== undefined) {
174
- if (Buffer.isBuffer(chunk)) {
175
- // get length of Buffer
176
- len = chunk.length
177
- } else if (!generateETag && chunk.length < 1000) {
178
- // just calculate length when no ETag + small chunk
179
- len = Buffer.byteLength(chunk, encoding)
180
- } else {
181
- // convert chunk to Buffer and calculate
182
- chunk = Buffer.from(chunk, encoding)
183
- encoding = undefined;
184
- len = chunk.length
185
- }
186
-
187
- this.set('Content-Length', len);
188
- }
189
-
190
- // populate ETag
191
- var etag;
192
- if (generateETag && len !== undefined) {
193
- if ((etag = etagFn(chunk, encoding))) {
194
- this.set('ETag', etag);
195
- }
196
- }
197
-
198
- // freshness
199
- if (req.fresh) this.status(304);
200
-
201
- // strip irrelevant headers
202
- if (204 === this.statusCode || 304 === this.statusCode) {
203
- this.removeHeader('Content-Type');
204
- this.removeHeader('Content-Length');
205
- this.removeHeader('Transfer-Encoding');
206
- chunk = '';
207
- }
208
-
209
- // alter headers for 205
210
- if (this.statusCode === 205) {
211
- this.set('Content-Length', '0')
212
- this.removeHeader('Transfer-Encoding')
213
- chunk = ''
214
- }
215
-
216
- if (req.method === 'HEAD') {
217
- // skip body for HEAD
218
- this.end();
219
- } else {
220
- // respond
221
- this.end(chunk, encoding);
222
- }
223
-
224
- return this;
225
- };
226
-
227
- /**
228
- * Send JSON response.
229
- *
230
- * Examples:
231
- *
232
- * res.json(null);
233
- * res.json({ user: 'tj' });
234
- *
235
- * @param {string|number|boolean|object} obj
236
- * @public
237
- */
238
-
239
- res.json = function json(obj) {
240
- // settings
241
- var app = this.app;
242
- var escape = app.get('json escape')
243
- var replacer = app.get('json replacer');
244
- var spaces = app.get('json spaces');
245
- var body = stringify(obj, replacer, spaces, escape)
246
-
247
- // content-type
248
- if (!this.get('Content-Type')) {
249
- this.set('Content-Type', 'application/json');
250
- }
251
-
252
- return this.send(body);
253
- };
254
-
255
- /**
256
- * Send JSON response with JSONP callback support.
257
- *
258
- * Examples:
259
- *
260
- * res.jsonp(null);
261
- * res.jsonp({ user: 'tj' });
262
- *
263
- * @param {string|number|boolean|object} obj
264
- * @public
265
- */
266
-
267
- res.jsonp = function jsonp(obj) {
268
- // settings
269
- var app = this.app;
270
- var escape = app.get('json escape')
271
- var replacer = app.get('json replacer');
272
- var spaces = app.get('json spaces');
273
- var body = stringify(obj, replacer, spaces, escape)
274
- var callback = this.req.query[app.get('jsonp callback name')];
275
-
276
- // content-type
277
- if (!this.get('Content-Type')) {
278
- this.set('X-Content-Type-Options', 'nosniff');
279
- this.set('Content-Type', 'application/json');
280
- }
281
-
282
- // fixup callback
283
- if (Array.isArray(callback)) {
284
- callback = callback[0];
285
- }
286
-
287
- // jsonp
288
- if (typeof callback === 'string' && callback.length !== 0) {
289
- this.set('X-Content-Type-Options', 'nosniff');
290
- this.set('Content-Type', 'text/javascript');
291
-
292
- // restrict callback charset
293
- callback = callback.replace(/[^\[\]\w$.]/g, '');
294
-
295
- if (body === undefined) {
296
- // empty argument
297
- body = ''
298
- } else if (typeof body === 'string') {
299
- // replace chars not allowed in JavaScript that are in JSON
300
- body = body
301
- .replace(/\u2028/g, '\\u2028')
302
- .replace(/\u2029/g, '\\u2029')
303
- }
304
-
305
- // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse"
306
- // the typeof check is just to reduce client error noise
307
- body = '/**/ typeof ' + callback + ' === \'function\' && ' + callback + '(' + body + ');';
308
- }
309
-
310
- return this.send(body);
311
- };
312
-
313
- /**
314
- * Send given HTTP status code.
315
- *
316
- * Sets the response status to `statusCode` and the body of the
317
- * response to the standard description from node's http.STATUS_CODES
318
- * or the statusCode number if no description.
319
- *
320
- * Examples:
321
- *
322
- * res.sendStatus(200);
323
- *
324
- * @param {number} statusCode
325
- * @public
326
- */
327
-
328
- res.sendStatus = function sendStatus(statusCode) {
329
- var body = statuses.message[statusCode] || String(statusCode)
330
-
331
- this.status(statusCode);
332
- this.type('txt');
333
-
334
- return this.send(body);
335
- };
336
-
337
- /**
338
- * Transfer the file at the given `path`.
339
- *
340
- * Automatically sets the _Content-Type_ response header field.
341
- * The callback `callback(err)` is invoked when the transfer is complete
342
- * or when an error occurs. Be sure to check `res.headersSent`
343
- * if you wish to attempt responding, as the header and some data
344
- * may have already been transferred.
345
- *
346
- * Options:
347
- *
348
- * - `maxAge` defaulting to 0 (can be string converted by `ms`)
349
- * - `root` root directory for relative filenames
350
- * - `headers` object of headers to serve with file
351
- * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them
352
- *
353
- * Other options are passed along to `send`.
354
- *
355
- * Examples:
356
- *
357
- * The following example illustrates how `res.sendFile()` may
358
- * be used as an alternative for the `static()` middleware for
359
- * dynamic situations. The code backing `res.sendFile()` is actually
360
- * the same code, so HTTP cache support etc is identical.
361
- *
362
- * app.get('/user/:uid/photos/:file', function(req, res){
363
- * var uid = req.params.uid
364
- * , file = req.params.file;
365
- *
366
- * req.user.mayViewFilesFrom(uid, function(yes){
367
- * if (yes) {
368
- * res.sendFile('/uploads/' + uid + '/' + file);
369
- * } else {
370
- * res.send(403, 'Sorry! you cant see that.');
371
- * }
372
- * });
373
- * });
374
- *
375
- * @public
376
- */
377
-
378
- res.sendFile = function sendFile(path, options, callback) {
379
- var done = callback;
380
- var req = this.req;
381
- var res = this;
382
- var next = req.next;
383
- var opts = options || {};
384
-
385
- if (!path) {
386
- throw new TypeError('path argument is required to res.sendFile');
387
- }
388
-
389
- if (typeof path !== 'string') {
390
- throw new TypeError('path must be a string to res.sendFile')
391
- }
392
-
393
- // support function as second arg
394
- if (typeof options === 'function') {
395
- done = options;
396
- opts = {};
397
- }
398
-
399
- if (!opts.root && !pathIsAbsolute(path)) {
400
- throw new TypeError('path must be absolute or specify root to res.sendFile');
401
- }
402
-
403
- // create file stream
404
- var pathname = encodeURI(path);
405
-
406
- // wire application etag option to send
407
- opts.etag = this.app.enabled('etag');
408
- var file = send(req, pathname, opts);
409
-
410
- // transfer
411
- sendfile(res, file, opts, function (err) {
412
- if (done) return done(err);
413
- if (err && err.code === 'EISDIR') return next();
414
-
415
- // next() all but write errors
416
- if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') {
417
- next(err);
418
- }
419
- });
420
- };
421
-
422
- /**
423
- * Transfer the file at the given `path` as an attachment.
424
- *
425
- * Optionally providing an alternate attachment `filename`,
426
- * and optional callback `callback(err)`. The callback is invoked
427
- * when the data transfer is complete, or when an error has
428
- * occurred. Be sure to check `res.headersSent` if you plan to respond.
429
- *
430
- * Optionally providing an `options` object to use with `res.sendFile()`.
431
- * This function will set the `Content-Disposition` header, overriding
432
- * any `Content-Disposition` header passed as header options in order
433
- * to set the attachment and filename.
434
- *
435
- * This method uses `res.sendFile()`.
436
- *
437
- * @public
438
- */
439
-
440
- res.download = function download (path, filename, options, callback) {
441
- var done = callback;
442
- var name = filename;
443
- var opts = options || null
444
-
445
- // support function as second or third arg
446
- if (typeof filename === 'function') {
447
- done = filename;
448
- name = null;
449
- opts = null
450
- } else if (typeof options === 'function') {
451
- done = options
452
- opts = null
453
- }
454
-
455
- // support optional filename, where options may be in it's place
456
- if (typeof filename === 'object' &&
457
- (typeof options === 'function' || options === undefined)) {
458
- name = null
459
- opts = filename
460
- }
461
-
462
- // set Content-Disposition when file is sent
463
- var headers = {
464
- 'Content-Disposition': contentDisposition(name || path)
465
- };
466
-
467
- // merge user-provided headers
468
- if (opts && opts.headers) {
469
- var keys = Object.keys(opts.headers)
470
- for (var i = 0; i < keys.length; i++) {
471
- var key = keys[i]
472
- if (key.toLowerCase() !== 'content-disposition') {
473
- headers[key] = opts.headers[key]
474
- }
475
- }
476
- }
477
-
478
- // merge user-provided options
479
- opts = Object.create(opts)
480
- opts.headers = headers
481
-
482
- // Resolve the full path for sendFile
483
- var fullPath = !opts.root
484
- ? resolve(path)
485
- : path
486
-
487
- // send file
488
- return this.sendFile(fullPath, opts, done)
489
- };
490
-
491
- /**
492
- * Set _Content-Type_ response header with `type` through `mime.contentType()`
493
- * when it does not contain "/", or set the Content-Type to `type` otherwise.
494
- * When no mapping is found though `mime.contentType()`, the type is set to
495
- * "application/octet-stream".
496
- *
497
- * Examples:
498
- *
499
- * res.type('.html');
500
- * res.type('html');
501
- * res.type('json');
502
- * res.type('application/json');
503
- * res.type('png');
504
- *
505
- * @param {String} type
506
- * @return {ServerResponse} for chaining
507
- * @public
508
- */
509
-
510
- res.contentType =
511
- res.type = function contentType(type) {
512
- var ct = type.indexOf('/') === -1
513
- ? (mime.contentType(type) || 'application/octet-stream')
514
- : type;
515
-
516
- return this.set('Content-Type', ct);
517
- };
518
-
519
- /**
520
- * Respond to the Acceptable formats using an `obj`
521
- * of mime-type callbacks.
522
- *
523
- * This method uses `req.accepted`, an array of
524
- * acceptable types ordered by their quality values.
525
- * When "Accept" is not present the _first_ callback
526
- * is invoked, otherwise the first match is used. When
527
- * no match is performed the server responds with
528
- * 406 "Not Acceptable".
529
- *
530
- * Content-Type is set for you, however if you choose
531
- * you may alter this within the callback using `res.type()`
532
- * or `res.set('Content-Type', ...)`.
533
- *
534
- * res.format({
535
- * 'text/plain': function(){
536
- * res.send('hey');
537
- * },
538
- *
539
- * 'text/html': function(){
540
- * res.send('<p>hey</p>');
541
- * },
542
- *
543
- * 'application/json': function () {
544
- * res.send({ message: 'hey' });
545
- * }
546
- * });
547
- *
548
- * In addition to canonicalized MIME types you may
549
- * also use extnames mapped to these types:
550
- *
551
- * res.format({
552
- * text: function(){
553
- * res.send('hey');
554
- * },
555
- *
556
- * html: function(){
557
- * res.send('<p>hey</p>');
558
- * },
559
- *
560
- * json: function(){
561
- * res.send({ message: 'hey' });
562
- * }
563
- * });
564
- *
565
- * By default Express passes an `Error`
566
- * with a `.status` of 406 to `next(err)`
567
- * if a match is not made. If you provide
568
- * a `.default` callback it will be invoked
569
- * instead.
570
- *
571
- * @param {Object} obj
572
- * @return {ServerResponse} for chaining
573
- * @public
574
- */
575
-
576
- res.format = function(obj){
577
- var req = this.req;
578
- var next = req.next;
579
-
580
- var keys = Object.keys(obj)
581
- .filter(function (v) { return v !== 'default' })
582
-
583
- var key = keys.length > 0
584
- ? req.accepts(keys)
585
- : false;
586
-
587
- this.vary("Accept");
588
-
589
- if (key) {
590
- this.set('Content-Type', normalizeType(key).value);
591
- obj[key](req, this, next);
592
- } else if (obj.default) {
593
- obj.default(req, this, next)
594
- } else {
595
- next(createError(406, {
596
- types: normalizeTypes(keys).map(function (o) { return o.value })
597
- }))
598
- }
599
-
600
- return this;
601
- };
602
-
603
- /**
604
- * Set _Content-Disposition_ header to _attachment_ with optional `filename`.
605
- *
606
- * @param {String} filename
607
- * @return {ServerResponse}
608
- * @public
609
- */
610
-
611
- res.attachment = function attachment(filename) {
612
- if (filename) {
613
- this.type(extname(filename));
614
- }
615
-
616
- this.set('Content-Disposition', contentDisposition(filename));
617
-
618
- return this;
619
- };
620
-
621
- /**
622
- * Append additional header `field` with value `val`.
623
- *
624
- * Example:
625
- *
626
- * res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
627
- * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
628
- * res.append('Warning', '199 Miscellaneous warning');
629
- *
630
- * @param {String} field
631
- * @param {String|Array} val
632
- * @return {ServerResponse} for chaining
633
- * @public
634
- */
635
-
636
- res.append = function append(field, val) {
637
- var prev = this.get(field);
638
- var value = val;
639
-
640
- if (prev) {
641
- // concat the new and prev vals
642
- value = Array.isArray(prev) ? prev.concat(val)
643
- : Array.isArray(val) ? [prev].concat(val)
644
- : [prev, val]
645
- }
646
-
647
- return this.set(field, value);
648
- };
649
-
650
- /**
651
- * Set header `field` to `val`, or pass
652
- * an object of header fields.
653
- *
654
- * Examples:
655
- *
656
- * res.set('Foo', ['bar', 'baz']);
657
- * res.set('Accept', 'application/json');
658
- * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });
659
- *
660
- * Aliased as `res.header()`.
661
- *
662
- * When the set header is "Content-Type", the type is expanded to include
663
- * the charset if not present using `mime.contentType()`.
664
- *
665
- * @param {String|Object} field
666
- * @param {String|Array} val
667
- * @return {ServerResponse} for chaining
668
- * @public
669
- */
670
-
671
- res.set =
672
- res.header = function header(field, val) {
673
- if (arguments.length === 2) {
674
- var value = Array.isArray(val)
675
- ? val.map(String)
676
- : String(val);
677
-
678
- // add charset to content-type
679
- if (field.toLowerCase() === 'content-type') {
680
- if (Array.isArray(value)) {
681
- throw new TypeError('Content-Type cannot be set to an Array');
682
- }
683
- value = mime.contentType(value)
684
- }
685
-
686
- this.setHeader(field, value);
687
- } else {
688
- for (var key in field) {
689
- this.set(key, field[key]);
690
- }
691
- }
692
- return this;
693
- };
694
-
695
- /**
696
- * Get value for header `field`.
697
- *
698
- * @param {String} field
699
- * @return {String}
700
- * @public
701
- */
702
-
703
- res.get = function(field){
704
- return this.getHeader(field);
705
- };
706
-
707
- /**
708
- * Clear cookie `name`.
709
- *
710
- * @param {String} name
711
- * @param {Object} [options]
712
- * @return {ServerResponse} for chaining
713
- * @public
714
- */
715
-
716
- res.clearCookie = function clearCookie(name, options) {
717
- // Force cookie expiration by setting expires to the past
718
- const opts = { path: '/', ...options, expires: new Date(1)};
719
- // ensure maxAge is not passed
720
- delete opts.maxAge
721
-
722
- return this.cookie(name, '', opts);
723
- };
724
-
725
- /**
726
- * Set cookie `name` to `value`, with the given `options`.
727
- *
728
- * Options:
729
- *
730
- * - `maxAge` max-age in milliseconds, converted to `expires`
731
- * - `signed` sign the cookie
732
- * - `path` defaults to "/"
733
- *
734
- * Examples:
735
- *
736
- * // "Remember Me" for 15 minutes
737
- * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
738
- *
739
- * // same as above
740
- * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
741
- *
742
- * @param {String} name
743
- * @param {String|Object} value
744
- * @param {Object} [options]
745
- * @return {ServerResponse} for chaining
746
- * @public
747
- */
748
-
749
- res.cookie = function (name, value, options) {
750
- var opts = { ...options };
751
- var secret = this.req.secret;
752
- var signed = opts.signed;
753
-
754
- if (signed && !secret) {
755
- throw new Error('cookieParser("secret") required for signed cookies');
756
- }
757
-
758
- var val = typeof value === 'object'
759
- ? 'j:' + JSON.stringify(value)
760
- : String(value);
761
-
762
- if (signed) {
763
- val = 's:' + sign(val, secret);
764
- }
765
-
766
- if (opts.maxAge != null) {
767
- var maxAge = opts.maxAge - 0
768
-
769
- if (!isNaN(maxAge)) {
770
- opts.expires = new Date(Date.now() + maxAge)
771
- opts.maxAge = Math.floor(maxAge / 1000)
772
- }
773
- }
774
-
775
- if (opts.path == null) {
776
- opts.path = '/';
777
- }
778
-
779
- this.append('Set-Cookie', cookie.serialize(name, String(val), opts));
780
-
781
- return this;
782
- };
783
-
784
- /**
785
- * Set the location header to `url`.
786
- *
787
- * The given `url` can also be "back", which redirects
788
- * to the _Referrer_ or _Referer_ headers or "/".
789
- *
790
- * Examples:
791
- *
792
- * res.location('/foo/bar').;
793
- * res.location('http://example.com');
794
- * res.location('../login');
795
- *
796
- * @param {String} url
797
- * @return {ServerResponse} for chaining
798
- * @public
799
- */
800
-
801
- res.location = function location(url) {
802
- return this.set('Location', encodeUrl(url));
803
- };
804
-
805
- /**
806
- * Redirect to the given `url` with optional response `status`
807
- * defaulting to 302.
808
- *
809
- * Examples:
810
- *
811
- * res.redirect('/foo/bar');
812
- * res.redirect('http://example.com');
813
- * res.redirect(301, 'http://example.com');
814
- * res.redirect('../login'); // /blog/post/1 -> /blog/login
815
- *
816
- * @public
817
- */
818
-
819
- res.redirect = function redirect(url) {
820
- var address = url;
821
- var body;
822
- var status = 302;
823
-
824
- // allow status / url
825
- if (arguments.length === 2) {
826
- status = arguments[0]
827
- address = arguments[1]
828
- }
829
-
830
- if (!address) {
831
- deprecate('Provide a url argument');
832
- }
833
-
834
- if (typeof address !== 'string') {
835
- deprecate('Url must be a string');
836
- }
837
-
838
- if (typeof status !== 'number') {
839
- deprecate('Status must be a number');
840
- }
841
-
842
- // Set location header
843
- address = this.location(address).get('Location');
844
-
845
- // Support text/{plain,html} by default
846
- this.format({
847
- text: function(){
848
- body = statuses.message[status] + '. Redirecting to ' + address
849
- },
850
-
851
- html: function(){
852
- var u = escapeHtml(address);
853
- body = '<p>' + statuses.message[status] + '. Redirecting to ' + u + '</p>'
854
- },
855
-
856
- default: function(){
857
- body = '';
858
- }
859
- });
860
-
861
- // Respond
862
- this.status(status);
863
- this.set('Content-Length', Buffer.byteLength(body));
864
-
865
- if (this.req.method === 'HEAD') {
866
- this.end();
867
- } else {
868
- this.end(body);
869
- }
870
- };
871
-
872
- /**
873
- * Add `field` to Vary. If already present in the Vary set, then
874
- * this call is simply ignored.
875
- *
876
- * @param {Array|String} field
877
- * @return {ServerResponse} for chaining
878
- * @public
879
- */
880
-
881
- res.vary = function(field){
882
- vary(this, field);
883
-
884
- return this;
885
- };
886
-
887
- /**
888
- * Render `view` with the given `options` and optional callback `fn`.
889
- * When a callback function is given a response will _not_ be made
890
- * automatically, otherwise a response of _200_ and _text/html_ is given.
891
- *
892
- * Options:
893
- *
894
- * - `cache` boolean hinting to the engine it should cache
895
- * - `filename` filename of the view being rendered
896
- *
897
- * @public
898
- */
899
-
900
- res.render = function render(view, options, callback) {
901
- var app = this.req.app;
902
- var done = callback;
903
- var opts = options || {};
904
- var req = this.req;
905
- var self = this;
906
-
907
- // support callback function as second arg
908
- if (typeof options === 'function') {
909
- done = options;
910
- opts = {};
911
- }
912
-
913
- // merge res.locals
914
- opts._locals = self.locals;
915
-
916
- // default callback to respond
917
- done = done || function (err, str) {
918
- if (err) return req.next(err);
919
- self.send(str);
920
- };
921
-
922
- // render
923
- app.render(view, opts, done);
924
- };
925
-
926
- // pipe the send file stream
927
- function sendfile(res, file, options, callback) {
928
- var done = false;
929
- var streaming;
930
-
931
- // request aborted
932
- function onaborted() {
933
- if (done) return;
934
- done = true;
935
-
936
- var err = new Error('Request aborted');
937
- err.code = 'ECONNABORTED';
938
- callback(err);
939
- }
940
-
941
- // directory
942
- function ondirectory() {
943
- if (done) return;
944
- done = true;
945
-
946
- var err = new Error('EISDIR, read');
947
- err.code = 'EISDIR';
948
- callback(err);
949
- }
950
-
951
- // errors
952
- function onerror(err) {
953
- if (done) return;
954
- done = true;
955
- callback(err);
956
- }
957
-
958
- // ended
959
- function onend() {
960
- if (done) return;
961
- done = true;
962
- callback();
963
- }
964
-
965
- // file
966
- function onfile() {
967
- streaming = false;
968
- }
969
-
970
- // finished
971
- function onfinish(err) {
972
- if (err && err.code === 'ECONNRESET') return onaborted();
973
- if (err) return onerror(err);
974
- if (done) return;
975
-
976
- setImmediate(function () {
977
- if (streaming !== false && !done) {
978
- onaborted();
979
- return;
980
- }
981
-
982
- if (done) return;
983
- done = true;
984
- callback();
985
- });
986
- }
987
-
988
- // streaming
989
- function onstream() {
990
- streaming = true;
991
- }
992
-
993
- file.on('directory', ondirectory);
994
- file.on('end', onend);
995
- file.on('error', onerror);
996
- file.on('file', onfile);
997
- file.on('stream', onstream);
998
- onFinished(res, onfinish);
999
-
1000
- if (options.headers) {
1001
- // set headers on successful transfer
1002
- file.on('headers', function headers(res) {
1003
- var obj = options.headers;
1004
- var keys = Object.keys(obj);
1005
-
1006
- for (var i = 0; i < keys.length; i++) {
1007
- var k = keys[i];
1008
- res.setHeader(k, obj[k]);
1009
- }
1010
- });
1011
- }
1012
-
1013
- // pipe
1014
- file.pipe(res);
1015
- }
1016
-
1017
- /**
1018
- * Stringify JSON, like JSON.stringify, but v8 optimized, with the
1019
- * ability to escape characters that can trigger HTML sniffing.
1020
- *
1021
- * @param {*} value
1022
- * @param {function} replacer
1023
- * @param {number} spaces
1024
- * @param {boolean} escape
1025
- * @returns {string}
1026
- * @private
1027
- */
1028
-
1029
- function stringify (value, replacer, spaces, escape) {
1030
- // v8 checks arguments.length for optimizing simple call
1031
- // https://bugs.chromium.org/p/v8/issues/detail?id=4730
1032
- var json = replacer || spaces
1033
- ? JSON.stringify(value, replacer, spaces)
1034
- : JSON.stringify(value);
1035
-
1036
- if (escape && typeof json === 'string') {
1037
- json = json.replace(/[<>&]/g, function (c) {
1038
- switch (c.charCodeAt(0)) {
1039
- case 0x3c:
1040
- return '\\u003c'
1041
- case 0x3e:
1042
- return '\\u003e'
1043
- case 0x26:
1044
- return '\\u0026'
1045
- /* istanbul ignore next: unreachable default */
1046
- default:
1047
- return c
1048
- }
1049
- })
1050
- }
1051
-
1052
- return json
1053
- }