Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Release 1.8

- Updated less.js to version 1.3.3
- Added automatic less.js updating
  - Added Node Package Manager
  - Implemented version checking + updating via NPM
  - Added 'automatically check for less.js updates'-setting
  - Added less.js updating to aboutForm
  • Loading branch information...
commit e5991da57b2c69fe54dbefb2f04fcf0e9b9fcfe6 1 parent 40dbf53
@marklagendijk authored
Showing with 28,020 additions and 70 deletions.
  1. +7 −1 Installer/WinLess.warsetup
  2. +47 −21 WinLess/Forms/aboutForm.Designer.cs
  3. +30 −2 WinLess/Forms/aboutForm.cs
  4. +18 −1 WinLess/Forms/mainForm.cs
  5. +27 −14 WinLess/Forms/settingsForm.Designer.cs
  6. +2 −0  WinLess/Forms/settingsForm.cs
  7. +52 −17 WinLess/LessCompiler.cs
  8. +1 −1  WinLess/Models/File.cs
  9. +2 −2 WinLess/Properties/AssemblyInfo.cs
  10. +2 −1  WinLess/Settings.cs
  11. +1,980 −0 WinLess/WinLess.csproj
  12. +15 −0 WinLess/node_modules/.bin/npm
  13. +6 −0 WinLess/node_modules/.bin/npm.cmd
  14. +7 −0 WinLess/node_modules/less/CHANGELOG.md
  15. +5 −0 WinLess/node_modules/less/lib/less/functions.js
  16. +1 −1  WinLess/node_modules/less/lib/less/index.js
  17. +2 −1  WinLess/node_modules/less/lib/less/parser.js
  18. +12 −6 WinLess/node_modules/less/lib/less/tree/call.js
  19. +2 −2 WinLess/node_modules/less/package.json
  20. +1 −0  WinLess/node_modules/less/test/css/functions.css
  21. +6 −0 WinLess/node_modules/less/test/css/mixins.css
  22. +1 −0  WinLess/node_modules/less/test/less/functions.less
  23. +7 −0 WinLess/node_modules/less/test/less/mixins.less
  24. +22 −0 WinLess/node_modules/npm/.npmignore
  25. +80 −0 WinLess/node_modules/npm/AUTHORS
  26. +65 −0 WinLess/node_modules/npm/LICENSE
  27. +138 −0 WinLess/node_modules/npm/Makefile
  28. +239 −0 WinLess/node_modules/npm/README.md
  29. +2 −0  WinLess/node_modules/npm/cli.js
  30. +33 −0 WinLess/node_modules/npm/configure
  31. +13 −0 WinLess/node_modules/npm/doc/api/bin.md
  32. +19 −0 WinLess/node_modules/npm/doc/api/bugs.md
  33. +22 −0 WinLess/node_modules/npm/doc/api/commands.md
  34. +45 −0 WinLess/node_modules/npm/doc/api/config.md
  35. +34 −0 WinLess/node_modules/npm/doc/api/deprecate.md
  36. +19 −0 WinLess/node_modules/npm/doc/api/docs.md
  37. +24 −0 WinLess/node_modules/npm/doc/api/edit.md
  38. +18 −0 WinLess/node_modules/npm/doc/api/explore.md
  39. +30 −0 WinLess/node_modules/npm/doc/api/help-search.md
  40. +29 −0 WinLess/node_modules/npm/doc/api/init.md
  41. +19 −0 WinLess/node_modules/npm/doc/api/install.md
  42. +33 −0 WinLess/node_modules/npm/doc/api/link.md
  43. +26 −0 WinLess/node_modules/npm/doc/api/load.md
  44. +56 −0 WinLess/node_modules/npm/doc/api/ls.md
  45. +115 −0 WinLess/node_modules/npm/doc/api/npm.md
  46. +13 −0 WinLess/node_modules/npm/doc/api/outdated.md
  47. +31 −0 WinLess/node_modules/npm/doc/api/owner.md
  48. +19 −0 WinLess/node_modules/npm/doc/api/pack.md
  49. +15 −0 WinLess/node_modules/npm/doc/api/prefix.md
  50. +17 −0 WinLess/node_modules/npm/doc/api/prune.md
  51. +30 −0 WinLess/node_modules/npm/doc/api/publish.md
  52. +16 −0 WinLess/node_modules/npm/doc/api/rebuild.md
  53. +22 −0 WinLess/node_modules/npm/doc/api/restart.md
  54. +15 −0 WinLess/node_modules/npm/doc/api/root.md
  55. +27 −0 WinLess/node_modules/npm/doc/api/run-script.md
  56. +35 −0 WinLess/node_modules/npm/doc/api/search.md
  57. +20 −0 WinLess/node_modules/npm/doc/api/shrinkwrap.md
  58. +13 −0 WinLess/node_modules/npm/doc/api/start.md
  59. +13 −0 WinLess/node_modules/npm/doc/api/stop.md
  60. +28 −0 WinLess/node_modules/npm/doc/api/submodule.md
  61. +23 −0 WinLess/node_modules/npm/doc/api/tag.md
  62. +16 −0 WinLess/node_modules/npm/doc/api/test.md
  63. +16 −0 WinLess/node_modules/npm/doc/api/uninstall.md
  64. +20 −0 WinLess/node_modules/npm/doc/api/unpublish.md
  65. +11 −0 WinLess/node_modules/npm/doc/api/update.md
  66. +18 −0 WinLess/node_modules/npm/doc/api/version.md
  67. +93 −0 WinLess/node_modules/npm/doc/api/view.md
  68. +15 −0 WinLess/node_modules/npm/doc/api/whoami.md
  69. +36 −0 WinLess/node_modules/npm/doc/cli/adduser.md
  70. +17 −0 WinLess/node_modules/npm/doc/cli/bin.md
  71. +38 −0 WinLess/node_modules/npm/doc/cli/bugs.md
  72. +22 −0 WinLess/node_modules/npm/doc/cli/build.md
  73. +14 −0 WinLess/node_modules/npm/doc/cli/bundle.md
  74. +70 −0 WinLess/node_modules/npm/doc/cli/cache.md
  75. +80 −0 WinLess/node_modules/npm/doc/cli/changelog.md
  76. +181 −0 WinLess/node_modules/npm/doc/cli/coding-style.md
  77. +29 −0 WinLess/node_modules/npm/doc/cli/completion.md
  78. +858 −0 WinLess/node_modules/npm/doc/cli/config.md
  79. +53 −0 WinLess/node_modules/npm/doc/cli/dedupe.md
  80. +26 −0 WinLess/node_modules/npm/doc/cli/deprecate.md
  81. +183 −0 WinLess/node_modules/npm/doc/cli/developers.md
  82. +91 −0 WinLess/node_modules/npm/doc/cli/disputes.md
  83. +38 −0 WinLess/node_modules/npm/doc/cli/docs.md
  84. +35 −0 WinLess/node_modules/npm/doc/cli/edit.md
  85. +40 −0 WinLess/node_modules/npm/doc/cli/explore.md
  86. +260 −0 WinLess/node_modules/npm/doc/cli/faq.md
  87. +209 −0 WinLess/node_modules/npm/doc/cli/folders.md
  88. +35 −0 WinLess/node_modules/npm/doc/cli/help-search.md
  89. +38 −0 WinLess/node_modules/npm/doc/cli/help.md
  90. +381 −0 WinLess/node_modules/npm/doc/cli/index.md
  91. +25 −0 WinLess/node_modules/npm/doc/cli/init.md
  92. +233 −0 WinLess/node_modules/npm/doc/cli/install.md
  93. +566 −0 WinLess/node_modules/npm/doc/cli/json.md
  94. +57 −0 WinLess/node_modules/npm/doc/cli/link.md
  95. +68 −0 WinLess/node_modules/npm/doc/cli/ls.md
  96. +155 −0 WinLess/node_modules/npm/doc/cli/npm.md
  97. +17 −0 WinLess/node_modules/npm/doc/cli/outdated.md
  98. +33 −0 WinLess/node_modules/npm/doc/cli/owner.md
  99. +25 −0 WinLess/node_modules/npm/doc/cli/pack.md
  100. +17 −0 WinLess/node_modules/npm/doc/cli/prefix.md
  101. +21 −0 WinLess/node_modules/npm/doc/cli/prune.md
  102. +30 −0 WinLess/node_modules/npm/doc/cli/publish.md
  103. +20 −0 WinLess/node_modules/npm/doc/cli/rebuild.md
  104. +91 −0 WinLess/node_modules/npm/doc/cli/registry.md
  105. +54 −0 WinLess/node_modules/npm/doc/cli/removing-npm.md
  106. +22 −0 WinLess/node_modules/npm/doc/cli/restart.md
  107. +17 −0 WinLess/node_modules/npm/doc/cli/root.md
  108. +21 −0 WinLess/node_modules/npm/doc/cli/run-script.md
  109. +196 −0 WinLess/node_modules/npm/doc/cli/scripts.md
  110. +20 −0 WinLess/node_modules/npm/doc/cli/search.md
  111. +130 −0 WinLess/node_modules/npm/doc/cli/semver.md
  112. +171 −0 WinLess/node_modules/npm/doc/cli/shrinkwrap.md
  113. +22 −0 WinLess/node_modules/npm/doc/cli/star.md
  114. +18 −0 WinLess/node_modules/npm/doc/cli/start.md
  115. +18 −0 WinLess/node_modules/npm/doc/cli/stop.md
  116. +28 −0 WinLess/node_modules/npm/doc/cli/submodule.md
  117. +17 −0 WinLess/node_modules/npm/doc/cli/tag.md
  118. +21 −0 WinLess/node_modules/npm/doc/cli/test.md
  119. +19 −0 WinLess/node_modules/npm/doc/cli/uninstall.md
  120. +32 −0 WinLess/node_modules/npm/doc/cli/unpublish.md
  121. +21 −0 WinLess/node_modules/npm/doc/cli/update.md
  122. +36 −0 WinLess/node_modules/npm/doc/cli/version.md
  123. +87 −0 WinLess/node_modules/npm/doc/cli/view.md
  124. +15 −0 WinLess/node_modules/npm/doc/cli/whoami.md
  125. +54 −0 WinLess/node_modules/npm/html/api/bin.html
  126. +60 −0 WinLess/node_modules/npm/html/api/bugs.html
  127. +63 −0 WinLess/node_modules/npm/html/api/commands.html
  128. +68 −0 WinLess/node_modules/npm/html/api/config.html
  129. +67 −0 WinLess/node_modules/npm/html/api/deprecate.html
  130. +60 −0 WinLess/node_modules/npm/html/api/docs.html
  131. +65 −0 WinLess/node_modules/npm/html/api/edit.html
  132. +59 −0 WinLess/node_modules/npm/html/api/explore.html
  133. +67 −0 WinLess/node_modules/npm/html/api/help-search.html
  134. +70 −0 WinLess/node_modules/npm/html/api/init.html
  135. +60 −0 WinLess/node_modules/npm/html/api/install.html
  136. +74 −0 WinLess/node_modules/npm/html/api/link.html
  137. +67 −0 WinLess/node_modules/npm/html/api/load.html
  138. +94 −0 WinLess/node_modules/npm/html/api/ls.html
  139. +126 −0 WinLess/node_modules/npm/html/api/npm.html
  140. +54 −0 WinLess/node_modules/npm/html/api/outdated.html
  141. +69 −0 WinLess/node_modules/npm/html/api/owner.html
  142. +60 −0 WinLess/node_modules/npm/html/api/pack.html
  143. +56 −0 WinLess/node_modules/npm/html/api/prefix.html
  144. +58 −0 WinLess/node_modules/npm/html/api/prune.html
  145. +67 −0 WinLess/node_modules/npm/html/api/publish.html
  146. +57 −0 WinLess/node_modules/npm/html/api/rebuild.html
  147. +62 −0 WinLess/node_modules/npm/html/api/restart.html
  148. +56 −0 WinLess/node_modules/npm/html/api/root.html
  149. +64 −0 WinLess/node_modules/npm/html/api/run-script.html
  150. +67 −0 WinLess/node_modules/npm/html/api/search.html
  151. +61 −0 WinLess/node_modules/npm/html/api/shrinkwrap.html
  152. +54 −0 WinLess/node_modules/npm/html/api/start.html
  153. +54 −0 WinLess/node_modules/npm/html/api/stop.html
  154. +68 −0 WinLess/node_modules/npm/html/api/submodule.html
  155. +64 −0 WinLess/node_modules/npm/html/api/tag.html
  156. +57 −0 WinLess/node_modules/npm/html/api/test.html
  157. +57 −0 WinLess/node_modules/npm/html/api/uninstall.html
  158. +61 −0 WinLess/node_modules/npm/html/api/unpublish.html
  159. +53 −0 WinLess/node_modules/npm/html/api/update.html
  160. +59 −0 WinLess/node_modules/npm/html/api/version.html
  161. +134 −0 WinLess/node_modules/npm/html/api/view.html
  162. +56 −0 WinLess/node_modules/npm/html/api/whoami.html
  163. +275 −0 WinLess/node_modules/npm/html/doc/README.html
  164. +74 −0 WinLess/node_modules/npm/html/doc/adduser.html
  165. +55 −0 WinLess/node_modules/npm/html/doc/bin.html
  166. +71 −0 WinLess/node_modules/npm/html/doc/bugs.html
  167. +60 −0 WinLess/node_modules/npm/html/doc/build.html
  168. +55 −0 WinLess/node_modules/npm/html/doc/bundle.html
  169. +101 −0 WinLess/node_modules/npm/html/doc/cache.html
  170. +100 −0 WinLess/node_modules/npm/html/doc/changelog.html
  171. +217 −0 WinLess/node_modules/npm/html/doc/coding-style.html
  172. +68 −0 WinLess/node_modules/npm/html/doc/completion.html
  173. +791 −0 WinLess/node_modules/npm/html/doc/config.html
  174. +92 −0 WinLess/node_modules/npm/html/doc/dedupe.html
  175. +66 −0 WinLess/node_modules/npm/html/doc/deprecate.html
  176. +195 −0 WinLess/node_modules/npm/html/doc/developers.html
  177. +121 −0 WinLess/node_modules/npm/html/doc/disputes.html
  178. +72 −0 WinLess/node_modules/npm/html/doc/docs.html
  179. +72 −0 WinLess/node_modules/npm/html/doc/edit.html
  180. +75 −0 WinLess/node_modules/npm/html/doc/explore.html
  181. +285 −0 WinLess/node_modules/npm/html/doc/faq.html
  182. +240 −0 WinLess/node_modules/npm/html/doc/folders.html
  183. +73 −0 WinLess/node_modules/npm/html/doc/help-search.html
  184. +71 −0 WinLess/node_modules/npm/html/doc/help.html
  185. +423 −0 WinLess/node_modules/npm/html/doc/index.html
  186. +64 −0 WinLess/node_modules/npm/html/doc/init.html
  187. +168 −0 WinLess/node_modules/npm/html/doc/install.html
  188. +560 −0 WinLess/node_modules/npm/html/doc/json.html
  189. +93 −0 WinLess/node_modules/npm/html/doc/link.html
  190. +99 −0 WinLess/node_modules/npm/html/doc/list.html
  191. +99 −0 WinLess/node_modules/npm/html/doc/ls.html
  192. +170 −0 WinLess/node_modules/npm/html/doc/npm.html
  193. +56 −0 WinLess/node_modules/npm/html/doc/outdated.html
  194. +69 −0 WinLess/node_modules/npm/html/doc/owner.html
  195. +64 −0 WinLess/node_modules/npm/html/doc/pack.html
  196. +55 −0 WinLess/node_modules/npm/html/doc/prefix.html
  197. +60 −0 WinLess/node_modules/npm/html/doc/prune.html
  198. +64 −0 WinLess/node_modules/npm/html/doc/publish.html
  199. +60 −0 WinLess/node_modules/npm/html/doc/rebuild.html
  200. +130 −0 WinLess/node_modules/npm/html/doc/registry.html
  201. +93 −0 WinLess/node_modules/npm/html/doc/removing-npm.html
  202. +59 −0 WinLess/node_modules/npm/html/doc/restart.html
  203. +55 −0 WinLess/node_modules/npm/html/doc/root.html
  204. +58 −0 WinLess/node_modules/npm/html/doc/run-script.html
  205. +212 −0 WinLess/node_modules/npm/html/doc/scripts.html
  206. +59 −0 WinLess/node_modules/npm/html/doc/search.html
  207. +139 −0 WinLess/node_modules/npm/html/doc/semver.html
  208. +204 −0 WinLess/node_modules/npm/html/doc/shrinkwrap.html
  209. +61 −0 WinLess/node_modules/npm/html/doc/star.html
  210. +55 −0 WinLess/node_modules/npm/html/doc/start.html
  211. +55 −0 WinLess/node_modules/npm/html/doc/stop.html
  212. +68 −0 WinLess/node_modules/npm/html/doc/submodule.html
  213. +56 −0 WinLess/node_modules/npm/html/doc/tag.html
  214. +58 −0 WinLess/node_modules/npm/html/doc/test.html
  215. +57 −0 WinLess/node_modules/npm/html/doc/uninstall.html
  216. +69 −0 WinLess/node_modules/npm/html/doc/unpublish.html
  217. +58 −0 WinLess/node_modules/npm/html/doc/update.html
  218. +75 −0 WinLess/node_modules/npm/html/doc/version.html
  219. +125 −0 WinLess/node_modules/npm/html/doc/view.html
  220. +55 −0 WinLess/node_modules/npm/html/doc/whoami.html
  221. +34 −0 WinLess/node_modules/npm/html/docfoot.html
  222. +8 −0 WinLess/node_modules/npm/html/dochead.html
  223. BIN  WinLess/node_modules/npm/html/favicon.ico
  224. +95 −0 WinLess/node_modules/npm/html/index.html
  225. +350 −0 WinLess/node_modules/npm/html/static/style.css
  226. BIN  WinLess/node_modules/npm/html/static/webfonts/23242D_3_0.eot
  227. BIN  WinLess/node_modules/npm/html/static/webfonts/23242D_3_0.ttf
  228. BIN  WinLess/node_modules/npm/html/static/webfonts/23242D_3_0.woff
  229. +138 −0 WinLess/node_modules/npm/lib/adduser.js
  230. +18 −0 WinLess/node_modules/npm/lib/bin.js
  231. +44 −0 WinLess/node_modules/npm/lib/bugs.js
  232. +188 −0 WinLess/node_modules/npm/lib/build.js
  233. +973 −0 WinLess/node_modules/npm/lib/cache.js
  234. +253 −0 WinLess/node_modules/npm/lib/completion.js
  235. +276 −0 WinLess/node_modules/npm/lib/config.js
  236. +334 −0 WinLess/node_modules/npm/lib/dedupe.js
  237. +47 −0 WinLess/node_modules/npm/lib/deprecate.js
  238. +30 −0 WinLess/node_modules/npm/lib/docs.js
  239. +30 −0 WinLess/node_modules/npm/lib/edit.js
  240. +34 −0 WinLess/node_modules/npm/lib/explore.js
  241. +8 −0 WinLess/node_modules/npm/lib/faq.js
  242. +12 −0 WinLess/node_modules/npm/lib/get.js
  243. +193 −0 WinLess/node_modules/npm/lib/help-search.js
  244. +150 −0 WinLess/node_modules/npm/lib/help.js
  245. +36 −0 WinLess/node_modules/npm/lib/init.js
  246. +934 −0 WinLess/node_modules/npm/lib/install.js
  247. +169 −0 WinLess/node_modules/npm/lib/link.js
  248. +334 −0 WinLess/node_modules/npm/lib/ls.js
  249. +506 −0 WinLess/node_modules/npm/lib/npm.js
  250. +149 −0 WinLess/node_modules/npm/lib/outdated.js
  251. +205 −0 WinLess/node_modules/npm/lib/owner.js
  252. +65 −0 WinLess/node_modules/npm/lib/pack.js
  253. +11 −0 WinLess/node_modules/npm/lib/prefix.js
  254. +40 −0 WinLess/node_modules/npm/lib/prune.js
  255. +101 −0 WinLess/node_modules/npm/lib/publish.js
  256. +95 −0 WinLess/node_modules/npm/lib/rebuild.js
  257. +1 −0  WinLess/node_modules/npm/lib/restart.js
  258. +11 −0 WinLess/node_modules/npm/lib/root.js
  259. +99 −0 WinLess/node_modules/npm/lib/run-script.js
  260. +261 −0 WinLess/node_modules/npm/lib/search.js
  261. +13 −0 WinLess/node_modules/npm/lib/set.js
  262. +47 −0 WinLess/node_modules/npm/lib/shrinkwrap.js
  263. +33 −0 WinLess/node_modules/npm/lib/star.js
  264. +1 −0  WinLess/node_modules/npm/lib/start.js
  265. +1 −0  WinLess/node_modules/npm/lib/stop.js
  266. +91 −0 WinLess/node_modules/npm/lib/submodule.js
  267. +20 −0 WinLess/node_modules/npm/lib/substack.js
  268. +18 −0 WinLess/node_modules/npm/lib/tag.js
  269. +14 −0 WinLess/node_modules/npm/lib/test.js
  270. +94 −0 WinLess/node_modules/npm/lib/unbuild.js
  271. +127 −0 WinLess/node_modules/npm/lib/uninstall.js
  272. +82 −0 WinLess/node_modules/npm/lib/unpublish.js
  273. +39 −0 WinLess/node_modules/npm/lib/update.js
  274. +154 −0 WinLess/node_modules/npm/lib/utils/cmd-shim.js
  275. +54 −0 WinLess/node_modules/npm/lib/utils/completion.sh
  276. +26 −0 WinLess/node_modules/npm/lib/utils/completion/file-completion.js
  277. +46 −0 WinLess/node_modules/npm/lib/utils/completion/installed-deep.js
  278. +79 −0 WinLess/node_modules/npm/lib/utils/completion/installed-shallow.js
  279. +58 −0 WinLess/node_modules/npm/lib/utils/completion/remote-packages.js
  280. +23 −0 WinLess/node_modules/npm/lib/utils/completion/users.js
  281. +293 −0 WinLess/node_modules/npm/lib/utils/error-handler.js
  282. +82 −0 WinLess/node_modules/npm/lib/utils/exec.js
  283. +84 −0 WinLess/node_modules/npm/lib/utils/fetch.js
  284. +52 −0 WinLess/node_modules/npm/lib/utils/find-prefix.js
  285. +45 −0 WinLess/node_modules/npm/lib/utils/gently-rm.js
  286. +302 −0 WinLess/node_modules/npm/lib/utils/lifecycle.js
  287. +39 −0 WinLess/node_modules/npm/lib/utils/link.js
  288. +54 −0 WinLess/node_modules/npm/lib/utils/sha.js
  289. +269 −0 WinLess/node_modules/npm/lib/utils/tar.js
  290. +105 −0 WinLess/node_modules/npm/lib/version.js
  291. +246 −0 WinLess/node_modules/npm/lib/view.js
  292. +13 −0 WinLess/node_modules/npm/lib/whoami.js
  293. +56 −0 WinLess/node_modules/npm/lib/xmas.js
  294. +313 −0 WinLess/node_modules/npm/man/man1/README.1
  295. +57 −0 WinLess/node_modules/npm/man/man1/adduser.1
  296. +55 −0 WinLess/node_modules/npm/man/man1/author.1
  297. +34 −0 WinLess/node_modules/npm/man/man1/bin.1
  298. +70 −0 WinLess/node_modules/npm/man/man1/bugs.1
  299. +43 −0 WinLess/node_modules/npm/man/man1/build.1
  300. +23 −0 WinLess/node_modules/npm/man/man1/bundle.1
