webpack_rails 0.3.0 → 1.0.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 (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,645 @@
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 Route = require('./route');
17
+ var Layer = require('./layer');
18
+ var methods = require('methods');
19
+ var mixin = require('utils-merge');
20
+ var debug = require('debug')('express:router');
21
+ var deprecate = require('depd')('express');
22
+ var flatten = require('array-flatten');
23
+ var parseUrl = require('parseurl');
24
+
25
+ /**
26
+ * Module variables.
27
+ * @private
28
+ */
29
+
30
+ var objectRegExp = /^\[object (\S+)\]$/;
31
+ var slice = Array.prototype.slice;
32
+ var toString = Object.prototype.toString;
33
+
34
+ /**
35
+ * Initialize a new `Router` with the given `options`.
36
+ *
37
+ * @param {Object} options
38
+ * @return {Router} which is an callable function
39
+ * @public
40
+ */
41
+
42
+ var proto = module.exports = function(options) {
43
+ var opts = options || {};
44
+
45
+ function router(req, res, next) {
46
+ router.handle(req, res, next);
47
+ }
48
+
49
+ // mixin Router class functions
50
+ router.__proto__ = proto;
51
+
52
+ router.params = {};
53
+ router._params = [];
54
+ router.caseSensitive = opts.caseSensitive;
55
+ router.mergeParams = opts.mergeParams;
56
+ router.strict = opts.strict;
57
+ router.stack = [];
58
+
59
+ return router;
60
+ };
61
+
62
+ /**
63
+ * Map the given param placeholder `name`(s) to the given callback.
64
+ *
65
+ * Parameter mapping is used to provide pre-conditions to routes
66
+ * which use normalized placeholders. For example a _:user_id_ parameter
67
+ * could automatically load a user's information from the database without
68
+ * any additional code,
69
+ *
70
+ * The callback uses the same signature as middleware, the only difference
71
+ * being that the value of the placeholder is passed, in this case the _id_
72
+ * of the user. Once the `next()` function is invoked, just like middleware
73
+ * it will continue on to execute the route, or subsequent parameter functions.
74
+ *
75
+ * Just like in middleware, you must either respond to the request or call next
76
+ * to avoid stalling the request.
77
+ *
78
+ * app.param('user_id', function(req, res, next, id){
79
+ * User.find(id, function(err, user){
80
+ * if (err) {
81
+ * return next(err);
82
+ * } else if (!user) {
83
+ * return next(new Error('failed to load user'));
84
+ * }
85
+ * req.user = user;
86
+ * next();
87
+ * });
88
+ * });
89
+ *
90
+ * @param {String} name
91
+ * @param {Function} fn
92
+ * @return {app} for chaining
93
+ * @public
94
+ */
95
+
96
+ proto.param = function param(name, fn) {
97
+ // param logic
98
+ if (typeof name === 'function') {
99
+ deprecate('router.param(fn): Refactor to use path params');
100
+ this._params.push(name);
101
+ return;
102
+ }
103
+
104
+ // apply param functions
105
+ var params = this._params;
106
+ var len = params.length;
107
+ var ret;
108
+
109
+ if (name[0] === ':') {
110
+ deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.substr(1)) + ', fn) instead');
111
+ name = name.substr(1);
112
+ }
113
+
114
+ for (var i = 0; i < len; ++i) {
115
+ if (ret = params[i](name, fn)) {
116
+ fn = ret;
117
+ }
118
+ }
119
+
120
+ // ensure we end up with a
121
+ // middleware function
122
+ if ('function' != typeof fn) {
123
+ throw new Error('invalid param() call for ' + name + ', got ' + fn);
124
+ }
125
+
126
+ (this.params[name] = this.params[name] || []).push(fn);
127
+ return this;
128
+ };
129
+
130
+ /**
131
+ * Dispatch a req, res into the router.
132
+ * @private
133
+ */
134
+
135
+ proto.handle = function handle(req, res, out) {
136
+ var self = this;
137
+
138
+ debug('dispatching %s %s', req.method, req.url);
139
+
140
+ var search = 1 + req.url.indexOf('?');
141
+ var pathlength = search ? search - 1 : req.url.length;
142
+ var fqdn = req.url[0] !== '/' && 1 + req.url.substr(0, pathlength).indexOf('://');
143
+ var protohost = fqdn ? req.url.substr(0, req.url.indexOf('/', 2 + fqdn)) : '';
144
+ var idx = 0;
145
+ var removed = '';
146
+ var slashAdded = false;
147
+ var paramcalled = {};
148
+
149
+ // store options for OPTIONS request
150
+ // only used if OPTIONS request
151
+ var options = [];
152
+
153
+ // middleware and routes
154
+ var stack = self.stack;
155
+
156
+ // manage inter-router variables
157
+ var parentParams = req.params;
158
+ var parentUrl = req.baseUrl || '';
159
+ var done = restore(out, req, 'baseUrl', 'next', 'params');
160
+
161
+ // setup next layer
162
+ req.next = next;
163
+
164
+ // for options requests, respond with a default if nothing else responds
165
+ if (req.method === 'OPTIONS') {
166
+ done = wrap(done, function(old, err) {
167
+ if (err || options.length === 0) return old(err);
168
+ sendOptionsResponse(res, options, old);
169
+ });
170
+ }
171
+
172
+ // setup basic req values
173
+ req.baseUrl = parentUrl;
174
+ req.originalUrl = req.originalUrl || req.url;
175
+
176
+ next();
177
+
178
+ function next(err) {
179
+ var layerError = err === 'route'
180
+ ? null
181
+ : err;
182
+
183
+ // remove added slash
184
+ if (slashAdded) {
185
+ req.url = req.url.substr(1);
186
+ slashAdded = false;
187
+ }
188
+
189
+ // restore altered req.url
190
+ if (removed.length !== 0) {
191
+ req.baseUrl = parentUrl;
192
+ req.url = protohost + removed + req.url.substr(protohost.length);
193
+ removed = '';
194
+ }
195
+
196
+ // no more matching layers
197
+ if (idx >= stack.length) {
198
+ setImmediate(done, layerError);
199
+ return;
200
+ }
201
+
202
+ // get pathname of request
203
+ var path = getPathname(req);
204
+
205
+ if (path == null) {
206
+ return done(layerError);
207
+ }
208
+
209
+ // find next matching layer
210
+ var layer;
211
+ var match;
212
+ var route;
213
+
214
+ while (match !== true && idx < stack.length) {
215
+ layer = stack[idx++];
216
+ match = matchLayer(layer, path);
217
+ route = layer.route;
218
+
219
+ if (typeof match !== 'boolean') {
220
+ // hold on to layerError
221
+ layerError = layerError || match;
222
+ }
223
+
224
+ if (match !== true) {
225
+ continue;
226
+ }
227
+
228
+ if (!route) {
229
+ // process non-route handlers normally
230
+ continue;
231
+ }
232
+
233
+ if (layerError) {
234
+ // routes do not match with a pending error
235
+ match = false;
236
+ continue;
237
+ }
238
+
239
+ var method = req.method;
240
+ var has_method = route._handles_method(method);
241
+
242
+ // build up automatic options response
243
+ if (!has_method && method === 'OPTIONS') {
244
+ appendMethods(options, route._options());
245
+ }
246
+
247
+ // don't even bother matching route
248
+ if (!has_method && method !== 'HEAD') {
249
+ match = false;
250
+ continue;
251
+ }
252
+ }
253
+
254
+ // no match
255
+ if (match !== true) {
256
+ return done(layerError);
257
+ }
258
+
259
+ // store route for dispatch on change
260
+ if (route) {
261
+ req.route = route;
262
+ }
263
+
264
+ // Capture one-time layer values
265
+ req.params = self.mergeParams
266
+ ? mergeParams(layer.params, parentParams)
267
+ : layer.params;
268
+ var layerPath = layer.path;
269
+
270
+ // this should be done for the layer
271
+ self.process_params(layer, paramcalled, req, res, function (err) {
272
+ if (err) {
273
+ return next(layerError || err);
274
+ }
275
+
276
+ if (route) {
277
+ return layer.handle_request(req, res, next);
278
+ }
279
+
280
+ trim_prefix(layer, layerError, layerPath, path);
281
+ });
282
+ }
283
+
284
+ function trim_prefix(layer, layerError, layerPath, path) {
285
+ var c = path[layerPath.length];
286
+ if (c && '/' !== c && '.' !== c) return next(layerError);
287
+
288
+ // Trim off the part of the url that matches the route
289
+ // middleware (.use stuff) needs to have the path stripped
290
+ if (layerPath.length !== 0) {
291
+ debug('trim prefix (%s) from url %s', layerPath, req.url);
292
+ removed = layerPath;
293
+ req.url = protohost + req.url.substr(protohost.length + removed.length);
294
+
295
+ // Ensure leading slash
296
+ if (!fqdn && req.url[0] !== '/') {
297
+ req.url = '/' + req.url;
298
+ slashAdded = true;
299
+ }
300
+
301
+ // Setup base URL (no trailing slash)
302
+ req.baseUrl = parentUrl + (removed[removed.length - 1] === '/'
303
+ ? removed.substring(0, removed.length - 1)
304
+ : removed);
305
+ }
306
+
307
+ debug('%s %s : %s', layer.name, layerPath, req.originalUrl);
308
+
309
+ if (layerError) {
310
+ layer.handle_error(layerError, req, res, next);
311
+ } else {
312
+ layer.handle_request(req, res, next);
313
+ }
314
+ }
315
+ };
316
+
317
+ /**
318
+ * Process any parameters for the layer.
319
+ * @private
320
+ */
321
+
322
+ proto.process_params = function process_params(layer, called, req, res, done) {
323
+ var params = this.params;
324
+
325
+ // captured parameters from the layer, keys and values
326
+ var keys = layer.keys;
327
+
328
+ // fast track
329
+ if (!keys || keys.length === 0) {
330
+ return done();
331
+ }
332
+
333
+ var i = 0;
334
+ var name;
335
+ var paramIndex = 0;
336
+ var key;
337
+ var paramVal;
338
+ var paramCallbacks;
339
+ var paramCalled;
340
+
341
+ // process params in order
342
+ // param callbacks can be async
343
+ function param(err) {
344
+ if (err) {
345
+ return done(err);
346
+ }
347
+
348
+ if (i >= keys.length ) {
349
+ return done();
350
+ }
351
+
352
+ paramIndex = 0;
353
+ key = keys[i++];
354
+
355
+ if (!key) {
356
+ return done();
357
+ }
358
+
359
+ name = key.name;
360
+ paramVal = req.params[name];
361
+ paramCallbacks = params[name];
362
+ paramCalled = called[name];
363
+
364
+ if (paramVal === undefined || !paramCallbacks) {
365
+ return param();
366
+ }
367
+
368
+ // param previously called with same value or error occurred
369
+ if (paramCalled && (paramCalled.match === paramVal
370
+ || (paramCalled.error && paramCalled.error !== 'route'))) {
371
+ // restore value
372
+ req.params[name] = paramCalled.value;
373
+
374
+ // next param
375
+ return param(paramCalled.error);
376
+ }
377
+
378
+ called[name] = paramCalled = {
379
+ error: null,
380
+ match: paramVal,
381
+ value: paramVal
382
+ };
383
+
384
+ paramCallback();
385
+ }
386
+
387
+ // single param callbacks
388
+ function paramCallback(err) {
389
+ var fn = paramCallbacks[paramIndex++];
390
+
391
+ // store updated value
392
+ paramCalled.value = req.params[key.name];
393
+
394
+ if (err) {
395
+ // store error
396
+ paramCalled.error = err;
397
+ param(err);
398
+ return;
399
+ }
400
+
401
+ if (!fn) return param();
402
+
403
+ try {
404
+ fn(req, res, paramCallback, paramVal, key.name);
405
+ } catch (e) {
406
+ paramCallback(e);
407
+ }
408
+ }
409
+
410
+ param();
411
+ };
412
+
413
+ /**
414
+ * Use the given middleware function, with optional path, defaulting to "/".
415
+ *
416
+ * Use (like `.all`) will run for any http METHOD, but it will not add
417
+ * handlers for those methods so OPTIONS requests will not consider `.use`
418
+ * functions even if they could respond.
419
+ *
420
+ * The other difference is that _route_ path is stripped and not visible
421
+ * to the handler function. The main effect of this feature is that mounted
422
+ * handlers can operate without any code changes regardless of the "prefix"
423
+ * pathname.
424
+ *
425
+ * @public
426
+ */
427
+
428
+ proto.use = function use(fn) {
429
+ var offset = 0;
430
+ var path = '/';
431
+
432
+ // default path to '/'
433
+ // disambiguate router.use([fn])
434
+ if (typeof fn !== 'function') {
435
+ var arg = fn;
436
+
437
+ while (Array.isArray(arg) && arg.length !== 0) {
438
+ arg = arg[0];
439
+ }
440
+
441
+ // first arg is the path
442
+ if (typeof arg !== 'function') {
443
+ offset = 1;
444
+ path = fn;
445
+ }
446
+ }
447
+
448
+ var callbacks = flatten(slice.call(arguments, offset));
449
+
450
+ if (callbacks.length === 0) {
451
+ throw new TypeError('Router.use() requires middleware functions');
452
+ }
453
+
454
+ for (var i = 0; i < callbacks.length; i++) {
455
+ var fn = callbacks[i];
456
+
457
+ if (typeof fn !== 'function') {
458
+ throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));
459
+ }
460
+
461
+ // add the middleware
462
+ debug('use %s %s', path, fn.name || '<anonymous>');
463
+
464
+ var layer = new Layer(path, {
465
+ sensitive: this.caseSensitive,
466
+ strict: false,
467
+ end: false
468
+ }, fn);
469
+
470
+ layer.route = undefined;
471
+
472
+ this.stack.push(layer);
473
+ }
474
+
475
+ return this;
476
+ };
477
+
478
+ /**
479
+ * Create a new Route for the given path.
480
+ *
481
+ * Each route contains a separate middleware stack and VERB handlers.
482
+ *
483
+ * See the Route api documentation for details on adding handlers
484
+ * and middleware to routes.
485
+ *
486
+ * @param {String} path
487
+ * @return {Route}
488
+ * @public
489
+ */
490
+
491
+ proto.route = function route(path) {
492
+ var route = new Route(path);
493
+
494
+ var layer = new Layer(path, {
495
+ sensitive: this.caseSensitive,
496
+ strict: this.strict,
497
+ end: true
498
+ }, route.dispatch.bind(route));
499
+
500
+ layer.route = route;
501
+
502
+ this.stack.push(layer);
503
+ return route;
504
+ };
505
+
506
+ // create Router#VERB functions
507
+ methods.concat('all').forEach(function(method){
508
+ proto[method] = function(path){
509
+ var route = this.route(path)
510
+ route[method].apply(route, slice.call(arguments, 1));
511
+ return this;
512
+ };
513
+ });
514
+
515
+ // append methods to a list of methods
516
+ function appendMethods(list, addition) {
517
+ for (var i = 0; i < addition.length; i++) {
518
+ var method = addition[i];
519
+ if (list.indexOf(method) === -1) {
520
+ list.push(method);
521
+ }
522
+ }
523
+ }
524
+
525
+ // get pathname of request
526
+ function getPathname(req) {
527
+ try {
528
+ return parseUrl(req).pathname;
529
+ } catch (err) {
530
+ return undefined;
531
+ }
532
+ }
533
+
534
+ // get type for error message
535
+ function gettype(obj) {
536
+ var type = typeof obj;
537
+
538
+ if (type !== 'object') {
539
+ return type;
540
+ }
541
+
542
+ // inspect [[Class]] for objects
543
+ return toString.call(obj)
544
+ .replace(objectRegExp, '$1');
545
+ }
546
+
547
+ /**
548
+ * Match path to a layer.
549
+ *
550
+ * @param {Layer} layer
551
+ * @param {string} path
552
+ * @private
553
+ */
554
+
555
+ function matchLayer(layer, path) {
556
+ try {
557
+ return layer.match(path);
558
+ } catch (err) {
559
+ return err;
560
+ }
561
+ }
562
+
563
+ // merge params with parent params
564
+ function mergeParams(params, parent) {
565
+ if (typeof parent !== 'object' || !parent) {
566
+ return params;
567
+ }
568
+
569
+ // make copy of parent for base
570
+ var obj = mixin({}, parent);
571
+
572
+ // simple non-numeric merging
573
+ if (!(0 in params) || !(0 in parent)) {
574
+ return mixin(obj, params);
575
+ }
576
+
577
+ var i = 0;
578
+ var o = 0;
579
+
580
+ // determine numeric gaps
581
+ while (i in params) {
582
+ i++;
583
+ }
584
+
585
+ while (o in parent) {
586
+ o++;
587
+ }
588
+
589
+ // offset numeric indices in params before merge
590
+ for (i--; i >= 0; i--) {
591
+ params[i + o] = params[i];
592
+
593
+ // create holes for the merge when necessary
594
+ if (i < o) {
595
+ delete params[i];
596
+ }
597
+ }
598
+
599
+ return mixin(obj, params);
600
+ }
601
+
602
+ // restore obj props after function
603
+ function restore(fn, obj) {
604
+ var props = new Array(arguments.length - 2);
605
+ var vals = new Array(arguments.length - 2);
606
+
607
+ for (var i = 0; i < props.length; i++) {
608
+ props[i] = arguments[i + 2];
609
+ vals[i] = obj[props[i]];
610
+ }
611
+
612
+ return function(err){
613
+ // restore vals
614
+ for (var i = 0; i < props.length; i++) {
615
+ obj[props[i]] = vals[i];
616
+ }
617
+
618
+ return fn.apply(this, arguments);
619
+ };
620
+ }
621
+
622
+ // send an OPTIONS response
623
+ function sendOptionsResponse(res, options, next) {
624
+ try {
625
+ var body = options.join(',');
626
+ res.set('Allow', body);
627
+ res.send(body);
628
+ } catch (err) {
629
+ next(err);
630
+ }
631
+ }
632
+
633
+ // wrap a function
634
+ function wrap(old, fn) {
635
+ return function proxy() {
636
+ var args = new Array(arguments.length + 1);
637
+
638
+ args[0] = old;
639
+ for (var i = 0, len = arguments.length; i < len; i++) {
640
+ args[i + 1] = arguments[i];
641
+ }
642
+
643
+ fn.apply(this, args);
644
+ };
645
+ }