webpack_rails 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (353) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webpack_rails/ErrorMessagePlugin.js +37 -0
  3. data/lib/webpack_rails/engine.rb +6 -5
  4. data/lib/webpack_rails/node_modules/cors/CONTRIBUTING.md +35 -0
  5. data/lib/webpack_rails/node_modules/cors/LICENSE +9 -0
  6. data/lib/webpack_rails/node_modules/cors/README.md +192 -0
  7. data/lib/webpack_rails/node_modules/cors/lib/index.js +242 -0
  8. data/lib/webpack_rails/node_modules/cors/node_modules/vary/HISTORY.md +29 -0
  9. data/lib/webpack_rails/node_modules/cors/node_modules/vary/LICENSE +22 -0
  10. data/lib/webpack_rails/node_modules/cors/node_modules/vary/README.md +91 -0
  11. data/lib/webpack_rails/node_modules/cors/node_modules/vary/index.js +124 -0
  12. data/lib/webpack_rails/node_modules/cors/node_modules/vary/package.json +72 -0
  13. data/lib/webpack_rails/node_modules/cors/package.json +79 -0
  14. data/lib/webpack_rails/node_modules/cors/test/basic-auth.js +40 -0
  15. data/lib/webpack_rails/node_modules/cors/test/body-events.js +81 -0
  16. data/lib/webpack_rails/node_modules/cors/test/cors.js +652 -0
  17. data/lib/webpack_rails/node_modules/cors/test/error-response.js +77 -0
  18. data/lib/webpack_rails/node_modules/cors/test/example-app.js +98 -0
  19. data/lib/webpack_rails/node_modules/cors/test/issue-2.js +56 -0
  20. data/lib/webpack_rails/node_modules/cors/test/issue-31.js +58 -0
  21. data/lib/webpack_rails/node_modules/cors/test/mocha.opts +3 -0
  22. data/lib/webpack_rails/node_modules/express/History.md +3025 -0
  23. data/lib/webpack_rails/node_modules/express/LICENSE +24 -0
  24. data/lib/webpack_rails/node_modules/express/Readme.md +138 -0
  25. data/lib/webpack_rails/node_modules/express/index.js +11 -0
  26. data/lib/webpack_rails/node_modules/express/lib/application.js +643 -0
  27. data/lib/webpack_rails/node_modules/express/lib/express.js +103 -0
  28. data/lib/webpack_rails/node_modules/express/lib/middleware/init.js +36 -0
  29. data/lib/webpack_rails/node_modules/express/lib/middleware/query.js +51 -0
  30. data/lib/webpack_rails/node_modules/express/lib/request.js +489 -0
  31. data/lib/webpack_rails/node_modules/express/lib/response.js +1053 -0
  32. data/lib/webpack_rails/node_modules/express/lib/router/index.js +645 -0
  33. data/lib/webpack_rails/node_modules/express/lib/router/layer.js +176 -0
  34. data/lib/webpack_rails/node_modules/express/lib/router/route.js +210 -0
  35. data/lib/webpack_rails/node_modules/express/lib/utils.js +300 -0
  36. data/lib/webpack_rails/node_modules/express/lib/view.js +173 -0
  37. data/lib/webpack_rails/node_modules/express/node_modules/accepts/HISTORY.md +170 -0
  38. data/lib/webpack_rails/node_modules/express/node_modules/accepts/LICENSE +23 -0
  39. data/lib/webpack_rails/node_modules/express/node_modules/accepts/README.md +135 -0
  40. data/lib/webpack_rails/node_modules/express/node_modules/accepts/index.js +231 -0
  41. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/HISTORY.md +171 -0
  42. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/LICENSE +23 -0
  43. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/README.md +103 -0
  44. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/index.js +188 -0
  45. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/HISTORY.md +274 -0
  46. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/LICENSE +22 -0
  47. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/README.md +82 -0
  48. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/db.json +6474 -0
  49. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/index.js +11 -0
  50. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json +94 -0
  51. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/mime-types/package.json +84 -0
  52. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/HISTORY.md +76 -0
  53. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/LICENSE +24 -0
  54. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/README.md +203 -0
  55. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/index.js +62 -0
  56. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/charset.js +102 -0
  57. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/encoding.js +118 -0
  58. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/language.js +112 -0
  59. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/mediaType.js +179 -0
  60. data/lib/webpack_rails/node_modules/express/node_modules/accepts/node_modules/negotiator/package.json +86 -0
  61. data/lib/webpack_rails/node_modules/express/node_modules/accepts/package.json +98 -0
  62. data/lib/webpack_rails/node_modules/express/node_modules/array-flatten/LICENSE +21 -0
  63. data/lib/webpack_rails/node_modules/express/node_modules/array-flatten/README.md +43 -0
  64. data/lib/webpack_rails/node_modules/express/node_modules/array-flatten/array-flatten.js +64 -0
  65. data/lib/webpack_rails/node_modules/express/node_modules/array-flatten/package.json +62 -0
  66. data/lib/webpack_rails/node_modules/express/node_modules/content-disposition/HISTORY.md +40 -0
  67. data/lib/webpack_rails/node_modules/express/node_modules/content-disposition/LICENSE +22 -0
  68. data/lib/webpack_rails/node_modules/express/node_modules/content-disposition/README.md +141 -0
  69. data/lib/webpack_rails/node_modules/express/node_modules/content-disposition/index.js +443 -0
  70. data/lib/webpack_rails/node_modules/express/node_modules/content-disposition/package.json +66 -0
  71. data/lib/webpack_rails/node_modules/express/node_modules/content-type/HISTORY.md +9 -0
  72. data/lib/webpack_rails/node_modules/express/node_modules/content-type/LICENSE +22 -0
  73. data/lib/webpack_rails/node_modules/express/node_modules/content-type/README.md +92 -0
  74. data/lib/webpack_rails/node_modules/express/node_modules/content-type/index.js +214 -0
  75. data/lib/webpack_rails/node_modules/express/node_modules/content-type/package.json +65 -0
  76. data/lib/webpack_rails/node_modules/express/node_modules/cookie/LICENSE +23 -0
  77. data/lib/webpack_rails/node_modules/express/node_modules/cookie/README.md +64 -0
  78. data/lib/webpack_rails/node_modules/express/node_modules/cookie/index.js +116 -0
  79. data/lib/webpack_rails/node_modules/express/node_modules/cookie/package.json +68 -0
  80. data/lib/webpack_rails/node_modules/express/node_modules/cookie-signature/History.md +38 -0
  81. data/lib/webpack_rails/node_modules/express/node_modules/cookie-signature/Readme.md +42 -0
  82. data/lib/webpack_rails/node_modules/express/node_modules/cookie-signature/index.js +51 -0
  83. data/lib/webpack_rails/node_modules/express/node_modules/cookie-signature/package.json +59 -0
  84. data/lib/webpack_rails/node_modules/express/node_modules/debug/History.md +195 -0
  85. data/lib/webpack_rails/node_modules/express/node_modules/debug/Makefile +36 -0
  86. data/lib/webpack_rails/node_modules/express/node_modules/debug/Readme.md +188 -0
  87. data/lib/webpack_rails/node_modules/express/node_modules/debug/bower.json +28 -0
  88. data/lib/webpack_rails/node_modules/express/node_modules/debug/browser.js +168 -0
  89. data/lib/webpack_rails/node_modules/express/node_modules/debug/component.json +19 -0
  90. data/lib/webpack_rails/node_modules/express/node_modules/debug/debug.js +197 -0
  91. data/lib/webpack_rails/node_modules/express/node_modules/debug/node.js +209 -0
  92. data/lib/webpack_rails/node_modules/express/node_modules/debug/node_modules/ms/History.md +66 -0
  93. data/lib/webpack_rails/node_modules/express/node_modules/debug/node_modules/ms/LICENSE +20 -0
  94. data/lib/webpack_rails/node_modules/express/node_modules/debug/node_modules/ms/README.md +35 -0
  95. data/lib/webpack_rails/node_modules/express/node_modules/debug/node_modules/ms/index.js +125 -0
  96. data/lib/webpack_rails/node_modules/express/node_modules/debug/node_modules/ms/package.json +47 -0
  97. data/lib/webpack_rails/node_modules/express/node_modules/debug/package.json +73 -0
  98. data/lib/webpack_rails/node_modules/express/node_modules/depd/History.md +75 -0
  99. data/lib/webpack_rails/node_modules/express/node_modules/depd/LICENSE +22 -0
  100. data/lib/webpack_rails/node_modules/express/node_modules/depd/Readme.md +274 -0
  101. data/lib/webpack_rails/node_modules/express/node_modules/depd/index.js +529 -0
  102. data/lib/webpack_rails/node_modules/express/node_modules/depd/lib/compat/buffer-concat.js +33 -0
  103. data/lib/webpack_rails/node_modules/express/node_modules/depd/lib/compat/callsite-tostring.js +101 -0
  104. data/lib/webpack_rails/node_modules/express/node_modules/depd/lib/compat/index.js +69 -0
  105. data/lib/webpack_rails/node_modules/express/node_modules/depd/package.json +66 -0
  106. data/lib/webpack_rails/node_modules/express/node_modules/escape-html/LICENSE +22 -0
  107. data/lib/webpack_rails/node_modules/express/node_modules/escape-html/Readme.md +15 -0
  108. data/lib/webpack_rails/node_modules/express/node_modules/escape-html/index.js +29 -0
  109. data/lib/webpack_rails/node_modules/express/node_modules/escape-html/package.json +51 -0
  110. data/lib/webpack_rails/node_modules/express/node_modules/etag/HISTORY.md +71 -0
  111. data/lib/webpack_rails/node_modules/express/node_modules/etag/LICENSE +22 -0
  112. data/lib/webpack_rails/node_modules/express/node_modules/etag/README.md +165 -0
  113. data/lib/webpack_rails/node_modules/express/node_modules/etag/index.js +132 -0
  114. data/lib/webpack_rails/node_modules/express/node_modules/etag/package.json +73 -0
  115. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/HISTORY.md +90 -0
  116. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/LICENSE +22 -0
  117. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/README.md +133 -0
  118. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/index.js +151 -0
  119. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/node_modules/unpipe/HISTORY.md +4 -0
  120. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/node_modules/unpipe/LICENSE +22 -0
  121. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/node_modules/unpipe/README.md +43 -0
  122. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/node_modules/unpipe/index.js +69 -0
  123. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/node_modules/unpipe/package.json +59 -0
  124. data/lib/webpack_rails/node_modules/express/node_modules/finalhandler/package.json +81 -0
  125. data/lib/webpack_rails/node_modules/express/node_modules/fresh/HISTORY.md +38 -0
  126. data/lib/webpack_rails/node_modules/express/node_modules/fresh/LICENSE +22 -0
  127. data/lib/webpack_rails/node_modules/express/node_modules/fresh/README.md +58 -0
  128. data/lib/webpack_rails/node_modules/express/node_modules/fresh/index.js +57 -0
  129. data/lib/webpack_rails/node_modules/express/node_modules/fresh/package.json +87 -0
  130. data/lib/webpack_rails/node_modules/express/node_modules/merge-descriptors/LICENSE +22 -0
  131. data/lib/webpack_rails/node_modules/express/node_modules/merge-descriptors/README.md +34 -0
  132. data/lib/webpack_rails/node_modules/express/node_modules/merge-descriptors/index.js +57 -0
  133. data/lib/webpack_rails/node_modules/express/node_modules/merge-descriptors/package.json +125 -0
  134. data/lib/webpack_rails/node_modules/express/node_modules/methods/HISTORY.md +24 -0
  135. data/lib/webpack_rails/node_modules/express/node_modules/methods/LICENSE +23 -0
  136. data/lib/webpack_rails/node_modules/express/node_modules/methods/README.md +41 -0
  137. data/lib/webpack_rails/node_modules/express/node_modules/methods/index.js +42 -0
  138. data/lib/webpack_rails/node_modules/express/node_modules/methods/package.json +88 -0
  139. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/HISTORY.md +88 -0
  140. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/LICENSE +23 -0
  141. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/README.md +154 -0
  142. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/index.js +196 -0
  143. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE +22 -0
  144. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md +80 -0
  145. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js +95 -0
  146. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json +64 -0
  147. data/lib/webpack_rails/node_modules/express/node_modules/on-finished/package.json +71 -0
  148. data/lib/webpack_rails/node_modules/express/node_modules/parseurl/HISTORY.md +42 -0
  149. data/lib/webpack_rails/node_modules/express/node_modules/parseurl/LICENSE +24 -0
  150. data/lib/webpack_rails/node_modules/express/node_modules/parseurl/README.md +107 -0
  151. data/lib/webpack_rails/node_modules/express/node_modules/parseurl/index.js +136 -0
  152. data/lib/webpack_rails/node_modules/express/node_modules/parseurl/package.json +80 -0
  153. data/lib/webpack_rails/node_modules/express/node_modules/path-to-regexp/History.md +36 -0
  154. data/lib/webpack_rails/node_modules/express/node_modules/path-to-regexp/LICENSE +21 -0
  155. data/lib/webpack_rails/node_modules/express/node_modules/path-to-regexp/Readme.md +35 -0
  156. data/lib/webpack_rails/node_modules/express/node_modules/path-to-regexp/index.js +129 -0
  157. data/lib/webpack_rails/node_modules/express/node_modules/path-to-regexp/package.json +184 -0
  158. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/HISTORY.md +66 -0
  159. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/LICENSE +22 -0
  160. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/README.md +137 -0
  161. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/index.js +345 -0
  162. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/HISTORY.md +4 -0
  163. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/LICENSE +22 -0
  164. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/README.md +53 -0
  165. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/index.js +35 -0
  166. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/package.json +65 -0
  167. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/Cakefile +18 -0
  168. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/LICENSE +19 -0
  169. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/README.md +161 -0
  170. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  171. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js +439 -0
  172. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json +60 -0
  173. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee +374 -0
  174. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee +262 -0
  175. data/lib/webpack_rails/node_modules/express/node_modules/proxy-addr/package.json +90 -0
  176. data/lib/webpack_rails/node_modules/express/node_modules/qs/CHANGELOG.md +88 -0
  177. data/lib/webpack_rails/node_modules/express/node_modules/qs/CONTRIBUTING.md +1 -0
  178. data/lib/webpack_rails/node_modules/express/node_modules/qs/LICENSE +28 -0
  179. data/lib/webpack_rails/node_modules/express/node_modules/qs/README.md +317 -0
  180. data/lib/webpack_rails/node_modules/express/node_modules/qs/bower.json +22 -0
  181. data/lib/webpack_rails/node_modules/express/node_modules/qs/lib/index.js +15 -0
  182. data/lib/webpack_rails/node_modules/express/node_modules/qs/lib/parse.js +186 -0
  183. data/lib/webpack_rails/node_modules/express/node_modules/qs/lib/stringify.js +121 -0
  184. data/lib/webpack_rails/node_modules/express/node_modules/qs/lib/utils.js +190 -0
  185. data/lib/webpack_rails/node_modules/express/node_modules/qs/package.json +56 -0
  186. data/lib/webpack_rails/node_modules/express/node_modules/qs/test/parse.js +478 -0
  187. data/lib/webpack_rails/node_modules/express/node_modules/qs/test/stringify.js +259 -0
  188. data/lib/webpack_rails/node_modules/express/node_modules/qs/test/utils.js +28 -0
  189. data/lib/webpack_rails/node_modules/express/node_modules/range-parser/HISTORY.md +35 -0
  190. data/lib/webpack_rails/node_modules/express/node_modules/range-parser/LICENSE +22 -0
  191. data/lib/webpack_rails/node_modules/express/node_modules/range-parser/README.md +48 -0
  192. data/lib/webpack_rails/node_modules/express/node_modules/range-parser/index.js +49 -0
  193. data/lib/webpack_rails/node_modules/express/node_modules/range-parser/package.json +76 -0
  194. data/lib/webpack_rails/node_modules/express/node_modules/send/HISTORY.md +295 -0
  195. data/lib/webpack_rails/node_modules/express/node_modules/send/LICENSE +23 -0
  196. data/lib/webpack_rails/node_modules/express/node_modules/send/README.md +195 -0
  197. data/lib/webpack_rails/node_modules/express/node_modules/send/index.js +820 -0
  198. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/destroy/README.md +38 -0
  199. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/destroy/index.js +36 -0
  200. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/destroy/package.json +67 -0
  201. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/HISTORY.md +76 -0
  202. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/LICENSE +22 -0
  203. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/README.md +63 -0
  204. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/index.js +120 -0
  205. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE +16 -0
  206. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md +42 -0
  207. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js +1 -0
  208. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js +23 -0
  209. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json +50 -0
  210. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/test.js +25 -0
  211. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/http-errors/package.json +85 -0
  212. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/LICENSE +19 -0
  213. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/README.md +90 -0
  214. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/build/build.js +11 -0
  215. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/build/test.js +57 -0
  216. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/cli.js +8 -0
  217. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/mime.js +108 -0
  218. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/package.json +73 -0
  219. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/mime/types.json +1 -0
  220. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/ms/History.md +66 -0
  221. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/ms/LICENSE +20 -0
  222. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/ms/README.md +35 -0
  223. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/ms/index.js +125 -0
  224. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/ms/package.json +47 -0
  225. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/LICENSE +22 -0
  226. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/README.md +114 -0
  227. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/codes.json +64 -0
  228. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js +60 -0
  229. data/lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/package.json +84 -0
  230. data/lib/webpack_rails/node_modules/express/node_modules/send/package.json +89 -0
  231. data/lib/webpack_rails/node_modules/express/node_modules/serve-static/HISTORY.md +284 -0
  232. data/lib/webpack_rails/node_modules/express/node_modules/serve-static/LICENSE +25 -0
  233. data/lib/webpack_rails/node_modules/express/node_modules/serve-static/README.md +235 -0
  234. data/lib/webpack_rails/node_modules/express/node_modules/serve-static/index.js +187 -0
  235. data/lib/webpack_rails/node_modules/express/node_modules/serve-static/package.json +83 -0
  236. data/lib/webpack_rails/node_modules/express/node_modules/type-is/HISTORY.md +180 -0
  237. data/lib/webpack_rails/node_modules/express/node_modules/type-is/LICENSE +23 -0
  238. data/lib/webpack_rails/node_modules/express/node_modules/type-is/README.md +132 -0
  239. data/lib/webpack_rails/node_modules/express/node_modules/type-is/index.js +262 -0
  240. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/media-typer/HISTORY.md +22 -0
  241. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/media-typer/LICENSE +22 -0
  242. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/media-typer/README.md +81 -0
  243. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/media-typer/index.js +270 -0
  244. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/media-typer/package.json +58 -0
  245. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/HISTORY.md +171 -0
  246. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/LICENSE +23 -0
  247. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/README.md +103 -0
  248. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/index.js +188 -0
  249. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md +274 -0
  250. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE +22 -0
  251. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md +82 -0
  252. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json +6474 -0
  253. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js +11 -0
  254. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json +94 -0
  255. data/lib/webpack_rails/node_modules/express/node_modules/type-is/node_modules/mime-types/package.json +84 -0
  256. data/lib/webpack_rails/node_modules/express/node_modules/type-is/package.json +93 -0
  257. data/lib/webpack_rails/node_modules/express/node_modules/utils-merge/LICENSE +20 -0
  258. data/lib/webpack_rails/node_modules/express/node_modules/utils-merge/README.md +34 -0
  259. data/lib/webpack_rails/node_modules/express/node_modules/utils-merge/index.js +23 -0
  260. data/lib/webpack_rails/node_modules/express/node_modules/utils-merge/package.json +58 -0
  261. data/lib/webpack_rails/node_modules/express/node_modules/vary/HISTORY.md +23 -0
  262. data/lib/webpack_rails/node_modules/express/node_modules/vary/LICENSE +22 -0
  263. data/lib/webpack_rails/node_modules/express/node_modules/vary/README.md +91 -0
  264. data/lib/webpack_rails/node_modules/express/node_modules/vary/index.js +117 -0
  265. data/lib/webpack_rails/node_modules/express/node_modules/vary/package.json +72 -0
  266. data/lib/webpack_rails/node_modules/express/package.json +167 -0
  267. data/lib/webpack_rails/node_modules/is-array/History.md +11 -0
  268. data/lib/webpack_rails/node_modules/is-array/Makefile +11 -0
  269. data/lib/webpack_rails/node_modules/is-array/Readme.md +27 -0
  270. data/lib/webpack_rails/node_modules/is-array/component.json +13 -0
  271. data/lib/webpack_rails/node_modules/is-array/index.js +33 -0
  272. data/lib/webpack_rails/node_modules/is-array/package.json +41 -0
  273. data/lib/webpack_rails/node_modules/is-array/test/test.html +46 -0
  274. data/lib/webpack_rails/node_modules/is-object/LICENSE +19 -0
  275. data/lib/webpack_rails/node_modules/is-object/README.md +55 -0
  276. data/lib/webpack_rails/node_modules/is-object/index.js +5 -0
  277. data/lib/webpack_rails/node_modules/is-object/package.json +91 -0
  278. data/lib/webpack_rails/node_modules/is-object/test/index.js +23 -0
  279. data/lib/webpack_rails/node_modules/is-string/CHANGELOG.md +19 -0
  280. data/lib/webpack_rails/node_modules/is-string/LICENSE +22 -0
  281. data/lib/webpack_rails/node_modules/is-string/Makefile +61 -0
  282. data/lib/webpack_rails/node_modules/is-string/README.md +57 -0
  283. data/lib/webpack_rails/node_modules/is-string/index.js +20 -0
  284. data/lib/webpack_rails/node_modules/is-string/package.json +93 -0
  285. data/lib/webpack_rails/node_modules/is-string/test.js +36 -0
  286. data/lib/webpack_rails/node_modules/js-string-escape/CHANGELOG.md +9 -0
  287. data/lib/webpack_rails/node_modules/js-string-escape/LICENSE +21 -0
  288. data/lib/webpack_rails/node_modules/js-string-escape/README.md +44 -0
  289. data/lib/webpack_rails/node_modules/js-string-escape/index.js +22 -0
  290. data/lib/webpack_rails/node_modules/js-string-escape/package.json +63 -0
  291. data/lib/webpack_rails/node_modules/js-string-escape/test/test.js +43 -0
  292. data/lib/webpack_rails/node_modules/strip-ansi/index.js +6 -0
  293. data/lib/webpack_rails/node_modules/strip-ansi/license +21 -0
  294. data/lib/webpack_rails/node_modules/strip-ansi/node_modules/ansi-regex/index.js +4 -0
  295. data/lib/webpack_rails/node_modules/strip-ansi/node_modules/ansi-regex/license +21 -0
  296. data/lib/webpack_rails/node_modules/strip-ansi/node_modules/ansi-regex/package.json +86 -0
  297. data/lib/webpack_rails/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +31 -0
  298. data/lib/webpack_rails/node_modules/strip-ansi/package.json +85 -0
  299. data/lib/webpack_rails/node_modules/strip-ansi/readme.md +33 -0
  300. data/lib/webpack_rails/node_modules/webpack-hot-middleware/README.md +109 -0
  301. data/lib/webpack_rails/node_modules/webpack-hot-middleware/client-overlay.js +35 -0
  302. data/lib/webpack_rails/node_modules/webpack-hot-middleware/client.js +131 -0
  303. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/README.md +15 -0
  304. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/client.js +30 -0
  305. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/index.html +18 -0
  306. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/package.json +14 -0
  307. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/server.js +41 -0
  308. data/lib/webpack_rails/node_modules/webpack-hot-middleware/example/webpack.config.js +22 -0
  309. data/lib/webpack_rails/node_modules/webpack-hot-middleware/helpers.js +8 -0
  310. data/lib/webpack_rails/node_modules/webpack-hot-middleware/middleware.js +83 -0
  311. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/History.md +20 -0
  312. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/License.md +19 -0
  313. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/Readme.md +15 -0
  314. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/decode.js +80 -0
  315. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/encode.js +64 -0
  316. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/index.js +4 -0
  317. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/package.json +96 -0
  318. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/test/common-index.js +3 -0
  319. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/test/index.js +210 -0
  320. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/querystring/test/tap-index.js +3 -0
  321. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/cli.js +47 -0
  322. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/index.js +6 -0
  323. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/node_modules/ansi-regex/index.js +4 -0
  324. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/node_modules/ansi-regex/license +21 -0
  325. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/node_modules/ansi-regex/package.json +86 -0
  326. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +33 -0
  327. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/package.json +89 -0
  328. data/lib/webpack_rails/node_modules/webpack-hot-middleware/node_modules/strip-ansi/readme.md +43 -0
  329. data/lib/webpack_rails/node_modules/webpack-hot-middleware/package.json +58 -0
  330. data/lib/webpack_rails/node_modules/webpack-hot-middleware/process-update.js +105 -0
  331. data/lib/webpack_rails/node_modules/webpack-hot-middleware/test/client-test.js +81 -0
  332. data/lib/webpack_rails/node_modules/webpack-hot-middleware/test/helpers-test.js +22 -0
  333. data/lib/webpack_rails/node_modules/webpack-hot-middleware/test/middleware-test.js +188 -0
  334. data/lib/webpack_rails/node_modules/webpack-hot-middleware/test/mocha.opts +1 -0
  335. data/lib/webpack_rails/node_modules/xtend/LICENCE +19 -0
  336. data/lib/webpack_rails/node_modules/xtend/Makefile +4 -0
  337. data/lib/webpack_rails/node_modules/xtend/README.md +32 -0
  338. data/lib/webpack_rails/node_modules/xtend/immutable.js +17 -0
  339. data/lib/webpack_rails/node_modules/xtend/mutable.js +15 -0
  340. data/lib/webpack_rails/node_modules/xtend/package.json +88 -0
  341. data/lib/webpack_rails/node_modules/xtend/test.js +63 -0
  342. data/lib/webpack_rails/package.json +22 -0
  343. data/lib/webpack_rails/processor.rb +28 -9
  344. data/lib/webpack_rails/require_directive_processor.rb +51 -0
  345. data/lib/webpack_rails/sprockets_environment.rb +45 -0
  346. data/lib/webpack_rails/task.rb +51 -22
  347. data/lib/webpack_rails/webpack-task-dev-server.js +122 -0
  348. data/lib/webpack_rails/{webpack-task.js → webpack-task-watch.js} +0 -0
  349. data/lib/webpack_rails/webpack.rake +5 -5
  350. data/lib/webpack_rails.rb +1 -3
  351. metadata +346 -5
  352. data/lib/webpack_rails/sprockets_base_webpack.rb +0 -14
  353. data/lib/webpack_rails/sprockets_index_webpack.rb +0 -15
