Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

work on gruntification

  • Loading branch information...
commit 1b78f015c1b098580be8ad891d917f67df254fc0 1 parent 15a3188
@JoeGermuska JoeGermuska authored
Showing with 26,603 additions and 0 deletions.
  1. +1 −0  .gitignore
  2. +88 −0 Gruntfile.js
  3. +14 −0 node_modules/grunt-contrib-clean/.jshintrc
  4. +3 −0  node_modules/grunt-contrib-clean/.npmignore
  5. +5 −0 node_modules/grunt-contrib-clean/.travis.yml
  6. +6 −0 node_modules/grunt-contrib-clean/AUTHORS
  7. +28 −0 node_modules/grunt-contrib-clean/CHANGELOG
  8. +1 −0  node_modules/grunt-contrib-clean/CONTRIBUTING.md
  9. +60 −0 node_modules/grunt-contrib-clean/Gruntfile.js
  10. +22 −0 node_modules/grunt-contrib-clean/LICENSE-MIT
  11. +82 −0 node_modules/grunt-contrib-clean/README.md
  12. +28 −0 node_modules/grunt-contrib-clean/docs/clean-examples.md
  13. +7 −0 node_modules/grunt-contrib-clean/docs/clean-options.md
  14. +3 −0  node_modules/grunt-contrib-clean/docs/clean-overview.md
  15. +1 −0  node_modules/grunt-contrib-clean/docs/overview.md
  16. +72 −0 node_modules/grunt-contrib-clean/package.json
  17. +36 −0 node_modules/grunt-contrib-clean/tasks/clean.js
  18. +22 −0 node_modules/grunt-contrib-clean/test/clean_test.js
  19. +1 −0  node_modules/grunt-contrib-clean/test/fixtures/sample_long/long.txt
  20. +1 −0  node_modules/grunt-contrib-clean/test/fixtures/sample_short/short.txt
  21. +1 −0  node_modules/grunt-contrib-concat/.gitattributes
  22. +14 −0 node_modules/grunt-contrib-concat/.jshintrc
  23. +3 −0  node_modules/grunt-contrib-concat/.npmignore
  24. +6 −0 node_modules/grunt-contrib-concat/.travis.yml
  25. +2 −0  node_modules/grunt-contrib-concat/AUTHORS
  26. +30 −0 node_modules/grunt-contrib-concat/CHANGELOG
  27. +1 −0  node_modules/grunt-contrib-concat/CONTRIBUTING.md
  28. +79 −0 node_modules/grunt-contrib-concat/Gruntfile.js
  29. +22 −0 node_modules/grunt-contrib-concat/LICENSE-MIT
  30. +233 −0 node_modules/grunt-contrib-concat/README.md
  31. +136 −0 node_modules/grunt-contrib-concat/docs/concat-examples.md
  32. +51 −0 node_modules/grunt-contrib-concat/docs/concat-options.md
  33. +1 −0  node_modules/grunt-contrib-concat/docs/concat-overview.md
  34. +61 −0 node_modules/grunt-contrib-concat/package.json
  35. +67 −0 node_modules/grunt-contrib-concat/tasks/concat.js
  36. +34 −0 node_modules/grunt-contrib-concat/tasks/lib/comment.js
  37. +55 −0 node_modules/grunt-contrib-concat/test/concat_test.js
  38. +4 −0 node_modules/grunt-contrib-concat/test/expected/custom_options
  39. +2 −0  node_modules/grunt-contrib-concat/test/expected/default_options
  40. +2 −0  node_modules/grunt-contrib-concat/test/expected/handling_invalid_files
  41. +11 −0 node_modules/grunt-contrib-concat/test/fixtures/banner.js
  42. +7 −0 node_modules/grunt-contrib-concat/test/fixtures/banner2.js
  43. +10 −0 node_modules/grunt-contrib-concat/test/fixtures/banner3.js
  44. +1 −0  node_modules/grunt-contrib-concat/test/fixtures/file1
  45. +1 −0  node_modules/grunt-contrib-concat/test/fixtures/file2
  46. +14 −0 node_modules/grunt-contrib-copy/.jshintrc
  47. +3 −0  node_modules/grunt-contrib-copy/.npmignore
  48. +6 −0 node_modules/grunt-contrib-copy/.travis.yml
  49. +5 −0 node_modules/grunt-contrib-copy/AUTHORS
  50. +50 −0 node_modules/grunt-contrib-copy/CHANGELOG
  51. +1 −0  node_modules/grunt-contrib-copy/CONTRIBUTING.md
  52. +90 −0 node_modules/grunt-contrib-copy/Gruntfile.js
  53. +22 −0 node_modules/grunt-contrib-copy/LICENSE-MIT
  54. +75 −0 node_modules/grunt-contrib-copy/README.md
  55. +14 −0 node_modules/grunt-contrib-copy/docs/copy-examples.md
  56. +11 −0 node_modules/grunt-contrib-copy/docs/copy-options.md
  57. +1 −0  node_modules/grunt-contrib-copy/docs/copy-overview.md
  58. +1 −0  node_modules/grunt-contrib-copy/docs/overview.md
  59. +69 −0 node_modules/grunt-contrib-copy/package.json
  60. +85 −0 node_modules/grunt-contrib-copy/tasks/copy.js
  61. +48 −0 node_modules/grunt-contrib-copy/test/copy_test.js
  62. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_files/test.js
  63. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_files/test2.js
  64. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_flatten/one.js
  65. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_flatten/test.js
  66. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_flatten/test2.js
  67. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_flatten/two.js
  68. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_mix/folder_one/one.js
  69. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_mix/folder_two/two.js
  70. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_mix/test.js
  71. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_mix/test2.js
  72. +1 −0  node_modules/grunt-contrib-copy/test/expected/copy_test_v0.1.0/folder_one/one.js
  73. +1 −0  node_modules/grunt-contrib-copy/test/expected/single.js
  74. +1 −0  node_modules/grunt-contrib-copy/test/fixtures/.hidden
  75. +1 −0  node_modules/grunt-contrib-copy/test/fixtures/folder_one/one.js
  76. +1 −0  node_modules/grunt-contrib-copy/test/fixtures/folder_two/two.js
  77. +1 −0  node_modules/grunt-contrib-copy/test/fixtures/test.js
  78. +1 −0  node_modules/grunt-contrib-copy/test/fixtures/test2.js
  79. +14 −0 node_modules/grunt-contrib-uglify/.jshintrc
  80. +3 −0  node_modules/grunt-contrib-uglify/.npmignore
  81. +5 −0 node_modules/grunt-contrib-uglify/.travis.yml
  82. +3 −0  node_modules/grunt-contrib-uglify/AUTHORS
  83. +23 −0 node_modules/grunt-contrib-uglify/CHANGELOG
  84. +1 −0  node_modules/grunt-contrib-uglify/CONTRIBUTING.md
  85. +172 −0 node_modules/grunt-contrib-uglify/Gruntfile.js
  86. +22 −0 node_modules/grunt-contrib-uglify/LICENSE-MIT
  87. +304 −0 node_modules/grunt-contrib-uglify/README.md
  88. +167 −0 node_modules/grunt-contrib-uglify/docs/uglify-examples.md
  89. +93 −0 node_modules/grunt-contrib-uglify/docs/uglify-options.md
  90. +1 −0  node_modules/grunt-contrib-uglify/docs/uglify-overview.md
  91. +1 −0  node_modules/grunt-contrib-uglify/node_modules/.bin/uglifyjs
  92. +1 −0  node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/.gitattributes
  93. +14 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/.jshintrc
  94. +3 −0  node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/.npmignore
  95. +5 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/.travis.yml
  96. +4 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/AUTHORS
  97. +39 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/CHANGELOG
  98. +60 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/Gruntfile.js
  99. +22 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/LICENSE-MIT
  100. +55 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/README.md
  101. +91 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/lib/contrib.js
  102. +1 −0  node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/.npmignore
  103. +43 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/index.js
  104. +33 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/package.json
  105. +1 −0  node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/readme.md
  106. +65 −0 ..._modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/test/zlib.test.js
  107. +55 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/zlib.js
  108. +60 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/package.json
  109. +127 −0 node_modules/grunt-contrib-uglify/node_modules/grunt-lib-contrib/test/lib_test.js
  110. +2 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/.npmignore
  111. +544 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/README.md
  112. +370 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/bin/uglifyjs
  113. +964 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/ast.js
  114. +1,968 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/compress.js
  115. +265 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/mozilla-ast.js
  116. +1,220 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/output.js
  117. +1,407 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/parse.js
  118. +580 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/scope.js
  119. +81 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/sourcemap.js
  120. +218 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/transform.js
  121. +288 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/lib/utils.js
  122. +4 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/.travis.yml
  123. +21 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/LICENSE
  124. +10 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/bool.js
  125. +7 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js
  126. +7 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js
  127. +8 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/default_hash.js
  128. +7 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/default_singles.js
  129. +8 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/divide.js
  130. +20 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/line_count.js
  131. +29 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js
  132. +29 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js
  133. +4 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/nonopt.js
  134. +2 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/reflect.js
  135. +3 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/short.js
  136. +11 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/string.js
  137. +19 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/usage-options.js
  138. +10 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/example/xup.js
  139. +478 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/index.js
  140. +1 −0  ..._modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/.npmignore
  141. +70 −0 ...les/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown
  142. +10 −0 ...s/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js
  143. +3 −0  ...les/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js
  144. +76 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js
  145. +41 −0 ...odules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json
  146. +30 −0 ...dules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js
  147. +63 −0 ...s/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt
  148. +31 −0 ...odules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js
  149. +42 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/package.json
  150. +487 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/readme.markdown
  151. +71 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/test/_.js
  152. +2 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/test/_/argv.js
  153. +3 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/test/_/bin.js
  154. +446 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/test/parse.js
  155. +292 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/optimist/test/usage.js
  156. +2 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/.npmignore
  157. +4 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/.travis.yml
  158. +58 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md
  159. +28 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/LICENSE
  160. +166 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js
  161. +347 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/README.md
  162. +56 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js
  163. +152 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/mini-require.js
  164. +20 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm
  165. +18 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm
  166. +8 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js
  167. +6 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm
  168. +21 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm
  169. +8 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js
  170. +3 −0  node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js
  171. +8 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map.js
  172. +96 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js
  173. +144 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js
  174. +42 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js
  175. +81 −0 ...modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js
  176. +426 −0 ...s/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js
  177. +381 −0 .../grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js
  178. +353 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js
  179. +91 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js
  180. +1 −0  ...odules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/.npmignore
  181. +58 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE
  182. +119 −0 ...modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md
  183. +299 −0 ...dules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js
  184. +29 −0 ...ules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json
  185. +74 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/package.json
  186. +73 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/run-tests.js
  187. +26 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js
  188. +71 −0 ...dules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js
  189. +24 −0 ...ules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js
  190. +35 −0 ..._modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js
  191. +54 −0 ...s/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js
  192. +72 −0 ...les/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js
  193. +291 −0 ...t-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js
  194. +391 −0 ...-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js
  195. +282 −0 ...les/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js
  196. +152 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js
  197. +37 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/package.json
  198. +12 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/arrays.js
  199. +49 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/blocks.js
  200. +143 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/conditionals.js
  201. +89 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/dead-code.js
  202. +24 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/debugger.js
  203. +97 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/drop-unused.js
  204. +17 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/issue-105.js
  205. +11 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/issue-12.js
  206. +17 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/issue-22.js
  207. +31 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/issue-44.js
  208. +30 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/issue-59.js
  209. +163 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/labels.js
  210. +123 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/loops.js
  211. +25 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/properties.js
  212. +161 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/sequences.js
  213. +210 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/compress/switch.js
  214. +170 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/test/run-tests.js
  215. +164 −0 node_modules/grunt-contrib-uglify/node_modules/uglify-js/tools/node.js
  216. +65 −0 node_modules/grunt-contrib-uglify/package.json
  217. +145 −0 node_modules/grunt-contrib-uglify/tasks/lib/uglify.js
  218. +107 −0 node_modules/grunt-contrib-uglify/tasks/uglify.js
  219. +12 −0 node_modules/grunt-contrib-uglify/test/fixtures/expected/comments.js
  220. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/compress.js
  221. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/compress_mangle.js
  222. +5 −0 node_modules/grunt-contrib-uglify/test/fixtures/expected/compress_mangle_beautify.js
  223. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/compress_mangle_except.js
  224. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/compress_mangle_sourcemap
  225. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/exportAll.js
  226. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/multifile.js
  227. +2 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/multiple_sourcemaps1.js
  228. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/multiple_sourcemaps1.map
  229. +2 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/multiple_sourcemaps2.js
  230. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/multiple_sourcemaps2.map
  231. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/sourcemap_prefix
  232. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/sourcemapin
  233. +2 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/sourcemapin.js
  234. +2 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/sourcemapurl.js
  235. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/expected/wrap.js
  236. +21 −0 node_modules/grunt-contrib-uglify/test/fixtures/src/comments.js
  237. +15 −0 node_modules/grunt-contrib-uglify/test/fixtures/src/simple.js
  238. +28 −0 node_modules/grunt-contrib-uglify/test/fixtures/src/simple2.coffee
  239. +39 −0 node_modules/grunt-contrib-uglify/test/fixtures/src/simple2.js
  240. +1 −0  node_modules/grunt-contrib-uglify/test/fixtures/src/simple2.map
  241. +56 −0 node_modules/grunt-contrib-uglify/test/uglify_test.js
  242. +3 −0  node_modules/grunt/.npmignore
  243. +5 −0 node_modules/grunt/.travis.yml
  244. +4 −0 node_modules/grunt/AUTHORS
  245. +23 −0 node_modules/grunt/CHANGELOG
  246. +1 −0  node_modules/grunt/CONTRIBUTING.md
  247. +88 −0 node_modules/grunt/Gruntfile.js
  248. +22 −0 node_modules/grunt/LICENSE-MIT
  249. +13 −0 node_modules/grunt/README.md
  250. +21 −0 node_modules/grunt/custom-gruntfile.js
  251. +1 −0  node_modules/grunt/docs/README.md
  252. +156 −0 node_modules/grunt/lib/grunt.js
  253. +128 −0 node_modules/grunt/lib/grunt/cli.js
  254. +118 −0 node_modules/grunt/lib/grunt/config.js
  255. +16 −0 node_modules/grunt/lib/grunt/event.js
  256. +84 −0 node_modules/grunt/lib/grunt/fail.js
  257. +438 −0 node_modules/grunt/lib/grunt/file.js
  258. +129 −0 node_modules/grunt/lib/grunt/help.js
  259. +352 −0 node_modules/grunt/lib/grunt/log.js
  260. +42 −0 node_modules/grunt/lib/grunt/option.js
  261. +445 −0 node_modules/grunt/lib/grunt/task.js
  262. +95 −0 node_modules/grunt/lib/grunt/template.js
  263. +189 −0 node_modules/grunt/lib/grunt/util.js
  264. +26 −0 node_modules/grunt/lib/util/exit.js
  265. +63 −0 node_modules/grunt/lib/util/namespace.js
  266. +323 −0 node_modules/grunt/lib/util/task.js
  267. +1 −0  node_modules/grunt/node_modules/.bin/cake
  268. +1 −0  node_modules/grunt/node_modules/.bin/coffee
  269. +1 −0  node_modules/grunt/node_modules/.bin/js-yaml
  270. +1 −0  node_modules/grunt/node_modules/.bin/lodash
  271. +1 −0  node_modules/grunt/node_modules/.bin/nopt
  272. +1 −0  node_modules/grunt/node_modules/.bin/which
  273. +9 −0 node_modules/grunt/node_modules/async/.gitmodules
  274. +4 −0 node_modules/grunt/node_modules/async/.npmignore
  275. +19 −0 node_modules/grunt/node_modules/async/LICENSE
  276. +25 −0 node_modules/grunt/node_modules/async/Makefile
  277. +1,021 −0 node_modules/grunt/node_modules/async/README.md
  278. +3 −0  node_modules/grunt/node_modules/async/index.js
  279. +692 −0 node_modules/grunt/node_modules/async/lib/async.js
  280. +31 −0 node_modules/grunt/node_modules/async/package.json
  281. +11 −0 node_modules/grunt/node_modules/coffee-script/.npmignore
  282. +1 −0  node_modules/grunt/node_modules/coffee-script/CNAME
  283. +22 −0 node_modules/grunt/node_modules/coffee-script/LICENSE
  284. +51 −0 node_modules/grunt/node_modules/coffee-script/README
  285. +78 −0 node_modules/grunt/node_modules/coffee-script/Rakefile
  286. +7 −0 node_modules/grunt/node_modules/coffee-script/bin/cake
  287. +7 −0 node_modules/grunt/node_modules/coffee-script/bin/coffee
  288. +44 −0 node_modules/grunt/node_modules/coffee-script/extras/jsl.conf
  289. +92 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/browser.js
  290. +111 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/cake.js
  291. +167 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js
  292. +500 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/command.js
  293. +606 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/grammar.js
  294. +77 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/helpers.js
  295. +11 −0 node_modules/grunt/node_modules/coffee-script/lib/coffee-script/index.js
