pleeease 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (615) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +23 -0
  6. data/Rakefile +1 -0
  7. data/lib/pleeease.rb +9 -0
  8. data/lib/pleeease/processor.rb +13 -0
  9. data/lib/pleeease/railtie.rb +10 -0
  10. data/lib/pleeease/runner.rb +70 -0
  11. data/lib/pleeease/version.rb +3 -0
  12. data/node_modules/.bin/pleeease +13 -0
  13. data/node_modules/.bin/pleeease-compile +20 -0
  14. data/node_modules/.bin/pleeease-watch +20 -0
  15. data/node_modules/pleeease/.jshintignore +1 -0
  16. data/node_modules/pleeease/.jshintrc +28 -0
  17. data/node_modules/pleeease/.npmignore +2 -0
  18. data/node_modules/pleeease/README.md +288 -0
  19. data/node_modules/pleeease/app.min.css.map +1 -0
  20. data/node_modules/pleeease/bin/pleeease +13 -0
  21. data/node_modules/pleeease/bin/pleeease-compile +20 -0
  22. data/node_modules/pleeease/bin/pleeease-watch +20 -0
  23. data/node_modules/pleeease/jshint.sh +2 -0
  24. data/node_modules/pleeease/lib/cli.js +136 -0
  25. data/node_modules/pleeease/lib/index.js +97 -0
  26. data/node_modules/pleeease/lib/options.js +38 -0
  27. data/node_modules/pleeease/lib/processors/import.js +123 -0
  28. data/node_modules/pleeease/lib/processors/pseudoElements.js +24 -0
  29. data/node_modules/pleeease/node_modules/.bin/autoprefixer +13 -0
  30. data/node_modules/pleeease/node_modules/.bin/csswring +3 -0
  31. data/node_modules/pleeease/node_modules/.bin/mkdirp +33 -0
  32. data/node_modules/pleeease/node_modules/autoprefixer/ChangeLog.md +354 -0
  33. data/node_modules/pleeease/node_modules/autoprefixer/LICENSE +20 -0
  34. data/node_modules/pleeease/node_modules/autoprefixer/README.md +565 -0
  35. data/node_modules/pleeease/node_modules/autoprefixer/bin/autoprefixer +13 -0
  36. data/node_modules/pleeease/node_modules/autoprefixer/data/browsers.js +53 -0
  37. data/node_modules/pleeease/node_modules/autoprefixer/data/prefixes.js +323 -0
  38. data/node_modules/pleeease/node_modules/autoprefixer/lib/autoprefixer.js +109 -0
  39. data/node_modules/pleeease/node_modules/autoprefixer/lib/binary.js +344 -0
  40. data/node_modules/pleeease/node_modules/autoprefixer/lib/browsers.js +197 -0
  41. data/node_modules/pleeease/node_modules/autoprefixer/lib/declaration.js +152 -0
  42. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-content.js +57 -0
  43. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-items.js +57 -0
  44. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-self.js +55 -0
  45. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/border-image.js +28 -0
  46. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/border-radius.js +56 -0
  47. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/break-inside.js +54 -0
  48. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/display-flex.js +67 -0
  49. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/fill-available.js +41 -0
  50. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/filter.js +29 -0
  51. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-basis.js +47 -0
  52. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-direction.js +71 -0
  53. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-flow.js +35 -0
  54. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-grow.js +41 -0
  55. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-shrink.js +47 -0
  56. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-spec.js +11 -0
  57. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-wrap.js +33 -0
  58. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex.js +56 -0
  59. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/fullscreen.js +33 -0
  60. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/gradient.js +217 -0
  61. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/justify-content.js +62 -0
  62. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/order.js +52 -0
  63. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/placeholder.js +39 -0
  64. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transform-decl.js +59 -0
  65. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transform-value.js +31 -0
  66. data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transition.js +37 -0
  67. data/node_modules/pleeease/node_modules/autoprefixer/lib/info.js +114 -0
  68. data/node_modules/pleeease/node_modules/autoprefixer/lib/keyframes.js +40 -0
  69. data/node_modules/pleeease/node_modules/autoprefixer/lib/old-selector.js +68 -0
  70. data/node_modules/pleeease/node_modules/autoprefixer/lib/old-value.js +29 -0
  71. data/node_modules/pleeease/node_modules/autoprefixer/lib/prefixer.js +88 -0
  72. data/node_modules/pleeease/node_modules/autoprefixer/lib/prefixes.js +334 -0
  73. data/node_modules/pleeease/node_modules/autoprefixer/lib/processor.js +105 -0
  74. data/node_modules/pleeease/node_modules/autoprefixer/lib/selector.js +117 -0
  75. data/node_modules/pleeease/node_modules/autoprefixer/lib/updater.js +234 -0
  76. data/node_modules/pleeease/node_modules/autoprefixer/lib/utils.js +41 -0
  77. data/node_modules/pleeease/node_modules/autoprefixer/lib/value.js +99 -0
  78. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/.npmignore +2 -0
  79. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/CHANGELOG.md +126 -0
  80. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/LICENSE +15 -0
  81. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/README.md +371 -0
  82. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/copy.js +79 -0
  83. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/create.js +55 -0
  84. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/ensure.js +4 -0
  85. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/index.js +137 -0
  86. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/json.js +30 -0
  87. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/mkdir.js +8 -0
  88. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/move.js +108 -0
  89. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/output.js +37 -0
  90. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/remove.js +19 -0
  91. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/mkdirp +33 -0
  92. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/ncp +48 -0
  93. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/rimraf +33 -0
  94. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/.npmignore +2 -0
  95. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/CHANGELOG.md +20 -0
  96. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/LICENSE +15 -0
  97. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/README.md +121 -0
  98. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/lib/jsonfile.js +47 -0
  99. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/package.json +44 -0
  100. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/.npmignore +2 -0
  101. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/.travis.yml +5 -0
  102. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/LICENSE +21 -0
  103. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/bin/cmd.js +33 -0
  104. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/bin/usage.txt +12 -0
  105. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/examples/pow.js +6 -0
  106. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/index.js +97 -0
  107. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/.travis.yml +4 -0
  108. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/LICENSE +18 -0
  109. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/example/parse.js +2 -0
  110. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/index.js +187 -0
  111. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/package.json +52 -0
  112. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/readme.markdown +73 -0
  113. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/dash.js +24 -0
  114. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/default_bool.js +20 -0
  115. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/dotted.js +16 -0
  116. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/long.js +31 -0
  117. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/parse.js +318 -0
  118. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +9 -0
  119. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/short.js +67 -0
  120. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/whitespace.js +8 -0
  121. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/package.json +43 -0
  122. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/readme.markdown +100 -0
  123. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/chmod.js +38 -0
  124. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/clobber.js +37 -0
  125. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/mkdirp.js +26 -0
  126. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/opts_fs.js +27 -0
  127. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/opts_fs_sync.js +25 -0
  128. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/perm.js +30 -0
  129. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/perm_sync.js +34 -0
  130. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/race.js +40 -0
  131. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/rel.js +30 -0
  132. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/return.js +25 -0
  133. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/return_sync.js +24 -0
  134. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/root.js +18 -0
  135. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/sync.js +30 -0
  136. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/umask.js +26 -0
  137. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/umask_sync.js +30 -0
  138. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/.npmignore +4 -0
  139. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/.travis.yml +6 -0
  140. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/LICENSE.md +21 -0
  141. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/README.md +58 -0
  142. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/bin/ncp +48 -0
  143. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/lib/ncp.js +230 -0
  144. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/package.json +43 -0
  145. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/a +1 -0
  146. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/b +1 -0
  147. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/c +0 -0
  148. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/d +0 -0
  149. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/e +0 -0
  150. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/f +0 -0
  151. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/sub/a +1 -0
  152. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/sub/b +0 -0
  153. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/ncp.js +86 -0
  154. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/AUTHORS +6 -0
  155. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/LICENSE +23 -0
  156. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/README.md +30 -0
  157. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/bin.js +33 -0
  158. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/package.json +58 -0
  159. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/rimraf.js +248 -0
  160. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/run.sh +16 -0
  161. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/setup.sh +47 -0
  162. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/test-async.js +5 -0
  163. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/test-sync.js +3 -0
  164. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/package.json +68 -0
  165. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/ChangeLog.md +46 -0
  166. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/LICENSE +20 -0
  167. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/README.md +784 -0
  168. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/at-rule.js +94 -0
  169. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/comment.js +38 -0
  170. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/container.js +315 -0
  171. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/declaration.js +69 -0
  172. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/lazy.js +18 -0
  173. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/list.js +64 -0
  174. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/map-generator.js +242 -0
  175. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/node.js +189 -0
  176. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/parse.js +496 -0
  177. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/postcss.js +78 -0
  178. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/raw.js +32 -0
  179. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/result.js +26 -0
  180. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/root.js +57 -0
  181. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/rule.js +59 -0
  182. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/syntax-error.js +27 -0
  183. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/vendor.js +27 -0
  184. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/.travis.yml +5 -0
  185. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/LICENSE.MIT +21 -0
  186. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/README.md +31 -0
  187. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/bench/bench.js +19 -0
  188. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/lib/b64.js +120 -0
  189. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/package.json +47 -0
  190. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/test/convert.js +51 -0
  191. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.npmignore +2 -0
  192. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.tern-port +1 -0
  193. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.travis.yml +4 -0
  194. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/CHANGELOG.md +137 -0
  195. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/LICENSE +28 -0
  196. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/Makefile.dryice.js +166 -0
  197. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/README.md +446 -0
  198. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/assert-shim.js +56 -0
  199. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/mini-require.js +152 -0
  200. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  201. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/prefix-utils.jsm +18 -0
  202. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-browser.js +8 -0
  203. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  204. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-utils.jsm +21 -0
  205. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/test-prefix.js +8 -0
  206. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/test-suffix.js +3 -0
  207. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map.js +8 -0
  208. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/array-set.js +97 -0
  209. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  210. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/base64.js +42 -0
  211. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  212. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
  213. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  214. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-node.js +400 -0
  215. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/util.js +302 -0
  216. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  217. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  218. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  219. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  220. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/package.json +39 -0
  221. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/package.json +132 -0
  222. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/run-tests.js +62 -0
  223. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-api.js +26 -0
  224. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  225. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  226. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-base64.js +35 -0
  227. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  228. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  229. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-consumer.js +475 -0
  230. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-generator.js +549 -0
  231. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-node.js +487 -0
  232. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-util.js +127 -0
  233. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/util.js +161 -0
  234. data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/package.json +46 -0
  235. data/node_modules/pleeease/node_modules/autoprefixer/package.json +49 -0
  236. data/node_modules/pleeease/node_modules/autoprefixer/updaters/browsers.js +65 -0
  237. data/node_modules/pleeease/node_modules/autoprefixer/updaters/prefixes.js +273 -0
  238. data/node_modules/pleeease/node_modules/chokidar/.npmignore +35 -0
  239. data/node_modules/pleeease/node_modules/chokidar/CHANGELOG.md +95 -0
  240. data/node_modules/pleeease/node_modules/chokidar/README.md +121 -0
  241. data/node_modules/pleeease/node_modules/chokidar/example.js +3 -0
  242. data/node_modules/pleeease/node_modules/chokidar/index.js +425 -0
  243. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/README.md +22 -0
  244. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/index.js +45 -0
  245. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/package.json +39 -0
  246. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/recursive-raddir-test.js +17 -0
  247. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/a/a +0 -0
  248. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/a/beans +0 -0
  249. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/b/123 +0 -0
  250. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/b/b/hurp-durp +0 -0
  251. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/c.txt +0 -0
  252. data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/d.txt +0 -0
  253. data/node_modules/pleeease/node_modules/chokidar/package.json +55 -0
  254. data/node_modules/pleeease/node_modules/chokidar/test.js +296 -0
  255. data/node_modules/pleeease/node_modules/colors/MIT-LICENSE.txt +22 -0
  256. data/node_modules/pleeease/node_modules/colors/ReadMe.md +77 -0
  257. data/node_modules/pleeease/node_modules/colors/colors.js +342 -0
  258. data/node_modules/pleeease/node_modules/colors/example.html +76 -0
  259. data/node_modules/pleeease/node_modules/colors/example.js +77 -0
  260. data/node_modules/pleeease/node_modules/colors/package.json +29 -0
  261. data/node_modules/pleeease/node_modules/colors/test.js +70 -0
  262. data/node_modules/pleeease/node_modules/colors/themes/winston-dark.js +12 -0
  263. data/node_modules/pleeease/node_modules/colors/themes/winston-light.js +12 -0
  264. data/node_modules/pleeease/node_modules/commander/Readme.md +208 -0
  265. data/node_modules/pleeease/node_modules/commander/index.js +852 -0
  266. data/node_modules/pleeease/node_modules/commander/package.json +43 -0
  267. data/node_modules/pleeease/node_modules/css-mqpacker/.npmignore +3 -0
  268. data/node_modules/pleeease/node_modules/css-mqpacker/.sass-cache/ca3e061f00144e273a11e95ed4eb3170f1f7a328/maps-input.scssc +0 -0
  269. data/node_modules/pleeease/node_modules/css-mqpacker/.sass-cache/ca3e061f00144e273a11e95ed4eb3170f1f7a328/sourcemap-expected.scssc +0 -0
  270. data/node_modules/pleeease/node_modules/css-mqpacker/README.md +141 -0
  271. data/node_modules/pleeease/node_modules/css-mqpacker/index.js +1 -0
  272. data/node_modules/pleeease/node_modules/css-mqpacker/lib/css-mqpacker.js +43 -0
  273. data/node_modules/pleeease/node_modules/css-mqpacker/package.json +43 -0
  274. data/node_modules/pleeease/node_modules/css-mqpacker/test/css-mqpacker_test.js +64 -0
  275. data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/multi.css +31 -0
  276. data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/query-order.css +17 -0
  277. data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/simple.css +37 -0
  278. data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/multi.css +37 -0
  279. data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/query-order.css +19 -0
  280. data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/simple.css +41 -0
  281. data/node_modules/pleeease/node_modules/csswring/.npmignore +3 -0
  282. data/node_modules/pleeease/node_modules/csswring/README.md +55 -0
  283. data/node_modules/pleeease/node_modules/csswring/bin/csswring +3 -0
  284. data/node_modules/pleeease/node_modules/csswring/index.js +1 -0
  285. data/node_modules/pleeease/node_modules/csswring/lib/cli.js +93 -0
  286. data/node_modules/pleeease/node_modules/csswring/lib/csswring.js +110 -0
  287. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/.travis.yml +4 -0
  288. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/LICENSE +18 -0
  289. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/example/parse.js +2 -0
  290. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/index.js +187 -0
  291. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/package.json +52 -0
  292. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/readme.markdown +73 -0
  293. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/dash.js +24 -0
  294. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/default_bool.js +20 -0
  295. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/dotted.js +16 -0
  296. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/long.js +31 -0
  297. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/parse.js +318 -0
  298. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/parse_modified.js +9 -0
  299. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/short.js +67 -0
  300. data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/whitespace.js +8 -0
  301. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/.gitmodules +3 -0
  302. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/.npmignore +2 -0
  303. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/LICENSE +24 -0
  304. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/Makefile +45 -0
  305. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/README.md +313 -0
  306. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/bin/build.js +29 -0
  307. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/component.json +11 -0
  308. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/demo.css +58 -0
  309. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/demo.js +35 -0
  310. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/index.html +54 -0
  311. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color-namedColors.js +150 -0
  312. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color.js +231 -0
  313. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/CMYK.js +31 -0
  314. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/HSL.js +30 -0
  315. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/HSV.js +94 -0
  316. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/LAB.js +33 -0
  317. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/XYZ.js +65 -0
  318. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/_all.js +25 -0
  319. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/_base.js +6 -0
  320. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/clearer.js +3 -0
  321. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/darken.js +5 -0
  322. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/desaturate.js +5 -0
  323. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/greyscale.js +9 -0
  324. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/lighten.js +5 -0
  325. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/mix.js +17 -0
  326. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/negate.js +4 -0
  327. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/opaquer.js +3 -0
  328. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/rotate.js +3 -0
  329. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/saturate.js +5 -0
  330. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/toAlpha.js +46 -0
  331. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/ender.js +5 -0
  332. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/es5-shim.js +97 -0
  333. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-all-debug.js +754 -0
  334. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-all.js +1 -0
  335. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-debug.js +359 -0
  336. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-ieshim.js +1 -0
  337. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color.js +1 -0
  338. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/package.json +66 -0
  339. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/README.markdown +5 -0
  340. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/boilerplate.html +55 -0
  341. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/classList.js +116 -0
  342. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/img/rainbow-wood.jpg +0 -0
  343. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/index.html +234 -0
  344. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/license.txt +21 -0
  345. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/logo.png +0 -0
  346. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/logo.svg +52 -0
  347. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-controls.js +40 -0
  348. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-edit.js +132 -0
  349. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-snippets.js +89 -0
  350. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/incrementable.js +94 -0
  351. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/slideshow.css +288 -0
  352. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/slideshow.js +471 -0
  353. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/talk.css +41 -0
  354. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/theme.css +214 -0
  355. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/css/colorcat.css +36 -0
  356. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/css/demo.css +677 -0
  357. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/images/transparent.gif +0 -0
  358. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/js/colorcat.js +135 -0
  359. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/js/one-color-debug.js +1137 -0
  360. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/1024px-HSV_color_solid_cylinder_alpha_lowgamma.png +0 -0
  361. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/ExtJS.png +0 -0
  362. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/HSL.png +0 -0
  363. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/HSV.png +0 -0
  364. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Hsl-hsv_models_b.svg +450 -0
  365. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Pixels.jpg +0 -0
  366. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/PullingHair.png +0 -0
  367. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/RGB.png +0 -0
  368. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/RGB_HSL_HSV_comparison.png +0 -0
  369. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Space_Rainbow_desktop_background_pictures.jpg +0 -0
  370. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/blog.png +0 -0
  371. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/calendar.png +0 -0
  372. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/colorSpace.jpg +0 -0
  373. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/index.html +562 -0
  374. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/talk.css +137 -0
  375. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/theme.css +247 -0
  376. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/color-test.js +178 -0
  377. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/conversion-test.js +46 -0
  378. data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/samples.js +147 -0
  379. data/node_modules/pleeease/node_modules/csswring/package.json +51 -0
  380. data/node_modules/pleeease/node_modules/csswring/test/csswring_test.js +67 -0
  381. data/node_modules/pleeease/node_modules/csswring/test/expected/empty-declarations.css +1 -0
  382. data/node_modules/pleeease/node_modules/csswring/test/expected/extra-semicolons.css +1 -0
  383. data/node_modules/pleeease/node_modules/csswring/test/expected/issue3.css +1 -0
  384. data/node_modules/pleeease/node_modules/csswring/test/expected/simple.css +3 -0
  385. data/node_modules/pleeease/node_modules/csswring/test/expected/single-charset.css +1 -0
  386. data/node_modules/pleeease/node_modules/csswring/test/expected/value.css +1 -0
  387. data/node_modules/pleeease/node_modules/csswring/test/fixtures/empty-declarations.css +12 -0
  388. data/node_modules/pleeease/node_modules/csswring/test/fixtures/extra-semicolons.css +4 -0
  389. data/node_modules/pleeease/node_modules/csswring/test/fixtures/issue3.css +3 -0
  390. data/node_modules/pleeease/node_modules/csswring/test/fixtures/simple.css +31 -0
  391. data/node_modules/pleeease/node_modules/csswring/test/fixtures/single-charset.css +13 -0
  392. data/node_modules/pleeease/node_modules/csswring/test/fixtures/value.css +14 -0
  393. data/node_modules/pleeease/node_modules/deep-extend/.npmignore +1 -0
  394. data/node_modules/pleeease/node_modules/deep-extend/LICENSE +20 -0
  395. data/node_modules/pleeease/node_modules/deep-extend/README.md +52 -0
  396. data/node_modules/pleeease/node_modules/deep-extend/index.js +87 -0
  397. data/node_modules/pleeease/node_modules/deep-extend/package.json +45 -0
  398. data/node_modules/pleeease/node_modules/deep-extend/test/index.spec.js +44 -0
  399. data/node_modules/pleeease/node_modules/deep-extend/test/mocha.opts +1 -0
  400. data/node_modules/pleeease/node_modules/mkdirp/.npmignore +2 -0
  401. data/node_modules/pleeease/node_modules/mkdirp/.travis.yml +5 -0
  402. data/node_modules/pleeease/node_modules/mkdirp/LICENSE +21 -0
  403. data/node_modules/pleeease/node_modules/mkdirp/bin/cmd.js +33 -0
  404. data/node_modules/pleeease/node_modules/mkdirp/bin/usage.txt +12 -0
  405. data/node_modules/pleeease/node_modules/mkdirp/examples/pow.js +6 -0
  406. data/node_modules/pleeease/node_modules/mkdirp/index.js +80 -0
  407. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/.travis.yml +4 -0
  408. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/LICENSE +18 -0
  409. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/example/parse.js +2 -0
  410. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/index.js +187 -0
  411. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/package.json +52 -0
  412. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/readme.markdown +73 -0
  413. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/dash.js +24 -0
  414. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/default_bool.js +20 -0
  415. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/dotted.js +16 -0
  416. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/long.js +31 -0
  417. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/parse.js +318 -0
  418. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +9 -0
  419. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/short.js +67 -0
  420. data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/whitespace.js +8 -0
  421. data/node_modules/pleeease/node_modules/mkdirp/package.json +42 -0
  422. data/node_modules/pleeease/node_modules/mkdirp/readme.markdown +90 -0
  423. data/node_modules/pleeease/node_modules/mkdirp/test/chmod.js +38 -0
  424. data/node_modules/pleeease/node_modules/mkdirp/test/clobber.js +37 -0
  425. data/node_modules/pleeease/node_modules/mkdirp/test/mkdirp.js +28 -0
  426. data/node_modules/pleeease/node_modules/mkdirp/test/perm.js +32 -0
  427. data/node_modules/pleeease/node_modules/mkdirp/test/perm_sync.js +39 -0
  428. data/node_modules/pleeease/node_modules/mkdirp/test/race.js +41 -0
  429. data/node_modules/pleeease/node_modules/mkdirp/test/rel.js +32 -0
  430. data/node_modules/pleeease/node_modules/mkdirp/test/return.js +25 -0
  431. data/node_modules/pleeease/node_modules/mkdirp/test/return_sync.js +24 -0
  432. data/node_modules/pleeease/node_modules/mkdirp/test/root.js +18 -0
  433. data/node_modules/pleeease/node_modules/mkdirp/test/sync.js +32 -0
  434. data/node_modules/pleeease/node_modules/mkdirp/test/umask.js +28 -0
  435. data/node_modules/pleeease/node_modules/mkdirp/test/umask_sync.js +32 -0
  436. data/node_modules/pleeease/node_modules/multi-glob/.npmignore +2 -0
  437. data/node_modules/pleeease/node_modules/multi-glob/.travis.yml +3 -0
  438. data/node_modules/pleeease/node_modules/multi-glob/AUTHORS +2 -0
  439. data/node_modules/pleeease/node_modules/multi-glob/LICENSE +27 -0
  440. data/node_modules/pleeease/node_modules/multi-glob/Readme.rst +42 -0
  441. data/node_modules/pleeease/node_modules/multi-glob/autolint.js +20 -0
  442. data/node_modules/pleeease/node_modules/multi-glob/buster.js +6 -0
  443. data/node_modules/pleeease/node_modules/multi-glob/lib/multi-glob.js +39 -0
  444. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/.travis.yml +3 -0
  445. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/LICENSE +19 -0
  446. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/README.md +1646 -0
  447. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/component.json +11 -0
  448. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/lib/async.js +1123 -0
  449. data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/package.json +45 -0
  450. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/.npmignore +2 -0
  451. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/.travis.yml +4 -0
  452. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/LICENSE +27 -0
  453. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/README.md +250 -0
  454. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/examples/g.js +9 -0
  455. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/examples/usr-local.js +9 -0
  456. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/glob.js +738 -0
  457. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  458. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/README.md +42 -0
  459. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  460. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  461. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/package.json +33 -0
  462. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/test.js +25 -0
  463. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  464. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  465. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/README.md +218 -0
  466. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/minimatch.js +1061 -0
  467. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore +1 -0
  468. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  469. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  470. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  471. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  472. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
  473. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  474. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  475. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  476. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  477. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  478. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  479. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  480. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  481. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  482. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/package.json +42 -0
  483. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  484. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/brace-expand.js +33 -0
  485. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/caching.js +14 -0
  486. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  487. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  488. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/LICENSE +27 -0
  489. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/README.md +51 -0
  490. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/once.js +20 -0
  491. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/package.json +42 -0
  492. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/test/once.js +20 -0
  493. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/package.json +43 -0
  494. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/00-setup.js +176 -0
  495. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/bash-comparison.js +63 -0
  496. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/bash-results.json +354 -0
  497. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/cwd-test.js +55 -0
  498. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/empty-set.js +20 -0
  499. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/error-callback.js +20 -0
  500. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/globstar-match.js +19 -0
  501. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/mark.js +118 -0
  502. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/new-glob-optional-options.js +10 -0
  503. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/nocase-nomagic.js +124 -0
  504. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/pause-resume.js +73 -0
  505. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/readme-issue.js +36 -0
  506. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/root-nomount.js +39 -0
  507. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/root.js +46 -0
  508. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/stat.js +32 -0
  509. data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/zz-cleanup.js +11 -0
  510. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/LICENSE.txt +22 -0
  511. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/README.md +163 -0
  512. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.compat.js +7157 -0
  513. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.compat.min.js +61 -0
  514. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.js +6785 -0
  515. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.min.js +56 -0
  516. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.underscore.js +4979 -0
  517. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.underscore.min.js +39 -0
  518. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/lodash.js +7179 -0
  519. data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/package.json +102 -0
  520. data/node_modules/pleeease/node_modules/multi-glob/package.json +46 -0
  521. data/node_modules/pleeease/node_modules/multi-glob/test/multi-glob-test.js +113 -0
  522. data/node_modules/pleeease/node_modules/pixrem/.editorconfig +13 -0
  523. data/node_modules/pleeease/node_modules/pixrem/.gitattributes +1 -0
  524. data/node_modules/pleeease/node_modules/pixrem/.gitignore +2 -0
  525. data/node_modules/pleeease/node_modules/pixrem/.jshintrc +22 -0
  526. data/node_modules/pleeease/node_modules/pixrem/.travis.yml +4 -0
  527. data/node_modules/pleeease/node_modules/pixrem/LICENSE +22 -0
  528. data/node_modules/pleeease/node_modules/pixrem/README.md +108 -0
  529. data/node_modules/pleeease/node_modules/pixrem/lib/pixrem.js +73 -0
  530. data/node_modules/pleeease/node_modules/pixrem/package.json +50 -0
  531. data/node_modules/pleeease/node_modules/pixrem/spec/pixrem-spec.js +78 -0
  532. data/node_modules/pleeease/node_modules/postcss-vars/README.md +84 -0
  533. data/node_modules/pleeease/node_modules/postcss-vars/lib/index.js +91 -0
  534. data/node_modules/pleeease/node_modules/postcss-vars/package.json +18 -0
  535. data/node_modules/pleeease/node_modules/postcss/ChangeLog.md +42 -0
  536. data/node_modules/pleeease/node_modules/postcss/LICENSE +20 -0
  537. data/node_modules/pleeease/node_modules/postcss/README.md +732 -0
  538. data/node_modules/pleeease/node_modules/postcss/lib/at-rule.js +94 -0
  539. data/node_modules/pleeease/node_modules/postcss/lib/comment.js +38 -0
  540. data/node_modules/pleeease/node_modules/postcss/lib/container.js +315 -0
  541. data/node_modules/pleeease/node_modules/postcss/lib/declaration.js +69 -0
  542. data/node_modules/pleeease/node_modules/postcss/lib/lazy.js +18 -0
  543. data/node_modules/pleeease/node_modules/postcss/lib/list.js +64 -0
  544. data/node_modules/pleeease/node_modules/postcss/lib/map-generator.js +242 -0
  545. data/node_modules/pleeease/node_modules/postcss/lib/node.js +189 -0
  546. data/node_modules/pleeease/node_modules/postcss/lib/parse.js +496 -0
  547. data/node_modules/pleeease/node_modules/postcss/lib/postcss.js +76 -0
  548. data/node_modules/pleeease/node_modules/postcss/lib/raw.js +32 -0
  549. data/node_modules/pleeease/node_modules/postcss/lib/result.js +22 -0
  550. data/node_modules/pleeease/node_modules/postcss/lib/root.js +57 -0
  551. data/node_modules/pleeease/node_modules/postcss/lib/rule.js +59 -0
  552. data/node_modules/pleeease/node_modules/postcss/lib/syntax-error.js +27 -0
  553. data/node_modules/pleeease/node_modules/postcss/lib/vendor.js +27 -0
  554. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/.travis.yml +5 -0
  555. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/LICENSE.MIT +21 -0
  556. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/README.md +31 -0
  557. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/bench/bench.js +19 -0
  558. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/lib/b64.js +120 -0
  559. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/package.json +47 -0
  560. data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/test/convert.js +51 -0
  561. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.npmignore +2 -0
  562. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.tern-port +1 -0
  563. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.travis.yml +4 -0
  564. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/CHANGELOG.md +137 -0
  565. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/LICENSE +28 -0
  566. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/Makefile.dryice.js +166 -0
  567. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/README.md +446 -0
  568. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/assert-shim.js +56 -0
  569. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/mini-require.js +152 -0
  570. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  571. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/prefix-utils.jsm +18 -0
  572. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-browser.js +8 -0
  573. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  574. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-utils.jsm +21 -0
  575. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/test-prefix.js +8 -0
  576. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/test-suffix.js +3 -0
  577. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map.js +8 -0
  578. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/array-set.js +97 -0
  579. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  580. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/base64.js +42 -0
  581. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  582. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
  583. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  584. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-node.js +400 -0
  585. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/util.js +302 -0
  586. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  587. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  588. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  589. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  590. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/package.json +38 -0
  591. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/package.json +132 -0
  592. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/run-tests.js +62 -0
  593. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-api.js +26 -0
  594. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  595. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  596. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-base64.js +35 -0
  597. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  598. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  599. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-consumer.js +475 -0
  600. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-generator.js +549 -0
  601. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-node.js +487 -0
  602. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-util.js +127 -0
  603. data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/util.js +161 -0
  604. data/node_modules/pleeease/node_modules/postcss/package.json +46 -0
  605. data/node_modules/pleeease/package.json +40 -0
  606. data/node_modules/pleeease/spec/pleeease-spec.js +112 -0
  607. data/node_modules/pleeease/spec/prefixes.css +1 -0
  608. data/node_modules/pleeease/test/.pleeeaserc +7 -0
  609. data/node_modules/pleeease/test/app.min.css +42 -0
  610. data/node_modules/pleeease/test/bar.css +11 -0
  611. data/node_modules/pleeease/test/foo.css +25 -0
  612. data/node_modules/pleeease/test/import/imported.css +3 -0
  613. data/package.json +11 -0
  614. data/pleeease.gemspec +23 -0
  615. metadata +685 -0
