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,50 @@
1
+ {
2
+ "name": "pixrem",
3
+ "description": "A CSS post-processor that generates pixel fallbacks for rem units.",
4
+ "version": "0.1.4",
5
+ "homepage": "https://github.com/robwierzbowski/node-pixrem",
6
+ "author": {
7
+ "name": "Rob Wierzbowski",
8
+ "email": "hello@robwierzbowski.com",
9
+ "url": "http://robwierzbowski.com"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git://github.com/robwierzbowski/node-pixrem.git"
14
+ },
15
+ "bugs": {
16
+ "url": "https://github.com/robwierzbowski/node-pixrem/issues"
17
+ },
18
+ "licenses": [
19
+ {
20
+ "type": "BSD-new"
21
+ }
22
+ ],
23
+ "main": "lib/pixrem.js",
24
+ "engines": {
25
+ "node": ">=0.10.0",
26
+ "npm": ">=1.2.10"
27
+ },
28
+ "scripts": {
29
+ "test": "jasmine-node spec"
30
+ },
31
+ "dependencies": {
32
+ "postcss": "~0.3.0"
33
+ },
34
+ "devDependencies": {
35
+ "jasmine-node": "~1.11.0"
36
+ },
37
+ "keywords": [
38
+ "css",
39
+ "parser",
40
+ "postproccessor",
41
+ "rem",
42
+ "responsive"
43
+ ],
44
+ "readme": "# Pixrem\n\n[![Build Status](https://travis-ci.org/robwierzbowski/node-pixrem.png?branch=master)](https://travis-ci.org/robwierzbowski/node-pixrem)\n\nA CSS post-processor that generates pixel fallbacks for rem units. \nWritten with [PostCSS](https://github.com/ai/postcss). \nAdd it to your build process with [grunt-pixrem](https://github.com/robwierzbowski/grunt-pixrem). \n\n## Installation\n\n`npm install --save pixrem`\n\n## Usage\n\nPixrem is a CSS post-processor that, given CSS and a root em value, returns CSS with pixel unit fallbacks or replacements. Check the [browser data](http://caniuse.com/rem): if you want to use rem units and support < IE9, Opera Mini, or older Opera Mobile, this post-processor is for you.\n\n### Example\n\n```js\n'use strict';\nvar fs = require('fs');\nvar pixrem = require('pixrem');\nvar css = fs.readFileSync('main.css', 'utf8');\nvar processedCss = pixrem.process(css, '200%');\n\nfs.writeFile('main.with-fallbacks.css', processedCss, function (err) {\n if (err) {\n throw err;\n }\n console.log('IE8, you\\'re welcome.');\n});\n```\n\nPixrem takes this:\n\n```css\n.sky {\n margin: 2.5rem 2px 3em 100%;\n color: blue;\n}\n\n@media screen and (min-width: 20rem) {\n .leaf {\n margin-bottom: 1.333rem;\n font-size: 1.5rem;\n }\n}\n```\n\nAnd returns this:\n\n```css\n.sky {\n margin: 80px 2px 3em 100%;\n margin: 2.5rem 2px 3em 100%;\n color: blue;\n}\n\n@media screen and (min-width: 20rem) {\n .leaf {\n margin-bottom: 42px;\n margin-bottom: 1.333rem;\n font-size: 48px;\n font-size: 1.5rem;\n }\n}\n```\n\n### Parameters\n\n#### css\n\nType: `String` \n\nSome CSS to process.\n\n#### rootvalue\n\nType: `String | Null` \nDefault: `16px` \n\nThe root element font size. Can be px, rem, em, percent, or unitless pixel value.\n\n#### options\n\nType: `Object | Null` \nDefault: `{ replace: false }` \n\n- `replace` replaces rules containing rems instead of adding fallbacks.\n\n## Contribute\n\nReport bugs and feature proposals in the [Github issue tracker](https://github.com/robwierzbowski/node-pixrem/issues). Run tests with jasmine-node. In lieu of a formal styleguide, take care to maintain the existing coding style. \n\n## Release History\n\n0.1.4, March 6, 2014: Code optimization from AI. \n0.1.3, Dec 14, 2013: Fix regex for < 0 values. \n0.1.1, 0.1.2, Dec 14, 2013: Documentation improvements. \n0.1.0, Dec 14, 2013: Initial release. \n\n## License\n\n[MIT](http://en.wikipedia.org/wiki/MIT_License)\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/robwierzbowski/node-pixrem/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n",
45
+ "readmeFilename": "README.md",
46
+ "_id": "pixrem@0.1.4",
47
+ "_shasum": "d5a5fd72dcfe86301711372a602994fce442dd5e",
48
+ "_from": "https://github.com/iamvdo/node-pixrem/tarball/master",
49
+ "_resolved": "https://github.com/iamvdo/node-pixrem/tarball/master"
50
+ }
@@ -0,0 +1,78 @@
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
+ var pixrem = require('../lib/pixrem');
9
+ var css = '.rule { font-size: 2rem }';
10
+
11
+ console.log(pixrem);
12
+
13
+ describe('pixrem', function () {
14
+
15
+ it('should generate fallbacks using default settings', function () {
16
+ var expected = '.rule { font-size: 32px; font-size: 2rem }';
17
+ var processed = pixrem.process(css);
18
+
19
+ expect(processed).toBe(expected);
20
+ });
21
+
22
+ it('should generate fallbacks with a pixel root em value', function () {
23
+ var expected = '.rule { font-size: 40px; font-size: 2rem }';
24
+ var processed = pixrem.process(css, '20px');
25
+
26
+ expect(processed).toBe(expected);
27
+ });
28
+
29
+ it('should generate fallbacks with a em root em value', function () {
30
+ var expected = '.rule { font-size: 48px; font-size: 2rem }';
31
+ var processed = pixrem.process(css, '1.5em');
32
+
33
+ expect(processed).toBe(expected);
34
+ });
35
+
36
+ it('should generate fallbacks with a rem root em value', function () {
37
+ var expected = '.rule { font-size: 56px; font-size: 2rem }';
38
+ var processed = pixrem.process(css, '1.75rem');
39
+
40
+ expect(processed).toBe(expected);
41
+ });
42
+
43
+ it('should generate fallbacks with a percent root em value', function () {
44
+ var expected = '.rule { font-size: 48px; font-size: 2rem }';
45
+ var processed = pixrem.process(css, '150%');
46
+
47
+ expect(processed).toBe(expected);
48
+ });
49
+
50
+ it('should generate fallbacks with a unitless root em value', function () {
51
+ var expected = '.rule { font-size: 36px; font-size: 2rem }';
52
+ var processed = pixrem.process(css, '18');
53
+
54
+ expect(processed).toBe(expected);
55
+ });
56
+
57
+ it('should replace rules with fallbacks when option.replace is true', function () {
58
+ var expected = '.rule { font-size: 40px }';
59
+ var processed = pixrem.process(css, '20px', { replace: true });
60
+
61
+ expect(processed).toBe(expected);
62
+ });
63
+
64
+ it('should generate integer fallbacks, rounded down', function () {
65
+ var expected = '.rule { font-size: 49px; font-size: 2rem }';
66
+ var processed = pixrem.process(css, '155%');
67
+
68
+ expect(processed).toBe(expected);
69
+ });
70
+
71
+ it('should handle < 1 values and values without a leading 0', function () {
72
+ var css = '.rule { margin: 0.5rem .5rem 0rem -2rem }';
73
+ var expected = '.rule { margin: 8px 8px 0px -32px; margin: 0.5rem .5rem 0rem -2rem }';
74
+ var processed = pixrem.process(css);
75
+
76
+ expect(processed).toBe(expected);
77
+ });
78
+ });
@@ -0,0 +1,84 @@
1
+ postcss-vars
2
+ ============
3
+
4
+ Add a "not so bad" CSS custom properties support to your CSS, using [PostCSS](https://github.com/ai/postcss). **This is not a polyfill**. Native custom properties are way more powerful, due to cascade and inheritance.
5
+
6
+ Largely inspired by [rework-vars](https://github.com/reworkcss/rework-vars).
7
+
8
+ ##Install
9
+
10
+ ```js
11
+ npm install postcss-vars
12
+ ```
13
+
14
+ ##Use
15
+
16
+ Only variables defined in `:root` (and not in media-queries) will be used. Let's take this css:
17
+
18
+ ```css
19
+ :root {
20
+ --color-one: blue;
21
+ --color-two: green;
22
+ --color-three: var(--color-two);
23
+ }
24
+ .elem {
25
+ color: var(--color-one);
26
+ }
27
+ .item {
28
+ background: linear-gradient(var(--color-two), red);
29
+ }
30
+ @media (min-width: 50em) {
31
+ .elem {
32
+ color: var(--color-two);
33
+ }
34
+ }
35
+ ```
36
+
37
+ Fix variables, and you will get the following output:
38
+
39
+ ```css
40
+ :root {
41
+ --color-one: blue;
42
+ --color-two: green;
43
+ --color-three: var(--color-two);
44
+ }
45
+ .elem {
46
+ color: blue;
47
+ }
48
+ .item {
49
+ background: linear-gradient(green, red);
50
+ }
51
+ @media (min-width: 50em) {
52
+ .elem {
53
+ color: green;
54
+ }
55
+ }
56
+ ```
57
+
58
+ ##API
59
+
60
+ ###processor
61
+
62
+ This is the core function. Combine it with others PostCSS plugins, such as Autoprefixer:
63
+
64
+ ```js
65
+ var autoprefixer = require('autoprefixer'),
66
+ postcssVars = require('postcss-vars'),
67
+ postcss = require('postcss');
68
+ var fixed = postcss().
69
+ use(postcssVars.processor).
70
+ use(autoprefixer.postcss).
71
+ process(css).css;
72
+ ```
73
+
74
+ ###postcss
75
+
76
+ This is the full process function. Pass the `css` as the first argument and grab your fixed CSS.
77
+
78
+ ```js
79
+ var postcssVars = require('postcss-vars');
80
+ var fixed = postcssVars.postcss(css).css;
81
+ ```
82
+
83
+ ##License
84
+ MIT
@@ -0,0 +1,91 @@
1
+ var postcss = require('postcss');
2
+ var variables = [];
3
+ var varStartIdentifier = '--';
4
+ var refStartIdentifier = 'var(';
5
+
6
+ var _process = function (css) {
7
+
8
+ // for each rules
9
+ css.eachRule(function (rule) {
10
+
11
+ // if selector is :root
12
+ if (rule.selectors.length === 1 && rule.selectors[0] === ':root' && rule.parent.type === 'root') {
13
+
14
+ rule.each(function (decl) {
15
+ if (decl.type === 'decl' && decl.prop.indexOf(varStartIdentifier) === 0) {
16
+ // store all variables
17
+ variables[decl.prop] = decl.value;
18
+ }
19
+ });
20
+
21
+ // else, it's not :root
22
+ } else {
23
+
24
+ rule.each(function (decl) {
25
+ if (decl.type === 'decl' && decl.value.indexOf(refStartIdentifier) !== -1) {
26
+ decl.value = _replaceValue(decl.value);
27
+ }
28
+ });
29
+
30
+ }
31
+
32
+ });
33
+
34
+ return css;
35
+
36
+ };
37
+
38
+ var _replaceValue = function (value) {
39
+
40
+ // matches `var(name[, fallback])`, captures 'name' and 'fallback'
41
+ var regexpVar = /\bvar\(([\w-]+)(?:\s*,\s*)?(.*)?\)/;
42
+ // matches `var()`
43
+ var regexpEmptyVar = /\bvar\(\s*\)/;
44
+
45
+ var valueLen = value.length;
46
+ var beginSlice = value.indexOf(refStartIdentifier);
47
+ var endSlice = beginSlice + refStartIdentifier.length;
48
+ var depth = 1;
49
+ var currentChar;
50
+ var cssVariable;
51
+
52
+ // find the closing `)` of the CSS variable function,
53
+ // accounting for nested functions
54
+ while (endSlice < valueLen && depth > 0) {
55
+ currentChar = value.charAt(endSlice);
56
+ if (currentChar == '(') depth += 1;
57
+ if (currentChar == ')') depth -= 1;
58
+ endSlice += 1;
59
+ }
60
+
61
+ if (depth > 0) throw new Error('postcss-vars: missing closing ")" in the value "' + value + '"');
62
+
63
+ cssVariable = value.slice(beginSlice, endSlice);
64
+
65
+ if (regexpEmptyVar.test(cssVariable)) throw new Error('postcss-vars: var() must contain a non-whitespace string');
66
+
67
+ cssReplacement = cssVariable.replace(regexpVar, function(_, name, fallback){
68
+ var replacement = variables[name];
69
+ if (!replacement && !fallback) throw new Error('postcss-vars: variable "' + name + '" is undefined');
70
+ if (!replacement && fallback) return fallback;
71
+ return replacement;
72
+ });
73
+
74
+ // resolve the variable
75
+ value = value.split(cssVariable).join(cssReplacement);
76
+
77
+ // recursively resolve any remaining variables
78
+ if (/\bvar\(/.test(value)) {
79
+ value = _replaceValue(value);
80
+ }
81
+
82
+ return value;
83
+
84
+ };
85
+
86
+ var _postcss = function (css, opts) {
87
+ return postcss().use(this.processor).process(css, opts);
88
+ };
89
+
90
+ exports.processor = _process;
91
+ exports.postcss = _postcss;
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "postcss-vars",
3
+ "version": "0.1.0",
4
+ "author": {
5
+ "name": "Vincent De Oliveira"
6
+ },
7
+ "description": "\"Not so bad\" CSS custom properties' postprocessor",
8
+ "main": "./lib/index",
9
+ "dependencies": {
10
+ "postcss": "0.3.4"
11
+ },
12
+ "readme": "postcss-vars\r\n============\r\n\r\nAdd a \"not so bad\" CSS custom properties support to your CSS, using [PostCSS](https://github.com/ai/postcss). **This is not a polyfill**. Native custom properties are way more powerful, due to cascade and inheritance.\r\n\r\nLargely inspired by [rework-vars](https://github.com/reworkcss/rework-vars).\r\n\r\n##Install\r\n\r\n```js\r\nnpm install postcss-vars\r\n```\r\n\r\n##Use\r\n\r\nOnly variables defined in `:root` (and not in media-queries) will be used. Let's take this css:\r\n\r\n```css\r\n:root {\r\n\t--color-one: blue;\r\n\t--color-two: green;\r\n\t--color-three: var(--color-two);\r\n}\r\n.elem {\r\n\tcolor: var(--color-one);\r\n}\r\n.item {\r\n\tbackground: linear-gradient(var(--color-two), red);\r\n}\r\n@media (min-width: 50em) {\r\n\t.elem {\r\n\t\tcolor: var(--color-two);\r\n\t}\r\n}\r\n```\r\n\r\nFix variables, and you will get the following output:\r\n\r\n```css\r\n:root {\r\n\t--color-one: blue;\r\n\t--color-two: green;\r\n\t--color-three: var(--color-two);\r\n}\r\n.elem {\r\n\tcolor: blue;\r\n}\r\n.item {\r\n\tbackground: linear-gradient(green, red);\r\n}\r\n@media (min-width: 50em) {\r\n\t.elem {\r\n\t\tcolor: green;\r\n\t}\r\n}\r\n```\r\n\r\n##API\r\n\r\n###processor\r\n\r\nThis is the core function. Combine it with others PostCSS plugins, such as Autoprefixer:\r\n\r\n```js\r\nvar autoprefixer = require('autoprefixer'),\r\n\tpostcssVars = require('postcss-vars'),\r\n\tpostcss = require('postcss');\r\nvar fixed = postcss().\r\n\t\t\tuse(postcssVars.processor).\r\n\t\t\tuse(autoprefixer.postcss).\r\n\t\t\tprocess(css).css;\r\n```\r\n\r\n###postcss\r\n\r\nThis is the full process function. Pass the `css` as the first argument and grab your fixed CSS.\r\n\r\n```js\r\nvar postcssVars = require('postcss-vars');\r\nvar fixed = postcssVars.postcss(css).css;\r\n```\r\n\r\n##License\r\nMIT",
13
+ "readmeFilename": "README.md",
14
+ "_id": "postcss-vars@0.1.0",
15
+ "_shasum": "f2f8ae314a471c852f9a9a64235208bf5dca75fa",
16
+ "_from": "postcss-vars@~0.1.0",
17
+ "_resolved": "https://registry.npmjs.org/postcss-vars/-/postcss-vars-0.1.0.tgz"
18
+ }
@@ -0,0 +1,42 @@
1
+ ## 0.3.4
2
+ * Better space symbol detect to read UTF-8 BOM correctly.
3
+
4
+ ## 0.3.3
5
+ * Remove source map hacks by using new Mozilla’s `source-map` (by Simon Lydell).
6
+
7
+ ## 0.3.2
8
+ * Add URI encoding support for inline source maps.
9
+
10
+ ## 0.3.1
11
+ * Fix relative paths from previous source map.
12
+ * Safer space split in `Rule#selectors` (by Simon Lydell).
13
+
14
+ ## 0.3 “Prince Seere”
15
+ * Add `Comment` node for comments between declarations or rules.
16
+ * Add source map annotation comment to output CSS.
17
+ * Allow to inline source map to annotation comment by data:uri.
18
+ * Fix source maps on Windows.
19
+ * Fix source maps for styles in subdirectory (by @nDmitry and @lydell).
20
+ * Autodetect previous source map.
21
+ * Add `first` and `last` shortcuts to container nodes.
22
+ * Parse `!important` to separated property in `Declaration`.
23
+ * Allow to break iteration by returning `false`.
24
+ * Copy code style to new nodes.
25
+ * Add `eachInside` method to recursivelly iterate all nodes.
26
+ * Add `selectors` shortcut to get selectors array.
27
+ * Add `toResult` method to `Rule` to simplify work with several input files.
28
+ * Clean declaration’s `value`, rule’s `selector` and at-rule’s `params`
29
+ by storing spaces in `between` property.
30
+
31
+ ## 0.2 “Duke Dantalion”
32
+ * Add source map support.
33
+ * Add shortcuts to create nodes.
34
+ * Method `process()` now returns object with `css` and `map` keys.
35
+ * Origin CSS file option was renamed from `file` to `from`.
36
+ * Rename `Node#remove()` method to `removeSelf()` to fix name conflict.
37
+ * Node source was moved to `source` property with origin file
38
+ and node end position.
39
+ * You can set own stringify function.
40
+
41
+ ## 0.1 “Count Andromalius”
42
+ * Initial release.
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,732 @@
1
+ # PostCSS
2
+
3
+ PostCSS is a framework for CSS postprocessors,
4
+ to modify CSS with JavaScript.
5
+
6
+ It takes care of most common CSS tool tasks:
7
+
8
+ 1. parses CSS;
9
+ 2. gives you usable JS API to edit CSS node tree;
10
+ 3. dumps modified node tree into CSS string;
11
+ 4. generates (or modifies existent) source map for your changes;
12
+
13
+ You can use this framework to write you own:
14
+
15
+ * CSS minifier or beautifizer.
16
+ * CSS polyfills.
17
+ * Grunt plugin to generate sprites, include `data-uri` images
18
+ or any other works.
19
+ * Text editor plugin to automate CSS routine.
20
+ * Command-line CSS tool.
21
+
22
+ Sponsored by [Evil Martians](http://evilmartians.com/).
23
+
24
+ ## Built with PostCSS
25
+
26
+ * [Autoprefixer] adds vendor prefixes by Can I Use data.
27
+ * [grunt-pixrem], `rem` unit polyfill.
28
+ * [CSS MQPacker] joins same media queries.
29
+
30
+ [Autoprefixer]: https://github.com/ai/autoprefixer
31
+ [grunt-pixrem]: https://github.com/robwierzbowski/grunt-pixrem
32
+ [CSS MQPacker]: https://github.com/hail2u/node-css-mqpacker
33
+
34
+ ## Quick Example
35
+
36
+ Let’s fix forgotten `content` property in `::before` and `::after`:
37
+
38
+ ```js
39
+ var postcss = require('postcss');
40
+
41
+ var contenter = postcss(function (css) {
42
+ css.eachRule(function (rule) {
43
+ if ( rule.selector.match(/::(before|after)/) ) {
44
+ // In every ::before/::after rule
45
+
46
+ // Did we forget content property?
47
+ var good = rule.some(function (i) { return i.prop == 'content'; });
48
+
49
+ if ( !good ) {
50
+ // Add content: "" if we forget it
51
+ rule.prepend({ prop: 'content', value: '""' });
52
+ }
53
+
54
+ }
55
+ });
56
+ });
57
+ ```
58
+
59
+ And then CSS with forgotten `content`:
60
+
61
+ ```css
62
+ a::before {
63
+ width: 10px;
64
+ height: 10px
65
+ }
66
+ ```
67
+
68
+ will be fixed by our new `contenter`:
69
+
70
+ ```js
71
+ var fixed = contenter.process(css).css;
72
+ ```
73
+
74
+ to:
75
+
76
+ ```css
77
+ a::before {
78
+ content: "";
79
+ width: 10px;
80
+ height: 10px
81
+ }
82
+ ```
83
+
84
+ ## Features
85
+
86
+ ### Source Map
87
+
88
+ PostCSS generates source map for its changes:
89
+
90
+ ```js
91
+ result = processor.process(css, { map: true, from: 'from.css', to: 'to.css' });
92
+ result.css // String with processed CSS
93
+ result.map // Source map
94
+ ```
95
+
96
+ And modifies source map from previous step (like Sass preprocessor):
97
+
98
+ ```js
99
+ var sassMap = fs.readFileSync('from.sass.css.map');
100
+ processor.process(css, { map: sassMap, from: 'from.sass.css', to: 'to.css' });
101
+ ```
102
+
103
+ ### Preserves code formatting and indentations
104
+
105
+ PostCSS will not change any byte of a rule if you don’t modify its node:
106
+
107
+ ```js
108
+ postcss(function (css) { }).process(css).css == css;
109
+ ```
110
+
111
+ And when you modify CSS nodes, PostCSS will try to copy coding style:
112
+
113
+ ```js
114
+ contenter.process("a::before{color:black}")
115
+ // a::before{content:'';color:black}
116
+
117
+ contenter.process("a::before {\n color: black;\n }")
118
+ // a::before {
119
+ // content: '';
120
+ // color: black;
121
+ // }
122
+ ```
123
+
124
+ ## Why PostCSS Better Than …
125
+
126
+ ### Preprocessors
127
+
128
+ Preprocessors (like Sass or Stylus) give us special language with variables,
129
+ mixins, statements and compile it to CSS. Compass, nib and other mixins
130
+ libraries use these languages to work with prefixes, sprites and inline images.
131
+
132
+ But Sass and Stylus languages were created to be syntax-sugar for CSS.
133
+ Writing really complicated programs using preporcessor languages
134
+ is very difficult. [Autoprefixer] is absolutely impossible to implement
135
+ on top of Sass.
136
+
137
+ PostCSS gives you comfort and power of JS or CoffeeScript to working with CSS.
138
+ You can do really magic things with wide range of [npm] libraries.
139
+
140
+ But postprocessors are not enemies for preprocessors. Sass and Stylus are still
141
+ the best way to improve readability and add some syntax sugar to CSS.
142
+ You can easily combine preprocessors and postprocessors
143
+ (and PostCSS will also update source map from Sass or Stylus).
144
+
145
+ [Autoprefixer]: https://github.com/ai/autoprefixer
146
+ [npm]: https://npmjs.org/
147
+
148
+ ### RegExp
149
+
150
+ Some Grunt plugins modify CSS with regular expressions but using a CSS parser
151
+ and a node tree is a much safer way to edit CSS. Also, regexps will break
152
+ source maps generated by preprocessors.
153
+
154
+ ### CSS Parsers
155
+
156
+ There are a lot of good CSS parsers, like [Gonzales]. But they help you only
157
+ with first step.
158
+
159
+ Unlike them PostCSS gives you full source map support and useful high level API
160
+ (for example, safe iterators).
161
+
162
+ [Gonzales]: https://github.com/css/gonzales
163
+
164
+ ### Rework
165
+
166
+ [Rework] and PostCSS are very similar, but they has different targets.
167
+
168
+ Rework was created to build new CSS sublanguage to replace Stylus (like [Myth]).
169
+ PostCSS was created for CSS tools, which works in chain with legacy CSS code
170
+ (like Autoprefixer).
171
+
172
+ Because of this background difference, PostCSS:
173
+
174
+ * better works with source map, because it should update map from previous step
175
+ (like Sass compiling)
176
+ * saves all your spaces and code style, because it can be worked in text editor
177
+ plugins
178
+ * has safer parser, because it can be used for legacy code
179
+ * has high level API to clean your processor from common tasks
180
+
181
+ [Myth]: http://www.myth.io/
182
+ [Rework]: https://github.com/visionmedia/rework
183
+
184
+ ## Usage
185
+
186
+ ### Processor
187
+
188
+ The function `postcss(fn)` creates a processor from your function:
189
+
190
+ ```js
191
+ var postcss = require('postcss');
192
+
193
+ var processor = postcss(function (css) {
194
+ // Code to modify CSS
195
+ });
196
+ ```
197
+
198
+ If you want to combine multiple processors (and parse CSS only once),
199
+ you can add several functions using the `use(fn)` method:
200
+
201
+ ```js
202
+ var all = postcss().
203
+ use(prefixer).
204
+ use(minifing);
205
+ ```
206
+
207
+ Processor function can change the current CSS node tree:
208
+
209
+ ```js
210
+ postcss(function (css) {
211
+ css.append( /* new rule */ )
212
+ });
213
+ ```
214
+
215
+ or create a completely new CSS root node and return it instead:
216
+
217
+ ```js
218
+ postcss(function (css) {
219
+ var newCSS = postcss.root()
220
+ // Add rules and declarations
221
+ return newCSS;
222
+ });
223
+ ```
224
+
225
+ This generated processor transforms some CSS using `process(css, opts)` method:
226
+
227
+ ```js
228
+ var doubler = postcss(function (css) {
229
+ // Clone each declaration
230
+ css.eachDecl(function (decl) {
231
+ decl.parent.prepend( decl.clone() );
232
+ });
233
+ });
234
+
235
+ var css = "a { color: black; }";
236
+ var result = doubler.process(css);
237
+
238
+ result.css //=> "a { color: black; color: black; }"
239
+ ```
240
+
241
+ You can set the original CSS filename via `from` option and make syntax error
242
+ messages much more helpful:
243
+
244
+ ```js
245
+ var wrong = "a {";
246
+ processor.process(wrong, { from: 'main.css' });
247
+ //=> Can't parse CSS: Unclosed block at line 1:1 in main.css
248
+ ```
249
+
250
+ ### Multiple Inputs
251
+
252
+ The function `postcss()` generates processor only for one input.
253
+ If you need to process several inputs (like in files concatenation) you can use
254
+ `postcss.parse()`.
255
+
256
+ Let’s join two CSS with source map support in 5 lines of code:
257
+
258
+ ```js
259
+ var file1 = postcss.parse(css1, { from: 'a.css' });
260
+ var file2 = postcss.parse(css2, { from: 'b.css' });
261
+
262
+ file1.rules = file1.rules.concat( file2.rules );
263
+
264
+ var result = file1.toResult({ to: 'app.css', map: true });
265
+ ```
266
+
267
+ ### Source Map
268
+
269
+ PostCSS will generate a source map, if you set `map` option to `true`
270
+ in the `process(css, opts)` method.
271
+
272
+ You must set input and output CSS files paths (using `from` and `to`
273
+ options respectively) to generate correct source map.
274
+
275
+ ```js
276
+ var result = processor.process(css, {
277
+ map: true,
278
+ from: 'main.css',
279
+ to: 'main.out.css'
280
+ });
281
+
282
+ result.map //=> '{"version":3,"file":"main.out.css","sources":["main.css"],"names":[],"mappings":"AAAA,KAAI"}'
283
+
284
+ fs.writeFileSync('main.out.css.map', result.map);
285
+ ```
286
+
287
+ PostCSS can also modify previous source map (for example, from Sass
288
+ compilation). So if you compile Sass to CSS and then minify this CSS
289
+ by postprocessor, final source map will contain mapping from Sass code
290
+ to minified CSS.
291
+
292
+ Just set `map` option with an original source map (a string or a JS object):
293
+
294
+ ```js
295
+ var result = minifier.process(css, {
296
+ map: fs.readFileSync('main.sass.css.map'),
297
+ from: 'main.sass.css',
298
+ to: 'main.min.css'
299
+ });
300
+
301
+ result.map //=> Source map from main.sass to main.min.css
302
+ ```
303
+
304
+ PostCSS try to autodetect previous map file. For example, if you process `a.css`
305
+ and `a.css.map` is placed in same dir, PostCSS will read previous map and
306
+ generate new one. You can disable autodetection by `map: false`.
307
+
308
+ PostCSS, by default, will add annotation comment with path to new source map
309
+ file:
310
+
311
+ ```css
312
+ a { }
313
+ /*# sourceMappingURL=main.out.css.map */
314
+ ```
315
+
316
+ If you want to remove annotation, set `mapAnnotation` option to `false`.
317
+
318
+ Inline maps are also supported. If input CSS will contain annotation
319
+ from previous step with map in `data:uri`, PostCSS will update source map
320
+ with yours changes and inine new map back to output CSS.
321
+
322
+ Option `inlineMap` will force PostCSS to inline new map to CSS:
323
+
324
+ ```js
325
+ var result = minifier.process(css, {
326
+ from: 'main.css',
327
+ to: 'main.min.css',
328
+ inlineMap: true
329
+ });
330
+
331
+ result.map //=> undefined, because map is in CSS
332
+ result.css //=> "a{}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uY3NzIiwic291cmNlcyI6WyJtYWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFLIn0= */"
333
+ ```
334
+
335
+ ### Helpers
336
+
337
+ #### Vendor
338
+
339
+ PostCSS contains heigh optimized code to split vendor prefix:
340
+
341
+ ```js
342
+ var vendor = require('postcss/lib/vendor');
343
+
344
+ vendor.prefix('-moz-tab-size') //=> '-moz-'
345
+ vendor.unprefixed('-moz-tab-size') //=> 'tab-size'
346
+ ```
347
+
348
+ #### List
349
+
350
+ To safely split comma- or space-separated values (like in `background-image`
351
+ or `transform` ) with brackets and quotes support you can use `list` helper:
352
+
353
+ ```js
354
+ var list = require('postcss/lib/list');
355
+
356
+ list.space(image.value) //=> ['linear-gradient(white, black)', 'blue']
357
+ list.comma(transform.value) //=> ['color 200ms', 'background 200ms']
358
+ ```
359
+
360
+ ### Nodes
361
+
362
+ Processor function receives `Root` node with CSS node tree inside.
363
+
364
+ ```js
365
+ var processor = postcss(function (cssRoot) {
366
+ });
367
+ ```
368
+
369
+ There are 4 types of child nodes: `Comment`, `AtRule`, `Rule` and `Declaration`.
370
+ All nodes have `toString()` and `clone()` methods.
371
+
372
+ You can parse CSS and get a `Root` node by `postcss.parse(css, opts)` method:
373
+
374
+ ```js
375
+ var cssRoot = postcss.parse('a { }');
376
+ ```
377
+
378
+ All node‘s methods return current node, so you can build nice method chains:
379
+
380
+ ```js
381
+ root.append( rule1 ).append( rule2 ).toString();
382
+ ```
383
+
384
+ ### Node Source
385
+
386
+ Every node stores its origin file (if you set `from` option to `process`
387
+ or `parse` method) and position:
388
+
389
+ ```js
390
+ var root = postcss.parse(css, { from: 'main.css' });
391
+ var rule = root.rules[0];
392
+
393
+ rule.source.file //=> 'main.css'
394
+ rule.source.start //=> { line: 5, position: 1 }
395
+ rule.source.end //=> { line: 10, position: 5 }
396
+ ```
397
+
398
+ ### Whitespaces
399
+
400
+ All nodes (exclude `Root`) have `before` property with indentation
401
+ and all earlier spaces.
402
+
403
+ Nodes with children (`Root`, `AtRule` and `Rule`) contain also `after` property
404
+ with spaces after last child and before `}` or end of file.
405
+
406
+ Every `Declaration` has `between` property with colon, spaces and comments
407
+ between property name and value. `Rule` stores spaces and comments between
408
+ selector and `{` in `between` property. `AtRule` uses `between` also to store
409
+ spaces and comments before `{` or `;` for bodiless at-rule.
410
+
411
+ ```js
412
+ var root = postcss.parse("a {\n color: black;\n}\n");
413
+
414
+ root.rules[0].between //=> " " between selector and {
415
+ root.rules[0].decls[0].before //=> "\n " before color: black
416
+ root.rules[0].decls[0].between //=> ": " between property name and value
417
+ root.rules[0].after //=> "\n" before }
418
+ root.after //=> "\n" from end of file
419
+ ```
420
+
421
+ The simplest way to minify CSS is to set `before`, `between` and `after`
422
+ properties to an empty string:
423
+
424
+ ```js
425
+ var minifier = postcss(function (css) {
426
+ css.eachDecl(function (decl) {
427
+ decl.before = '';
428
+ decl.between = ':';
429
+ });
430
+ css.eachRule(function (rule) {
431
+ rule.before = '';
432
+ rule.between = '';
433
+ rule.after = '';
434
+ });
435
+ css.eachAtRule(function (atRule) {
436
+ atRule.before = '';
437
+ atRule.between = '';
438
+ atRule.after = '';
439
+ });
440
+ css.eachComment(function (comment) {
441
+ comment.removeSelf();
442
+ });
443
+ });
444
+
445
+ var css = "a {\n color:black\n}\n";
446
+ minifier.process(css).css //=> "a{color:black}"
447
+ ```
448
+
449
+ ### Raw Properties
450
+
451
+ Some CSS values (selectors, comment text, at-rule params and declaration values)
452
+ can contain comments. PostCSS will clean them from trailing spaces for you:
453
+
454
+ ```js
455
+ var root = postcss.parse("a /**/ b {}");
456
+ var rule = root.rules[0];
457
+
458
+ rule.selector //=> 'a b' trimmed and cleaned from comments
459
+ rule._selector.raw //=> 'a /**/ b' original raw value
460
+ ```
461
+
462
+ But PostCSS saves raw content to be able to stringify it to CSS, if you don’t
463
+ change origin value. As you can remember, PostCSS tries to save origin CSS
464
+ byte-to-byte, when it’s possible:
465
+
466
+ ```js
467
+ rule.toString() //=> 'a /**/ b {}' with comment
468
+
469
+ rule.selector = '.link b';
470
+ rule.toString() //=> '.link b {}' you change value and origin comment was gone
471
+ ```
472
+
473
+ ### Containers
474
+
475
+ `Root`, `AtRule` and `Rule` nodes can contain children in `rules` or `decls`
476
+ property.
477
+
478
+ There are common method to work with children:
479
+
480
+ * `append(newChild)` to add child at the end of children list.
481
+ * `prepend(newChild)` to add child at the beginning of children list.
482
+ * `insertBefore(existsChild, newChild)` to insert new child before some
483
+ existent child.
484
+ * `insertAfter(existsChild, newChild)` to insert new child after some
485
+ existent child.
486
+ * `remove(existsChild)` to remove child.
487
+ * `index(existsChild)` to return child index.
488
+ * `some(fn)` to return true if `fn` returns true on any child.
489
+ * `every(fn)` to return true if `fn` returns true on all children.
490
+
491
+ Methods `insertBefore`, `insertAfter` and `remove` can receive child node
492
+ or child index as an `existsChild` argument. Have in mind that child index works
493
+ much faster.
494
+
495
+ There are two shorcuts to get first and last child:
496
+
497
+ ```js
498
+ rule.first //=> First declaration in rule
499
+ rule.last //=> Last declaration in rule
500
+ ```
501
+
502
+ ### Children
503
+
504
+ `Comment`, `AtRule`, `Rule` and `Declaration` nodes should be wrapped
505
+ in other nodes.
506
+
507
+ All children contain `parent` property with parent node:
508
+
509
+ ```js
510
+ rule.decls[0].parent == rule;
511
+ ```
512
+
513
+ All children has `removeSelf()` method:
514
+
515
+ ```js
516
+ rule.decls[0].removeSelf();
517
+ ```
518
+
519
+ But `remove(index)` in parent with child index is much faster:
520
+
521
+ ```js
522
+ rule.each(function (decl, i) {
523
+ rule.remove(i);
524
+ });
525
+ ```
526
+
527
+ ### Iterators
528
+
529
+ All parent nodes have `each` method to iterate over children nodes:
530
+
531
+ ```js
532
+ root = postcss.parse('a { color: black; display: none }');
533
+
534
+ root.each(function (rule, i) {
535
+ if ( rule.type == 'rule' ) {
536
+ console.log(rule.selector, i); // Will log "a 0"
537
+ }
538
+ });
539
+
540
+ root.rules[0].each(function (decl, i) {
541
+ if ( rule.type != 'comment' ) {
542
+ console.log(decl.prop, i); // Will log "color 0" and "display 1"
543
+ }
544
+ });
545
+ ```
546
+
547
+ Unlike `for {}`-cycle construct or `Array#forEach()` this iterator is safe.
548
+ You can mutate children while iteration and it will fix current index:
549
+
550
+ ```js
551
+ rule.rules.forEach(function (decl, i) {
552
+ rule.prepend( decl.clone() );
553
+ // Will be infinity cycle, because on prepend current declaration become
554
+ // second and next index will go to current declaration again
555
+ });
556
+
557
+ rule.each(function (decl, i) {
558
+ rule.prepend( decl.clone() );
559
+ // Will work correct (once clone each declaration), because after prepend
560
+ // iterator index will be recalculated
561
+ });
562
+ ```
563
+
564
+ Because CSS have nested structure, PostCSS also contains recursive iterator
565
+ `eachInside`:
566
+
567
+ ```js
568
+ root.eachInside(function (node, i) {
569
+ console.log(node.type ' inside ' + parent.type);
570
+ });
571
+ ```
572
+
573
+ There are also shortcuts to recursive iterate all nodes of specific type:
574
+
575
+ ```js
576
+ root.eachDecl(function (decl, i) {
577
+ // Each declaration inside root
578
+ });
579
+
580
+ root.eachRule(function (rule, i) {
581
+ // Each rule inside root and any nested at-rules
582
+ });
583
+
584
+ root.eachAtRule(function (atRule, i) {
585
+ // Each at-rule inside root and any nested at-rules
586
+ });
587
+
588
+ root.eachComment(function (comment, i) {
589
+ // Each comment inside root
590
+ })
591
+ ```
592
+
593
+ ### Root Node
594
+
595
+ `Root` node contains entire CSS tree. Its children can be only `Comment`,
596
+ `AtRule` or `Rule` nodes in `rules` property.
597
+
598
+ You can create a new root using shortcut:
599
+
600
+ ```js
601
+ var root = postcss.root();
602
+ ```
603
+
604
+ Method `toString()` stringifies entire node tree to CSS string:
605
+
606
+ ```js
607
+ root = postcss.parse(css);
608
+ root.toString() == css;
609
+ ```
610
+
611
+ ### Comment Node
612
+
613
+ ```css
614
+ /* Block comment */
615
+ ```
616
+
617
+ PostCSS creates `Comment` nodes only for comments between rules or declarations.
618
+ Comments inside selectors, at-rules params, declaration values will be stored
619
+ in Raw property.
620
+
621
+ `Comment` has only one property: `text` with trimmed text inside comment.
622
+
623
+ ```js
624
+ comment.text //=> "Block comment"
625
+ ```
626
+
627
+ You can create a new comment using shortcut:
628
+
629
+ ```js
630
+ var comment = postcss.comment({ text: 'New comment' });
631
+ ```
632
+
633
+ ### AtRule Node
634
+
635
+ ```css
636
+ @charset 'utf-8';
637
+
638
+ @font-face {
639
+ font-family: 'Cool'
640
+ }
641
+
642
+ @media print {
643
+ img { display: none }
644
+ }
645
+ ```
646
+
647
+ `AtRule` has two own properties: `name` and `params`.
648
+
649
+ As you see, some at-rules don’t contain any children (like `@charset`
650
+ or `@import`), some of at-rules can contain only declarations
651
+ (like `@font-face` or `@page`), but most of them can contain rules
652
+ and nested at-rules (like `@media`, `@keyframes` and others).
653
+
654
+ Parser selects `AtRule` content type by its name. If you create `AtRule`
655
+ node manually, it will detect own content type with new child type on first
656
+ `append` or other add method call:
657
+
658
+ ```js
659
+ var atRule = postcss.atRule({ name: '-x-animations' });
660
+ atRule.rules //=> undefined
661
+ atRule.decls //=> undefined
662
+
663
+ atRule.append( postcss.rule({ selector: 'from' }) );
664
+ atRule.rules.length //=> 1
665
+ atRule.decls //=> undefined
666
+ ```
667
+
668
+ You can create a new at-rule using shortcut:
669
+
670
+ ```js
671
+ var atRule = postcss.atRule({ name: 'charset', params: 'utf-8' });
672
+ ```
673
+
674
+ ### Rule Node
675
+
676
+ ```css
677
+ a {
678
+ color: black;
679
+ }
680
+ ```
681
+
682
+ `Rule` node has `selector` property and contains `Declaration` and `Comment`
683
+ children in `decls` property.
684
+
685
+ There is `selectors` shortcut, which return array:
686
+
687
+ ```js
688
+ rule.selector //=> "a, b"
689
+ rule.selectors //=> ['a', 'b']
690
+ ```
691
+
692
+ You can miss `Declaration` constructor in `append` and other insert methods:
693
+
694
+ ```js
695
+ rule.append({ prop: 'color', value: 'black' });
696
+ ```
697
+
698
+ Property `semicolon` indicates if last declaration in rule has semicolon or not:
699
+
700
+ ```js
701
+ var root = postcss.parse('a { color: black }');
702
+ root.rules[0].semicolon //=> false
703
+
704
+ var root = postcss.parse('a { color: black; }');
705
+ root.rules[0].semicolon //=> true
706
+ ```
707
+
708
+ You can create a new rule using shortcut:
709
+
710
+ ```js
711
+ var rule = postcss.rule({ selector: 'a' });
712
+ ```
713
+
714
+ ### Declaration Node
715
+
716
+ ```css
717
+ color: black
718
+ ```
719
+
720
+ `Declaration` node has `prop`, `value` and `important` properties.
721
+
722
+ You can create a new declaration using this shortcut:
723
+
724
+ ```js
725
+ var decl = postcss.decl({ prop: 'color', value: 'black' });
726
+ ```
727
+
728
+ Or use short form in rule’s `append()` and other add methods:
729
+
730
+ ```js
731
+ rule.append({ prop: 'color', value: 'black' });
732
+ ```