Sorry, we could not display the entire diff because too many files (1,978) changed.
View
8 Installer/WinLess.warsetup
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<WarSetup-Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" projectRunAfterInstall="true" mainTargetApp="ID_bcbdd185_a875_4976_b079_d9cf83e2ad0e" nextUniqueId="1502" projectName="WinLess" projectUuid="eb24e9df-ad8c-4522-977d-776c254f3ab2" projectUpgradeUuid="b795642a-13ec-4b7c-bb13-d8f0311fc42d" projectVersion="1.6.0" projectOrganization="Mark Lagendijk" projectMustBeAdministratorToInstall="false" project64BitTarget="false" projectTargetDirectory="C:\projects\WinLess\installer" projectTargetName="WinLess-1.6.0" projectType="0" projectUserInterface="WixUI_Minimal">
+<WarSetup-Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" projectRunAfterInstall="true" mainTargetApp="ID_bcbdd185_a875_4976_b079_d9cf83e2ad0e" nextUniqueId="7185" projectName="WinLess" projectUuid="3561b233-c213-4e07-9548-a35719fdf1f0" projectUpgradeUuid="b795642a-13ec-4b7c-bb13-d8f0311fc42d" projectVersion="1.8.0" projectOrganization="Mark Lagendijk" projectMustBeAdministratorToInstall="false" project64BitTarget="false" projectTargetDirectory="C:\projects\WinLess\installer" projectTargetName="WinLess-1.8.0" projectType="0" projectUserInterface="WixUI_Minimal">
<LicencePaths>
<string>C:\Program Files (x86)\Jgaa's Internet\War Setup\Licenses</string>
</LicencePaths>
@@ -18,6 +18,12 @@
</componentFiles>
<addToCreateFolder>false</addToCreateFolder>
</components>
+ <components componentId="ID7184" componentGuid="5b0b9ac9-3912-4bd5-8922-42a4e158c5ff">
+ <componentFiles fileId="ID_28c25a72_9379_4420_981d_e8c0087a8900" srcName="Ookii.Dialogs.Wpf.dll" srcDirectory="..\WinLess\bin\Release" dstName="Ookii.Dialogs.Wpf.dll" dstPath="" isTrueTypeFont="false" isComModule="false" typelibGuid="" menuName="Ookii.Dialogs.Wpf" shortcutInProgramFilesMenu="false" shortcutOnDesktop="false" shortcutInQuickLaunch="false" shortcutInStartupFolder="false" shortcutWorkingDirectory="" shortcutCommandArguments="" shortcutDescription="">
+ <service StartWhenInstalled="true" Remove="both" id="ID7183" isService="false" userAccount="" userPassword="" cmdLineArguments="" errorControl="normal" interactive="false" loadOrderGroup="" serviceName="" startMode="auto" vital="true" />
+ </componentFiles>
+ <addToCreateFolder>false</addToCreateFolder>
+ </components>
<defaultInstallMode>3</defaultInstallMode>
<directories dirId="ID1480" srcPath="..\WinLess\bin\Release\node_modules" dstPath="node_modules" patterns=".*" excludePatterns="" recurse="true" preventEmptyDirectories="false" addToPath="false" ideHeaderFiles="false" ideExecutables="false" ideLibrary="false" ideMicrosoftVisualStudio2003="false" ideMicrosoftVisualStudio2005="false">
<pathComponent componentId="ID1479" componentGuid="63432b1f-70e0-444c-86a8-8b4220f89730">
View
68 WinLess/Forms/aboutForm.Designer.cs
@@ -30,32 +30,45 @@ private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(aboutForm));
this.versionGroupBox = new System.Windows.Forms.GroupBox();
+ this.checkingForUpdatesLabel = new System.Windows.Forms.Label();
this.lessjsVersionLabel = new System.Windows.Forms.Label();
this.lessjsLabel = new System.Windows.Forms.Label();
this.winlessVersionLabel = new System.Windows.Forms.Label();
this.winlessLabel = new System.Windows.Forms.Label();
this.creditsGroupBox = new System.Windows.Forms.GroupBox();
+ this.graphicalDesignNameLabel = new System.Windows.Forms.Label();
+ this.authorNameLabel = new System.Windows.Forms.Label();
this.graphicalDesignLabel = new System.Windows.Forms.Label();
this.authorLabel = new System.Windows.Forms.Label();
- this.authorNameLabel = new System.Windows.Forms.Label();
- this.graphicalDesignNameLabel = new System.Windows.Forms.Label();
+ this.updatingLabel = new System.Windows.Forms.Label();
this.versionGroupBox.SuspendLayout();
this.creditsGroupBox.SuspendLayout();
this.SuspendLayout();
//
// versionGroupBox
//
+ this.versionGroupBox.Controls.Add(this.updatingLabel);
+ this.versionGroupBox.Controls.Add(this.checkingForUpdatesLabel);
this.versionGroupBox.Controls.Add(this.lessjsVersionLabel);
this.versionGroupBox.Controls.Add(this.lessjsLabel);
this.versionGroupBox.Controls.Add(this.winlessVersionLabel);
this.versionGroupBox.Controls.Add(this.winlessLabel);
this.versionGroupBox.Location = new System.Drawing.Point(12, 12);
this.versionGroupBox.Name = "versionGroupBox";
- this.versionGroupBox.Size = new System.Drawing.Size(260, 59);
+ this.versionGroupBox.Size = new System.Drawing.Size(290, 59);
this.versionGroupBox.TabIndex = 1;
this.versionGroupBox.TabStop = false;
this.versionGroupBox.Text = "Version info";
//
+ // checkingForUpdatesLabel
+ //
+ this.checkingForUpdatesLabel.AutoSize = true;
+ this.checkingForUpdatesLabel.Location = new System.Drawing.Point(165, 37);
+ this.checkingForUpdatesLabel.Name = "checkingForUpdatesLabel";
+ this.checkingForUpdatesLabel.Size = new System.Drawing.Size(117, 13);
+ this.checkingForUpdatesLabel.TabIndex = 4;
+ this.checkingForUpdatesLabel.Text = "Checking for updates...";
+ //
// lessjsVersionLabel
//
this.lessjsVersionLabel.AutoSize = true;
@@ -100,11 +113,29 @@ private void InitializeComponent()
this.creditsGroupBox.Controls.Add(this.authorLabel);
this.creditsGroupBox.Location = new System.Drawing.Point(13, 78);
this.creditsGroupBox.Name = "creditsGroupBox";
- this.creditsGroupBox.Size = new System.Drawing.Size(259, 66);
+ this.creditsGroupBox.Size = new System.Drawing.Size(289, 66);
this.creditsGroupBox.TabIndex = 2;
this.creditsGroupBox.TabStop = false;
this.creditsGroupBox.Text = "Credits";
//
+ // graphicalDesignNameLabel
+ //
+ this.graphicalDesignNameLabel.AutoSize = true;
+ this.graphicalDesignNameLabel.Location = new System.Drawing.Point(103, 37);
+ this.graphicalDesignNameLabel.Name = "graphicalDesignNameLabel";
+ this.graphicalDesignNameLabel.Size = new System.Drawing.Size(105, 13);
+ this.graphicalDesignNameLabel.TabIndex = 3;
+ this.graphicalDesignNameLabel.Text = "Elmar Kouwenhoven";
+ //
+ // authorNameLabel
+ //
+ this.authorNameLabel.AutoSize = true;
+ this.authorNameLabel.Location = new System.Drawing.Point(103, 20);
+ this.authorNameLabel.Name = "authorNameLabel";
+ this.authorNameLabel.Size = new System.Drawing.Size(80, 13);
+ this.authorNameLabel.TabIndex = 2;
+ this.authorNameLabel.Text = "Mark Lagendijk";
+ //
// graphicalDesignLabel
//
this.graphicalDesignLabel.AutoSize = true;
@@ -123,34 +154,27 @@ private void InitializeComponent()
this.authorLabel.TabIndex = 0;
this.authorLabel.Text = "Author:";
//
- // authorNameLabel
- //
- this.authorNameLabel.AutoSize = true;
- this.authorNameLabel.Location = new System.Drawing.Point(103, 20);
- this.authorNameLabel.Name = "authorNameLabel";
- this.authorNameLabel.Size = new System.Drawing.Size(80, 13);
- this.authorNameLabel.TabIndex = 2;
- this.authorNameLabel.Text = "Mark Lagendijk";
- //
- // graphicalDesignNameLabel
+ // updatingLabel
//
- this.graphicalDesignNameLabel.AutoSize = true;
- this.graphicalDesignNameLabel.Location = new System.Drawing.Point(103, 37);
- this.graphicalDesignNameLabel.Name = "graphicalDesignNameLabel";
- this.graphicalDesignNameLabel.Size = new System.Drawing.Size(105, 13);
- this.graphicalDesignNameLabel.TabIndex = 3;
- this.graphicalDesignNameLabel.Text = "Elmar Kouwenhoven";
+ this.updatingLabel.AutoSize = true;
+ this.updatingLabel.Location = new System.Drawing.Point(165, 37);
+ this.updatingLabel.Name = "updatingLabel";
+ this.updatingLabel.Size = new System.Drawing.Size(59, 13);
+ this.updatingLabel.TabIndex = 5;
+ this.updatingLabel.Text = "Updating...";
+ this.updatingLabel.Visible = false;
//
// aboutForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(284, 154);
+ this.ClientSize = new System.Drawing.Size(313, 154);
this.Controls.Add(this.creditsGroupBox);
this.Controls.Add(this.versionGroupBox);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "aboutForm";
this.Text = "About";
+ this.Shown += new System.EventHandler(this.aboutForm_Shown);
this.versionGroupBox.ResumeLayout(false);
this.versionGroupBox.PerformLayout();
this.creditsGroupBox.ResumeLayout(false);
@@ -171,6 +195,8 @@ private void InitializeComponent()
private System.Windows.Forms.Label authorLabel;
private System.Windows.Forms.Label graphicalDesignNameLabel;
private System.Windows.Forms.Label authorNameLabel;
+ private System.Windows.Forms.Label checkingForUpdatesLabel;
+ private System.Windows.Forms.Label updatingLabel;
}
}
View
32 WinLess/Forms/aboutForm.cs
@@ -14,10 +14,10 @@ namespace WinLess
public partial class aboutForm : Form
{
public aboutForm()
- {
+ {
InitializeComponent();
winlessVersionLabel.Text = GetApplicationVersion();
- lessjsVersionLabel.Text = LessCompiler.GetVersion();
+ lessjsVersionLabel.Text = LessCompiler.GetCurrentCompilerVersion().ToString();
}
private string GetApplicationVersion()
@@ -27,5 +27,33 @@ private string GetApplicationVersion()
// return the ProductVersion without the last '.0'
return version.Substring(0, version.Length - 2);
}
+
+ private void aboutForm_Shown(object sender, EventArgs e)
+ {
+ //Force paint by calling Application.DoEvents();
+ Application.DoEvents();
+
+ bool lessCompilerUpdateAvailable = LessCompiler.IsCompilerUpdateAvailable();
+ checkingForUpdatesLabel.Visible = false;
+
+ if(lessCompilerUpdateAvailable)
+ {
+ if (MessageBox.Show(string.Format("WinLess uses the official LESS compiler, less.js, to compile your LESS files.\n\nA new version of less.js is available. Do you want to update less.js from {0} to {1}?", LessCompiler.GetCurrentCompilerVersion(), LessCompiler.GetAvailableCompilerVersion()), "Update LESS compiler?", MessageBoxButtons.YesNo) == DialogResult.Yes)
+ {
+ //Show updatingLabel and force repaint by calling Application.DoEvents();
+ updatingLabel.Visible = true;
+ Application.DoEvents();
+
+ LessCompiler.UpdateCompiler();
+
+ Version newVersion = LessCompiler.GetCurrentCompilerVersion();
+ lessjsVersionLabel.Text = newVersion.ToString();
+
+ updatingLabel.Visible = false;
+
+ MessageBox.Show(string.Format("Succesfully updated less.js to version {0}", newVersion), "LESS compiler update");
+ }
+ }
+ }
}
}
View
19 WinLess/Forms/mainForm.cs
@@ -51,6 +51,8 @@ public mainForm()
AddExtension = true,
Filter = "*.css|*.css"
};
+
+ CheckForLessUpdates();
}
catch (Exception e)
{
@@ -58,6 +60,21 @@ public mainForm()
}
}
+ private void CheckForLessUpdates()
+ {
+ if (Program.Settings.CheckForLessUpdates)
+ {
+ if (LessCompiler.IsCompilerUpdateAvailable())
+ {
+ if (MessageBox.Show(string.Format("WinLess uses the official LESS compiler, less.js, to compile your LESS files.\n\nA new version of less.js is available. Do you want to update less.js from {0} to {1}?", LessCompiler.GetCurrentCompilerVersion(), LessCompiler.GetAvailableCompilerVersion()), "Update LESS compiler?", MessageBoxButtons.YesNo) == DialogResult.Yes)
+ {
+ LessCompiler.UpdateCompiler();
+ MessageBox.Show(string.Format("Succesfully updated less.js to version {0}", LessCompiler.GetCurrentCompilerVersion()), "LESS compiler update");
+ }
+ }
+ }
+ }
+
public void LoadDirectories(CommandArguments args)
{
if (args.ClearDirectories)
@@ -506,7 +523,7 @@ private void CompileSelectedFiles()
{
if (file.Enabled)
{
- LessCompiler.CompileLessFile(file.FullPath, file.OutputPath, file.Minify);
+ LessCompiler.Compile(file.FullPath, file.OutputPath, file.Minify);
}
}
}
View
41 WinLess/Forms/settingsForm.Designer.cs
@@ -35,16 +35,17 @@ private void InitializeComponent()
this.startMinimizedCheckBox = new System.Windows.Forms.CheckBox();
this.startWithWindowsCheckBox = new System.Windows.Forms.CheckBox();
this.compilingGroupBox = new System.Windows.Forms.GroupBox();
+ this.showSuccessMessagesCheckbox = new System.Windows.Forms.CheckBox();
this.compileOnSaveCheckBox = new System.Windows.Forms.CheckBox();
this.defaultMinifyCheckBox = new System.Windows.Forms.CheckBox();
- this.showSuccessMessagesCheckbox = new System.Windows.Forms.CheckBox();
+ this.checkForLessUpdatesCheckbox = new System.Windows.Forms.CheckBox();
this.generalGroupBox.SuspendLayout();
this.compilingGroupBox.SuspendLayout();
this.SuspendLayout();
//
// cancelButton
//
- this.cancelButton.Location = new System.Drawing.Point(197, 197);
+ this.cancelButton.Location = new System.Drawing.Point(197, 233);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(75, 23);
this.cancelButton.TabIndex = 0;
@@ -54,7 +55,7 @@ private void InitializeComponent()
//
// okButton
//
- this.okButton.Location = new System.Drawing.Point(116, 197);
+ this.okButton.Location = new System.Drawing.Point(116, 233);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(75, 23);
this.okButton.TabIndex = 1;
@@ -64,11 +65,12 @@ private void InitializeComponent()
//
// generalGroupBox
//
+ this.generalGroupBox.Controls.Add(this.checkForLessUpdatesCheckbox);
this.generalGroupBox.Controls.Add(this.startMinimizedCheckBox);
this.generalGroupBox.Controls.Add(this.startWithWindowsCheckBox);
this.generalGroupBox.Location = new System.Drawing.Point(13, 13);
this.generalGroupBox.Name = "generalGroupBox";
- this.generalGroupBox.Size = new System.Drawing.Size(259, 72);
+ this.generalGroupBox.Size = new System.Drawing.Size(259, 91);
this.generalGroupBox.TabIndex = 2;
this.generalGroupBox.TabStop = false;
this.generalGroupBox.Text = "General";
@@ -98,13 +100,23 @@ private void InitializeComponent()
this.compilingGroupBox.Controls.Add(this.showSuccessMessagesCheckbox);
this.compilingGroupBox.Controls.Add(this.compileOnSaveCheckBox);
this.compilingGroupBox.Controls.Add(this.defaultMinifyCheckBox);
- this.compilingGroupBox.Location = new System.Drawing.Point(13, 91);
+ this.compilingGroupBox.Location = new System.Drawing.Point(13, 127);
this.compilingGroupBox.Name = "compilingGroupBox";
this.compilingGroupBox.Size = new System.Drawing.Size(259, 100);
this.compilingGroupBox.TabIndex = 3;
this.compilingGroupBox.TabStop = false;
this.compilingGroupBox.Text = "Compiling";
//
+ // showSuccessMessagesCheckbox
+ //
+ this.showSuccessMessagesCheckbox.AutoSize = true;
+ this.showSuccessMessagesCheckbox.Location = new System.Drawing.Point(7, 68);
+ this.showSuccessMessagesCheckbox.Name = "showSuccessMessagesCheckbox";
+ this.showSuccessMessagesCheckbox.Size = new System.Drawing.Size(200, 17);
+ this.showSuccessMessagesCheckbox.TabIndex = 2;
+ this.showSuccessMessagesCheckbox.Text = "Show message on succesful compile";
+ this.showSuccessMessagesCheckbox.UseVisualStyleBackColor = true;
+ //
// compileOnSaveCheckBox
//
this.compileOnSaveCheckBox.AutoSize = true;
@@ -125,21 +137,21 @@ private void InitializeComponent()
this.defaultMinifyCheckBox.Text = "Minify by default";
this.defaultMinifyCheckBox.UseVisualStyleBackColor = true;
//
- // showSuccessMessagesCheckbox
+ // checkForLessUpdatesCheckbox
//
- this.showSuccessMessagesCheckbox.AutoSize = true;
- this.showSuccessMessagesCheckbox.Location = new System.Drawing.Point(7, 68);
- this.showSuccessMessagesCheckbox.Name = "showSuccessMessagesCheckbox";
- this.showSuccessMessagesCheckbox.Size = new System.Drawing.Size(200, 17);
- this.showSuccessMessagesCheckbox.TabIndex = 2;
- this.showSuccessMessagesCheckbox.Text = "Show message on succesful compile";
- this.showSuccessMessagesCheckbox.UseVisualStyleBackColor = true;
+ this.checkForLessUpdatesCheckbox.AutoSize = true;
+ this.checkForLessUpdatesCheckbox.Location = new System.Drawing.Point(7, 67);
+ this.checkForLessUpdatesCheckbox.Name = "checkForLessUpdatesCheckbox";
+ this.checkForLessUpdatesCheckbox.Size = new System.Drawing.Size(208, 17);
+ this.checkForLessUpdatesCheckbox.TabIndex = 2;
+ this.checkForLessUpdatesCheckbox.Text = "Automatically check for less.js updates";
+ this.checkForLessUpdatesCheckbox.UseVisualStyleBackColor = true;
//
// settingsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(289, 232);
+ this.ClientSize = new System.Drawing.Size(289, 268);
this.Controls.Add(this.compilingGroupBox);
this.Controls.Add(this.generalGroupBox);
this.Controls.Add(this.okButton);
@@ -166,5 +178,6 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox defaultMinifyCheckBox;
private System.Windows.Forms.CheckBox compileOnSaveCheckBox;
private System.Windows.Forms.CheckBox showSuccessMessagesCheckbox;
+ private System.Windows.Forms.CheckBox checkForLessUpdatesCheckbox;
}
}
View
2  WinLess/Forms/settingsForm.cs
@@ -20,6 +20,7 @@ private void loadSettings()
{
startWithWindowsCheckBox.Checked = Program.Settings.StartWithWindows;
startMinimizedCheckBox.Checked = Program.Settings.StartMinified;
+ checkForLessUpdatesCheckbox.Checked = Program.Settings.CheckForLessUpdates;
defaultMinifyCheckBox.Checked = Program.Settings.DefaultMinify;
compileOnSaveCheckBox.Checked = Program.Settings.CompileOnSave;
showSuccessMessagesCheckbox.Checked = Program.Settings.ShowSuccessMessages;
@@ -29,6 +30,7 @@ private void saveSettings()
{
Program.Settings.StartWithWindows = startWithWindowsCheckBox.Checked;
Program.Settings.StartMinified = startMinimizedCheckBox.Checked;
+ Program.Settings.CheckForLessUpdates = checkForLessUpdatesCheckbox.Checked;
Program.Settings.DefaultMinify = defaultMinifyCheckBox.Checked;
Program.Settings.CompileOnSave = compileOnSaveCheckBox.Checked;
Program.Settings.ShowSuccessMessages = showSuccessMessagesCheckbox.Checked;
View
69 WinLess/LessCompiler.cs
@@ -9,13 +9,13 @@
namespace WinLess
{
- static class LessCompiler
+ public static class LessCompiler
{
- public static void CompileLessFile(string lessPath, string cssPath, bool minify)
+ public static void Compile(string lessFile, string cssFile, bool minify)
{
try
{
- CompileCommandResult compileResult = ExecuteCompileCommand(lessPath, cssPath, minify);
+ CompileCommandResult compileResult = ExecuteCompileCommand(lessFile, cssFile, minify);
mainForm.ActiveOrInActiveMainForm.AddCompileResult(compileResult);
}
catch (Exception e)
@@ -24,36 +24,71 @@ public static void CompileLessFile(string lessPath, string cssPath, bool minify)
}
}
- public static string GetVersion()
+ public static Version GetCurrentCompilerVersion()
{
- string fileName = string.Format("{0}\\node_modules\\.bin\\lessc.cmd", Application.StartupPath);
- string arguments = " -v";
- CommandResult result = ExecuteCommand(fileName, arguments);
- string version = "";
- if (result.IsSuccess){
+ CommandResult result = ExecuteLessCommand("-v");
+
+ return GetVersionFromCommandResult(result);
+ }
+
+ public static Version GetAvailableCompilerVersion()
+ {
+ CommandResult result = ExecuteNodePackageManagerCommand("view less version");
+
+ return GetVersionFromCommandResult(result);
+ }
+
+ public static bool IsCompilerUpdateAvailable()
+ {
+ Version currentVersion = GetCurrentCompilerVersion();
+ Version availableVersion = GetAvailableCompilerVersion();
+
+ return (currentVersion.CompareTo(availableVersion) < 0);
+ }
+
+ public static void UpdateCompiler()
+ {
+ ExecuteNodePackageManagerCommand("update less");
+ }
+
+ private static Version GetVersionFromCommandResult(CommandResult result)
+ {
+ if (result.IsSuccess)
+ {
Match versionMatch = Regex.Match(result.ResultText, "\\d+(?:\\.\\d+)+");
if (versionMatch.Groups.Count > 0)
{
- version = versionMatch.Groups[0].Value;
+ return new Version(versionMatch.Groups[0].Value);
}
}
- return version;
+ return null;
}
- private static CompileCommandResult ExecuteCompileCommand(string lessPath, string cssPath, bool minify)
+ private static CommandResult ExecuteNodePackageManagerCommand(string arguments)
+ {
+ string fileName = string.Format("{0}\\node_modules\\.bin\\npm.cmd", Application.StartupPath);
+ return ExecuteCommand(fileName, arguments);
+ }
+
+ private static CommandResult ExecuteLessCommand(string arguments)
{
string fileName = string.Format("{0}\\node_modules\\.bin\\lessc.cmd", Application.StartupPath);
- string arguments = CreateCompileArguments(lessPath, cssPath, minify);
+ return ExecuteCommand(fileName, arguments);
+ }
+
+ private static CompileCommandResult ExecuteCompileCommand(string lessFile, string cssFile, bool minify)
+ {
+ string arguments = CreateCompileArguments(lessFile, cssFile, minify);
- CompileCommandResult result = new CompileCommandResult(ExecuteCommand(fileName, arguments));
- result.FullPath = lessPath;
+ CompileCommandResult result = new CompileCommandResult(ExecuteLessCommand(arguments));
+ result.FullPath = lessFile;
return result;
}
- private static string CreateCompileArguments(string lessPath, string cssPath, bool minify)
+ private static string CreateCompileArguments(string lessFile, string cssFile, bool minify)
{
- string arguments = string.Format("\"{0}\" \"{1}\" --no-color", lessPath, cssPath);
+ string arguments = string.Format("\"{0}\" \"{1}\" --no-color", lessFile, cssFile);
if (minify)
{
arguments = string.Format("{0} --yui-compress", arguments);
View
2  WinLess/Models/File.cs
@@ -116,7 +116,7 @@ public void Compile(bool compileParentFiles = true)
{
if (this.Enabled)
{
- LessCompiler.CompileLessFile(this.FullPath, this.OutputPath, this.Minify);
+ LessCompiler.Compile(this.FullPath, this.OutputPath, this.Minify);
}
if (compileParentFiles)
{
View
4 WinLess/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.6.0.0")]
-[assembly: AssemblyFileVersion("1.6.0.0")]
+[assembly: AssemblyVersion("1.8.0.0")]
+[assembly: AssemblyFileVersion("1.8.0.0")]
View
3  WinLess/Settings.cs
@@ -19,7 +19,7 @@ public Settings()
ShowSuccessMessages = false;
StartWithWindows = true;
StartMinified = false;
- ApplyStartWithWindows();
+ CheckForLessUpdates = true;
}
public DirectoryList DirectoryList { get; set; }
@@ -27,6 +27,7 @@ public Settings()
public bool CompileOnSave { get; set; }
public bool ShowSuccessMessages { get; set; }
public bool StartMinified { get; set; }
+ public bool CheckForLessUpdates { get; set; }
private bool startWithWindows;
public bool StartWithWindows
View
1,980 WinLess/WinLess.csproj
1,980 additions, 0 deletions not shown
View
15 WinLess/node_modules/.bin/npm
@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=`dirname "$0"`
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../npm/bin/npm-cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../npm/bin/npm-cli.js" "$@"
+ ret=$?
+fi
+exit $ret
View
6 WinLess/node_modules/.bin/npm.cmd
@@ -0,0 +1,6 @@
+:: Created by npm, please don't edit manually.
+@IF EXIST "%~dp0\node.exe" (
+ "%~dp0\node.exe" "%~dp0\..\npm\bin\npm-cli.js" %*
+) ELSE (
+ node "%~dp0\..\npm\bin\npm-cli.js" %*
+)
View
7 WinLess/node_modules/less/CHANGELOG.md
@@ -1,3 +1,10 @@
+# 1.3.3
+
+2012-12-30
+
+ - Fix critical bug with mixin call if using multiple brackets
+ - when using the filter contrast function, the function is passed through if the first argument is not a color
+
# 1.3.2
2012-12-28
View
5 WinLess/node_modules/less/lib/less/functions.js
@@ -173,6 +173,11 @@ tree.functions = {
return this.desaturate(color, new(tree.Dimension)(100));
},
contrast: function (color, dark, light, threshold) {
+ // filter: contrast(3.2);
+ // should be kept as is, so check for color
+ if (!color.rgb) {
+ return null;
+ }
if (typeof light === 'undefined') {
light = this.rgba(255, 255, 255, 1.0);
}
View
2  WinLess/node_modules/less/lib/less/index.js
@@ -5,7 +5,7 @@ var path = require('path'),
fs = require('fs');
var less = {
- version: [1, 3, 2],
+ version: [1, 3, 3],
Parser: require('./parser').Parser,
importer: require('./parser').importer,
tree: require('./tree'),
View
3  WinLess/node_modules/less/lib/less/parser.js
@@ -1085,7 +1085,7 @@ less.Parser = function Parser(env) {
// depreciated, will be removed soon
if ($('(')) {
sel = $(this.entity);
- expect(')');
+ if (!$(')')) { return null; }
return new(tree.Selector)([new(tree.Element)('', sel, i)]);
}
@@ -1130,6 +1130,7 @@ less.Parser = function Parser(env) {
//
ruleset: function () {
var selectors = [], s, rules, match, debugInfo;
+
save();
if (env.dumpLineNumbers)
View
18 WinLess/node_modules/less/lib/less/tree/call.js
@@ -14,7 +14,8 @@ tree.Call.prototype = {
// When evaluating a function call,
// we either find the function in `tree.functions` [1],
// in which case we call it, passing the evaluated arguments,
- // or we simply print it out as it appeared originally [2].
+ // if this returns null or we cannot find the function, we
+ // simply print it out as it appeared originally [2].
//
// The *functions.js* file contains the built-in functions.
//
@@ -23,21 +24,26 @@ tree.Call.prototype = {
// The function should receive the value, not the variable.
//
eval: function (env) {
- var args = this.args.map(function (a) { return a.eval(env) });
+ var args = this.args.map(function (a) { return a.eval(env) }),
+ result;
if (this.name in tree.functions) { // 1.
try {
- return tree.functions[this.name].apply(tree.functions, args);
+ result = tree.functions[this.name].apply(tree.functions, args);
+ if (result != null) {
+ return result;
+ }
} catch (e) {
throw { type: e.type || "Runtime",
message: "error evaluating function `" + this.name + "`" +
(e.message ? ': ' + e.message : ''),
index: this.index, filename: this.filename };
}
- } else { // 2.
- return new(tree.Anonymous)(this.name +
- "(" + args.map(function (a) { return a.toCSS(env) }).join(', ') + ")");
}
+
+ // 2.
+ return new(tree.Anonymous)(this.name +
+ "(" + args.map(function (a) { return a.toCSS(env) }).join(', ') + ")");
},
toCSS: function (env) {
View
4 WinLess/node_modules/less/package.json
@@ -13,7 +13,7 @@
"email": "self@cloudhead.net"
},
"contributors": [],
- "version": "1.3.2",
+ "version": "1.3.3",
"bin": {
"lessc": "./bin/lessc"
},
@@ -42,7 +42,7 @@
},
"readme": "less.js\n=======\n\nThe **dynamic** stylesheet language.\n\n<http://lesscss.org>\n\nabout\n-----\n\nThis is the JavaScript, and now official, stable version of LESS.\n\nFor more information, visit <http://lesscss.org>.\n\nlicense\n-------\n\nSee `LICENSE` file.\n\n> Copyright (c) 2009-2011 Alexis Sellier\n",
"readmeFilename": "README.md",
- "_id": "less@1.3.2",
+ "_id": "less@1.3.3",
"dependencies": {
"ycssmin": ">=1.0.1"
},
View
1  WinLess/node_modules/less/test/css/functions.css
@@ -24,6 +24,7 @@
luma-yellow: 93%;
luma-cyan: 79%;
luma-white-alpha: 50%;
+ contrast-filter: contrast(30%);
contrast-white: #000000;
contrast-black: #ffffff;
contrast-red: #ffffff;
View
6 WinLess/node_modules/less/test/css/mixins.css
@@ -113,3 +113,9 @@ h3 + * {
.test-rec .recursion {
color: black;
}
+.button {
+ padding-left: 44px;
+}
+.button.large {
+ padding-left: 40em;
+}
View
1  WinLess/node_modules/less/test/less/functions.less
@@ -28,6 +28,7 @@
luma-yellow: luma(#ffff00);
luma-cyan: luma(#00ffff);
luma-white-alpha: luma(rgba(255,255,255,0.5));
+ contrast-filter: contrast(30%);
contrast-white: contrast(#fff);
contrast-black: contrast(#000);
contrast-red: contrast(#ff0000);
View
7 WinLess/node_modules/less/test/less/mixins.less
@@ -105,3 +105,10 @@ h3 { .margin_between(15px, 5px); }
.recursion();
}
}
+.paddingFloat(@padding) { padding-left: @padding; }
+
+.button {
+ .paddingFloat(((10px + 12) * 2));
+
+ &.large { .paddingFloat((10em * 2) * 2); }
+}
View
22 WinLess/node_modules/npm/.npmignore
@@ -0,0 +1,22 @@
+*.swp
+npm-debug.log
+/test/bin
+/test/output.log
+/test/packages/*/node_modules
+/test/packages/npm-test-depends-on-spark/which-spark.log
+/test/packages/test-package/random-data.txt
+/test/root
+node_modules/ronn
+node_modules/tap
+node_modules/.bin
+/npmrc
+/release/
+
+# don't need these in the npm package.
+html/*.png
+
+# don't ignore .npmignore files
+# these are used in some tests.
+!.npmignore
+
+/npm-*.tgz
View
80 WinLess/node_modules/npm/AUTHORS
@@ -0,0 +1,80 @@
+# Authors sorted by whether or not they're me
+Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
+Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
+Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
+Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
+Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
+Mathias Pettersson <mape@mape.me> (http://mape.me/)
+Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
+Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
+Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
+Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
+Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
+Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
+Alex K. Wolfe <alexkwolfe@gmail.com>
+James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
+Reid Burke <me@reidburke.com> (http://reidburke.com/)
+Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
+Timo Derstappen <teemow@gmail.com> (http://teemow.com)
+Bradley Meck <bradley.meck@gmail.com>
+Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
+Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
+Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
+Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
+Olivier Melcher <olivier.melcher@gmail.com>
+Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
+Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
+Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
+George Miroshnykov <gmiroshnykov@lohika.com>
+Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
+Pete Kruckenberg <pete@kruckenberg.com>
+Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
+Chris Wong <chris@chriswongstudio.com>
+Max Goodman <c@chromacode.com> (http://chromacode.com/)
+Scott Bronson <brons_github@rinspin.com>
+Federico Romero <federomero@gmail.com>
+Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
+Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
+Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
+Zearin <zearin@gonk.net>
+Iain Sproat <iainsproat@gmail.com>
+Trent Mick <trentm@gmail.com> (http://trentm.com/)
+Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
+Conny Brunnkvist <cbrunnkvist@gmail.com> (http://twitter.com/connyb)
+Will Elwood <w.elwood08@gmail.com> (https://github.com/welwood08)
+Oleg Efimov <efimovov@gmail.com> (http://sannis.ru)
+Martin Cooper <mfncooper@gmail.com>
+Jameson Little <t.jameson.little@gmail.com>
+cspotcode <cspotcode@gmail.com>
+Maciej Małecki <maciej.malecki@notimplemented.org>
+Stephen Sugden <glurgle@gmail.com>
+Gautham Pai <buzypi@gmail.com>
+David Trejo <david.daniel.trejo@gmail.com>
+Paul Vorbach <paul@vorb.de>
+George Ornbo <george@shapeshed.com>
+Tim Oxley <secoif@gmail.com>
+Tyler Green <tyler.green2@gmail.com>
+atomizer <danila.gerasimov@gmail.com>
+Rod Vagg <rod@vagg.org>
+Christian Howe <coderarity@gmail.com>
+Andrew Lunny <alunny@gmail.com>
+Henrik Hodne <dvyjones@binaryhex.com>
+Adam Blackburn <regality@gmail.com>
+Kris Windham <kriswindham@gmail.com>
+Jens Grunert <jens.grunert@gmail.com>
+Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
+Dalmais Maxence <github@maxired.fr>
+Marcus Ekwall <marcus.ekwall@gmail.com>
+Aaron Stacy <aaron.r.stacy@gmail.com>
+Phillip Howell <phowell@cothm.org>
+Domenic Denicola <domenic@domenicdenicola.com>
+James Halliday <mail@substack.net>
+Jeremy Cantrell <jmcantrell@gmail.com>
+Ribettes <patlogan29@gmail.com>
+Don Park <donpark@docuverse.com>
+Kei Son <heyacct@gmail.com>
+Nicolas Morel <marsup@gmail.com>
+Mark Dube <markisdee@gmail.com>
+Maxim Bogushevich <boga1@mail.ru>
+Justin Beckwith <justbe@microsoft.com>
+Meaglin <Meaglin.wasabi@gmail.com>
View
65 WinLess/node_modules/npm/LICENSE
@@ -0,0 +1,65 @@
+Copyright (c) Isaac Z. Schlueter (the "Original Author")
+All rights reserved.
+
+MIT +no-false-attribs License
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Distributions of all or part of the Software intended to be used
+by the recipients as they would use the unmodified Software,
+containing modifications that substantially alter, remove, or
+disable functionality of the Software, outside of the documented
+configuration mechanisms provided by the Software, shall be
+modified such that the Original Author's bug reporting email
+addresses and urls are either replaced with the contact information
+of the parties responsible for the changes, or removed entirely.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Except where noted, this license applies to any and all software
+programs and associated documentation files created by the
+Original Author, when distributed with the Software.
+
+"Node.js" and "node" trademark Joyent, Inc. npm is not officially
+part of the Node.js project, and is neither owned by nor
+officially affiliated with Joyent, Inc.
+
+Packages published in the npm registry (other than the Software and
+its included dependencies) are not part of npm itself, are the sole
+property of their respective maintainers, and are not covered by
+this license.
+
+"npm Logo" created by Mathias Pettersson and Brian Hammond,
+used with permission.
+
+"Gubblebum Blocky" font
+Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com
+included for use in the npm website and documentation,
+used with permission.
+
+This program uses "request", Copyright (c) Mikeal Rogers,
+according to the terms of the Apache license.
+
+This program uses "mkdirp", Copyright (c) James Halliday,
+according to the terms of the MIT/X11 license.
+
+This program uses "opener", Copyright (c) Domenic Denicola,
+according to the terms of the DWTFPL2 license.
View
138 WinLess/node_modules/npm/Makefile
@@ -0,0 +1,138 @@
+SHELL = bash
+
+markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
+
+cli_mandocs = $(shell find doc/cli -name '*.md' \
+ |sed 's|.md|.1|g' \
+ |sed 's|doc/cli/|man/man1/|g' ) \
+ man/man1/README.1 \
+ man/man1/index.1
+
+api_mandocs = $(shell find doc/api -name '*.md' \
+ |sed 's|.md|.3|g' \
+ |sed 's|doc/api/|man/man3/|g' )
+
+cli_htmldocs = $(shell find doc/cli -name '*.md' \
+ |grep -v 'index.md' \
+ |sed 's|.md|.html|g' \
+ |sed 's|doc/cli/|html/doc/|g' ) \
+ html/doc/README.html \
+ html/doc/index.html
+
+api_htmldocs = $(shell find doc/api -name '*.md' \
+ |sed 's|.md|.html|g' \
+ |sed 's|doc/api/|html/api/|g' )
+
+mandocs = $(api_mandocs) $(cli_mandocs)
+
+htmldocs = $(api_htmldocs) $(cli_htmldocs)
+
+all: doc
+
+latest:
+ @echo "Installing latest published npm"
+ @echo "Use 'make install' or 'make link' to install the code"
+ @echo "in this folder that you're looking at right now."
+ node cli.js install -g -f npm
+
+install: all
+ node cli.js install -g -f
+
+# backwards compat
+dev: install
+
+link: uninstall
+ node cli.js link -f
+
+clean: doc-clean uninstall
+ rm npmrc
+ node cli.js cache clean
+
+uninstall:
+ node cli.js rm npm -g -f
+
+doc: $(mandocs) $(htmldocs)
+
+docclean: doc-clean
+doc-clean:
+ rm -rf \
+ node_modules/ronn \
+ node_modules/.bin/ronn \
+ .building_ronn \
+ doc/cli/index.md \
+ doc/api/index.md \
+ $(api_mandocs) \
+ $(cli_mandocs) \
+ $(api_htmldocs) \
+ $(cli_htmldocs) \
+ &>/dev/null || true
+
+# use `npm install ronn` for this to work.
+man/man1/README.1: README.md scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json
+ @[ -d man/man1 ] || mkdir -p man/man1
+ scripts/doc-build.sh $< $@
+
+man/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json
+ @[ -d man/man3 ] || mkdir -p man/man3
+ scripts/doc-build.sh $< $@
+
+html/doc/README.html: README.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+html/doc/%.html: doc/cli/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+html/api/%.html: doc/api/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh package.json
+ node scripts/index-build.js > $@
+
+node_modules/.bin/ronn:
+ node cli.js install ronn
+
+doc: man
+
+man: $(cli_docs) $(api_docs)
+
+test:
+ node cli.js test
+
+publish: link doc
+ @git push origin :v$(shell npm -v) || true
+ @npm unpublish npm@$(shell npm -v) || true
+ git clean -fd
+ git push origin --tags &&\
+ npm publish &&\
+ npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\
+ make doc-publish &&\
+ make zip-publish
+
+docpublish: doc-publish
+doc-publish: doc
+ rsync -vazu --stats --no-implied-dirs --delete \
+ html/doc/ \
+ node@npmjs.org:/home/node/npm-www/doc
+ rsync -vazu --stats --no-implied-dirs --delete \
+ html/api/ \
+ node@npmjs.org:/home/node/npm-www/api
+ rsync -vazu --stats --no-implied-dirs --delete \
+ html/static/webfonts/ \
+ node@npmjs.org:/home/node/npm-www/static/webfonts
+ rsync -vazu --stats --no-implied-dirs --delete \
+ html/static/style.css \
+ node@npmjs.org:/home/node/npm-www/static/
+
+zip-publish: release
+ scp release/* node@nodejs.org:dist/npm/
+
+release:
+ @bash scripts/release.sh
+
+sandwich:
+ @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself" && exit 13
+
+.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish
View
239 WinLess/node_modules/npm/README.md
@@ -0,0 +1,239 @@
+npm(1) -- node package manager
+==============================
+
+## SYNOPSIS
+
+This is just enough info to get you up and running.
+
+Much more info available via `npm help` once it's installed.
+
+## IMPORTANT
+
+**You need node v0.6 or higher to run this program.**
+
+To install an old **and unsupported** version of npm that works on node 0.3
+and prior, clone the git repo and dig through the old tags and branches.
+
+## Super Easy Install
+
+npm comes with node now.
+
+### Windows Computers
+
+Get the MSI. npm is in it.
+
+### Apple Macintosh Computers
+
+Get the pkg. npm is in it.
+
+### Other Sorts of Unices
+
+Run `make install`. npm will be installed with node.
+
+If you want a more fancy pants install (a different version, customized
+paths, etc.) then read on.
+
+## Fancy Install (Unix)
+
+There's a pretty robust install script at
+<https://npmjs.org/install.sh>. You can download that and run it.
+
+### Slightly Fancier
+
+You can set any npm configuration params with that script:
+
+npm_config_prefix=/some/path sh install.sh
+
+Or, you can run it in uber-debuggery mode:
+
+npm_debug=1 sh install.sh
+
+### Even Fancier
+
+Get the code with git. Use `make` to build the docs and do other stuff.
+If you plan on hacking on npm, `make link` is your friend.
+
+If you've got the npm source code, you can also semi-permanently set
+arbitrary config keys using the `./configure --key=val ...`, and then
+run npm commands by doing `node cli.js <cmd> <args>`. (This is helpful
+for testing, or running stuff without actually installing npm itself.)
+
+## Fancy Windows Install
+
+You can download a zip file from <https://npmjs.org/dist/>, and unpack it
+in the same folder where node.exe lives.
+
+If that's not fancy enough for you, then you can fetch the code with
+git, and mess with it directly.
+
+## Installing on Cygwin
+
+No.
+
+## Permissions when Using npm to Install Other Stuff
+
+**tl;dr**
+
+* Use `sudo` for greater safety. Or don't, if you prefer not to.
+* npm will downgrade permissions if it's root before running any build
+ scripts that package authors specified.
+
+### More details...
+
+As of version 0.3, it is recommended to run npm as root.
+This allows npm to change the user identifier to the `nobody` user prior
+to running any package build or test commands.
+
+If you are not the root user, or if you are on a platform that does not
+support uid switching, then npm will not attempt to change the userid.
+
+If you would like to ensure that npm **always** runs scripts as the
+"nobody" user, and have it fail if it cannot downgrade permissions, then
+set the following configuration param:
+
+ npm config set unsafe-perm false
+
+This will prevent running in unsafe mode, even as non-root users.
+
+## Uninstalling
+
+So sad to see you go.
+
+ sudo npm uninstall npm -g
+
+Or, if that fails,
+
+ sudo make uninstall
+
+## More Severe Uninstalling
+
+Usually, the above instructions are sufficient. That will remove
+npm, but leave behind anything you've installed.
+
+If you would like to remove all the packages that you have installed,
+then you can use the `npm ls` command to find them, and then `npm rm` to
+remove them.
+
+To remove cruft left behind by npm 0.x, you can use the included
+`clean-old.sh` script file. You can run it conveniently like this:
+
+ npm explore npm -g -- sh scripts/clean-old.sh
+
+npm uses two configuration files, one for per-user configs, and another
+for global (every-user) configs. You can view them by doing:
+
+ npm config get userconfig # defaults to ~/.npmrc
+ npm config get globalconfig # defaults to /usr/local/etc/npmrc
+
+Uninstalling npm does not remove configuration files by default. You
+must remove them yourself manually if you want them gone. Note that
+this means that future npm installs will not remember the settings that
+you have chosen.
+
+## Using npm Programmatically
+
+If you would like to use npm programmatically, you can do that.
+It's not very well documented, but it *is* rather simple.
+
+Most of the time, unless you actually want to do all the things that
+npm does, you should try using one of npm's dependencies rather than
+using npm itself, if possible.
+
+Eventually, npm will be just a thin cli wrapper around the modules
+that it depends on, but for now, there are some things that you must
+use npm itself to do.
+
+ var npm = require("npm")
+ npm.load(myConfigObject, function (er) {
+ if (er) return handlError(er)
+ npm.commands.install(["some", "args"], function (er, data) {
+ if (er) return commandFailed(er)
+ // command succeeded, and data might have some info
+ })
+ npm.on("log", function (message) { .... })
+ })
+
+The `load` function takes an object hash of the command-line configs.
+The various `npm.commands.<cmd>` functions take an **array** of
+positional argument **strings**. The last argument to any
+`npm.commands.<cmd>` function is a callback. Some commands take other
+optional arguments. Read the source.
+
+You cannot set configs individually for any single npm function at this
+time. Since `npm` is a singleton, any call to `npm.config.set` will
+change the value for *all* npm commands in that process.
+
+See `./bin/npm-cli.js` for an example of pulling config values off of the
+command line arguments using nopt. You may also want to check out `npm
+help config` to learn about all the options you can set there.
+
+## More Docs
+
+Check out the [docs](https://npmjs.org/doc/),
+especially the [faq](https://npmjs.org/doc/faq.html).
+
+You can use the `npm help` command to read any of them.
+
+If you're a developer, and you want to use npm to publish your program,
+you should [read this](https://npmjs.org/doc/developers.html)
+
+## Legal Stuff
+
+"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
+rights not explicitly granted in the MIT license are reserved. See the
+included LICENSE file for more details.
+
+"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
+officially part of the Node.js project, and is neither owned by nor
+officially affiliated with Joyent, Inc.
+
+The packages in the npm registry are not part of npm itself, and are the
+sole property of their respective maintainers. While every effort is
+made to ensure accountability, there is absolutely no guarantee,
+warrantee, or assertion made as to the quality, fitness for a specific
+purpose, or lack of malice in any given npm package. Modules
+published on the npm registry are not affiliated with or endorsed by
+Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.
+
+If you have a complaint about a package in the npm registry, and cannot
+resolve it with the package owner, please express your concerns to
+Isaac Z. Schlueter at <i@izs.me>.
+
+### In plain english
+
+This is mine; not my employer's, not Node's, not Joyent's, not Ryan
+Dahl's.
+
+If you publish something, it's yours, and you are solely accountable
+for it. Not me, not Node, not Joyent, not Ryan Dahl.
+
+If other people publish something, it's theirs. Not mine, not Node's,
+not Joyent's, not Ryan Dahl's.
+
+Yes, you can publish something evil. It will be removed promptly if
+reported, and we'll lose respect for you. But there is no vetting
+process for published modules.
+
+If this concerns you, inspect the source before using packages.
+
+## BUGS
+
+When you find issues, please report them:
+
+* web:
+ <https://github.com/isaacs/npm/issues>
+* email:
+ <npm-@googlegroups.com>
+
+Be sure to include *all* of the output from the npm command that didn't work
+as expected. The `npm-debug.log` file is also helpful to provide.
+
+You can also look for isaacs in #node.js on irc://irc.freenode.net. He
+will no doubt tell you to put the output in a gist or email.
+
+## SEE ALSO
+
+* npm(1)
+* npm-faq(1)
+* npm-help(1)
+* npm-index(1)
View
2  WinLess/node_modules/npm/cli.js
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+require("./bin/npm-cli.js")
View
33 WinLess/node_modules/npm/configure
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# set configurations that will be "sticky" on this system,
+# surviving npm self-updates.
+
+CONFIGS=()
+i=0
+
+# get the location of this file.
+unset CDPATH
+CONFFILE=$(cd $(dirname "$0"); pwd -P)/npmrc
+
+while [ $# -gt 0 ]; do
+ conf="$1"
+ case $conf in
+ --help)
+ echo "./configure --param=value ..."
+ exit 0
+ ;;
+ --*)
+ CONFIGS[$i]="${conf:2}"
+ ;;
+ *)
+ CONFIGS[$i]="$conf"
+ ;;
+ esac
+ let i++
+ shift
+done
+
+for c in "${CONFIGS[@]}"; do
+ echo "$c" >> "$CONFFILE"
+done
View
13 WinLess/node_modules/npm/doc/api/bin.md
@@ -0,0 +1,13 @@
+npm-bin(3) -- Display npm bin folder
+====================================
+
+## SYNOPSIS
+
+ npm.commands.bin(args, cb)
+
+## DESCRIPTION
+
+Print the folder where npm will install executables.
+
+This function should not be used programmatically. Instead, just refer
+to the `npm.bin` member.
View
19 WinLess/node_modules/npm/doc/api/bugs.md
@@ -0,0 +1,19 @@
+npm-bugs(3) -- Bugs for a package in a web browser maybe
+========================================================
+
+## SYNOPSIS
+
+ npm.commands.bugs(package, callback)
+
+## DESCRIPTION
+
+This command tries to guess at the likely location of a package's
+bug tracker URL, and then tries to open it using the `--browser`
+config param.
+
+Like other commands, the first parameter is an array. This command only
+uses the first element, which is expected to be a package name with an
+optional version number.
+
+This command will launch a browser, so this command may not be the most
+friendly for programmatic use.
View
22 WinLess/node_modules/npm/doc/api/commands.md
@@ -0,0 +1,22 @@
+npm-commands(3) -- npm commands
+===============================
+
+## SYNOPSIS
+
+ npm.commands[<command>](args, callback)
+
+## DESCRIPTION
+
+npm comes with a full set of commands, and each of the commands takes a
+similar set of arguments.
+
+In general, all commands on the command object take an **array** of positional
+argument **strings**. The last argument to any function is a callback. Some
+commands are special and take other optional arguments.
+
+All commands have their own man page. See `man npm-<command>` for command-line
+usage, or `man 3 npm-<command>` for programmatic usage.
+
+## SEE ALSO
+
+* npm-index(1)
View
45 WinLess/node_modules/npm/doc/api/config.md
@@ -0,0 +1,45 @@
+npm-config(3) -- Manage the npm configuration files
+===================================================
+
+## SYNOPSIS
+
+ npm.commands.config(args, callback)
+ var val = npm.config.get(key)
+ npm.config.set(key, val)
+
+## DESCRIPTION
+
+This function acts much the same way as the command-line version. The first
+element in the array tells config what to do. Possible values are:
+
+* `set`
+
+ Sets a config parameter. The second element in `args` is interpreted as the
+ key, and the third element is interpreted as the value.
+
+* `get`
+
+ Gets the value of a config parameter. The second element in `args` is the
+ key to get the value of.
+
+* `delete` (`rm` or `del`)
+
+ Deletes a parameter from the config. The second element in `args` is the
+ key to delete.
+
+* `list` (`ls`)
+
+ Show all configs that aren't secret. No parameters necessary.
+
+* `edit`:
+
+ Opens the config file in the default editor. This command isn't very useful
+ programmatically, but it is made available.
+
+To programmatically access npm configuration settings, or set them for
+the duration of a program, use the `npm.config.set` and `npm.config.get`
+functions instead.
+
+## SEE ALSO
+
+* npm(3)
View
34 WinLess/node_modules/npm/doc/api/deprecate.md
@@ -0,0 +1,34 @@
+npm-deprecate(3) -- Deprecate a version of a package
+====================================================
+
+## SYNOPSIS
+
+ npm.commands.deprecate(args, callback)
+
+## DESCRIPTION
+
+This command will update the npm registry entry for a package, providing
+a deprecation warning to all who attempt to install it.
+
+The 'args' parameter must have exactly two elements:
+
+* `package[@version]`
+
+ The `version` portion is optional, and may be either a range, or a
+ specific version, or a tag.
+
+* `message`
+
+ The warning message that will be printed whenever a user attempts to
+ install the package.
+
+Note that you must be the package owner to deprecate something. See the
+`owner` and `adduser` help topics.
+
+To un-deprecate a package, specify an empty string (`""`) for the `message` argument.
+
+## SEE ALSO
+
+* npm-publish(3)
+* npm-unpublish(3)
+* npm-registry(1)
View
19 WinLess/node_modules/npm/doc/api/docs.md
@@ -0,0 +1,19 @@
+npm-docs(3) -- Docs for a package in a web browser maybe
+========================================================
+
+## SYNOPSIS
+
+ npm.commands.docs(package, callback)
+
+## DESCRIPTION
+
+This command tries to guess at the likely location of a package's
+documentation URL, and then tries to open it using the `--browser`
+config param.
+
+Like other commands, the first parameter is an array. This command only
+uses the first element, which is expected to be a package name with an
+optional version number.
+
+This command will launch a browser, so this command may not be the most
+friendly for programmatic use.
View
24 WinLess/node_modules/npm/doc/api/edit.md
@@ -0,0 +1,24 @@
+npm-edit(3) -- Edit an installed package
+========================================
+
+## SYNOPSIS
+
+ npm.commands.edit(package, callback)
+
+## DESCRIPTION
+
+Opens the package folder in the default editor (or whatever you've
+configured as the npm `editor` config -- see `npm help config`.)
+
+After it has been edited, the package is rebuilt so as to pick up any
+changes in compiled packages.
+
+For instance, you can do `npm install connect` to install connect
+into your package, and then `npm.commands.edit(["connect"], callback)`
+to make a few changes to your locally installed copy.
+
+The first parameter is a string array with a single element, the package
+to open. The package can optionally have a version number attached.
+
+Since this command opens an editor in a new process, be careful about where
+and how this is used.
View
18 WinLess/node_modules/npm/doc/api/explore.md
@@ -0,0 +1,18 @@
+npm-explore(3) -- Browse an installed package
+=============================================
+
+## SYNOPSIS
+
+ npm.commands.explore(args, callback)
+
+## DESCRIPTION
+
+Spawn a subshell in the directory of the installed package specified.
+
+If a command is specified, then it is run in the subshell, which then
+immediately terminates.
+
+Note that the package is *not* automatically rebuilt afterwards, so be
+sure to use `npm rebuild <pkg>` if you make any changes.
+
+The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.
View
30 WinLess/node_modules/npm/doc/api/help-search.md
@@ -0,0 +1,30 @@
+npm-help-search(3) -- Search the help pages
+===========================================
+
+## SYNOPSIS
+
+ npm.commands.helpSearch(args, [silent,] callback)
+
+## DESCRIPTION
+
+This command is rarely useful, but it exists in the rare case that it is.
+
+This command takes an array of search terms and returns the help pages that
+match in order of best match.
+
+If there is only one match, then npm displays that help section. If there
+are multiple results, the results are printed to the screen formatted and the
+array of results is returned. Each result is an object with these properties:
+
+* hits:
+ A map of args to number of hits on that arg. For example, {"npm": 3}
+* found:
+ Total number of unique args that matched.
+* totalHits:
+ Total number of hits.
+* lines:
+ An array of all matching lines (and some adjacent lines).
+* file:
+ Name of the file that matched
+
+The silent parameter is not neccessary not used, but it may in the future.
View
29 WinLess/node_modules/npm/doc/api/init.md
@@ -0,0 +1,29 @@
+npm init(3) -- Interactively create a package.json file
+=======================================================
+
+## SYNOPSIS
+
+ npm.commands.init(args, callback)
+
+## DESCRIPTION
+
+This will ask you a bunch of questions, and then write a package.json for you.
+
+It attempts to make reasonable guesses about what you want things to be set to,
+and then writes a package.json file with the options you've selected.
+
+If you already have a package.json file, it'll read that first, and default to
+the options in there.
+
+It is strictly additive, so it does not delete options from your package.json
+without a really good reason to do so.
+
+Since this function expects to be run on the command-line, it doesn't work very
+well as a programmatically. The best option is to roll your own, and since
+JavaScript makes it stupid simple to output formatted JSON, that is the
+preferred method. If you're sure you want to handle command-line prompting,
+then go ahead and use this programmatically.
+
+## SEE ALSO
+
+npm-json(1)
View
19 WinLess/node_modules/npm/doc/api/install.md
@@ -0,0 +1,19 @@
+npm-install(3) -- install a package programmatically
+====================================================
+
+## SYNOPSIS
+
+ npm.commands.install([where,] packages, callback)
+
+## DESCRIPTION
+
+This acts much the same ways as installing on the command-line.
+
+The 'where' parameter is optional and only used internally, and it specifies
+where the packages should be installed to.
+
+The 'packages' parameter is an array of strings. Each element in the array is
+the name of a package to be installed.
+
+Finally, 'callback' is a function that will be called when all packages have been
+installed or when an error has been encountered.
View
33 WinLess/node_modules/npm/doc/api/link.md
@@ -0,0 +1,33 @@
+npm-link(3) -- Symlink a package folder
+=======================================
+
+## SYNOPSIS
+
+ npm.command.link(callback)
+ npm.command.link(packages, callback)
+
+## DESCRIPTION
+
+Package linking is a two-step process.
+
+Without parameters, link will create a globally-installed
+symbolic link from `prefix/package-name` to the current folder.
+
+With a parameters, link will create a symlink from the local `node_modules`
+folder to the global symlink.
+
+When creating tarballs for `npm publish`, the linked packages are
+"snapshotted" to their current state by resolving the symbolic links.
+
+This is
+handy for installing your own stuff, so that you can work on it and test it
+iteratively without having to continually rebuild.
+
+For example:
+
+ npm.commands.link(cb) # creates global link from the cwd
+ # (say redis package)
+ npm.commands.link('redis', cb) # link-install the package
+
+Now, any changes to the redis package will be reflected in
+the package in the current working directory
View
26 WinLess/node_modules/npm/doc/api/load.md
@@ -0,0 +1,26 @@
+npm-load(3) -- Load config settings
+===================================
+
+## SYNOPSIS
+
+ npm.load(conf, cb)
+
+## DESCRIPTION
+
+npm.load() must be called before any other function call. Both parameters are
+optional, but the second is recommended.
+
+The first parameter is an object hash of command-line config params, and the
+second parameter is a callback that will be called when npm is loaded and
+ready to serve.
+
+The first parameter should follow a similar structure as the package.json
+config object.
+
+For example, to emulate the --dev flag, pass an object that looks like this:
+
+ {
+ "dev": true
+ }
+
+For a list of all the available command-line configs, see `npm help config`