@@ -0,0 +1,127 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2014 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var libUtil = require('../../lib/source-map/util');
13
+
14
+ exports['test urls'] = function (assert, util) {
15
+ var assertUrl = function (url) {
16
+ assert.equal(url, libUtil.urlGenerate(libUtil.urlParse(url)));
17
+ };
18
+ assertUrl('http://');
19
+ assertUrl('http://www.example.com');
20
+ assertUrl('http://user:pass@www.example.com');
21
+ assertUrl('http://www.example.com:80');
22
+ assertUrl('http://www.example.com/');
23
+ assertUrl('http://www.example.com/foo/bar');
24
+ assertUrl('http://www.example.com/foo/bar/');
25
+ assertUrl('http://user:pass@www.example.com:80/foo/bar/');
26
+
27
+ assertUrl('//');
28
+ assertUrl('//www.example.com');
29
+ assertUrl('file:///www.example.com');
30
+
31
+ assert.equal(libUtil.urlParse('a//b'), null);
32
+ };
33
+
34
+ exports['test normalize()'] = function (assert, util) {
35
+ assert.equal(libUtil.normalize('/..'), '/');
36
+ assert.equal(libUtil.normalize('/../'), '/');
37
+ assert.equal(libUtil.normalize('/../../../..'), '/');
38
+ assert.equal(libUtil.normalize('/../../../../a/b/c'), '/a/b/c');
39
+ assert.equal(libUtil.normalize('/a/b/c/../../../d/../../e'), '/e');
40
+
41
+ assert.equal(libUtil.normalize('..'), '..');
42
+ assert.equal(libUtil.normalize('../'), '../');
43
+ assert.equal(libUtil.normalize('../../a/'), '../../a/');
44
+ assert.equal(libUtil.normalize('a/..'), '.');
45
+ assert.equal(libUtil.normalize('a/../../..'), '../..');
46
+
47
+ assert.equal(libUtil.normalize('/.'), '/');
48
+ assert.equal(libUtil.normalize('/./'), '/');
49
+ assert.equal(libUtil.normalize('/./././.'), '/');
50
+ assert.equal(libUtil.normalize('/././././a/b/c'), '/a/b/c');
51
+ assert.equal(libUtil.normalize('/a/b/c/./././d/././e'), '/a/b/c/d/e');
52
+
53
+ assert.equal(libUtil.normalize('.'), '.');
54
+ assert.equal(libUtil.normalize('./'), '.');
55
+ assert.equal(libUtil.normalize('././a'), 'a');
56
+ assert.equal(libUtil.normalize('a/./'), 'a/');
57
+ assert.equal(libUtil.normalize('a/././.'), 'a');
58
+
59
+ assert.equal(libUtil.normalize('/a/b//c////d/////'), '/a/b/c/d/');
60
+ assert.equal(libUtil.normalize('///a/b//c////d/////'), '///a/b/c/d/');
61
+ assert.equal(libUtil.normalize('a/b//c////d'), 'a/b/c/d');
62
+
63
+ assert.equal(libUtil.normalize('.///.././../a/b//./..'), '../../a')
64
+
65
+ assert.equal(libUtil.normalize('http://www.example.com'), 'http://www.example.com');
66
+ assert.equal(libUtil.normalize('http://www.example.com/'), 'http://www.example.com/');
67
+ assert.equal(libUtil.normalize('http://www.example.com/./..//a/b/c/.././d//'), 'http://www.example.com/a/b/d/');
68
+ };
69
+
70
+ exports['test join()'] = function (assert, util) {
71
+ assert.equal(libUtil.join('a', 'b'), 'a/b');
72
+ assert.equal(libUtil.join('a/', 'b'), 'a/b');
73
+ assert.equal(libUtil.join('a//', 'b'), 'a/b');
74
+ assert.equal(libUtil.join('a', 'b/'), 'a/b/');
75
+ assert.equal(libUtil.join('a', 'b//'), 'a/b/');
76
+ assert.equal(libUtil.join('a/', '/b'), '/b');
77
+ assert.equal(libUtil.join('a//', '//b'), '//b');
78
+
79
+ assert.equal(libUtil.join('a', '..'), '.');
80
+ assert.equal(libUtil.join('a', '../b'), 'b');
81
+ assert.equal(libUtil.join('a/b', '../c'), 'a/c');
82
+
83
+ assert.equal(libUtil.join('a', '.'), 'a');
84
+ assert.equal(libUtil.join('a', './b'), 'a/b');
85
+ assert.equal(libUtil.join('a/b', './c'), 'a/b/c');
86
+
87
+ assert.equal(libUtil.join('a', 'http://www.example.com'), 'http://www.example.com');
88
+ assert.equal(libUtil.join('a', 'data:foo,bar'), 'data:foo,bar');
89
+
90
+
91
+ assert.equal(libUtil.join('http://foo.org/a', 'b'), 'http://foo.org/a/b');
92
+ assert.equal(libUtil.join('http://foo.org/a/', 'b'), 'http://foo.org/a/b');
93
+ assert.equal(libUtil.join('http://foo.org/a//', 'b'), 'http://foo.org/a/b');
94
+ assert.equal(libUtil.join('http://foo.org/a', 'b/'), 'http://foo.org/a/b/');
95
+ assert.equal(libUtil.join('http://foo.org/a', 'b//'), 'http://foo.org/a/b/');
96
+ assert.equal(libUtil.join('http://foo.org/a/', '/b'), 'http://foo.org/b');
97
+ assert.equal(libUtil.join('http://foo.org/a//', '//b'), 'http://b');
98
+
99
+ assert.equal(libUtil.join('http://foo.org/a', '..'), 'http://foo.org/');
100
+ assert.equal(libUtil.join('http://foo.org/a', '../b'), 'http://foo.org/b');
101
+ assert.equal(libUtil.join('http://foo.org/a/b', '../c'), 'http://foo.org/a/c');
102
+
103
+ assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
104
+ assert.equal(libUtil.join('http://foo.org/a', './b'), 'http://foo.org/a/b');
105
+ assert.equal(libUtil.join('http://foo.org/a/b', './c'), 'http://foo.org/a/b/c');
106
+
107
+ assert.equal(libUtil.join('http://foo.org/a', 'http://www.example.com'), 'http://www.example.com');
108
+ assert.equal(libUtil.join('http://foo.org/a', 'data:foo,bar'), 'data:foo,bar');
109
+
110
+
111
+ assert.equal(libUtil.join('http://foo.org', 'a'), 'http://foo.org/a');
112
+ assert.equal(libUtil.join('http://foo.org/', 'a'), 'http://foo.org/a');
113
+ assert.equal(libUtil.join('http://foo.org//', 'a'), 'http://foo.org/a');
114
+ assert.equal(libUtil.join('http://foo.org', '/a'), 'http://foo.org/a');
115
+ assert.equal(libUtil.join('http://foo.org/', '/a'), 'http://foo.org/a');
116
+ assert.equal(libUtil.join('http://foo.org//', '/a'), 'http://foo.org/a');
117
+
118
+
119
+ assert.equal(libUtil.join('http://', 'www.example.com'), 'http://www.example.com');
120
+ assert.equal(libUtil.join('file:///', 'www.example.com'), 'file:///www.example.com');
121
+ assert.equal(libUtil.join('http://', 'ftp://example.com'), 'ftp://example.com');
122
+
123
+ assert.equal(libUtil.join('http://www.example.com', '//foo.org/bar'), 'http://foo.org/bar');
124
+ assert.equal(libUtil.join('//www.example.com', '//foo.org/bar'), '//foo.org/bar');
125
+ };
126
+
127
+ });
@@ -0,0 +1,161 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var util = require('../../lib/source-map/util');
13
+
14
+ // This is a test mapping which maps functions from two different files
15
+ // (one.js and two.js) to a minified generated source.
16
+ //
17
+ // Here is one.js:
18
+ //
19
+ // ONE.foo = function (bar) {
20
+ // return baz(bar);
21
+ // };
22
+ //
23
+ // Here is two.js:
24
+ //
25
+ // TWO.inc = function (n) {
26
+ // return n + 1;
27
+ // };
28
+ //
29
+ // And here is the generated code (min.js):
30
+ //
31
+ // ONE.foo=function(a){return baz(a);};
32
+ // TWO.inc=function(a){return a+1;};
33
+ exports.testGeneratedCode = " ONE.foo=function(a){return baz(a);};\n"+
34
+ " TWO.inc=function(a){return a+1;};";
35
+ exports.testMap = {
36
+ version: 3,
37
+ file: 'min.js',
38
+ names: ['bar', 'baz', 'n'],
39
+ sources: ['one.js', 'two.js'],
40
+ sourceRoot: '/the/root',
41
+ mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
42
+ };
43
+ exports.testMapWithSourcesContent = {
44
+ version: 3,
45
+ file: 'min.js',
46
+ names: ['bar', 'baz', 'n'],
47
+ sources: ['one.js', 'two.js'],
48
+ sourcesContent: [
49
+ ' ONE.foo = function (bar) {\n' +
50
+ ' return baz(bar);\n' +
51
+ ' };',
52
+ ' TWO.inc = function (n) {\n' +
53
+ ' return n + 1;\n' +
54
+ ' };'
55
+ ],
56
+ sourceRoot: '/the/root',
57
+ mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
58
+ };
59
+ exports.emptyMap = {
60
+ version: 3,
61
+ file: 'min.js',
62
+ names: [],
63
+ sources: [],
64
+ mappings: ''
65
+ };
66
+
67
+
68
+ function assertMapping(generatedLine, generatedColumn, originalSource,
69
+ originalLine, originalColumn, name, map, assert,
70
+ dontTestGenerated, dontTestOriginal) {
71
+ if (!dontTestOriginal) {
72
+ var origMapping = map.originalPositionFor({
73
+ line: generatedLine,
74
+ column: generatedColumn
75
+ });
76
+ assert.equal(origMapping.name, name,
77
+ 'Incorrect name, expected ' + JSON.stringify(name)
78
+ + ', got ' + JSON.stringify(origMapping.name));
79
+ assert.equal(origMapping.line, originalLine,
80
+ 'Incorrect line, expected ' + JSON.stringify(originalLine)
81
+ + ', got ' + JSON.stringify(origMapping.line));
82
+ assert.equal(origMapping.column, originalColumn,
83
+ 'Incorrect column, expected ' + JSON.stringify(originalColumn)
84
+ + ', got ' + JSON.stringify(origMapping.column));
85
+
86
+ var expectedSource;
87
+
88
+ if (originalSource && map.sourceRoot && originalSource.indexOf(map.sourceRoot) === 0) {
89
+ expectedSource = originalSource;
90
+ } else if (originalSource) {
91
+ expectedSource = map.sourceRoot
92
+ ? util.join(map.sourceRoot, originalSource)
93
+ : originalSource;
94
+ } else {
95
+ expectedSource = null;
96
+ }
97
+
98
+ assert.equal(origMapping.source, expectedSource,
99
+ 'Incorrect source, expected ' + JSON.stringify(expectedSource)
100
+ + ', got ' + JSON.stringify(origMapping.source));
101
+ }
102
+
103
+ if (!dontTestGenerated) {
104
+ var genMapping = map.generatedPositionFor({
105
+ source: originalSource,
106
+ line: originalLine,
107
+ column: originalColumn
108
+ });
109
+ assert.equal(genMapping.line, generatedLine,
110
+ 'Incorrect line, expected ' + JSON.stringify(generatedLine)
111
+ + ', got ' + JSON.stringify(genMapping.line));
112
+ assert.equal(genMapping.column, generatedColumn,
113
+ 'Incorrect column, expected ' + JSON.stringify(generatedColumn)
114
+ + ', got ' + JSON.stringify(genMapping.column));
115
+ }
116
+ }
117
+ exports.assertMapping = assertMapping;
118
+
119
+ function assertEqualMaps(assert, actualMap, expectedMap) {
120
+ assert.equal(actualMap.version, expectedMap.version, "version mismatch");
121
+ assert.equal(actualMap.file, expectedMap.file, "file mismatch");
122
+ assert.equal(actualMap.names.length,
123
+ expectedMap.names.length,
124
+ "names length mismatch: " +
125
+ actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
126
+ for (var i = 0; i < actualMap.names.length; i++) {
127
+ assert.equal(actualMap.names[i],
128
+ expectedMap.names[i],
129
+ "names[" + i + "] mismatch: " +
130
+ actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
131
+ }
132
+ assert.equal(actualMap.sources.length,
133
+ expectedMap.sources.length,
134
+ "sources length mismatch: " +
135
+ actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
136
+ for (var i = 0; i < actualMap.sources.length; i++) {
137
+ assert.equal(actualMap.sources[i],
138
+ expectedMap.sources[i],
139
+ "sources[" + i + "] length mismatch: " +
140
+ actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
141
+ }
142
+ assert.equal(actualMap.sourceRoot,
143
+ expectedMap.sourceRoot,
144
+ "sourceRoot mismatch: " +
145
+ actualMap.sourceRoot + " != " + expectedMap.sourceRoot);
146
+ assert.equal(actualMap.mappings, expectedMap.mappings,
147
+ "mappings mismatch:\nActual: " + actualMap.mappings + "\nExpected: " + expectedMap.mappings);
148
+ if (actualMap.sourcesContent) {
149
+ assert.equal(actualMap.sourcesContent.length,
150
+ expectedMap.sourcesContent.length,
151
+ "sourcesContent length mismatch");
152
+ for (var i = 0; i < actualMap.sourcesContent.length; i++) {
153
+ assert.equal(actualMap.sourcesContent[i],
154
+ expectedMap.sourcesContent[i],
155
+ "sourcesContent[" + i + "] mismatch");
156
+ }
157
+ }
158
+ }
159
+ exports.assertEqualMaps = assertEqualMaps;
160
+
161
+ });
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "postcss",
3
+ "version": "0.3.4",
4
+ "description": "Framework for CSS postprocessors",
5
+ "keywords": [
6
+ "css",
7
+ "parser",
8
+ "postproccessor"
9
+ ],
10
+ "author": {
11
+ "name": "Andrey Sitnik",
12
+ "email": "andrey@sitnik.ru"
13
+ },
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/ai/postcss.git"
18
+ },
19
+ "dependencies": {
20
+ "source-map": "~0.1.33",
21
+ "base64-js": "~0.0.6"
22
+ },
23
+ "devDependencies": {
24
+ "coffee-script": "1.7.1",
25
+ "fs-extra": "0.8.1",
26
+ "gonzales": "1.0.7",
27
+ "rework": "0.20.2",
28
+ "should": "3.1.3",
29
+ "mocha": "1.17.1",
30
+ "cssom": "0.3.0"
31
+ },
32
+ "main": "lib/postcss",
33
+ "scripts": {
34
+ "test": "mocha"
35
+ },
36
+ "readme": "# PostCSS\n\nPostCSS is a framework for CSS postprocessors,\nto modify CSS with JavaScript.\n\nIt takes care of most common CSS tool tasks:\n\n1. parses CSS;\n2. gives you usable JS API to edit CSS node tree;\n3. dumps modified node tree into CSS string;\n4. generates (or modifies existent) source map for your changes;\n\nYou can use this framework to write you own:\n\n* CSS minifier or beautifizer.\n* CSS polyfills.\n* Grunt plugin to generate sprites, include `data-uri` images\n or any other works.\n* Text editor plugin to automate CSS routine.\n* Command-line CSS tool.\n\nSponsored by [Evil Martians](http://evilmartians.com/).\n\n## Built with PostCSS\n\n* [Autoprefixer] adds vendor prefixes by Can I Use data.\n* [grunt-pixrem], `rem` unit polyfill.\n* [CSS MQPacker] joins same media queries.\n\n[Autoprefixer]: https://github.com/ai/autoprefixer\n[grunt-pixrem]: https://github.com/robwierzbowski/grunt-pixrem\n[CSS MQPacker]: https://github.com/hail2u/node-css-mqpacker\n\n## Quick Example\n\nLet’s fix forgotten `content` property in `::before` and `::after`:\n\n```js\nvar postcss = require('postcss');\n\nvar contenter = postcss(function (css) {\n css.eachRule(function (rule) {\n if ( rule.selector.match(/::(before|after)/) ) {\n // In every ::before/::after rule\n\n // Did we forget content property?\n var good = rule.some(function (i) { return i.prop == 'content'; });\n\n if ( !good ) {\n // Add content: \"\" if we forget it\n rule.prepend({ prop: 'content', value: '\"\"' });\n }\n\n }\n });\n});\n```\n\nAnd then CSS with forgotten `content`:\n\n```css\na::before {\n width: 10px;\n height: 10px\n}\n```\n\nwill be fixed by our new `contenter`:\n\n```js\nvar fixed = contenter.process(css).css;\n```\n\nto:\n\n```css\na::before {\n content: \"\";\n width: 10px;\n height: 10px\n}\n```\n\n## Features\n\n### Source Map\n\nPostCSS generates source map for its changes:\n\n```js\nresult = processor.process(css, { map: true, from: 'from.css', to: 'to.css' });\nresult.css // String with processed CSS\nresult.map // Source map\n```\n\nAnd modifies source map from previous step (like Sass preprocessor):\n\n```js\nvar sassMap = fs.readFileSync('from.sass.css.map');\nprocessor.process(css, { map: sassMap, from: 'from.sass.css', to: 'to.css' });\n```\n\n### Preserves code formatting and indentations\n\nPostCSS will not change any byte of a rule if you don’t modify its node:\n\n```js\npostcss(function (css) { }).process(css).css == css;\n```\n\nAnd when you modify CSS nodes, PostCSS will try to copy coding style:\n\n```js\ncontenter.process(\"a::before{color:black}\")\n// a::before{content:'';color:black}\n\ncontenter.process(\"a::before {\\n color: black;\\n }\")\n// a::before {\n// content: '';\n// color: black;\n// }\n```\n\n## Why PostCSS Better Than …\n\n### Preprocessors\n\nPreprocessors (like Sass or Stylus) give us special language with variables,\nmixins, statements and compile it to CSS. Compass, nib and other mixins\nlibraries use these languages to work with prefixes, sprites and inline images.\n\nBut Sass and Stylus languages were created to be syntax-sugar for CSS.\nWriting really complicated programs using preporcessor languages\nis very difficult. [Autoprefixer] is absolutely impossible to implement\non top of Sass.\n\nPostCSS gives you comfort and power of JS or CoffeeScript to working with CSS.\nYou can do really magic things with wide range of [npm] libraries.\n\nBut postprocessors are not enemies for preprocessors. Sass and Stylus are still\nthe best way to improve readability and add some syntax sugar to CSS.\nYou can easily combine preprocessors and postprocessors\n(and PostCSS will also update source map from Sass or Stylus).\n\n[Autoprefixer]: https://github.com/ai/autoprefixer\n[npm]: https://npmjs.org/\n\n### RegExp\n\nSome Grunt plugins modify CSS with regular expressions but using a CSS parser\nand a node tree is a much safer way to edit CSS. Also, regexps will break\nsource maps generated by preprocessors.\n\n### CSS Parsers\n\nThere are a lot of good CSS parsers, like [Gonzales]. But they help you only\nwith first step.\n\nUnlike them PostCSS gives you full source map support and useful high level API\n(for example, safe iterators).\n\n[Gonzales]: https://github.com/css/gonzales\n\n### Rework\n\n[Rework] and PostCSS are very similar, but they has different targets.\n\nRework was created to build new CSS sublanguage to replace Stylus (like [Myth]).\nPostCSS was created for CSS tools, which works in chain with legacy CSS code\n(like Autoprefixer).\n\nBecause of this background difference, PostCSS:\n\n* better works with source map, because it should update map from previous step\n (like Sass compiling)\n* saves all your spaces and code style, because it can be worked in text editor\n plugins\n* has safer parser, because it can be used for legacy code\n* has high level API to clean your processor from common tasks\n\n[Myth]: http://www.myth.io/\n[Rework]: https://github.com/visionmedia/rework\n\n## Usage\n\n### Processor\n\nThe function `postcss(fn)` creates a processor from your function:\n\n```js\nvar postcss = require('postcss');\n\nvar processor = postcss(function (css) {\n // Code to modify CSS\n});\n```\n\nIf you want to combine multiple processors (and parse CSS only once),\nyou can add several functions using the `use(fn)` method:\n\n```js\nvar all = postcss().\n use(prefixer).\n use(minifing);\n```\n\nProcessor function can change the current CSS node tree:\n\n```js\npostcss(function (css) {\n css.append( /* new rule */ )\n});\n```\n\nor create a completely new CSS root node and return it instead:\n\n```js\npostcss(function (css) {\n var newCSS = postcss.root()\n // Add rules and declarations\n return newCSS;\n});\n```\n\nThis generated processor transforms some CSS using `process(css, opts)` method:\n\n```js\nvar doubler = postcss(function (css) {\n // Clone each declaration\n css.eachDecl(function (decl) {\n decl.parent.prepend( decl.clone() );\n });\n});\n\nvar css = \"a { color: black; }\";\nvar result = doubler.process(css);\n\nresult.css //=> \"a { color: black; color: black; }\"\n```\n\nYou can set the original CSS filename via `from` option and make syntax error\nmessages much more helpful:\n\n```js\nvar wrong = \"a {\";\nprocessor.process(wrong, { from: 'main.css' });\n//=> Can't parse CSS: Unclosed block at line 1:1 in main.css\n```\n\n### Multiple Inputs\n\nThe function `postcss()` generates processor only for one input.\nIf you need to process several inputs (like in files concatenation) you can use\n`postcss.parse()`.\n\nLet’s join two CSS with source map support in 5 lines of code:\n\n```js\nvar file1 = postcss.parse(css1, { from: 'a.css' });\nvar file2 = postcss.parse(css2, { from: 'b.css' });\n\nfile1.rules = file1.rules.concat( file2.rules );\n\nvar result = file1.toResult({ to: 'app.css', map: true });\n```\n\n### Source Map\n\nPostCSS will generate a source map, if you set `map` option to `true`\nin the `process(css, opts)` method.\n\nYou must set input and output CSS files paths (using `from` and `to`\noptions respectively) to generate correct source map.\n\n```js\nvar result = processor.process(css, {\n map: true,\n from: 'main.css',\n to: 'main.out.css'\n});\n\nresult.map //=> '{\"version\":3,\"file\":\"main.out.css\",\"sources\":[\"main.css\"],\"names\":[],\"mappings\":\"AAAA,KAAI\"}'\n\nfs.writeFileSync('main.out.css.map', result.map);\n```\n\nPostCSS can also modify previous source map (for example, from Sass\ncompilation). So if you compile Sass to CSS and then minify this CSS\nby postprocessor, final source map will contain mapping from Sass code\nto minified CSS.\n\nJust set `map` option with an original source map (a string or a JS object):\n\n```js\nvar result = minifier.process(css, {\n map: fs.readFileSync('main.sass.css.map'),\n from: 'main.sass.css',\n to: 'main.min.css'\n});\n\nresult.map //=> Source map from main.sass to main.min.css\n```\n\nPostCSS try to autodetect previous map file. For example, if you process `a.css`\nand `a.css.map` is placed in same dir, PostCSS will read previous map and\ngenerate new one. You can disable autodetection by `map: false`.\n\nPostCSS, by default, will add annotation comment with path to new source map\nfile:\n\n```css\na { }\n/*# sourceMappingURL=main.out.css.map */\n```\n\nIf you want to remove annotation, set `mapAnnotation` option to `false`.\n\nInline maps are also supported. If input CSS will contain annotation\nfrom previous step with map in `data:uri`, PostCSS will update source map\nwith yours changes and inine new map back to output CSS.\n\nOption `inlineMap` will force PostCSS to inline new map to CSS:\n\n```js\nvar result = minifier.process(css, {\n from: 'main.css',\n to: 'main.min.css',\n inlineMap: true\n});\n\nresult.map //=> undefined, because map is in CSS\nresult.css //=> \"a{}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uY3NzIiwic291cmNlcyI6WyJtYWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFLIn0= */\"\n```\n\n### Helpers\n\n#### Vendor\n\nPostCSS contains heigh optimized code to split vendor prefix:\n\n```js\nvar vendor = require('postcss/lib/vendor');\n\nvendor.prefix('-moz-tab-size') //=> '-moz-'\nvendor.unprefixed('-moz-tab-size') //=> 'tab-size'\n```\n\n#### List\n\nTo safely split comma- or space-separated values (like in `background-image`\nor `transform` ) with brackets and quotes support you can use `list` helper:\n\n```js\nvar list = require('postcss/lib/list');\n\nlist.space(image.value) //=> ['linear-gradient(white, black)', 'blue']\nlist.comma(transform.value) //=> ['color 200ms', 'background 200ms']\n```\n\n### Nodes\n\nProcessor function receives `Root` node with CSS node tree inside.\n\n```js\nvar processor = postcss(function (cssRoot) {\n});\n```\n\nThere are 4 types of child nodes: `Comment`, `AtRule`, `Rule` and `Declaration`.\nAll nodes have `toString()` and `clone()` methods.\n\nYou can parse CSS and get a `Root` node by `postcss.parse(css, opts)` method:\n\n```js\nvar cssRoot = postcss.parse('a { }');\n```\n\nAll node‘s methods return current node, so you can build nice method chains:\n\n```js\nroot.append( rule1 ).append( rule2 ).toString();\n```\n\n### Node Source\n\nEvery node stores its origin file (if you set `from` option to `process`\nor `parse` method) and position:\n\n```js\nvar root = postcss.parse(css, { from: 'main.css' });\nvar rule = root.rules[0];\n\nrule.source.file //=> 'main.css'\nrule.source.start //=> { line: 5, position: 1 }\nrule.source.end //=> { line: 10, position: 5 }\n```\n\n### Whitespaces\n\nAll nodes (exclude `Root`) have `before` property with indentation\nand all earlier spaces.\n\nNodes with children (`Root`, `AtRule` and `Rule`) contain also `after` property\nwith spaces after last child and before `}` or end of file.\n\nEvery `Declaration` has `between` property with colon, spaces and comments\nbetween property name and value. `Rule` stores spaces and comments between\nselector and `{` in `between` property. `AtRule` uses `between` also to store\nspaces and comments before `{` or `;` for bodiless at-rule.\n\n```js\nvar root = postcss.parse(\"a {\\n color: black;\\n}\\n\");\n\nroot.rules[0].between //=> \" \" between selector and {\nroot.rules[0].decls[0].before //=> \"\\n \" before color: black\nroot.rules[0].decls[0].between //=> \": \" between property name and value\nroot.rules[0].after //=> \"\\n\" before }\nroot.after //=> \"\\n\" from end of file\n```\n\nThe simplest way to minify CSS is to set `before`, `between` and `after`\nproperties to an empty string:\n\n```js\nvar minifier = postcss(function (css) {\n css.eachDecl(function (decl) {\n decl.before = '';\n decl.between = ':';\n });\n css.eachRule(function (rule) {\n rule.before = '';\n rule.between = '';\n rule.after = '';\n });\n css.eachAtRule(function (atRule) {\n atRule.before = '';\n atRule.between = '';\n atRule.after = '';\n });\n css.eachComment(function (comment) {\n comment.removeSelf();\n });\n});\n\nvar css = \"a {\\n color:black\\n}\\n\";\nminifier.process(css).css //=> \"a{color:black}\"\n```\n\n### Raw Properties\n\nSome CSS values (selectors, comment text, at-rule params and declaration values)\ncan contain comments. PostCSS will clean them from trailing spaces for you:\n\n```js\nvar root = postcss.parse(\"a /**/ b {}\");\nvar rule = root.rules[0];\n\nrule.selector //=> 'a b' trimmed and cleaned from comments\nrule._selector.raw //=> 'a /**/ b' original raw value\n```\n\nBut PostCSS saves raw content to be able to stringify it to CSS, if you don’t\nchange origin value. As you can remember, PostCSS tries to save origin CSS\nbyte-to-byte, when it’s possible:\n\n```js\nrule.toString() //=> 'a /**/ b {}' with comment\n\nrule.selector = '.link b';\nrule.toString() //=> '.link b {}' you change value and origin comment was gone\n```\n\n### Containers\n\n`Root`, `AtRule` and `Rule` nodes can contain children in `rules` or `decls`\nproperty.\n\nThere are common method to work with children:\n\n* `append(newChild)` to add child at the end of children list.\n* `prepend(newChild)` to add child at the beginning of children list.\n* `insertBefore(existsChild, newChild)` to insert new child before some\n existent child.\n* `insertAfter(existsChild, newChild)` to insert new child after some\n existent child.\n* `remove(existsChild)` to remove child.\n* `index(existsChild)` to return child index.\n* `some(fn)` to return true if `fn` returns true on any child.\n* `every(fn)` to return true if `fn` returns true on all children.\n\nMethods `insertBefore`, `insertAfter` and `remove` can receive child node\nor child index as an `existsChild` argument. Have in mind that child index works\nmuch faster.\n\nThere are two shorcuts to get first and last child:\n\n```js\nrule.first //=> First declaration in rule\nrule.last //=> Last declaration in rule\n```\n\n### Children\n\n`Comment`, `AtRule`, `Rule` and `Declaration` nodes should be wrapped\nin other nodes.\n\nAll children contain `parent` property with parent node:\n\n```js\nrule.decls[0].parent == rule;\n```\n\nAll children has `removeSelf()` method:\n\n```js\nrule.decls[0].removeSelf();\n```\n\nBut `remove(index)` in parent with child index is much faster:\n\n```js\nrule.each(function (decl, i) {\n rule.remove(i);\n});\n```\n\n### Iterators\n\nAll parent nodes have `each` method to iterate over children nodes:\n\n```js\nroot = postcss.parse('a { color: black; display: none }');\n\nroot.each(function (rule, i) {\n if ( rule.type == 'rule' ) {\n console.log(rule.selector, i); // Will log \"a 0\"\n }\n});\n\nroot.rules[0].each(function (decl, i) {\n if ( rule.type != 'comment' ) {\n console.log(decl.prop, i); // Will log \"color 0\" and \"display 1\"\n }\n});\n```\n\nUnlike `for {}`-cycle construct or `Array#forEach()` this iterator is safe.\nYou can mutate children while iteration and it will fix current index:\n\n```js\nrule.rules.forEach(function (decl, i) {\n rule.prepend( decl.clone() );\n // Will be infinity cycle, because on prepend current declaration become\n // second and next index will go to current declaration again\n});\n\nrule.each(function (decl, i) {\n rule.prepend( decl.clone() );\n // Will work correct (once clone each declaration), because after prepend\n // iterator index will be recalculated\n});\n```\n\nBecause CSS have nested structure, PostCSS also contains recursive iterator\n`eachInside`:\n\n```js\nroot.eachInside(function (node, i) {\n console.log(node.type ' inside ' + parent.type);\n});\n```\n\nThere are also shortcuts to recursive iterate all nodes of specific type:\n\n```js\nroot.eachDecl(function (decl, i) {\n // Each declaration inside root\n});\n\nroot.eachRule(function (rule, i) {\n // Each rule inside root and any nested at-rules\n});\n\nroot.eachAtRule(function (atRule, i) {\n // Each at-rule inside root and any nested at-rules\n});\n\nroot.eachComment(function (comment, i) {\n // Each comment inside root\n})\n```\n\n### Root Node\n\n`Root` node contains entire CSS tree. Its children can be only `Comment`,\n`AtRule` or `Rule` nodes in `rules` property.\n\nYou can create a new root using shortcut:\n\n```js\nvar root = postcss.root();\n```\n\nMethod `toString()` stringifies entire node tree to CSS string:\n\n```js\nroot = postcss.parse(css);\nroot.toString() == css;\n```\n\n### Comment Node\n\n```css\n/* Block comment */\n```\n\nPostCSS creates `Comment` nodes only for comments between rules or declarations.\nComments inside selectors, at-rules params, declaration values will be stored\nin Raw property.\n\n`Comment` has only one property: `text` with trimmed text inside comment.\n\n```js\ncomment.text //=> \"Block comment\"\n```\n\nYou can create a new comment using shortcut:\n\n```js\nvar comment = postcss.comment({ text: 'New comment' });\n```\n\n### AtRule Node\n\n```css\n@charset 'utf-8';\n\n@font-face {\n font-family: 'Cool'\n}\n\n@media print {\n img { display: none }\n}\n```\n\n`AtRule` has two own properties: `name` and `params`.\n\nAs you see, some at-rules don’t contain any children (like `@charset`\nor `@import`), some of at-rules can contain only declarations\n(like `@font-face` or `@page`), but most of them can contain rules\nand nested at-rules (like `@media`, `@keyframes` and others).\n\nParser selects `AtRule` content type by its name. If you create `AtRule`\nnode manually, it will detect own content type with new child type on first\n`append` or other add method call:\n\n```js\nvar atRule = postcss.atRule({ name: '-x-animations' });\natRule.rules //=> undefined\natRule.decls //=> undefined\n\natRule.append( postcss.rule({ selector: 'from' }) );\natRule.rules.length //=> 1\natRule.decls //=> undefined\n```\n\nYou can create a new at-rule using shortcut:\n\n```js\nvar atRule = postcss.atRule({ name: 'charset', params: 'utf-8' });\n```\n\n### Rule Node\n\n```css\na {\n color: black;\n}\n```\n\n`Rule` node has `selector` property and contains `Declaration` and `Comment`\nchildren in `decls` property.\n\nThere is `selectors` shortcut, which return array:\n\n```js\nrule.selector //=> \"a, b\"\nrule.selectors //=> ['a', 'b']\n```\n\nYou can miss `Declaration` constructor in `append` and other insert methods:\n\n```js\nrule.append({ prop: 'color', value: 'black' });\n```\n\nProperty `semicolon` indicates if last declaration in rule has semicolon or not:\n\n```js\nvar root = postcss.parse('a { color: black }');\nroot.rules[0].semicolon //=> false\n\nvar root = postcss.parse('a { color: black; }');\nroot.rules[0].semicolon //=> true\n```\n\nYou can create a new rule using shortcut:\n\n```js\nvar rule = postcss.rule({ selector: 'a' });\n```\n\n### Declaration Node\n\n```css\ncolor: black\n```\n\n`Declaration` node has `prop`, `value` and `important` properties.\n\nYou can create a new declaration using this shortcut:\n\n```js\nvar decl = postcss.decl({ prop: 'color', value: 'black' });\n```\n\nOr use short form in rule’s `append()` and other add methods:\n\n```js\nrule.append({ prop: 'color', value: 'black' });\n```\n",
37
+ "readmeFilename": "README.md",
38
+ "bugs": {
39
+ "url": "https://github.com/ai/postcss/issues"
40
+ },
41
+ "homepage": "https://github.com/ai/postcss",
42
+ "_id": "postcss@0.3.4",
43
+ "_shasum": "783190bbe815aa791ed67e5d2bdcd4a7f43f3071",
44
+ "_from": "postcss@0.3.4",
45
+ "_resolved": "https://registry.npmjs.org/postcss/-/postcss-0.3.4.tgz"
46
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "pleeease",
3
+ "version": "0.3.0",
4
+ "description": "Postprocess CSS with ease",
5
+ "author": {
6
+ "name": "Vincent De Oliveira"
7
+ },
8
+ "main": "./lib/index",
9
+ "bin": {
10
+ "pleeease": "./bin/pleeease",
11
+ "pleeease-compile": "./bin/pleeease-compile",
12
+ "pleeease-watch": "./bin/pleeease-watch"
13
+ },
14
+ "keywords": [
15
+ "postprocessor",
16
+ "css",
17
+ "postcss",
18
+ "pleeease"
19
+ ],
20
+ "dependencies": {
21
+ "postcss": "0.3.4",
22
+ "csswring": "~0.1.0",
23
+ "postcss-vars": "~0.1.0",
24
+ "autoprefixer": "~1.1.20140410",
25
+ "css-mqpacker": "~0.1.0",
26
+ "pixrem": "https://github.com/iamvdo/node-pixrem/tarball/master",
27
+ "deep-extend": "~0.2.8",
28
+ "commander": "~2.2.0",
29
+ "multi-glob": "~0.4.0",
30
+ "mkdirp": "~0.4.0",
31
+ "chokidar": "~0.8.2",
32
+ "colors": "~0.6.2"
33
+ },
34
+ "readme": "Pleeease\n======\n\nPostprocess CSS with ease.\n\nPleeease is the best toolchain for your CSS. Just write DRY, future-proof CSS and Pleeease does the job for you.\n\nFor now, it adds **prefixes**, **variables**, **pseudo-elements** and **`rem`** unit support, **packs same media-query** in one `@media` rule, **inline `@import`** styles and **minify the result**.\n\nPleeease is based on [PostCSS](https://github.com/ai/postcss) postprocessor.\n\nhttp://pleeease.io\n\n##Example\n\nYou write `foo.css`:\n\n```css\n@import url(\"bar.css\");\n*,\n*::after,\n*::before {\n\tbox-sizing: border-box;\n}\n:root {\n\t--color-primary: red;\n\t--color-secondary: blue;\n}\n.elem {\n\tfont-size: 2rem;\n\tbackground: var(--color-primary);\n\twidth: calc(100% - 50px);\n}\n@media screen and (min-width: 36em) {\n\t.elem {\n\t\tcolor: var(--color-secondary)\n\t}\n}\n@media screen and (min-width: 36em) {\n\t.classe {\n\t\tbackground: linear-gradient(green, blue);\n\t}\n}\n```\n\nYou get `baz.css` (with all options set to `true`, except `minifier`)\n\n```css\n.bar {\n\t/* imported styles */\n}\n/* pseudo-elements are converted */\n*,\n*:after,\n*:before {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n:root {\n\t--color-primary: red;\n\t--color-secondary: blue;\n}\n.elem {\n\tfont-size: 32px; /* fallback for rem support */\n\tfont-size: 2rem;\n\tbackground: red; /* resolve variables */\n\twidth: -webkit-calc(100% - 50px); /* add prefixes */\n\twidth: calc(100% - 50px);\n}\n/* pack same media-queries */\n@media screen and (min-width: 36em) {\n\t.elem {\n\t\tcolor: blue\n\t}\n\t.classe {\n\t\tbackground: -webkit-gradient(linear, left top, left bottom, from(green), to(blue));\n\t\tbackground: -webkit-linear-gradient(green, blue);\n\t\tbackground: linear-gradient(green, blue);\n\t}\n}\n```\n\n##Installation\n\n\t$ npm install pleeease\n\n##Usage\n\n###Programmatic\n\n```javascript\nvar pleeease = require('pleeease'),\n\tfs = require('fs');\n\nvar css = fs.readFileSync('app.css', 'utf8');\n\n// define options here\nvar options = {};\n\nvar fixed = pleeease.process(css, options);\n\nfs.writeFile('app.min.css', fixed, function (err) {\n if (err) {\n throw err;\n }\n console.log('File saved!');\n});\n```\n\n###CLI\n\nInstall Pleeease globally\n\n\t$ npm install -g pleeease\n\nOr use alternate syntax\n\n\t$ node ./bin/pleeease\n\nCompile all CSS files from the root projet to `app.min.css`\n\n\t$ pleeease compile\n\t$ pleeease compile *.css to app.min.css\n\nCompile `foo.css` to `bar.css`\n\n\t$ pleeease compile foo.css to bar.css\n\nCompile multiple files to `app.min.css`\n\n\t$ pleeease compile foo.css bar.css\n\nCompile `css/` folder to `public/css/app.min.css` (if folders doesn't exist, they will be created)\n\n\t$ pleeease compile css/ to public/css/app.min.css\n\nYou can also `watch` (with the same syntax) for live compilation.\n\n\t$ pleeease watch foo.css\n\nPleeease options can be set in a `.pleeeaserc` file (JSON-like), for example:\n\n```javascript\n{\n\t\"input\": [\"foo.css\"],\n\t\"output\": \"bar.css\",\n\t\"fallbacks\": {\n\t\t\"autoprefixer\": true\n\t},\n\t\"optimizers\": {\n\t\t\"minifier\": false\n\t}\n}\n```\n\n* `input` is an array of files (default `[*.css]`)\n* `output` is the path to the compiled file (default `app.min.css`)\n\nFor other options, see below.\n\n###With Brunch\n\nIf you're using [Brunch](http://brunch.io), see [pleeease-brunch](https://github.com/iamvdo/pleeease-brunch)\n\n##Options\n\nThese are the default options for now:\n\n* `fallbacks`:\n\t* `autoprefixer`: `true`\n\t* `variables`: `true`\n\t* `rem`: `true`\n\t* `pseudoElements`: `true`\n* `optimizers`:\n\t* `import`: `true`\n\t* `minifier`: `true`\n\t* `mqpacker`: `true`\n\nAll options can be disabled with `false` keyword or modified using each postprocessor options.\n\n###fallbacks.autoprefixer\n\nAdd support for [Autoprefixer](https://github.com/ai/autoprefixer) that add vendor prefixes to CSS. Add options as an array:\n\n```javascript\n// set options\nvar options = {\n\tfallbacks: {\n\t\tautoprefixer: ['last 4 versions', 'Android 2.3']\n\t}\n}\n```\n\n```javascript\n// .pleeeaserc file\n{\n\t\"fallbacks\": {\n\t\t\"autoprefixer\": [\"last 4 versions\", \"Android 2.3\"]\n\t}\n}\n```\n\nSee [available options for Autoprefixer](https://github.com/ai/autoprefixer#browsers).\n\n###fallbacks.variables\n\nAdd support for a \"not so bad\" [CSS variables polyfill](https://github.com/iamvdo/postcss-vars). There are no options.\n\n###fallbacks.rem\n\nAdd support for [pixrem](https://github.com/iamvdo/node-pixrem) that generates pixel fallbacks for rem units. Add options as an array:\n\n```javascript\n// set options\nvar options = {\n\tfallbacks: {\n\t\trem: ['16px', {replace: true}]\n\t}\n}\n```\n\n```javascript\n// .pleeeaserc file\n{\n\t\"fallbacks\": {\n\t\t\"rem\": [\"16px\", {\"replace\": true}]\n\t}\n}\n```\n\nSee [available options for pixrem](https://github.com/iamvdo/node-pixrem#parameters).\n\nFor now, this uses a fork from [pixrem](https://github.com/robwierzbowski/node-pixrem) until the [PR will be accepted or not](https://github.com/robwierzbowski/node-pixrem/pull/10).\n\n###fallbacks.pseudoElements\n\nConvert pseudo-elements using CSS3 syntax (two-colons notation like `::after`, `::before`, `::first-line` and `::first-letter`) with the old one, using only one colon (useful for IE8 support).\n\n```css\n.element::after {\n\t/* you write */\n}\n```\n\n```css\n.element:after {\n\t/* you get */\n}\n```\n\n###optimizers.import\n\nInline `@import` styles with relative paths (absolute ones will be unaffected). `@import` including media-queries are not changed either.\n\nYou can use the CSS syntax you want:\n\n```css\n@import \"file.css\";\n@import url(file.css);\n@import url(\"http://foo.com/bar.css\"); /* not imported */\n@import url(\"file.css\") screen and (max-width: 35em); /* not imported */\n```\n\n###optimizers.minifier\n\nAdd support for [CSS Wring](https://github.com/hail2u/node-csswring), a CSS minifier. There are no options.\n\n###optimizers.mqpacker\n\nAdd support for [MQ Packer](https://github.com/hail2u/node-css-mqpacker) that pack same CSS media query rules into one media query rule. There are no options.\n\n##More\n\nMore postprocess tasks are coming, mainly fallbacks (eg. CSS filters, rgba/hsla functions, etc.). If you want more, open an issue!\n\n##Changelog\n\n###0.3.0 (2014-05-19)\n\n* Add `@import` processor\n* Refactor default options\n\n##Licence\n\nMIT\n\nVincent De Oliveira\n",
35
+ "readmeFilename": "README.md",
36
+ "_id": "pleeease@0.3.0",
37
+ "_shasum": "6f0eb4bc9bfffc3bdaeb9a7699227480c9575b33",
38
+ "_from": "pleeease@",
39
+ "_resolved": "https://registry.npmjs.org/pleeease/-/pleeease-0.3.0.tgz"
40
+ }
@@ -0,0 +1,112 @@
1
+ // Jasmine unit tests
2
+ // To run tests, run these commands from the project root:
3
+ // 1. `npm install -g jasmine-node`
4
+ // 2. `jasmine-node spec`
5
+
6
+ 'use strict';
7
+ var fs = require('fs'),
8
+ path = require('path'),
9
+ pleeease = require('../lib/'),
10
+ options = require('../lib/options');
11
+
12
+ beforeEach(function() {
13
+ options.optimizers.minifier = false;
14
+ });
15
+
16
+ describe('pleeease', function () {
17
+
18
+ it('should generate -webkit- prefixes for calc() (support iOS6)', function () {
19
+ // css
20
+ var css = fs.readFileSync(path.join(__dirname, 'prefixes.css'));
21
+ var expected = '.elem { width: -webkit-calc(100% - 50px); width: calc(100% - 50px); }';
22
+ // options
23
+ options.fallbacks.autoprefixer = ['iOS 6'];
24
+ // process
25
+ var processed = pleeease.process(css, options);
26
+
27
+ expect(processed).toBe(expected);
28
+ });
29
+
30
+ it('should evaluate variables', function () {
31
+ // css
32
+ var css = ':root { --color-primary: red; } .elem { color: var(--color-primary); }';
33
+ var expected = ':root { --color-primary: red; } .elem { color: red; }';
34
+ // options
35
+ options.fallbacks.variables = true;
36
+ // process
37
+ var processed = pleeease.process(css, options);
38
+
39
+ expect(processed).toBe(expected);
40
+ });
41
+
42
+ it('should evaluate variables in variables', function () {
43
+ // css
44
+ var css = ':root { --color-primary: red; --color-secondary: var(--color-primary); } .elem { color: var(--color-secondary); }';
45
+ var expected = ':root { --color-primary: red; --color-secondary: var(--color-primary); } .elem { color: red; }';
46
+ // options
47
+ options.fallbacks.variables = true;
48
+ // process
49
+ var processed = pleeease.process(css, options);
50
+
51
+ expect(processed).toBe(expected);
52
+ });
53
+
54
+ it('should replace pseudo-elements syntax', function () {
55
+ // css
56
+ var css = '.test::after, .test::before { content: \'\' }';
57
+ var expected = '.test:after, .test:before { content: \'\' }';
58
+ // options
59
+ options.fallbacks.pseudoElements = true;
60
+ // process
61
+ var processed = pleeease.process(css, options);
62
+
63
+ expect(processed).toBe(expected);
64
+ });
65
+
66
+ it('should replace pseudo-elements syntax in media-queries', function () {
67
+ // css
68
+ var css = '@media screen { .test::after, .test::before { content: \'\' } }';
69
+ var expected = '@media screen { .test:after, .test:before { content: \'\' } }';
70
+ // options
71
+ options.fallbacks.pseudoElements = true;
72
+ // process
73
+ var processed = pleeease.process(css, options);
74
+
75
+ expect(processed).toBe(expected);
76
+ });
77
+
78
+ it('should minify when asked', function() {
79
+ //css
80
+ var css = '.elem {\n' +
81
+ 'color: #f39;\n' +
82
+ '}';
83
+ var expected = '.elem{color:#f39}';
84
+ // options
85
+ options.optimizers.minifier = true;
86
+ // process
87
+ var processed = pleeease.process(css, options);
88
+
89
+ expect(processed).toBe(expected);
90
+ });
91
+
92
+ it('should combine files', function() {
93
+ var compile = function (inputs, options) {
94
+ // get inputs files
95
+ var CSS = inputs.map(function(input) {
96
+ return fs.readFileSync(input).toString();
97
+ });
98
+ // options
99
+ options.fallbacks.autoprefixer = true;
100
+ options.optimizers.import = false;
101
+ // fixed CSS
102
+ return pleeease.process(CSS.join('\n'), options);
103
+ };
104
+
105
+ // process
106
+ var processed = compile(['test/foo.css', 'test/bar.css'], options);
107
+ var expected = fs.readFileSync('test/app.min.css').toString();
108
+
109
+ expect(processed).toBe(expected);
110
+ });
111
+
112
+ });