Sorry, we could not display the entire diff because too many files (907) changed.
View
1  .gitignore
@@ -1 +1,2 @@
.DS_Store
+build
View
88 Gruntfile.js
@@ -0,0 +1,88 @@
+'use strict';
+
+module.exports = function(grunt) {
+
+ // configurable paths
+ var soundciteConfig = {
+ source: 'soundcite',
+ build: 'build'
+ };
+
+ // Project configuration.
+ grunt.initConfig({
+ // Configs
+ pkg: grunt.file.readJSON('package.json'),
+ soundcite: soundciteConfig,
+
+ // Banner for the top of CSS and JS files
+ banner: '/* <%= pkg.title || pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
+ ' * <%= pkg.homepage %>\n' +
+ ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>;\n' +
+ ' */\n',
+
+ // Uglify
+ uglify: {
+ uncompressed: {
+ options: {
+ beautify: true,
+ mangle: false,
+ preserveComments: true
+ },
+ files: {
+ '<%= soundcite.build %>/js/soundcite.js': '<%= soundcite.source %>/js/*'
+ }
+ },
+ compressed: {
+ files: {
+ '<%= soundcite.build %>/js/soundcite.min.js': '<%= soundcite.source %>/js/*'
+ }
+ }
+ },
+
+ // Copy
+ copy: {
+ dist: {
+ files: [
+ {
+ expand: true,
+ dot: true,
+ cwd: '<%= soundcite.source %>',
+ dest: '<%= soundcite.build %>',
+ src: [
+ '*.html',
+ 'css/**',
+ '{img,font}/**'
+ ]
+ }
+ ]
+ }
+ },
+
+ // Clean
+ clean: {
+ dist: '<%= soundcite.build %>'
+ },
+
+ // Concat
+ concat: {
+ options: {
+ stripBanners: true,
+ banner: '<%= banner %>'
+ },
+ banner: {
+ files: {
+ '<%= soundcite.build %>/js/soundcite.js': ['<%= soundcite.build %>/js/soundcite.js'],
+ '<%= soundcite.build %>/js/soundcite.min.js': ['<%= soundcite.build %>/js/soundcite.min.js'],
+ '<%= soundcite.build %>/css/player.css': ['<%= soundcite.build %>/css/player.css']
+ }
+ }
+ }
+ });
+
+ // Load all Grunt task
+ require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
+ grunt.loadNpmTasks('grunt-contrib-clean');
+
+ // Define complex tasks
+ grunt.registerTask('build', ['clean', 'copy', 'uglify', 'concat']);
+};
View
14 node_modules/grunt-contrib-clean/.jshintrc
@@ -0,0 +1,14 @@
+{
+ "curly": true,
+ "eqeqeq": true,
+ "immed": true,
+ "latedef": true,
+ "newcap": true,
+ "noarg": true,
+ "sub": true,
+ "undef": true,
+ "boss": true,
+ "eqnull": true,
+ "node": true,
+ "es5": true
+}
View
3  node_modules/grunt-contrib-clean/.npmignore
@@ -0,0 +1,3 @@
+node_modules
+npm-debug.log
+tmp
View
5 node_modules/grunt-contrib-clean/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - 0.8
+before_script:
+ - npm install -g grunt-cli
View
6 node_modules/grunt-contrib-clean/AUTHORS
@@ -0,0 +1,6 @@
+Tim Branyen (http://tbranyen.com/)
+Tyler Kellen (http://goingslowly.com/)
+Chris Talkington (http://christalkington.com/)
+Sebastian Golasch (http://www.asciidisco.com/)
+Vlad Filippov (http://vf.io)
+"Cowboy" Ben Alman (http://benalman.com/)
View
28 node_modules/grunt-contrib-clean/CHANGELOG
@@ -0,0 +1,28 @@
+v0.4.0:
+ date: 2013-02-15
+ changes:
+ - First official release for Grunt 0.4.0.
+v0.4.0rc6:
+ date: 2013-01-18
+ changes:
+ - Updating grunt/gruntplugin dependencies to rc6.
+ - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
+v0.4.0rc5:
+ date: 2013-01-09
+ changes:
+ - Updating to work with grunt v0.4.0rc5.
+ - Switching to this.filesSrc api.
+v0.4.0a:
+ date: 2012-12-07
+ changes:
+ - Conversion to grunt v0.4 conventions.
+ - Remove node v0.6 and grunt v0.3 support.
+ - Add force option to bypass CWD check.
+v0.3.0:
+ date: 2012-09-23
+ changes:
+ - Options no longer accepted from global config key.
+v0.2.0:
+ date: 2012-09-10
+ changes:
+ - Refactored from grunt-contrib into individual repo.
View
1  node_modules/grunt-contrib-clean/CONTRIBUTING.md
@@ -0,0 +1 @@
+Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.
View
60 node_modules/grunt-contrib-clean/Gruntfile.js
@@ -0,0 +1,60 @@
+/*
+ * grunt-contrib-clean
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 Tim Branyen, contributors
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function(grunt) {
+
+ // Project configuration.
+ grunt.initConfig({
+ jshint: {
+ all: [
+ 'Gruntfile.js',
+ 'tasks/*.js',
+ '<%= nodeunit.tests %>'
+ ],
+ options: {
+ jshintrc: '.jshintrc'
+ },
+ },
+
+ // Configuration to be run (and then tested).
+ clean: {
+ short: ['tmp/sample_short'],
+ long: {
+ src: ['tmp/sample_long'],
+ },
+ },
+
+ // Unit tests.
+ nodeunit: {
+ tests: ['test/*_test.js'],
+ },
+ });
+
+ // Actually load this plugin's task(s).
+ grunt.loadTasks('tasks');
+
+ // These plugins provide necessary tasks.
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-nodeunit');
+ grunt.loadNpmTasks('grunt-contrib-internal');
+
+ // Setup a test helper to create some folders to clean.
+ grunt.registerTask('copy', 'Copy fixtures to a temp location.', function() {
+ grunt.file.copy('test/fixtures/sample_long/long.txt', 'tmp/sample_long/long.txt');
+ grunt.file.copy('test/fixtures/sample_short/short.txt', 'tmp/sample_short/short.txt');
+ });
+
+ // Whenever the 'test' task is run, first create some files to be cleaned,
+ // then run this plugin's task(s), then test the result.
+ grunt.registerTask('test', ['copy', 'clean', 'nodeunit']);
+
+ // By default, lint and run all tests.
+ grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
+};
View
22 node_modules/grunt-contrib-clean/LICENSE-MIT
@@ -0,0 +1,22 @@
+Copyright (c) 2012 Tim Branyen, contributors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
View
82 node_modules/grunt-contrib-clean/README.md
@@ -0,0 +1,82 @@
+# grunt-contrib-clean [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-clean.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-clean)
+
+> Clean files and folders.
+
+
+
+## Getting Started
+This plugin requires Grunt `~0.4.0`
+
+If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
+
+```shell
+npm install grunt-contrib-clean --save-dev
+```
+
+One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
+
+```js
+grunt.loadNpmTasks('grunt-contrib-clean');
+```
+
+*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.1](https://github.com/gruntjs/grunt-contrib-clean/tree/grunt-0.3-stable).*
+
+
+
+## Clean task
+_Run this task with the `grunt clean` command._
+
+Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
+
+*Due to the destructive nature of this task, always be cautious of the paths you clean.*
+### Options
+
+#### force
+Type: `Boolean`
+Default: false
+
+This overrides `grunt.file.delete` from blocking deletion of folders outside current working dir (CWD). Use with caution.
+
+### Usage Examples
+
+There are three formats you can use to run this task.
+
+#### Short
+
+```js
+clean: ["path/to/dir/one", "path/to/dir/two"]
+```
+
+#### Medium (specific targets with global options)
+
+```js
+clean: {
+ build: ["path/to/dir/one", "path/to/dir/two"],
+ release: ["path/to/another/dir/one", "path/to/another/dir/two"]
+},
+```
+
+#### Long (specific targets with per target options)
+
+```js
+clean: {
+ build: {
+ src: ["path/to/dir/one", "path/to/dir/two"]
+ }
+}
+```
+
+## Release History
+
+ * 2013-02-14   v0.4.0   First official release for Grunt 0.4.0.
+ * 2013-01-17   v0.4.0rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
+ * 2013-01-08   v0.4.0rc5   Updating to work with grunt v0.4.0rc5. Switching to this.filesSrc api.
+ * 2012-12-06   v0.4.0a   Conversion to grunt v0.4 conventions. Remove node v0.6 and grunt v0.3 support. Add force option to bypass CWD check.
+ * 2012-09-22   v0.3.0   Options no longer accepted from global config key.
+ * 2012-09-09   v0.2.0   Refactored from grunt-contrib into individual repo.
+
+---
+
+Task submitted by [Tim Branyen](http://tbranyen.com/)
+
+*This file was generated on Mon Feb 18 2013 08:35:00.*
View
28 node_modules/grunt-contrib-clean/docs/clean-examples.md
@@ -0,0 +1,28 @@
+# Usage Examples
+
+There are three formats you can use to run this task.
+
+## Short
+
+```js
+clean: ["path/to/dir/one", "path/to/dir/two"]
+```
+
+## Medium (specific targets with global options)
+
+```js
+clean: {
+ build: ["path/to/dir/one", "path/to/dir/two"],
+ release: ["path/to/another/dir/one", "path/to/another/dir/two"]
+},
+```
+
+## Long (specific targets with per target options)
+
+```js
+clean: {
+ build: {
+ src: ["path/to/dir/one", "path/to/dir/two"]
+ }
+}
+```
View
7 node_modules/grunt-contrib-clean/docs/clean-options.md
@@ -0,0 +1,7 @@
+# Options
+
+## force
+Type: `Boolean`
+Default: false
+
+This overrides `grunt.file.delete` from blocking deletion of folders outside current working dir (CWD). Use with caution.
View
3  node_modules/grunt-contrib-clean/docs/clean-overview.md
@@ -0,0 +1,3 @@
+Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
+
+*Due to the destructive nature of this task, always be cautious of the paths you clean.*
View
1  node_modules/grunt-contrib-clean/docs/overview.md
@@ -0,0 +1 @@
+*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.1](https://github.com/gruntjs/grunt-contrib-clean/tree/grunt-0.3-stable).*
View
72 node_modules/grunt-contrib-clean/package.json
@@ -0,0 +1,72 @@
+{
+ "name": "grunt-contrib-clean",
+ "description": "Clean files and folders.",
+ "version": "0.4.0",
+ "homepage": "https://github.com/gruntjs/grunt-contrib-clean",
+ "author": {
+ "name": "Grunt Team",
+ "url": "http://gruntjs.com/"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/gruntjs/grunt-contrib-clean.git"
+ },
+ "bugs": {
+ "url": "https://github.com/gruntjs/grunt-contrib-clean/issues"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://github.com/gruntjs/grunt-contrib-clean/blob/master/LICENSE-MIT"
+ }
+ ],
+ "main": "Gruntfile.js",
+ "engines": {
+ "node": ">= 0.8.0"
+ },
+ "scripts": {
+ "test": "grunt test"
+ },
+ "devDependencies": {
+ "grunt-contrib-jshint": "~0.1.1",
+ "grunt-contrib-nodeunit": "~0.1.2",
+ "grunt-contrib-internal": "~0.4.2",
+ "grunt": "~0.4.0"
+ },
+ "peerDependencies": {
+ "grunt": "~0.4.0"
+ },
+ "keywords": [
+ "gruntplugin"
+ ],
+ "contributors": [
+ {
+ "name": "Tim Branyen",
+ "url": "http://tbranyen.com/"
+ },
+ {
+ "name": "Tyler Kellen",
+ "url": "http://goingslowly.com/"
+ },
+ {
+ "name": "Chris Talkington",
+ "url": "http://christalkington.com/"
+ },
+ {
+ "name": "Sebastian Golasch",
+ "url": "http://www.asciidisco.com/"
+ },
+ {
+ "name": "Vlad Filippov",
+ "url": "http://vf.io"
+ },
+ {
+ "name": "\"Cowboy\" Ben Alman",
+ "url": "http://benalman.com/"
+ }
+ ],
+ "readme": "# grunt-contrib-clean [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-clean.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-clean)\n\n> Clean files and folders.\n\n\n\n## Getting Started\nThis plugin requires Grunt `~0.4.0`\n\nIf you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:\n\n```shell\nnpm install grunt-contrib-clean --save-dev\n```\n\nOne the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:\n\n```js\ngrunt.loadNpmTasks('grunt-contrib-clean');\n```\n\n*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.1](https://github.com/gruntjs/grunt-contrib-clean/tree/grunt-0.3-stable).*\n\n\n\n## Clean task\n_Run this task with the `grunt clean` command._\n\nTask targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.\n\n*Due to the destructive nature of this task, always be cautious of the paths you clean.*\n### Options\n\n#### force\nType: `Boolean` \nDefault: false\n\nThis overrides `grunt.file.delete` from blocking deletion of folders outside current working dir (CWD). Use with caution.\n\n### Usage Examples\n\nThere are three formats you can use to run this task.\n\n#### Short\n\n```js\nclean: [\"path/to/dir/one\", \"path/to/dir/two\"]\n```\n\n#### Medium (specific targets with global options)\n\n```js\nclean: {\n build: [\"path/to/dir/one\", \"path/to/dir/two\"],\n release: [\"path/to/another/dir/one\", \"path/to/another/dir/two\"]\n},\n```\n\n#### Long (specific targets with per target options)\n\n```js\nclean: {\n build: {\n src: [\"path/to/dir/one\", \"path/to/dir/two\"]\n }\n}\n```\n\n## Release History\n\n * 2013-02-14   v0.4.0   First official release for Grunt 0.4.0.\n * 2013-01-17   v0.4.0rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.\n * 2013-01-08   v0.4.0rc5   Updating to work with grunt v0.4.0rc5. Switching to this.filesSrc api.\n * 2012-12-06   v0.4.0a   Conversion to grunt v0.4 conventions. Remove node v0.6 and grunt v0.3 support. Add force option to bypass CWD check.\n * 2012-09-22   v0.3.0   Options no longer accepted from global config key.\n * 2012-09-09   v0.2.0   Refactored from grunt-contrib into individual repo.\n\n---\n\nTask submitted by [Tim Branyen](http://tbranyen.com/)\n\n*This file was generated on Mon Feb 18 2013 08:35:00.*\n",
+ "readmeFilename": "README.md",
+ "_id": "grunt-contrib-clean@0.4.0",
+ "_from": "grunt-contrib-clean@0.4.0"
+}
View
36 node_modules/grunt-contrib-clean/tasks/clean.js
@@ -0,0 +1,36 @@
+/*
+ * grunt-contrib-clean
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 Tim Branyen, contributors
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function(grunt) {
+
+ grunt.registerMultiTask('clean', 'Clean files and folders.', function() {
+ // Merge task-specific and/or target-specific options with these defaults.
+ var options = this.options({
+ force: false
+ });
+
+ grunt.verbose.writeflags(options, 'Options');
+
+ // Clean specified files / dirs.
+ this.filesSrc.forEach(function(filepath) {
+ grunt.log.write('Cleaning "' + filepath + '"...');
+
+ try {
+ grunt.file.delete(filepath, options);
+ grunt.log.ok();
+ } catch (e) {
+ grunt.log.error();
+ grunt.verbose.error(e);
+ grunt.fail.warn('Clean operation failed.');
+ }
+ });
+ });
+
+};
View
22 node_modules/grunt-contrib-clean/test/clean_test.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var grunt = require('grunt');
+
+exports.clean = {
+ short: function(test) {
+ test.expect(1);
+
+ var expected = grunt.file.exists('tmp/sample_short');
+ test.equal(expected, false, 'should remove the short directory using clean');
+
+ test.done();
+ },
+ long: function(test) {
+ test.expect(1);
+
+ var expected = grunt.file.exists('tmp/sample_long');
+ test.equal(expected, false, 'should remove the long directory using clean');
+
+ test.done();
+ }
+};
View
1  node_modules/grunt-contrib-clean/test/fixtures/sample_long/long.txt
@@ -0,0 +1 @@
+txt
View
1  node_modules/grunt-contrib-clean/test/fixtures/sample_short/short.txt
@@ -0,0 +1 @@
+txt
View
1  node_modules/grunt-contrib-concat/.gitattributes
@@ -0,0 +1 @@
+* text=auto
View
14 node_modules/grunt-contrib-concat/.jshintrc
@@ -0,0 +1,14 @@
+{
+ "curly": true,
+ "eqeqeq": true,
+ "immed": true,
+ "latedef": true,
+ "newcap": true,
+ "noarg": true,
+ "sub": true,
+ "undef": true,
+ "boss": true,
+ "eqnull": true,
+ "node": true,
+ "es5": true
+}
View
3  node_modules/grunt-contrib-concat/.npmignore
@@ -0,0 +1,3 @@
+node_modules
+npm-debug.log
+tmp
View
6 node_modules/grunt-contrib-concat/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
+before_script:
+ - npm install -g grunt-cli
View
2  node_modules/grunt-contrib-concat/AUTHORS
@@ -0,0 +1,2 @@
+"Cowboy" Ben Alman (http://benalman.com/)
+Tyler Kellen (http://goingslowly.com/)
View
30 node_modules/grunt-contrib-concat/CHANGELOG
@@ -0,0 +1,30 @@
+v0.2.0:
+ date: 2013-04-08
+ changes:
+ - Dont normalize separator to allow user to set LF even on a Windows environment.
+v0.1.3:
+ date: 2013-02-22
+ changes:
+ - Support footer option.
+v0.1.2:
+ date: 2013-02-15
+ changes:
+ - First official release for Grunt 0.4.0.
+v0.1.2rc6:
+ date: 2013-01-18
+ changes:
+ - Updating grunt/gruntplugin dependencies to rc6.
+ - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
+v0.1.2rc5:
+ date: 2013-01-09
+ changes:
+ - Updating to work with grunt v0.4.0rc5.
+ - Switching back to this.files api.
+v0.1.1:
+ date: 2012-11-13
+ changes:
+ - Switch to this.file api internally.
+v0.1.0:
+ date: 2012-10-03
+ changes:
+ - Work in progress, not yet officially released.
View
1  node_modules/grunt-contrib-concat/CONTRIBUTING.md
@@ -0,0 +1 @@
+Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.
View
79 node_modules/grunt-contrib-concat/Gruntfile.js
@@ -0,0 +1,79 @@
+/*
+ * grunt-contrib-concat
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 "Cowboy" Ben Alman, contributors
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function(grunt) {
+
+ // Project configuration.
+ grunt.initConfig({
+ jshint: {
+ all: [
+ 'Gruntfile.js',
+ 'tasks/*.js',
+ '<%= nodeunit.tests %>'
+ ],
+ options: {
+ jshintrc: '.jshintrc'
+ }
+ },
+
+ // Before generating any new files, remove any previously-created files.
+ clean: {
+ tests: ['tmp']
+ },
+
+ // Configuration to be run (and then tested).
+ banner_property: 'AWESOME',
+ concat: {
+ default_options: {
+ files: {
+ 'tmp/default_options': ['test/fixtures/file1', 'test/fixtures/file2']
+ }
+ },
+ custom_options: {
+ options: {
+ separator: '\n;\n',
+ banner: '/* THIS TEST IS <%= banner_property %> */\n',
+ footer: 'dude'
+ },
+ files: {
+ 'tmp/custom_options': ['test/fixtures/file1', 'test/fixtures/file2']
+ }
+ },
+ handling_invalid_files: {
+ src: ['test/fixtures/file1', 'invalid_file/should_warn/but_not_fail', 'test/fixtures/file2'],
+ dest: 'tmp/handling_invalid_files',
+ nonull: true,
+ },
+ },
+
+ // Unit tests.
+ nodeunit: {
+ tests: ['test/*_test.js']
+ }
+
+ });
+
+ // Actually load this plugin's task(s).
+ grunt.loadTasks('tasks');
+
+ // These plugins provide necessary tasks.
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-nodeunit');
+ grunt.loadNpmTasks('grunt-contrib-internal');
+
+ // Whenever the "test" task is run, first clean the "tmp" dir, then run this
+ // plugin's task(s), then test the result.
+ grunt.registerTask('test', ['clean', 'concat', 'nodeunit']);
+
+ // By default, lint and run all tests.
+ grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
+
+};
View
22 node_modules/grunt-contrib-concat/LICENSE-MIT
@@ -0,0 +1,22 @@
+Copyright (c) 2012 "Cowboy" Ben Alman, contributors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
View
233 node_modules/grunt-contrib-concat/README.md
@@ -0,0 +1,233 @@
+# grunt-contrib-concat [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-concat.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-concat)
+
+> Concatenate files.
+
+
+
+## Getting Started
+This plugin requires Grunt `~0.4.0`
+
+If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
+
+```shell
+npm install grunt-contrib-concat --save-dev
+```
+
+Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
+
+```js
+grunt.loadNpmTasks('grunt-contrib-concat');
+```
+
+
+
+
+## Concat task
+_Run this task with the `grunt concat` command._
+
+Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
+### Options
+
+#### separator
+Type: `String`
+Default: `grunt.util.linefeed`
+
+Concatenated files will be joined on this string. If you're post-processing concatenated JavaScript files with a minifier, you may need to use a semicolon `';'` as the separator.
+
+#### banner
+Type: `String`
+Default: empty string
+
+This string will be prepended to the beginning of the concatenated output. It is processed using [grunt.template.process][], using the default options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+#### footer
+Type: `String`
+Default: empty string
+
+This string will be appended to the end of the concatenated output. It is processed using [grunt.template.process][], using the default options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+#### stripBanners
+Type: `Boolean` `Object`
+Default: `false`
+
+Strip JavaScript banner comments from source files.
+
+* `false` - No comments are stripped.
+* `true` - `/* ... */` block comments are stripped, but _NOT_ `/*! ... */` comments.
+* `options` object:
+ * By default, behaves as if `true` were specified.
+ * `block` - If true, _all_ block comments are stripped.
+ * `line` - If true, any contiguous _leading_ `//` line comments are stripped.
+
+#### process
+Type: `Boolean` `Object`
+Default: `false`
+
+Process source files as [templates][] before concatenating.
+
+* `false` - No processing will occur.
+* `true` - Process source files using [grunt.template.process][] defaults.
+* `options` object - Process source files using [grunt.template.process][], using the specified options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+ [templates]: https://github.com/gruntjs/grunt/wiki/grunt.template
+ [grunt.template.process]: https://github.com/gruntjs/grunt/wiki/grunt.template#wiki-grunt-template-process
+
+### Usage Examples
+
+#### Concatenating with a custom separator
+
+In this example, running `grunt concat:dist` (or `grunt concat` because `concat` is a [multi task][]) will concatenate the three specified source files (in order), joining files with `;` and writing the output to `dist/built.js`.
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ options: {
+ separator: ';'
+ },
+ dist: {
+ src: ['src/intro.js', 'src/project.js', 'src/outro.js'],
+ dest: 'dist/built.js'
+ }
+ }
+});
+```
+
+#### Banner comments
+
+In this example, running `grunt concat:dist` will first strip any preexisting banner comment from the `src/project.js` file, then concatenate the result with a newly-generated banner comment, writing the output to `dist/built.js`.
+
+This generated banner will be the contents of the `banner` template string interpolated with the config object. In this case, those properties are the values imported from the `package.json` file (which are available via the `pkg` config property) plus today's date.
+
+_Note: you don't have to use an external JSON file. It's also valid to create the `pkg` object inline in the config. That being said, if you already have a JSON file, you might as well reference it._
+
+```js
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ concat: {
+ options: {
+ stripBanners: true,
+ banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
+ '<%= grunt.template.today("yyyy-mm-dd") %> */'
+ },
+ dist: {
+ src: ['src/project.js'],
+ dest: 'dist/built.js'
+ }
+ }
+});
+```
+
+#### Multiple targets
+
+In this example, running `grunt concat` will build two separate files. One "basic" version, with the main file essentially just copied to `dist/basic.js`, and another "with_extras" concatenated version written to `dist/with_extras.js`.
+
+While each concat target can be built individually by running `grunt concat:basic` or `grunt concat:extras`, running `grunt concat` will build all concat targets. This is because `concat` is a [multi task][].
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ basic: {
+ src: ['src/main.js'],
+ dest: 'dist/basic.js'
+ },
+ extras: {
+ src: ['src/main.js', 'src/extras.js'],
+ dest: 'dist/with_extras.js'
+ }
+ }
+});
+```
+
+#### Multiple files per target
+
+Like the previous example, in this example running `grunt concat` will build two separate files. One "basic" version, with the main file essentially just copied to `dist/basic.js`, and another "with_extras" concatenated version written to `dist/with_extras.js`.
+
+This example differs in that both files are built under the same target.
+
+Using the `files` object, you can have list any number of source-destination pairs.
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ basic_and_extras: {
+ files: {
+ 'dist/basic.js': ['src/main.js'],
+ 'dist/with_extras.js': ['src/main.js', 'src/extras.js']
+ }
+ }
+ }
+});
+```
+
+#### Dynamic filenames
+
+Filenames can be generated dynamically by using `<%= %>` delimited underscore templates as filenames.
+
+In this example, running `grunt concat:dist` generates a destination file whose name is generated from the `name` and `version` properties of the referenced `package.json` file (via the `pkg` config property).
+
+```js
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ concat: {
+ dist: {
+ src: ['src/main.js'],
+ dest: 'dist/<%= pkg.name %>-<%= pkg.version %>.js'
+ }
+ }
+});
+```
+
+#### Advanced dynamic filenames
+
+In this more involved example, running `grunt concat` will build two separate files (because `concat` is a [multi task][]). The destination file paths will be expanded dynamically based on the specified templates, recursively if necessary.
+
+For example, if the `package.json` file contained `{"name": "awesome", "version": "1.0.0"}`, the files `dist/awesome/1.0.0/basic.js` and `dist/awesome/1.0.0/with_extras.js` would be generated.
+
+```javascript
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ dirs: {
+ src: 'src/files',
+ dest: 'dist/<%= pkg.name %>/<%= pkg.version %>'
+ },
+ concat: {
+ basic: {
+ src: ['<%= dirs.src %>/main.js'],
+ dest: '<%= dirs.dest %>/basic.js'
+ },
+ extras: {
+ src: ['<%= dirs.src %>/main.js', '<%= dirs.src %>/extras.js'],
+ dest: '<%= dirs.dest %>/with_extras.js'
+ }
+ }
+});
+```
+
+
+## Release History
+
+ * 2013-04-07   v0.2.0   Dont normalize separator to allow user to set LF even on a Windows environment.
+ * 2013-02-21   v0.1.3   Support footer option.
+ * 2013-02-14   v0.1.2   First official release for Grunt 0.4.0.
+ * 2013-01-17   v0.1.2rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
+ * 2013-01-08   v0.1.2rc5   Updating to work with grunt v0.4.0rc5. Switching back to this.files api.
+ * 2012-11-12   v0.1.1   Switch to this.file api internally.
+ * 2012-10-02   v0.1.0   Work in progress, not yet officially released.
+
+---
+
+Task submitted by ["Cowboy" Ben Alman](http://benalman.com/)
+
+*This file was generated on Mon Apr 08 2013 09:20:19.*
View
136 node_modules/grunt-contrib-concat/docs/concat-examples.md
@@ -0,0 +1,136 @@
+# Usage Examples
+
+## Concatenating with a custom separator
+
+In this example, running `grunt concat:dist` (or `grunt concat` because `concat` is a [multi task][]) will concatenate the three specified source files (in order), joining files with `;` and writing the output to `dist/built.js`.
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ options: {
+ separator: ';'
+ },
+ dist: {
+ src: ['src/intro.js', 'src/project.js', 'src/outro.js'],
+ dest: 'dist/built.js'
+ }
+ }
+});
+```
+
+## Banner comments
+
+In this example, running `grunt concat:dist` will first strip any preexisting banner comment from the `src/project.js` file, then concatenate the result with a newly-generated banner comment, writing the output to `dist/built.js`.
+
+This generated banner will be the contents of the `banner` template string interpolated with the config object. In this case, those properties are the values imported from the `package.json` file (which are available via the `pkg` config property) plus today's date.
+
+_Note: you don't have to use an external JSON file. It's also valid to create the `pkg` object inline in the config. That being said, if you already have a JSON file, you might as well reference it._
+
+```js
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ concat: {
+ options: {
+ stripBanners: true,
+ banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
+ '<%= grunt.template.today("yyyy-mm-dd") %> */'
+ },
+ dist: {
+ src: ['src/project.js'],
+ dest: 'dist/built.js'
+ }
+ }
+});
+```
+
+## Multiple targets
+
+In this example, running `grunt concat` will build two separate files. One "basic" version, with the main file essentially just copied to `dist/basic.js`, and another "with_extras" concatenated version written to `dist/with_extras.js`.
+
+While each concat target can be built individually by running `grunt concat:basic` or `grunt concat:extras`, running `grunt concat` will build all concat targets. This is because `concat` is a [multi task][].
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ basic: {
+ src: ['src/main.js'],
+ dest: 'dist/basic.js'
+ },
+ extras: {
+ src: ['src/main.js', 'src/extras.js'],
+ dest: 'dist/with_extras.js'
+ }
+ }
+});
+```
+
+## Multiple files per target
+
+Like the previous example, in this example running `grunt concat` will build two separate files. One "basic" version, with the main file essentially just copied to `dist/basic.js`, and another "with_extras" concatenated version written to `dist/with_extras.js`.
+
+This example differs in that both files are built under the same target.
+
+Using the `files` object, you can have list any number of source-destination pairs.
+
+```js
+// Project configuration.
+grunt.initConfig({
+ concat: {
+ basic_and_extras: {
+ files: {
+ 'dist/basic.js': ['src/main.js'],
+ 'dist/with_extras.js': ['src/main.js', 'src/extras.js']
+ }
+ }
+ }
+});
+```
+
+## Dynamic filenames
+
+Filenames can be generated dynamically by using `<%= %>` delimited underscore templates as filenames.
+
+In this example, running `grunt concat:dist` generates a destination file whose name is generated from the `name` and `version` properties of the referenced `package.json` file (via the `pkg` config property).
+
+```js
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ concat: {
+ dist: {
+ src: ['src/main.js'],
+ dest: 'dist/<%= pkg.name %>-<%= pkg.version %>.js'
+ }
+ }
+});
+```
+
+## Advanced dynamic filenames
+
+In this more involved example, running `grunt concat` will build two separate files (because `concat` is a [multi task][]). The destination file paths will be expanded dynamically based on the specified templates, recursively if necessary.
+
+For example, if the `package.json` file contained `{"name": "awesome", "version": "1.0.0"}`, the files `dist/awesome/1.0.0/basic.js` and `dist/awesome/1.0.0/with_extras.js` would be generated.
+
+```javascript
+// Project configuration.
+grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ dirs: {
+ src: 'src/files',
+ dest: 'dist/<%= pkg.name %>/<%= pkg.version %>'
+ },
+ concat: {
+ basic: {
+ src: ['<%= dirs.src %>/main.js'],
+ dest: '<%= dirs.dest %>/basic.js'
+ },
+ extras: {
+ src: ['<%= dirs.src %>/main.js', '<%= dirs.src %>/extras.js'],
+ dest: '<%= dirs.dest %>/with_extras.js'
+ }
+ }
+});
+```
View
51 node_modules/grunt-contrib-concat/docs/concat-options.md
@@ -0,0 +1,51 @@
+# Options
+
+## separator
+Type: `String`
+Default: `grunt.util.linefeed`
+
+Concatenated files will be joined on this string. If you're post-processing concatenated JavaScript files with a minifier, you may need to use a semicolon `';'` as the separator.
+
+## banner
+Type: `String`
+Default: empty string
+
+This string will be prepended to the beginning of the concatenated output. It is processed using [grunt.template.process][], using the default options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+## footer
+Type: `String`
+Default: empty string
+
+This string will be appended to the end of the concatenated output. It is processed using [grunt.template.process][], using the default options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+## stripBanners
+Type: `Boolean` `Object`
+Default: `false`
+
+Strip JavaScript banner comments from source files.
+
+* `false` - No comments are stripped.
+* `true` - `/* ... */` block comments are stripped, but _NOT_ `/*! ... */` comments.
+* `options` object:
+ * By default, behaves as if `true` were specified.
+ * `block` - If true, _all_ block comments are stripped.
+ * `line` - If true, any contiguous _leading_ `//` line comments are stripped.
+
+## process
+Type: `Boolean` `Object`
+Default: `false`
+
+Process source files as [templates][] before concatenating.
+
+* `false` - No processing will occur.
+* `true` - Process source files using [grunt.template.process][] defaults.
+* `options` object - Process source files using [grunt.template.process][], using the specified options.
+
+_(Default processing options are explained in the [grunt.template.process][] documentation)_
+
+ [templates]: https://github.com/gruntjs/grunt/wiki/grunt.template
+ [grunt.template.process]: https://github.com/gruntjs/grunt/wiki/grunt.template#wiki-grunt-template-process
View
1  node_modules/grunt-contrib-concat/docs/concat-overview.md
@@ -0,0 +1 @@
+Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
View
61 node_modules/grunt-contrib-concat/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "grunt-contrib-concat",
+ "description": "Concatenate files.",
+ "version": "0.2.0",
+ "homepage": "https://github.com/gruntjs/grunt-contrib-concat",
+ "author": {
+ "name": "Grunt Team",
+ "url": "http://gruntjs.com/"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/gruntjs/grunt-contrib-concat.git"
+ },
+ "bugs": {
+ "url": "https://github.com/gruntjs/grunt-contrib-concat/issues"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://github.com/gruntjs/grunt-contrib-concat/blob/master/LICENSE-MIT"
+ }
+ ],
+ "main": "Gruntfile.js",
+ "engines": {
+ "node": ">= 0.8.0"
+ },
+ "scripts": {
+ "test": "grunt test"
+ },
+ "devDependencies": {
+ "grunt-contrib-jshint": "~0.2.0",
+ "grunt-contrib-nodeunit": "~0.1.2",
+ "grunt-contrib-clean": "~0.4.0",
+ "grunt-contrib-internal": "~0.4.2",
+ "grunt": "~0.4.0"
+ },
+ "peerDependencies": {
+ "grunt": "~0.4.0"
+ },
+ "keywords": [
+ "gruntplugin"
+ ],
+ "contributors": [
+ {
+ "name": "\"Cowboy\" Ben Alman",
+ "url": "http://benalman.com/"
+ },
+ {
+ "name": "Tyler Kellen",
+ "url": "http://goingslowly.com/"
+ }
+ ],
+ "readme": "# grunt-contrib-concat [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-concat.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-concat)\n\n> Concatenate files.\n\n\n\n## Getting Started\nThis plugin requires Grunt `~0.4.0`\n\nIf you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:\n\n```shell\nnpm install grunt-contrib-concat --save-dev\n```\n\nOnce the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:\n\n```js\ngrunt.loadNpmTasks('grunt-contrib-concat');\n```\n\n\n\n\n## Concat task\n_Run this task with the `grunt concat` command._\n\nTask targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.\n### Options\n\n#### separator\nType: `String`\nDefault: `grunt.util.linefeed`\n\nConcatenated files will be joined on this string. If you're post-processing concatenated JavaScript files with a minifier, you may need to use a semicolon `';'` as the separator.\n\n#### banner\nType: `String`\nDefault: empty string\n\nThis string will be prepended to the beginning of the concatenated output. It is processed using [grunt.template.process][], using the default options.\n\n_(Default processing options are explained in the [grunt.template.process][] documentation)_\n\n#### footer\nType: `String`\nDefault: empty string\n\nThis string will be appended to the end of the concatenated output. It is processed using [grunt.template.process][], using the default options.\n\n_(Default processing options are explained in the [grunt.template.process][] documentation)_\n\n#### stripBanners\nType: `Boolean` `Object`\nDefault: `false`\n\nStrip JavaScript banner comments from source files.\n\n* `false` - No comments are stripped.\n* `true` - `/* ... */` block comments are stripped, but _NOT_ `/*! ... */` comments.\n* `options` object:\n * By default, behaves as if `true` were specified.\n * `block` - If true, _all_ block comments are stripped.\n * `line` - If true, any contiguous _leading_ `//` line comments are stripped.\n\n#### process\nType: `Boolean` `Object`\nDefault: `false`\n\nProcess source files as [templates][] before concatenating.\n\n* `false` - No processing will occur.\n* `true` - Process source files using [grunt.template.process][] defaults.\n* `options` object - Process source files using [grunt.template.process][], using the specified options.\n\n_(Default processing options are explained in the [grunt.template.process][] documentation)_\n\n [templates]: https://github.com/gruntjs/grunt/wiki/grunt.template\n [grunt.template.process]: https://github.com/gruntjs/grunt/wiki/grunt.template#wiki-grunt-template-process\n\n### Usage Examples\n\n#### Concatenating with a custom separator\n\nIn this example, running `grunt concat:dist` (or `grunt concat` because `concat` is a [multi task][]) will concatenate the three specified source files (in order), joining files with `;` and writing the output to `dist/built.js`.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n concat: {\n options: {\n separator: ';'\n },\n dist: {\n src: ['src/intro.js', 'src/project.js', 'src/outro.js'],\n dest: 'dist/built.js'\n }\n }\n});\n```\n\n#### Banner comments\n\nIn this example, running `grunt concat:dist` will first strip any preexisting banner comment from the `src/project.js` file, then concatenate the result with a newly-generated banner comment, writing the output to `dist/built.js`.\n\nThis generated banner will be the contents of the `banner` template string interpolated with the config object. In this case, those properties are the values imported from the `package.json` file (which are available via the `pkg` config property) plus today's date.\n\n_Note: you don't have to use an external JSON file. It's also valid to create the `pkg` object inline in the config. That being said, if you already have a JSON file, you might as well reference it._\n\n```js\n// Project configuration.\ngrunt.initConfig({\n pkg: grunt.file.readJSON('package.json'),\n concat: {\n options: {\n stripBanners: true,\n banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +\n '<%= grunt.template.today(\"yyyy-mm-dd\") %> */'\n },\n dist: {\n src: ['src/project.js'],\n dest: 'dist/built.js'\n }\n }\n});\n```\n\n#### Multiple targets\n\nIn this example, running `grunt concat` will build two separate files. One \"basic\" version, with the main file essentially just copied to `dist/basic.js`, and another \"with_extras\" concatenated version written to `dist/with_extras.js`.\n\nWhile each concat target can be built individually by running `grunt concat:basic` or `grunt concat:extras`, running `grunt concat` will build all concat targets. This is because `concat` is a [multi task][].\n\n```js\n// Project configuration.\ngrunt.initConfig({\n concat: {\n basic: {\n src: ['src/main.js'],\n dest: 'dist/basic.js'\n },\n extras: {\n src: ['src/main.js', 'src/extras.js'],\n dest: 'dist/with_extras.js'\n }\n }\n});\n```\n\n#### Multiple files per target\n\nLike the previous example, in this example running `grunt concat` will build two separate files. One \"basic\" version, with the main file essentially just copied to `dist/basic.js`, and another \"with_extras\" concatenated version written to `dist/with_extras.js`.\n\nThis example differs in that both files are built under the same target.\n\nUsing the `files` object, you can have list any number of source-destination pairs.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n concat: {\n basic_and_extras: {\n files: {\n 'dist/basic.js': ['src/main.js'],\n 'dist/with_extras.js': ['src/main.js', 'src/extras.js']\n }\n }\n }\n});\n```\n\n#### Dynamic filenames\n\nFilenames can be generated dynamically by using `<%= %>` delimited underscore templates as filenames.\n\nIn this example, running `grunt concat:dist` generates a destination file whose name is generated from the `name` and `version` properties of the referenced `package.json` file (via the `pkg` config property).\n\n```js\n// Project configuration.\ngrunt.initConfig({\n pkg: grunt.file.readJSON('package.json'),\n concat: {\n dist: {\n src: ['src/main.js'],\n dest: 'dist/<%= pkg.name %>-<%= pkg.version %>.js'\n }\n }\n});\n```\n\n#### Advanced dynamic filenames\n\nIn this more involved example, running `grunt concat` will build two separate files (because `concat` is a [multi task][]). The destination file paths will be expanded dynamically based on the specified templates, recursively if necessary.\n\nFor example, if the `package.json` file contained `{\"name\": \"awesome\", \"version\": \"1.0.0\"}`, the files `dist/awesome/1.0.0/basic.js` and `dist/awesome/1.0.0/with_extras.js` would be generated.\n\n```javascript\n// Project configuration.\ngrunt.initConfig({\n pkg: grunt.file.readJSON('package.json'),\n dirs: {\n src: 'src/files',\n dest: 'dist/<%= pkg.name %>/<%= pkg.version %>'\n },\n concat: {\n basic: {\n src: ['<%= dirs.src %>/main.js'],\n dest: '<%= dirs.dest %>/basic.js'\n },\n extras: {\n src: ['<%= dirs.src %>/main.js', '<%= dirs.src %>/extras.js'],\n dest: '<%= dirs.dest %>/with_extras.js'\n }\n }\n});\n```\n\n\n## Release History\n\n * 2013-04-07   v0.2.0   Dont normalize separator to allow user to set LF even on a Windows environment.\n * 2013-02-21   v0.1.3   Support footer option.\n * 2013-02-14   v0.1.2   First official release for Grunt 0.4.0.\n * 2013-01-17   v0.1.2rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.\n * 2013-01-08   v0.1.2rc5   Updating to work with grunt v0.4.0rc5. Switching back to this.files api.\n * 2012-11-12   v0.1.1   Switch to this.file api internally.\n * 2012-10-02   v0.1.0   Work in progress, not yet officially released.\n\n---\n\nTask submitted by [\"Cowboy\" Ben Alman](http://benalman.com/)\n\n*This file was generated on Mon Apr 08 2013 09:20:19.*\n",
+ "readmeFilename": "README.md",
+ "_id": "grunt-contrib-concat@0.2.0",
+ "dist": {
+ "shasum": "74c8d7117943344774d83a5f6f6ad9e9e6eee74e"
+ },
+ "_from": "grunt-contrib-concat@~0.2.0",
+ "_resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.2.0.tgz"
+}
View
67 node_modules/grunt-contrib-concat/tasks/concat.js
@@ -0,0 +1,67 @@
+/*
+ * grunt-contrib-concat
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 "Cowboy" Ben Alman, contributors
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function(grunt) {
+
+ // Internal lib.
+ var comment = require('./lib/comment').init(grunt);
+
+ grunt.registerMultiTask('concat', 'Concatenate files.', function() {
+ // Merge task-specific and/or target-specific options with these defaults.
+ var options = this.options({
+ separator: grunt.util.linefeed,
+ banner: '',
+ footer: '',
+ stripBanners: false,
+ process: false
+ });
+
+ // Normalize boolean options that accept options objects.
+ if (options.stripBanners === true) { options.stripBanners = {}; }
+ if (options.process === true) { options.process = {}; }
+
+ // Process banner and footer.
+ var banner = grunt.template.process(options.banner);
+ var footer = grunt.template.process(options.footer);
+
+ // Iterate over all src-dest file pairs.
+ this.files.forEach(function(f) {
+ // Concat banner + specified files + footer.
+ var src = banner + f.src.filter(function(filepath) {
+ // Warn on and remove invalid source files (if nonull was set).
+ if (!grunt.file.exists(filepath)) {
+ grunt.log.warn('Source file "' + filepath + '" not found.');
+ return false;
+ } else {
+ return true;
+ }
+ }).map(function(filepath) {
+ // Read file source.
+ var src = grunt.file.read(filepath);
+ // Process files as templates if requested.
+ if (options.process) {
+ src = grunt.template.process(src, options.process);
+ }
+ // Strip banners if requested.
+ if (options.stripBanners) {
+ src = comment.stripBanner(src, options.stripBanners);
+ }
+ return src;
+ }).join(options.separator) + footer;
+
+ // Write the destination file.
+ grunt.file.write(f.dest, src);
+
+ // Print a success message.
+ grunt.log.writeln('File "' + f.dest + '" created.');
+ });
+ });
+
+};
View
34 node_modules/grunt-contrib-concat/tasks/lib/comment.js
@@ -0,0 +1,34 @@
+/*
+ * grunt-contrib-concat
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 "Cowboy" Ben Alman, contributors
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+exports.init = function(/*grunt*/) {
+ var exports = {};
+
+ // Return the given source code with any leading banner comment stripped.
+ exports.stripBanner = function(src, options) {
+ if (!options) { options = {}; }
+ var m = [];
+ if (options.line) {
+ // Strip // ... leading banners.
+ m.push('(?:.*\\/\\/.*\\r?\\n)*\\s*');
+ }
+ if (options.block) {
+ // Strips all /* ... */ block comment banners.
+ m.push('\\/\\*[\\s\\S]*?\\*\\/');
+ } else {
+ // Strips only /* ... */ block comment banners, excluding /*! ... */.
+ m.push('\\/\\*[^!][\\s\\S]*?\\*\\/');
+ }
+ var re = new RegExp('^\\s*(?:' + m.join('|') + ')\\s*', '');
+ return src.replace(re, '');
+ };
+
+ return exports;
+};
View
55 node_modules/grunt-contrib-concat/test/concat_test.js
@@ -0,0 +1,55 @@
+'use strict';
+
+var grunt = require('grunt');
+var comment = require('../tasks/lib/comment').init(grunt);
+
+function getNormalizedFile(filepath) {
+ return grunt.util.normalizelf(grunt.file.read(filepath));
+}
+
+exports.concat = {
+ default_options: function(test) {
+ test.expect(1);
+
+ var actual = getNormalizedFile('tmp/default_options');
+ var expected = getNormalizedFile('test/expected/default_options');
+ test.equal(actual, expected, 'should describe what the default behavior is.');
+
+ test.done();
+ },
+ custom_options: function(test) {
+ test.expect(1);
+
+ var actual = getNormalizedFile('tmp/custom_options');
+ var expected = getNormalizedFile('test/expected/custom_options');
+ test.equal(actual, expected, 'should utilize custom banner, footer and separator.');
+
+ test.done();
+ },
+ handling_invalid_files: function(test) {
+ test.expect(1);
+
+ var actual = getNormalizedFile('tmp/handling_invalid_files');
+ var expected = getNormalizedFile('test/expected/handling_invalid_files');
+ test.equal(actual, expected, 'will have warned, but should not fail.');
+
+ test.done();
+ },
+ strip_banner: function(test) {
+ test.expect(7);
+
+ var src = getNormalizedFile('test/fixtures/banner.js');
+ test.equal(comment.stripBanner(src), grunt.util.normalizelf('// Comment\n\n/* Comment */\n'), 'It should strip the top banner.');
+ test.equal(comment.stripBanner(src, {block: true}), grunt.util.normalizelf('// Comment\n\n/* Comment */\n'), 'It should strip the top banner.');
+
+ src = getNormalizedFile('test/fixtures/banner2.js');
+ test.equal(comment.stripBanner(src), grunt.util.normalizelf('\n/*! SAMPLE\n * BANNER */\n\n// Comment\n\n/* Comment */\n'), 'It should not strip the top banner.');
+ test.equal(comment.stripBanner(src, {block: true}), grunt.util.normalizelf('// Comment\n\n/* Comment */\n'), 'It should strip the top banner.');
+
+ src = getNormalizedFile('test/fixtures/banner3.js');
+ test.equal(comment.stripBanner(src), grunt.util.normalizelf('\n// This is\n// A sample\n// Banner\n\n// But this is not\n\n/* And neither\n * is this\n */\n'), 'It should not strip the top banner.');
+ test.equal(comment.stripBanner(src, {block: true}), grunt.util.normalizelf('\n// This is\n// A sample\n// Banner\n\n// But this is not\n\n/* And neither\n * is this\n */\n'), 'It should not strip the top banner.');
+ test.equal(comment.stripBanner(src, {line: true}), grunt.util.normalizelf('// But this is not\n\n/* And neither\n * is this\n */\n'), 'It should strip the top banner.');
+ test.done();
+ }
+};
View
4 node_modules/grunt-contrib-concat/test/expected/custom_options
@@ -0,0 +1,4 @@
+/* THIS TEST IS AWESOME */
+file1
+;
+file2dude
View
2  node_modules/grunt-contrib-concat/test/expected/default_options
@@ -0,0 +1,2 @@
+file1
+file2
View
2  node_modules/grunt-contrib-concat/test/expected/handling_invalid_files
@@ -0,0 +1,2 @@
+file1
+file2
View
11 node_modules/grunt-contrib-concat/test/fixtures/banner.js
@@ -0,0 +1,11 @@
+
+/* THIS
+ * IS
+ * A
+ * SAMPLE
+ * BANNER!
+ */
+
+// Comment
+
+/* Comment */
View
7 node_modules/grunt-contrib-concat/test/fixtures/banner2.js
@@ -0,0 +1,7 @@
+
+/*! SAMPLE
+ * BANNER */
+
+// Comment
+
+/* Comment */
View
10 node_modules/grunt-contrib-concat/test/fixtures/banner3.js
@@ -0,0 +1,10 @@
+
+// This is
+// A sample
+// Banner
+
+// But this is not
+
+/* And neither
+ * is this
+ */
View
1  node_modules/grunt-contrib-concat/test/fixtures/file1
@@ -0,0 +1 @@
+file1
View
1  node_modules/grunt-contrib-concat/test/fixtures/file2
@@ -0,0 +1 @@
+file2
View
14 node_modules/grunt-contrib-copy/.jshintrc
@@ -0,0 +1,14 @@
+{
+ "curly": true,
+ "eqeqeq": true,
+ "immed": true,
+ "latedef": true,
+ "newcap": true,
+ "noarg": true,
+ "sub": true,
+ "undef": true,
+ "boss": true,
+ "eqnull": true,
+ "node": true,
+ "es5": true
+}
View
3  node_modules/grunt-contrib-copy/.npmignore
@@ -0,0 +1,3 @@
+node_modules
+npm-debug.log
+tmp
View
6 node_modules/grunt-contrib-copy/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
+before_install:
+ - npm install -g grunt-cli
View
5 node_modules/grunt-contrib-copy/AUTHORS
@@ -0,0 +1,5 @@
+Chris Talkington (http://christalkington.com/)
+Tyler Kellen (http://goingslowly.com/)
+Kyle Robinson Young (http://twitter.com/shamakry)
+Nathan Bleigh (http://www.nathanbleigh.com)
+Eric Clemmons (http://ericclemmons.github.com)
View
50 node_modules/grunt-contrib-copy/CHANGELOG
@@ -0,0 +1,50 @@
+v0.4.0:
+ date: 2013-03-26
+ changes:
+ - Output summary by default ("Copied N files, created M folders"). Individual transaction output available via `--verbose`.
+v0.4.0:
+ date: 2013-02-15
+ changes:
+ - First official release for Grunt 0.4.0.
+v0.4.0rc7:
+ date: 2013-01-23
+ changes:
+ - Updating grunt/gruntplugin dependencies to rc7.
+ - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
+v0.4.0rc5:
+ date: 2013-01-14
+ changes:
+ - Updating to work with grunt v0.4.0rc5.
+ - Conversion to grunt v0.4 conventions.
+ - Replace basePath with cwd.
+ - Empty directory support.
+v0.3.2:
+ date: 2012-10-18
+ changes:
+ - Pass copyOptions on single file copy.
+v0.3.1:
+ date: 2012-10-12
+ changes:
+ - Rename grunt-contrib-lib dep to grunt-lib-contrib.
+v0.3.0:
+ date: 2012-09-24
+ changes:
+ - General cleanup and consolidation.
+ - Global options depreciated.
+v0.2.4:
+ date: 2012-09-18
+ changes:
+ - No valid source check.
+v0.2.3:
+ date: 2012-09-17
+ changes:
+ - Path.sep fallback for node <= 0.7.9.
+v0.2.2:
+ date: 2012-09-17
+ changes:
+ - Single file copy support.
+ - Test refactoring.
+v0.2.0:
+ date: 2012-09-07
+ changes:
+ - Refactored from grunt-contrib into individual repo.
View
1  node_modules/grunt-contrib-copy/CONTRIBUTING.md
@@ -0,0 +1 @@
+Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.
View
90 node_modules/grunt-contrib-copy/Gruntfile.js
@@ -0,0 +1,90 @@
+/*
+ * grunt-contrib-copy
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2012 Chris Talkington, contributors
+ * Licensed under the MIT license.
+ */
+
+module.exports = function(grunt) {
+ 'use strict';
+
+ // Make an empty dir for testing as git doesn't track empty folders.
+ grunt.file.mkdir('test/fixtures/empty_folder');
+ grunt.file.mkdir('test/expected/copy_test_mix/empty_folder');
+
+ // Project configuration.
+ grunt.initConfig({
+ jshint: {
+ all: [
+ 'Gruntfile.js',
+ 'tasks/*.js',
+ '<%= nodeunit.tests %>'
+ ],
+ options: {
+ jshintrc: '.jshintrc'
+ }
+ },
+
+ // Before generating any new files, remove any previously-created files.
+ clean: {
+ test: ['tmp']
+ },
+
+ test_vars: {
+ name: 'grunt-contrib-copy',
+ version: '0.1.0',
+ match: 'folder_one/*'
+ },
+
+ // Configuration to be run (and then tested).
+ copy: {
+ main: {
+ files: [
+ {expand: true, cwd: 'test/fixtures', src: ['*.*'], dest: 'tmp/copy_test_files/'},
+ {expand: true, cwd: 'test/fixtures', src: ['**'], dest: 'tmp/copy_test_mix/'},
+ {expand: true, cwd: 'test/fixtures', src: ['<%= test_vars.match %>'], dest: 'tmp/copy_test_v<%= test_vars.version %>/'}
+ ]
+ },
+
+ flatten: {
+ files: [
+ {expand: true, flatten: true, filter: 'isFile', src: ['test/fixtures/**'], dest: 'tmp/copy_test_flatten/'}
+ ]
+ },
+
+ single: {
+ files: [
+ {src: ['test/fixtures/test.js'], dest: 'tmp/single.js'}
+ ]
+ },
+
+ verbose: {
+ files: [
+ {expand: true, src: ['test/fixtures/**'], dest: 'tmp/copy_test_verbose/'}
+ ]
+ }
+ },
+
+ // Unit tests.
+ nodeunit: {
+ tests: ['test/*_test.js']
+ }
+ });
+
+ // Actually load this plugin's task(s).
+ grunt.loadTasks('tasks');
+
+ // These plugins provide necessary tasks.
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-nodeunit');
+ grunt.loadNpmTasks('grunt-contrib-internal');
+
+ // Whenever the "test" task is run, first clean the "tmp" dir, then run this
+ // plugin's task(s), then test the result.
+ grunt.registerTask('test', ['clean', 'copy', 'nodeunit']);
+
+ // By default, lint and run all tests.
+ grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
+};
View
22 node_modules/grunt-contrib-copy/LICENSE-MIT
@@ -0,0 +1,22 @@
+Copyright (c) 2012 Chris Talkington, contributors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
View
75 node_modules/grunt-contrib-copy/README.md
@@ -0,0 +1,75 @@
+# grunt-contrib-copy [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-copy.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-copy)
+
+> Copy files and folders.
+
+
+
+## Getting Started
+This plugin requires Grunt `~0.4.0`
+
+If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
+
+```shell
+npm install grunt-contrib-copy --save-dev
+```
+
+Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
+
+```js
+grunt.loadNpmTasks('grunt-contrib-copy');
+```
+
+*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.2](https://github.com/gruntjs/grunt-contrib-copy/tree/grunt-0.3-stable).*
+
+
+
+## Copy task
+_Run this task with the `grunt copy` command._
+
+Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
+### Options
+
+#### processContent
+Type: `Function(content, srcpath)`
+
+This option is passed to `grunt.file.copy` as an advanced way to control the file contents that are copied.
+
+#### processContentExclude
+Type: `String`
+
+This option is passed to `grunt.file.copy` as an advanced way to control which file contents are processed.
+
+### Usage Examples
+
+```js
+copy: {
+ main: {
+ files: [
+ {src: ['path/*'], dest: 'dest/', filter: 'isFile'}, // includes files in path