@@ -0,0 +1,103 @@
1
+ /*!
2
+ * express
3
+ * Copyright(c) 2009-2013 TJ Holowaychuk
4
+ * Copyright(c) 2013 Roman Shtylman
5
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /**
12
+ * Module dependencies.
13
+ */
14
+
15
+ var EventEmitter = require('events').EventEmitter;
16
+ var mixin = require('merge-descriptors');
17
+ var proto = require('./application');
18
+ var Route = require('./router/route');
19
+ var Router = require('./router');
20
+ var req = require('./request');
21
+ var res = require('./response');
22
+
23
+ /**
24
+ * Expose `createApplication()`.
25
+ */
26
+
27
+ exports = module.exports = createApplication;
28
+
29
+ /**
30
+ * Create an express application.
31
+ *
32
+ * @return {Function}
33
+ * @api public
34
+ */
35
+
36
+ function createApplication() {
37
+ var app = function(req, res, next) {
38
+ app.handle(req, res, next);
39
+ };
40
+
41
+ mixin(app, EventEmitter.prototype, false);
42
+ mixin(app, proto, false);
43
+
44
+ app.request = { __proto__: req, app: app };
45
+ app.response = { __proto__: res, app: app };
46
+ app.init();
47
+ return app;
48
+ }
49
+
50
+ /**
51
+ * Expose the prototypes.
52
+ */
53
+
54
+ exports.application = proto;
55
+ exports.request = req;
56
+ exports.response = res;
57
+
58
+ /**
59
+ * Expose constructors.
60
+ */
61
+
62
+ exports.Route = Route;
63
+ exports.Router = Router;
64
+
65
+ /**
66
+ * Expose middleware
67
+ */
68
+
69
+ exports.query = require('./middleware/query');
70
+ exports.static = require('serve-static');
71
+
72
+ /**
73
+ * Replace removed middleware with an appropriate error message.
74
+ */
75
+
76
+ [
77
+ 'json',
78
+ 'urlencoded',
79
+ 'bodyParser',
80
+ 'compress',
81
+ 'cookieSession',
82
+ 'session',
83
+ 'logger',
84
+ 'cookieParser',
85
+ 'favicon',
86
+ 'responseTime',
87
+ 'errorHandler',
88
+ 'timeout',
89
+ 'methodOverride',
90
+ 'vhost',
91
+ 'csrf',
92
+ 'directory',
93
+ 'limit',
94
+ 'multipart',
95
+ 'staticCache',
96
+ ].forEach(function (name) {
97
+ Object.defineProperty(exports, name, {
98
+ get: function () {
99
+ throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.');
100
+ },
101
+ configurable: true
102
+ });
103
+ });
@@ -0,0 +1,36 @@
1
+ /*!
2
+ * express
3
+ * Copyright(c) 2009-2013 TJ Holowaychuk
4
+ * Copyright(c) 2013 Roman Shtylman
5
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /**
12
+ * Initialization middleware, exposing the
13
+ * request and response to each other, as well
14
+ * as defaulting the X-Powered-By header field.
15
+ *
16
+ * @param {Function} app
17
+ * @return {Function}
18
+ * @api private
19
+ */
20
+
21
+ exports.init = function(app){
22
+ return function expressInit(req, res, next){
23
+ if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express');
24
+ req.res = res;
25
+ res.req = req;
26
+ req.next = next;
27
+
28
+ req.__proto__ = app.request;
29
+ res.__proto__ = app.response;
30
+
31
+ res.locals = res.locals || Object.create(null);
32
+
33
+ next();
34
+ };
35
+ };
36
+
@@ -0,0 +1,51 @@
1
+ /*!
2
+ * express
3
+ * Copyright(c) 2009-2013 TJ Holowaychuk
4
+ * Copyright(c) 2013 Roman Shtylman
5
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /**
12
+ * Module dependencies.
13
+ */
14
+
15
+ var parseUrl = require('parseurl');
16
+ var qs = require('qs');
17
+
18
+ /**
19
+ * @param {Object} options
20
+ * @return {Function}
21
+ * @api public
22
+ */
23
+
24
+ module.exports = function query(options) {
25
+ var opts = Object.create(options || null);
26
+ var queryparse = qs.parse;
27
+
28
+ if (typeof options === 'function') {
29
+ queryparse = options;
30
+ opts = undefined;
31
+ }
32
+
33
+ if (opts !== undefined) {
34
+ if (opts.allowDots === undefined) {
35
+ opts.allowDots = false;
36
+ }
37
+
38
+ if (opts.allowPrototypes === undefined) {
39
+ opts.allowPrototypes = true;
40
+ }
41
+ }
42
+
43
+ return function query(req, res, next){
44
+ if (!req.query) {
45
+ var val = parseUrl(req).query;
46
+ req.query = queryparse(val, opts);
47
+ }
48
+
49
+ next();
50
+ };
51
+ };
@@ -0,0 +1,489 @@
1
+ /*!
2
+ * express
3
+ * Copyright(c) 2009-2013 TJ Holowaychuk
4
+ * Copyright(c) 2013 Roman Shtylman
5
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
6
+ * MIT Licensed
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /**
12
+ * Module dependencies.
13
+ * @private
14
+ */
15
+
16
+ var accepts = require('accepts');
17
+ var deprecate = require('depd')('express');
18
+ var isIP = require('net').isIP;
19
+ var typeis = require('type-is');
20
+ var http = require('http');
21
+ var fresh = require('fresh');
22
+ var parseRange = require('range-parser');
23
+ var parse = require('parseurl');
24
+ var proxyaddr = require('proxy-addr');
25
+
26
+ /**
27
+ * Request prototype.
28
+ */
29
+
30
+ var req = exports = module.exports = {
31
+ __proto__: http.IncomingMessage.prototype
32
+ };
33
+
34
+ /**
35
+ * Return request header.
36
+ *
37
+ * The `Referrer` header field is special-cased,
38
+ * both `Referrer` and `Referer` are interchangeable.
39
+ *
40
+ * Examples:
41
+ *
42
+ * req.get('Content-Type');
43
+ * // => "text/plain"
44
+ *
45
+ * req.get('content-type');
46
+ * // => "text/plain"
47
+ *
48
+ * req.get('Something');
49
+ * // => undefined
50
+ *
51
+ * Aliased as `req.header()`.
52
+ *
53
+ * @param {String} name
54
+ * @return {String}
55
+ * @public
56
+ */
57
+
58
+ req.get =
59
+ req.header = function header(name) {
60
+ var lc = name.toLowerCase();
61
+
62
+ switch (lc) {
63
+ case 'referer':
64
+ case 'referrer':
65
+ return this.headers.referrer
66
+ || this.headers.referer;
67
+ default:
68
+ return this.headers[lc];
69
+ }
70
+ };
71
+
72
+ /**
73
+ * To do: update docs.
74
+ *
75
+ * Check if the given `type(s)` is acceptable, returning
76
+ * the best match when true, otherwise `undefined`, in which
77
+ * case you should respond with 406 "Not Acceptable".
78
+ *
79
+ * The `type` value may be a single MIME type string
80
+ * such as "application/json", an extension name
81
+ * such as "json", a comma-delimited list such as "json, html, text/plain",
82
+ * an argument list such as `"json", "html", "text/plain"`,
83
+ * or an array `["json", "html", "text/plain"]`. When a list
84
+ * or array is given, the _best_ match, if any is returned.
85
+ *
86
+ * Examples:
87
+ *
88
+ * // Accept: text/html
89
+ * req.accepts('html');
90
+ * // => "html"
91
+ *
92
+ * // Accept: text/*, application/json
93
+ * req.accepts('html');
94
+ * // => "html"
95
+ * req.accepts('text/html');
96
+ * // => "text/html"
97
+ * req.accepts('json, text');
98
+ * // => "json"
99
+ * req.accepts('application/json');
100
+ * // => "application/json"
101
+ *
102
+ * // Accept: text/*, application/json
103
+ * req.accepts('image/png');
104
+ * req.accepts('png');
105
+ * // => undefined
106
+ *
107
+ * // Accept: text/*;q=.5, application/json
108
+ * req.accepts(['html', 'json']);
109
+ * req.accepts('html', 'json');
110
+ * req.accepts('html, json');
111
+ * // => "json"
112
+ *
113
+ * @param {String|Array} type(s)
114
+ * @return {String|Array|Boolean}
115
+ * @public
116
+ */
117
+
118
+ req.accepts = function(){
119
+ var accept = accepts(this);
120
+ return accept.types.apply(accept, arguments);
121
+ };
122
+
123
+ /**
124
+ * Check if the given `encoding`s are accepted.
125
+ *
126
+ * @param {String} ...encoding
127
+ * @return {String|Array}
128
+ * @public
129
+ */
130
+
131
+ req.acceptsEncodings = function(){
132
+ var accept = accepts(this);
133
+ return accept.encodings.apply(accept, arguments);
134
+ };
135
+
136
+ req.acceptsEncoding = deprecate.function(req.acceptsEncodings,
137
+ 'req.acceptsEncoding: Use acceptsEncodings instead');
138
+
139
+ /**
140
+ * Check if the given `charset`s are acceptable,
141
+ * otherwise you should respond with 406 "Not Acceptable".
142
+ *
143
+ * @param {String} ...charset
144
+ * @return {String|Array}
145
+ * @public
146
+ */
147
+
148
+ req.acceptsCharsets = function(){
149
+ var accept = accepts(this);
150
+ return accept.charsets.apply(accept, arguments);
151
+ };
152
+
153
+ req.acceptsCharset = deprecate.function(req.acceptsCharsets,
154
+ 'req.acceptsCharset: Use acceptsCharsets instead');
155
+
156
+ /**
157
+ * Check if the given `lang`s are acceptable,
158
+ * otherwise you should respond with 406 "Not Acceptable".
159
+ *
160
+ * @param {String} ...lang
161
+ * @return {String|Array}
162
+ * @public
163
+ */
164
+
165
+ req.acceptsLanguages = function(){
166
+ var accept = accepts(this);
167
+ return accept.languages.apply(accept, arguments);
168
+ };
169
+
170
+ req.acceptsLanguage = deprecate.function(req.acceptsLanguages,
171
+ 'req.acceptsLanguage: Use acceptsLanguages instead');
172
+
173
+ /**
174
+ * Parse Range header field,
175
+ * capping to the given `size`.
176
+ *
177
+ * Unspecified ranges such as "0-" require
178
+ * knowledge of your resource length. In
179
+ * the case of a byte range this is of course
180
+ * the total number of bytes. If the Range
181
+ * header field is not given `null` is returned,
182
+ * `-1` when unsatisfiable, `-2` when syntactically invalid.
183
+ *
184
+ * NOTE: remember that ranges are inclusive, so
185
+ * for example "Range: users=0-3" should respond
186
+ * with 4 users when available, not 3.
187
+ *
188
+ * @param {Number} size
189
+ * @return {Array}
190
+ * @public
191
+ */
192
+
193
+ req.range = function(size){
194
+ var range = this.get('Range');
195
+ if (!range) return;
196
+ return parseRange(size, range);
197
+ };
198
+
199
+ /**
200
+ * Return the value of param `name` when present or `defaultValue`.
201
+ *
202
+ * - Checks route placeholders, ex: _/user/:id_
203
+ * - Checks body params, ex: id=12, {"id":12}
204
+ * - Checks query string params, ex: ?id=12
205
+ *
206
+ * To utilize request bodies, `req.body`
207
+ * should be an object. This can be done by using
208
+ * the `bodyParser()` middleware.
209
+ *
210
+ * @param {String} name
211
+ * @param {Mixed} [defaultValue]
212
+ * @return {String}
213
+ * @public
214
+ */
215
+
216
+ req.param = function param(name, defaultValue) {
217
+ var params = this.params || {};
218
+ var body = this.body || {};
219
+ var query = this.query || {};
220
+
221
+ var args = arguments.length === 1
222
+ ? 'name'
223
+ : 'name, default';
224
+ deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead');
225
+
226
+ if (null != params[name] && params.hasOwnProperty(name)) return params[name];
227
+ if (null != body[name]) return body[name];
228
+ if (null != query[name]) return query[name];
229
+
230
+ return defaultValue;
231
+ };
232
+
233
+ /**
234
+ * Check if the incoming request contains the "Content-Type"
235
+ * header field, and it contains the give mime `type`.
236
+ *
237
+ * Examples:
238
+ *
239
+ * // With Content-Type: text/html; charset=utf-8
240
+ * req.is('html');
241
+ * req.is('text/html');
242
+ * req.is('text/*');
243
+ * // => true
244
+ *
245
+ * // When Content-Type is application/json
246
+ * req.is('json');
247
+ * req.is('application/json');
248
+ * req.is('application/*');
249
+ * // => true
250
+ *
251
+ * req.is('html');
252
+ * // => false
253
+ *
254
+ * @param {String|Array} types...
255
+ * @return {String|false|null}
256
+ * @public
257
+ */
258
+
259
+ req.is = function is(types) {
260
+ var arr = types;
261
+
262
+ // support flattened arguments
263
+ if (!Array.isArray(types)) {
264
+ arr = new Array(arguments.length);
265
+ for (var i = 0; i < arr.length; i++) {
266
+ arr[i] = arguments[i];
267
+ }
268
+ }
269
+
270
+ return typeis(this, arr);
271
+ };
272
+
273
+ /**
274
+ * Return the protocol string "http" or "https"
275
+ * when requested with TLS. When the "trust proxy"
276
+ * setting trusts the socket address, the
277
+ * "X-Forwarded-Proto" header field will be trusted
278
+ * and used if present.
279
+ *
280
+ * If you're running behind a reverse proxy that
281
+ * supplies https for you this may be enabled.
282
+ *
283
+ * @return {String}
284
+ * @public
285
+ */
286
+
287
+ defineGetter(req, 'protocol', function protocol(){
288
+ var proto = this.connection.encrypted
289
+ ? 'https'
290
+ : 'http';
291
+ var trust = this.app.get('trust proxy fn');
292
+
293
+ if (!trust(this.connection.remoteAddress, 0)) {
294
+ return proto;
295
+ }
296
+
297
+ // Note: X-Forwarded-Proto is normally only ever a
298
+ // single value, but this is to be safe.
299
+ proto = this.get('X-Forwarded-Proto') || proto;
300
+ return proto.split(/\s*,\s*/)[0];
301
+ });
302
+
303
+ /**
304
+ * Short-hand for:
305
+ *
306
+ * req.protocol == 'https'
307
+ *
308
+ * @return {Boolean}
309
+ * @public
310
+ */
311
+
312
+ defineGetter(req, 'secure', function secure(){
313
+ return this.protocol === 'https';
314
+ });
315
+
316
+ /**
317
+ * Return the remote address from the trusted proxy.
318
+ *
319
+ * The is the remote address on the socket unless
320
+ * "trust proxy" is set.
321
+ *
322
+ * @return {String}
323
+ * @public
324
+ */
325
+
326
+ defineGetter(req, 'ip', function ip(){
327
+ var trust = this.app.get('trust proxy fn');
328
+ return proxyaddr(this, trust);
329
+ });
330
+
331
+ /**
332
+ * When "trust proxy" is set, trusted proxy addresses + client.
333
+ *
334
+ * For example if the value were "client, proxy1, proxy2"
335
+ * you would receive the array `["client", "proxy1", "proxy2"]`
336
+ * where "proxy2" is the furthest down-stream and "proxy1" and
337
+ * "proxy2" were trusted.
338
+ *
339
+ * @return {Array}
340
+ * @public
341
+ */
342
+
343
+ defineGetter(req, 'ips', function ips() {
344
+ var trust = this.app.get('trust proxy fn');
345
+ var addrs = proxyaddr.all(this, trust);
346
+ return addrs.slice(1).reverse();
347
+ });
348
+
349
+ /**
350
+ * Return subdomains as an array.
351
+ *
352
+ * Subdomains are the dot-separated parts of the host before the main domain of
353
+ * the app. By default, the domain of the app is assumed to be the last two
354
+ * parts of the host. This can be changed by setting "subdomain offset".
355
+ *
356
+ * For example, if the domain is "tobi.ferrets.example.com":
357
+ * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`.
358
+ * If "subdomain offset" is 3, req.subdomains is `["tobi"]`.
359
+ *
360
+ * @return {Array}
361
+ * @public
362
+ */
363
+
364
+ defineGetter(req, 'subdomains', function subdomains() {
365
+ var hostname = this.hostname;
366
+
367
+ if (!hostname) return [];
368
+
369
+ var offset = this.app.get('subdomain offset');
370
+ var subdomains = !isIP(hostname)
371
+ ? hostname.split('.').reverse()
372
+ : [hostname];
373
+
374
+ return subdomains.slice(offset);
375
+ });
376
+
377
+ /**
378
+ * Short-hand for `url.parse(req.url).pathname`.
379
+ *
380
+ * @return {String}
381
+ * @public
382
+ */
383
+
384
+ defineGetter(req, 'path', function path() {
385
+ return parse(this).pathname;
386
+ });
387
+
388
+ /**
389
+ * Parse the "Host" header field to a hostname.
390
+ *
391
+ * When the "trust proxy" setting trusts the socket
392
+ * address, the "X-Forwarded-Host" header field will
393
+ * be trusted.
394
+ *
395
+ * @return {String}
396
+ * @public
397
+ */
398
+
399
+ defineGetter(req, 'hostname', function hostname(){
400
+ var trust = this.app.get('trust proxy fn');
401
+ var host = this.get('X-Forwarded-Host');
402
+
403
+ if (!host || !trust(this.connection.remoteAddress, 0)) {
404
+ host = this.get('Host');
405
+ }
406
+
407
+ if (!host) return;
408
+
409
+ // IPv6 literal support
410
+ var offset = host[0] === '['
411
+ ? host.indexOf(']') + 1
412
+ : 0;
413
+ var index = host.indexOf(':', offset);
414
+
415
+ return index !== -1
416
+ ? host.substring(0, index)
417
+ : host;
418
+ });
419
+
420
+ // TODO: change req.host to return host in next major
421
+
422
+ defineGetter(req, 'host', deprecate.function(function host(){
423
+ return this.hostname;
424
+ }, 'req.host: Use req.hostname instead'));
425
+
426
+ /**
427
+ * Check if the request is fresh, aka
428
+ * Last-Modified and/or the ETag
429
+ * still match.
430
+ *
431
+ * @return {Boolean}
432
+ * @public
433
+ */
434
+
435
+ defineGetter(req, 'fresh', function(){
436
+ var method = this.method;
437
+ var s = this.res.statusCode;
438
+
439
+ // GET or HEAD for weak freshness validation only
440
+ if ('GET' != method && 'HEAD' != method) return false;
441
+
442
+ // 2xx or 304 as per rfc2616 14.26
443
+ if ((s >= 200 && s < 300) || 304 == s) {
444
+ return fresh(this.headers, (this.res._headers || {}));
445
+ }
446
+
447
+ return false;
448
+ });
449
+
450
+ /**
451
+ * Check if the request is stale, aka
452
+ * "Last-Modified" and / or the "ETag" for the
453
+ * resource has changed.
454
+ *
455
+ * @return {Boolean}
456
+ * @public
457
+ */
458
+
459
+ defineGetter(req, 'stale', function stale(){
460
+ return !this.fresh;
461
+ });
462
+
463
+ /**
464
+ * Check if the request was an _XMLHttpRequest_.
465
+ *
466
+ * @return {Boolean}
467
+ * @public
468
+ */
469
+
470
+ defineGetter(req, 'xhr', function xhr(){
471
+ var val = this.get('X-Requested-With') || '';
472
+ return val.toLowerCase() === 'xmlhttprequest';
473
+ });
474
+
475
+ /**
476
+ * Helper function for creating a getter on an object.
477
+ *
478
+ * @param {Object} obj
479
+ * @param {String} name
480
+ * @param {Function} getter
481
+ * @private
482
+ */
483
+ function defineGetter(obj, name, getter) {
484
+ Object.defineProperty(obj, name, {
485
+ configurable: true,
486
+ enumerable: true,
487
+ get: getter
488
+ });
489
+ };