embeditor-rails 1.1.1 → 2.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1029) hide show
  1. data/README.md +25 -17
  2. data/app/assets/javascripts/embeditor/adapter.js.coffee +21 -2
  3. data/app/assets/javascripts/embeditor/adapters/embedly.js.coffee +4 -40
  4. data/app/assets/javascripts/embeditor/adapters/oembed.js.coffee +37 -2
  5. data/app/assets/javascripts/embeditor/embeditor.js.coffee +16 -4
  6. data/lib/embeditor-rails/version.rb +1 -1
  7. data/lib/node_modules/npm/AUTHORS +158 -0
  8. data/lib/node_modules/npm/CONTRIBUTING.md +9 -0
  9. data/lib/node_modules/npm/LICENSE +235 -0
  10. data/lib/node_modules/npm/Makefile +216 -0
  11. data/lib/node_modules/npm/README.md +241 -0
  12. data/lib/node_modules/npm/bin/node-gyp-bin/node-gyp +2 -0
  13. data/lib/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd +1 -0
  14. data/lib/node_modules/npm/bin/npm +13 -0
  15. data/lib/node_modules/npm/bin/npm-cli.js +87 -0
  16. data/lib/node_modules/npm/bin/npm.cmd +6 -0
  17. data/lib/node_modules/npm/bin/read-package-json.js +22 -0
  18. data/lib/node_modules/npm/cli.js +2 -0
  19. data/lib/node_modules/npm/configure +33 -0
  20. data/lib/node_modules/npm/doc/api/npm-bin.md +13 -0
  21. data/lib/node_modules/npm/doc/api/npm-bugs.md +19 -0
  22. data/lib/node_modules/npm/doc/api/npm-commands.md +22 -0
  23. data/lib/node_modules/npm/doc/api/npm-config.md +45 -0
  24. data/lib/node_modules/npm/doc/api/npm-deprecate.md +34 -0
  25. data/lib/node_modules/npm/doc/api/npm-docs.md +19 -0
  26. data/lib/node_modules/npm/doc/api/npm-edit.md +24 -0
  27. data/lib/node_modules/npm/doc/api/npm-explore.md +18 -0
  28. data/lib/node_modules/npm/doc/api/npm-help-search.md +30 -0
  29. data/lib/node_modules/npm/doc/api/npm-init.md +29 -0
  30. data/lib/node_modules/npm/doc/api/npm-install.md +19 -0
  31. data/lib/node_modules/npm/doc/api/npm-link.md +33 -0
  32. data/lib/node_modules/npm/doc/api/npm-load.md +26 -0
  33. data/lib/node_modules/npm/doc/api/npm-ls.md +56 -0
  34. data/lib/node_modules/npm/doc/api/npm-outdated.md +13 -0
  35. data/lib/node_modules/npm/doc/api/npm-owner.md +31 -0
  36. data/lib/node_modules/npm/doc/api/npm-pack.md +19 -0
  37. data/lib/node_modules/npm/doc/api/npm-prefix.md +15 -0
  38. data/lib/node_modules/npm/doc/api/npm-prune.md +17 -0
  39. data/lib/node_modules/npm/doc/api/npm-publish.md +30 -0
  40. data/lib/node_modules/npm/doc/api/npm-rebuild.md +16 -0
  41. data/lib/node_modules/npm/doc/api/npm-repo.md +19 -0
  42. data/lib/node_modules/npm/doc/api/npm-restart.md +22 -0
  43. data/lib/node_modules/npm/doc/api/npm-root.md +15 -0
  44. data/lib/node_modules/npm/doc/api/npm-run-script.md +27 -0
  45. data/lib/node_modules/npm/doc/api/npm-search.md +35 -0
  46. data/lib/node_modules/npm/doc/api/npm-shrinkwrap.md +20 -0
  47. data/lib/node_modules/npm/doc/api/npm-start.md +13 -0
  48. data/lib/node_modules/npm/doc/api/npm-stop.md +13 -0
  49. data/lib/node_modules/npm/doc/api/npm-submodule.md +28 -0
  50. data/lib/node_modules/npm/doc/api/npm-tag.md +23 -0
  51. data/lib/node_modules/npm/doc/api/npm-test.md +16 -0
  52. data/lib/node_modules/npm/doc/api/npm-uninstall.md +16 -0
  53. data/lib/node_modules/npm/doc/api/npm-unpublish.md +20 -0
  54. data/lib/node_modules/npm/doc/api/npm-update.md +11 -0
  55. data/lib/node_modules/npm/doc/api/npm-version.md +18 -0
  56. data/lib/node_modules/npm/doc/api/npm-view.md +93 -0
  57. data/lib/node_modules/npm/doc/api/npm-whoami.md +15 -0
  58. data/lib/node_modules/npm/doc/api/npm.md +116 -0
  59. data/lib/node_modules/npm/doc/cli/npm-adduser.md +38 -0
  60. data/lib/node_modules/npm/doc/cli/npm-bin.md +19 -0
  61. data/lib/node_modules/npm/doc/cli/npm-bugs.md +42 -0
  62. data/lib/node_modules/npm/doc/cli/npm-build.md +22 -0
  63. data/lib/node_modules/npm/doc/cli/npm-bundle.md +14 -0
  64. data/lib/node_modules/npm/doc/cli/npm-cache.md +72 -0
  65. data/lib/node_modules/npm/doc/cli/npm-completion.md +29 -0
  66. data/lib/node_modules/npm/doc/cli/npm-config.md +71 -0
  67. data/lib/node_modules/npm/doc/cli/npm-dedupe.md +58 -0
  68. data/lib/node_modules/npm/doc/cli/npm-deprecate.md +26 -0
  69. data/lib/node_modules/npm/doc/cli/npm-docs.md +44 -0
  70. data/lib/node_modules/npm/doc/cli/npm-edit.md +37 -0
  71. data/lib/node_modules/npm/doc/cli/npm-explore.md +40 -0
  72. data/lib/node_modules/npm/doc/cli/npm-help-search.md +35 -0
  73. data/lib/node_modules/npm/doc/cli/npm-help.md +40 -0
  74. data/lib/node_modules/npm/doc/cli/npm-init.md +25 -0
  75. data/lib/node_modules/npm/doc/cli/npm-install.md +252 -0
  76. data/lib/node_modules/npm/doc/cli/npm-link.md +63 -0
  77. data/lib/node_modules/npm/doc/cli/npm-ls.md +80 -0
  78. data/lib/node_modules/npm/doc/cli/npm-outdated.md +58 -0
  79. data/lib/node_modules/npm/doc/cli/npm-owner.md +33 -0
  80. data/lib/node_modules/npm/doc/cli/npm-pack.md +27 -0
  81. data/lib/node_modules/npm/doc/cli/npm-prefix.md +19 -0
  82. data/lib/node_modules/npm/doc/cli/npm-prune.md +25 -0
  83. data/lib/node_modules/npm/doc/cli/npm-publish.md +30 -0
  84. data/lib/node_modules/npm/doc/cli/npm-rebuild.md +21 -0
  85. data/lib/node_modules/npm/doc/cli/npm-repo.md +28 -0
  86. data/lib/node_modules/npm/doc/cli/npm-restart.md +22 -0
  87. data/lib/node_modules/npm/doc/cli/npm-rm.md +23 -0
  88. data/lib/node_modules/npm/doc/cli/npm-root.md +19 -0
  89. data/lib/node_modules/npm/doc/cli/npm-run-script.md +21 -0
  90. data/lib/node_modules/npm/doc/cli/npm-search.md +36 -0
  91. data/lib/node_modules/npm/doc/cli/npm-shrinkwrap.md +185 -0
  92. data/lib/node_modules/npm/doc/cli/npm-star.md +22 -0
  93. data/lib/node_modules/npm/doc/cli/npm-stars.md +22 -0
  94. data/lib/node_modules/npm/doc/cli/npm-start.md +18 -0
  95. data/lib/node_modules/npm/doc/cli/npm-stop.md +18 -0
  96. data/lib/node_modules/npm/doc/cli/npm-submodule.md +28 -0
  97. data/lib/node_modules/npm/doc/cli/npm-tag.md +34 -0
  98. data/lib/node_modules/npm/doc/cli/npm-test.md +22 -0
  99. data/lib/node_modules/npm/doc/cli/npm-uninstall.md +21 -0
  100. data/lib/node_modules/npm/doc/cli/npm-unpublish.md +32 -0
  101. data/lib/node_modules/npm/doc/cli/npm-update.md +24 -0
  102. data/lib/node_modules/npm/doc/cli/npm-version.md +45 -0
  103. data/lib/node_modules/npm/doc/cli/npm-view.md +90 -0
  104. data/lib/node_modules/npm/doc/cli/npm-whoami.md +17 -0
  105. data/lib/node_modules/npm/doc/cli/npm.md +153 -0
  106. data/lib/node_modules/npm/doc/files/npm-folders.md +211 -0
  107. data/lib/node_modules/npm/doc/files/npmrc.md +59 -0
  108. data/lib/node_modules/npm/doc/files/package.json.md +576 -0
  109. data/lib/node_modules/npm/doc/misc/npm-coding-style.md +181 -0
  110. data/lib/node_modules/npm/doc/misc/npm-config.md +820 -0
  111. data/lib/node_modules/npm/doc/misc/npm-developers.md +207 -0
  112. data/lib/node_modules/npm/doc/misc/npm-disputes.md +99 -0
  113. data/lib/node_modules/npm/doc/misc/npm-faq.md +364 -0
  114. data/lib/node_modules/npm/doc/misc/npm-index.md +411 -0
  115. data/lib/node_modules/npm/doc/misc/npm-registry.md +69 -0
  116. data/lib/node_modules/npm/doc/misc/npm-scripts.md +245 -0
  117. data/lib/node_modules/npm/doc/misc/removing-npm.md +54 -0
  118. data/lib/node_modules/npm/doc/misc/semver.md +111 -0
  119. data/lib/node_modules/npm/html/doc/README.html +276 -0
  120. data/lib/node_modules/npm/html/doc/api/npm-bin.html +53 -0
  121. data/lib/node_modules/npm/html/doc/api/npm-bugs.html +59 -0
  122. data/lib/node_modules/npm/html/doc/api/npm-commands.html +62 -0
  123. data/lib/node_modules/npm/html/doc/api/npm-config.html +67 -0
  124. data/lib/node_modules/npm/html/doc/api/npm-deprecate.html +66 -0
  125. data/lib/node_modules/npm/html/doc/api/npm-docs.html +59 -0
  126. data/lib/node_modules/npm/html/doc/api/npm-edit.html +64 -0
  127. data/lib/node_modules/npm/html/doc/api/npm-explore.html +58 -0
  128. data/lib/node_modules/npm/html/doc/api/npm-help-search.html +66 -0
  129. data/lib/node_modules/npm/html/doc/api/npm-init.html +69 -0
  130. data/lib/node_modules/npm/html/doc/api/npm-install.html +59 -0
  131. data/lib/node_modules/npm/html/doc/api/npm-link.html +73 -0
  132. data/lib/node_modules/npm/html/doc/api/npm-load.html +66 -0
  133. data/lib/node_modules/npm/html/doc/api/npm-ls.html +93 -0
  134. data/lib/node_modules/npm/html/doc/api/npm-outdated.html +53 -0
  135. data/lib/node_modules/npm/html/doc/api/npm-owner.html +68 -0
  136. data/lib/node_modules/npm/html/doc/api/npm-pack.html +59 -0
  137. data/lib/node_modules/npm/html/doc/api/npm-prefix.html +55 -0
  138. data/lib/node_modules/npm/html/doc/api/npm-prune.html +57 -0
  139. data/lib/node_modules/npm/html/doc/api/npm-publish.html +66 -0
  140. data/lib/node_modules/npm/html/doc/api/npm-rebuild.html +56 -0
  141. data/lib/node_modules/npm/html/doc/api/npm-repo.html +59 -0
  142. data/lib/node_modules/npm/html/doc/api/npm-restart.html +61 -0
  143. data/lib/node_modules/npm/html/doc/api/npm-root.html +55 -0
  144. data/lib/node_modules/npm/html/doc/api/npm-run-script.html +63 -0
  145. data/lib/node_modules/npm/html/doc/api/npm-search.html +66 -0
  146. data/lib/node_modules/npm/html/doc/api/npm-shrinkwrap.html +60 -0
  147. data/lib/node_modules/npm/html/doc/api/npm-start.html +53 -0
  148. data/lib/node_modules/npm/html/doc/api/npm-stop.html +53 -0
  149. data/lib/node_modules/npm/html/doc/api/npm-submodule.html +67 -0
  150. data/lib/node_modules/npm/html/doc/api/npm-tag.html +63 -0
  151. data/lib/node_modules/npm/html/doc/api/npm-test.html +56 -0
  152. data/lib/node_modules/npm/html/doc/api/npm-uninstall.html +56 -0
  153. data/lib/node_modules/npm/html/doc/api/npm-unpublish.html +60 -0
  154. data/lib/node_modules/npm/html/doc/api/npm-update.html +52 -0
  155. data/lib/node_modules/npm/html/doc/api/npm-version.html +58 -0
  156. data/lib/node_modules/npm/html/doc/api/npm-view.html +133 -0
  157. data/lib/node_modules/npm/html/doc/api/npm-whoami.html +55 -0
  158. data/lib/node_modules/npm/html/doc/api/npm.html +126 -0
  159. data/lib/node_modules/npm/html/doc/cli/npm-adduser.html +73 -0
  160. data/lib/node_modules/npm/html/doc/cli/npm-bin.html +54 -0
  161. data/lib/node_modules/npm/html/doc/cli/npm-bugs.html +72 -0
  162. data/lib/node_modules/npm/html/doc/cli/npm-build.html +59 -0
  163. data/lib/node_modules/npm/html/doc/cli/npm-bundle.html +54 -0
  164. data/lib/node_modules/npm/html/doc/cli/npm-cache.html +100 -0
  165. data/lib/node_modules/npm/html/doc/cli/npm-completion.html +67 -0
  166. data/lib/node_modules/npm/html/doc/cli/npm-config.html +107 -0
  167. data/lib/node_modules/npm/html/doc/cli/npm-dedupe.html +96 -0
  168. data/lib/node_modules/npm/html/doc/cli/npm-deprecate.html +65 -0
  169. data/lib/node_modules/npm/html/doc/cli/npm-docs.html +75 -0
  170. data/lib/node_modules/npm/html/doc/cli/npm-edit.html +71 -0
  171. data/lib/node_modules/npm/html/doc/cli/npm-explore.html +74 -0
  172. data/lib/node_modules/npm/html/doc/cli/npm-help-search.html +72 -0
  173. data/lib/node_modules/npm/html/doc/cli/npm-help.html +70 -0
  174. data/lib/node_modules/npm/html/doc/cli/npm-init.html +63 -0
  175. data/lib/node_modules/npm/html/doc/cli/npm-install.html +183 -0
  176. data/lib/node_modules/npm/html/doc/cli/npm-link.html +96 -0
  177. data/lib/node_modules/npm/html/doc/cli/npm-ls.html +108 -0
  178. data/lib/node_modules/npm/html/doc/cli/npm-outdated.html +92 -0
  179. data/lib/node_modules/npm/html/doc/cli/npm-owner.html +68 -0
  180. data/lib/node_modules/npm/html/doc/cli/npm-pack.html +63 -0
  181. data/lib/node_modules/npm/html/doc/cli/npm-prefix.html +54 -0
  182. data/lib/node_modules/npm/html/doc/cli/npm-prune.html +63 -0
  183. data/lib/node_modules/npm/html/doc/cli/npm-publish.html +63 -0
  184. data/lib/node_modules/npm/html/doc/cli/npm-rebuild.html +60 -0
  185. data/lib/node_modules/npm/html/doc/cli/npm-repo.html +66 -0
  186. data/lib/node_modules/npm/html/doc/cli/npm-restart.html +58 -0
  187. data/lib/node_modules/npm/html/doc/cli/npm-rm.html +58 -0
  188. data/lib/node_modules/npm/html/doc/cli/npm-root.html +54 -0
  189. data/lib/node_modules/npm/html/doc/cli/npm-run-script.html +57 -0
  190. data/lib/node_modules/npm/html/doc/cli/npm-search.html +71 -0
  191. data/lib/node_modules/npm/html/doc/cli/npm-shrinkwrap.html +217 -0
  192. data/lib/node_modules/npm/html/doc/cli/npm-star.html +60 -0
  193. data/lib/node_modules/npm/html/doc/cli/npm-stars.html +59 -0
  194. data/lib/node_modules/npm/html/doc/cli/npm-start.html +54 -0
  195. data/lib/node_modules/npm/html/doc/cli/npm-stop.html +54 -0
  196. data/lib/node_modules/npm/html/doc/cli/npm-submodule.html +67 -0
  197. data/lib/node_modules/npm/html/doc/cli/npm-tag.html +68 -0
  198. data/lib/node_modules/npm/html/doc/cli/npm-test.html +58 -0
  199. data/lib/node_modules/npm/html/doc/cli/npm-uninstall.html +56 -0
  200. data/lib/node_modules/npm/html/doc/cli/npm-unpublish.html +68 -0
  201. data/lib/node_modules/npm/html/doc/cli/npm-update.html +60 -0
  202. data/lib/node_modules/npm/html/doc/cli/npm-version.html +83 -0
  203. data/lib/node_modules/npm/html/doc/cli/npm-view.html +125 -0
  204. data/lib/node_modules/npm/html/doc/cli/npm-whoami.html +54 -0
  205. data/lib/node_modules/npm/html/doc/cli/npm.html +165 -0
  206. data/lib/node_modules/npm/html/doc/files/npm-folders.html +239 -0
  207. data/lib/node_modules/npm/html/doc/files/npm-global.html +239 -0
  208. data/lib/node_modules/npm/html/doc/files/npm-json.html +580 -0
  209. data/lib/node_modules/npm/html/doc/files/npmrc.html +93 -0
  210. data/lib/node_modules/npm/html/doc/files/package.json.html +580 -0
  211. data/lib/node_modules/npm/html/doc/index.html +450 -0
  212. data/lib/node_modules/npm/html/doc/misc/npm-coding-style.html +216 -0
  213. data/lib/node_modules/npm/html/doc/misc/npm-config.html +744 -0
  214. data/lib/node_modules/npm/html/doc/misc/npm-developers.html +208 -0
  215. data/lib/node_modules/npm/html/doc/misc/npm-disputes.html +126 -0
  216. data/lib/node_modules/npm/html/doc/misc/npm-faq.html +382 -0
  217. data/lib/node_modules/npm/html/doc/misc/npm-index.html +450 -0
  218. data/lib/node_modules/npm/html/doc/misc/npm-registry.html +105 -0
  219. data/lib/node_modules/npm/html/doc/misc/npm-scripts.html +257 -0
  220. data/lib/node_modules/npm/html/doc/misc/removing-npm.html +92 -0
  221. data/lib/node_modules/npm/html/doc/misc/semver.html +128 -0
  222. data/lib/node_modules/npm/html/docfoot-script.html +31 -0
  223. data/lib/node_modules/npm/html/docfoot.html +2 -0
  224. data/lib/node_modules/npm/html/dochead.html +8 -0
  225. data/lib/node_modules/npm/html/favicon.ico +0 -0
  226. data/lib/node_modules/npm/html/index.html +95 -0
  227. data/lib/node_modules/npm/html/static/style.css +329 -0
  228. data/lib/node_modules/npm/lib/adduser.js +138 -0
  229. data/lib/node_modules/npm/lib/bin.js +18 -0
  230. data/lib/node_modules/npm/lib/bugs.js +61 -0
  231. data/lib/node_modules/npm/lib/build.js +228 -0
  232. data/lib/node_modules/npm/lib/cache.js +1318 -0
  233. data/lib/node_modules/npm/lib/completion.js +253 -0
  234. data/lib/node_modules/npm/lib/config.js +285 -0
  235. data/lib/node_modules/npm/lib/dedupe.js +357 -0
  236. data/lib/node_modules/npm/lib/deprecate.js +47 -0
  237. data/lib/node_modules/npm/lib/docs.js +62 -0
  238. data/lib/node_modules/npm/lib/edit.js +32 -0
  239. data/lib/node_modules/npm/lib/explore.js +36 -0
  240. data/lib/node_modules/npm/lib/faq.js +8 -0
  241. data/lib/node_modules/npm/lib/get.js +12 -0
  242. data/lib/node_modules/npm/lib/help-search.js +218 -0
  243. data/lib/node_modules/npm/lib/help.js +231 -0
  244. data/lib/node_modules/npm/lib/init.js +36 -0
  245. data/lib/node_modules/npm/lib/install.js +979 -0
  246. data/lib/node_modules/npm/lib/link.js +173 -0
  247. data/lib/node_modules/npm/lib/ls.js +357 -0
  248. data/lib/node_modules/npm/lib/npm.js +528 -0
  249. data/lib/node_modules/npm/lib/outdated.js +303 -0
  250. data/lib/node_modules/npm/lib/owner.js +205 -0
  251. data/lib/node_modules/npm/lib/pack.js +65 -0
  252. data/lib/node_modules/npm/lib/prefix.js +11 -0
  253. data/lib/node_modules/npm/lib/prune.js +53 -0
  254. data/lib/node_modules/npm/lib/publish.js +118 -0
  255. data/lib/node_modules/npm/lib/rebuild.js +75 -0
  256. data/lib/node_modules/npm/lib/repo.js +54 -0
  257. data/lib/node_modules/npm/lib/restart.js +1 -0
  258. data/lib/node_modules/npm/lib/root.js +11 -0
  259. data/lib/node_modules/npm/lib/run-script.js +102 -0
  260. data/lib/node_modules/npm/lib/search.js +265 -0
  261. data/lib/node_modules/npm/lib/set.js +13 -0
  262. data/lib/node_modules/npm/lib/shrinkwrap.js +86 -0
  263. data/lib/node_modules/npm/lib/star.js +33 -0
  264. data/lib/node_modules/npm/lib/stars.js +27 -0
  265. data/lib/node_modules/npm/lib/start.js +1 -0
  266. data/lib/node_modules/npm/lib/stop.js +1 -0
  267. data/lib/node_modules/npm/lib/submodule.js +119 -0
  268. data/lib/node_modules/npm/lib/substack.js +20 -0
  269. data/lib/node_modules/npm/lib/tag.js +18 -0
  270. data/lib/node_modules/npm/lib/test.js +14 -0
  271. data/lib/node_modules/npm/lib/unbuild.js +112 -0
  272. data/lib/node_modules/npm/lib/uninstall.js +127 -0
  273. data/lib/node_modules/npm/lib/unpublish.js +83 -0
  274. data/lib/node_modules/npm/lib/update.js +43 -0
  275. data/lib/node_modules/npm/lib/utils/completion.sh +54 -0
  276. data/lib/node_modules/npm/lib/utils/completion/file-completion.js +26 -0
  277. data/lib/node_modules/npm/lib/utils/completion/installed-deep.js +50 -0
  278. data/lib/node_modules/npm/lib/utils/completion/installed-shallow.js +79 -0
  279. data/lib/node_modules/npm/lib/utils/error-handler.js +343 -0
  280. data/lib/node_modules/npm/lib/utils/fetch.js +93 -0
  281. data/lib/node_modules/npm/lib/utils/find-prefix.js +57 -0
  282. data/lib/node_modules/npm/lib/utils/gently-rm.js +61 -0
  283. data/lib/node_modules/npm/lib/utils/is-git-url.js +13 -0
  284. data/lib/node_modules/npm/lib/utils/lifecycle.js +360 -0
  285. data/lib/node_modules/npm/lib/utils/link.js +39 -0
  286. data/lib/node_modules/npm/lib/utils/tar.js +323 -0
  287. data/lib/node_modules/npm/lib/version.js +120 -0
  288. data/lib/node_modules/npm/lib/view.js +246 -0
  289. data/lib/node_modules/npm/lib/visnup.js +42 -0
  290. data/lib/node_modules/npm/lib/whoami.js +13 -0
  291. data/lib/node_modules/npm/lib/xmas.js +56 -0
  292. data/lib/node_modules/npm/make.bat +3 -0
  293. data/lib/node_modules/npm/man/man1/npm-README.1 +328 -0
  294. data/lib/node_modules/npm/man/man1/npm-adduser.1 +63 -0
  295. data/lib/node_modules/npm/man/man1/npm-bin.1 +40 -0
  296. data/lib/node_modules/npm/man/man1/npm-bugs.1 +78 -0
  297. data/lib/node_modules/npm/man/man1/npm-build.1 +43 -0
  298. data/lib/node_modules/npm/man/man1/npm-bundle.1 +23 -0
  299. data/lib/node_modules/npm/man/man1/npm-cache.1 +104 -0
  300. data/lib/node_modules/npm/man/man1/npm-completion.1 +47 -0
  301. data/lib/node_modules/npm/man/man1/npm-config.1 +113 -0
  302. data/lib/node_modules/npm/man/man1/npm-dedupe.1 +96 -0
  303. data/lib/node_modules/npm/man/man1/npm-deprecate.1 +48 -0
  304. data/lib/node_modules/npm/man/man1/npm-docs.1 +78 -0
  305. data/lib/node_modules/npm/man/man1/npm-edit.1 +66 -0
  306. data/lib/node_modules/npm/man/man1/npm-explore.1 +76 -0
  307. data/lib/node_modules/npm/man/man1/npm-help-search.1 +59 -0
  308. data/lib/node_modules/npm/man/man1/npm-help.1 +77 -0
  309. data/lib/node_modules/npm/man/man1/npm-init.1 +43 -0
  310. data/lib/node_modules/npm/man/man1/npm-install.1 +434 -0
  311. data/lib/node_modules/npm/man/man1/npm-link.1 +119 -0
  312. data/lib/node_modules/npm/man/man1/npm-ls.1 +146 -0
  313. data/lib/node_modules/npm/man/man1/npm-outdated.1 +102 -0
  314. data/lib/node_modules/npm/man/man1/npm-owner.1 +58 -0
  315. data/lib/node_modules/npm/man/man1/npm-pack.1 +48 -0
  316. data/lib/node_modules/npm/man/man1/npm-prefix.1 +40 -0
  317. data/lib/node_modules/npm/man/man1/npm-prune.1 +42 -0
  318. data/lib/node_modules/npm/man/man1/npm-publish.1 +53 -0
  319. data/lib/node_modules/npm/man/man1/npm-rebuild.1 +37 -0
  320. data/lib/node_modules/npm/man/man1/npm-repo.1 +47 -0
  321. data/lib/node_modules/npm/man/man1/npm-restart.1 +42 -0
  322. data/lib/node_modules/npm/man/man1/npm-rm.1 +44 -0
  323. data/lib/node_modules/npm/man/man1/npm-root.1 +40 -0
  324. data/lib/node_modules/npm/man/man1/npm-run-script.1 +41 -0
  325. data/lib/node_modules/npm/man/man1/npm-search.1 +62 -0
  326. data/lib/node_modules/npm/man/man1/npm-shrinkwrap.1 +275 -0
  327. data/lib/node_modules/npm/man/man1/npm-star.1 +39 -0
  328. data/lib/node_modules/npm/man/man1/npm-stars.1 +40 -0
  329. data/lib/node_modules/npm/man/man1/npm-start.1 +37 -0
  330. data/lib/node_modules/npm/man/man1/npm-stop.1 +37 -0
  331. data/lib/node_modules/npm/man/man1/npm-submodule.1 +42 -0
  332. data/lib/node_modules/npm/man/man1/npm-tag.1 +74 -0
  333. data/lib/node_modules/npm/man/man1/npm-test.1 +42 -0
  334. data/lib/node_modules/npm/man/man1/npm-uninstall.1 +42 -0
  335. data/lib/node_modules/npm/man/man1/npm-unpublish.1 +53 -0
  336. data/lib/node_modules/npm/man/man1/npm-update.1 +45 -0
  337. data/lib/node_modules/npm/man/man1/npm-version.1 +75 -0
  338. data/lib/node_modules/npm/man/man1/npm-view.1 +186 -0
  339. data/lib/node_modules/npm/man/man1/npm-whoami.1 +34 -0
  340. data/lib/node_modules/npm/man/man1/npm.1 +230 -0
  341. data/lib/node_modules/npm/man/man3/npm-bin.3 +21 -0
  342. data/lib/node_modules/npm/man/man3/npm-bugs.3 +28 -0
  343. data/lib/node_modules/npm/man/man3/npm-commands.3 +35 -0
  344. data/lib/node_modules/npm/man/man3/npm-config.3 +69 -0
  345. data/lib/node_modules/npm/man/man3/npm-deprecate.3 +57 -0
  346. data/lib/node_modules/npm/man/man3/npm-docs.3 +28 -0
  347. data/lib/node_modules/npm/man/man3/npm-edit.3 +35 -0
  348. data/lib/node_modules/npm/man/man3/npm-explore.3 +28 -0
  349. data/lib/node_modules/npm/man/man3/npm-help-search.3 +51 -0
  350. data/lib/node_modules/npm/man/man3/npm-init.3 +39 -0
  351. data/lib/node_modules/npm/man/man3/npm-install.3 +29 -0
  352. data/lib/node_modules/npm/man/man3/npm-link.3 +53 -0
  353. data/lib/node_modules/npm/man/man3/npm-load.3 +44 -0
  354. data/lib/node_modules/npm/man/man3/npm-ls.3 +86 -0
  355. data/lib/node_modules/npm/man/man3/npm-outdated.3 +21 -0
  356. data/lib/node_modules/npm/man/man3/npm-owner.3 +52 -0
  357. data/lib/node_modules/npm/man/man3/npm-pack.3 +28 -0
  358. data/lib/node_modules/npm/man/man3/npm-prefix.3 +24 -0
  359. data/lib/node_modules/npm/man/man3/npm-prune.3 +27 -0
  360. data/lib/node_modules/npm/man/man3/npm-publish.3 +51 -0
  361. data/lib/node_modules/npm/man/man3/npm-rebuild.3 +22 -0
  362. data/lib/node_modules/npm/man/man3/npm-repo.3 +28 -0
  363. data/lib/node_modules/npm/man/man3/npm-restart.3 +37 -0
  364. data/lib/node_modules/npm/man/man3/npm-root.3 +24 -0
  365. data/lib/node_modules/npm/man/man3/npm-run-script.3 +48 -0
  366. data/lib/node_modules/npm/man/man3/npm-search.3 +64 -0
  367. data/lib/node_modules/npm/man/man3/npm-shrinkwrap.3 +30 -0
  368. data/lib/node_modules/npm/man/man3/npm-start.3 +21 -0
  369. data/lib/node_modules/npm/man/man3/npm-stop.3 +21 -0
  370. data/lib/node_modules/npm/man/man3/npm-submodule.3 +42 -0
  371. data/lib/node_modules/npm/man/man3/npm-tag.3 +31 -0
  372. data/lib/node_modules/npm/man/man3/npm-test.3 +25 -0
  373. data/lib/node_modules/npm/man/man3/npm-uninstall.3 +25 -0
  374. data/lib/node_modules/npm/man/man3/npm-unpublish.3 +30 -0
  375. data/lib/node_modules/npm/man/man3/npm-update.3 +18 -0
  376. data/lib/node_modules/npm/man/man3/npm-version.3 +27 -0
  377. data/lib/node_modules/npm/man/man3/npm-view.3 +176 -0
  378. data/lib/node_modules/npm/man/man3/npm-whoami.3 +24 -0
  379. data/lib/node_modules/npm/man/man3/npm.3 +162 -0
  380. data/lib/node_modules/npm/man/man5/npm-folders.5 +264 -0
  381. data/lib/node_modules/npm/man/man5/npm-global.5 +264 -0
  382. data/lib/node_modules/npm/man/man5/npm-json.5 +807 -0
  383. data/lib/node_modules/npm/man/man5/npmrc.5 +89 -0
  384. data/lib/node_modules/npm/man/man5/package.json.5 +807 -0
  385. data/lib/node_modules/npm/man/man7/npm-coding-style.7 +254 -0
  386. data/lib/node_modules/npm/man/man7/npm-config.7 +1445 -0
  387. data/lib/node_modules/npm/man/man7/npm-developers.7 +335 -0
  388. data/lib/node_modules/npm/man/man7/npm-disputes.7 +146 -0
  389. data/lib/node_modules/npm/man/man7/npm-faq.7 +479 -0
  390. data/lib/node_modules/npm/man/man7/npm-index.7 +307 -0
  391. data/lib/node_modules/npm/man/man7/npm-registry.7 +82 -0
  392. data/lib/node_modules/npm/man/man7/npm-scripts.7 +354 -0
  393. data/lib/node_modules/npm/man/man7/removing-npm.7 +107 -0
  394. data/lib/node_modules/npm/man/man7/semver.7 +172 -0
  395. data/lib/node_modules/npm/node_modules/abbrev/LICENSE +23 -0
  396. data/lib/node_modules/npm/node_modules/abbrev/README.md +23 -0
  397. data/lib/node_modules/npm/node_modules/abbrev/lib/abbrev.js +111 -0
  398. data/lib/node_modules/npm/node_modules/abbrev/package.json +25 -0
  399. data/lib/node_modules/npm/node_modules/ansi/README.md +91 -0
  400. data/lib/node_modules/npm/node_modules/ansi/color-spaces.pl +67 -0
  401. data/lib/node_modules/npm/node_modules/ansi/examples/beep/index.js +16 -0
  402. data/lib/node_modules/npm/node_modules/ansi/examples/clear/index.js +15 -0
  403. data/lib/node_modules/npm/node_modules/ansi/examples/cursorPosition.js +32 -0
  404. data/lib/node_modules/npm/node_modules/ansi/examples/progress/index.js +87 -0
  405. data/lib/node_modules/npm/node_modules/ansi/examples/starwars.js +46 -0
  406. data/lib/node_modules/npm/node_modules/ansi/lib/ansi.js +405 -0
  407. data/lib/node_modules/npm/node_modules/ansi/lib/newlines.js +71 -0
  408. data/lib/node_modules/npm/node_modules/ansi/package.json +50 -0
  409. data/lib/node_modules/npm/node_modules/ansicolors/LICENSE +23 -0
  410. data/lib/node_modules/npm/node_modules/ansicolors/README.md +62 -0
  411. data/lib/node_modules/npm/node_modules/ansicolors/ansicolors.js +65 -0
  412. data/lib/node_modules/npm/node_modules/ansicolors/package.json +34 -0
  413. data/lib/node_modules/npm/node_modules/ansistyles/LICENSE +23 -0
  414. data/lib/node_modules/npm/node_modules/ansistyles/README.md +71 -0
  415. data/lib/node_modules/npm/node_modules/ansistyles/ansistyles.js +38 -0
  416. data/lib/node_modules/npm/node_modules/ansistyles/package.json +38 -0
  417. data/lib/node_modules/npm/node_modules/archy/README.markdown +92 -0
  418. data/lib/node_modules/npm/node_modules/archy/index.js +35 -0
  419. data/lib/node_modules/npm/node_modules/archy/package.json +52 -0
  420. data/lib/node_modules/npm/node_modules/block-stream/LICENCE +25 -0
  421. data/lib/node_modules/npm/node_modules/block-stream/README.md +14 -0
  422. data/lib/node_modules/npm/node_modules/block-stream/bench/block-stream-pause.js +70 -0
  423. data/lib/node_modules/npm/node_modules/block-stream/bench/block-stream.js +68 -0
  424. data/lib/node_modules/npm/node_modules/block-stream/bench/dropper-pause.js +70 -0
  425. data/lib/node_modules/npm/node_modules/block-stream/bench/dropper.js +68 -0
  426. data/lib/node_modules/npm/node_modules/block-stream/block-stream.js +209 -0
  427. data/lib/node_modules/npm/node_modules/block-stream/package.json +35 -0
  428. data/lib/node_modules/npm/node_modules/child-process-close/README.md +45 -0
  429. data/lib/node_modules/npm/node_modules/child-process-close/index.js +48 -0
  430. data/lib/node_modules/npm/node_modules/child-process-close/package.json +37 -0
  431. data/lib/node_modules/npm/node_modules/chmodr/LICENSE +27 -0
  432. data/lib/node_modules/npm/node_modules/chmodr/README.md +3 -0
  433. data/lib/node_modules/npm/node_modules/chmodr/chmodr.js +54 -0
  434. data/lib/node_modules/npm/node_modules/chmodr/package.json +28 -0
  435. data/lib/node_modules/npm/node_modules/chownr/LICENCE +25 -0
  436. data/lib/node_modules/npm/node_modules/chownr/README.md +3 -0
  437. data/lib/node_modules/npm/node_modules/chownr/chownr.js +41 -0
  438. data/lib/node_modules/npm/node_modules/chownr/package.json +42 -0
  439. data/lib/node_modules/npm/node_modules/cmd-shim/LICENSE +27 -0
  440. data/lib/node_modules/npm/node_modules/cmd-shim/README.md +42 -0
  441. data/lib/node_modules/npm/node_modules/cmd-shim/index.js +180 -0
  442. data/lib/node_modules/npm/node_modules/cmd-shim/package.json +35 -0
  443. data/lib/node_modules/npm/node_modules/columnify/Readme.md +189 -0
  444. data/lib/node_modules/npm/node_modules/columnify/index.js +210 -0
  445. data/lib/node_modules/npm/node_modules/columnify/package.json +42 -0
  446. data/lib/node_modules/npm/node_modules/columnify/utils.js +76 -0
  447. data/lib/node_modules/npm/node_modules/editor/LICENSE +18 -0
  448. data/lib/node_modules/npm/node_modules/editor/README.markdown +54 -0
  449. data/lib/node_modules/npm/node_modules/editor/example/beep.json +5 -0
  450. data/lib/node_modules/npm/node_modules/editor/example/edit.js +4 -0
  451. data/lib/node_modules/npm/node_modules/editor/index.js +26 -0
  452. data/lib/node_modules/npm/node_modules/editor/package.json +43 -0
  453. data/lib/node_modules/npm/node_modules/fstream-npm/LICENCE +25 -0
  454. data/lib/node_modules/npm/node_modules/fstream-npm/README.md +18 -0
  455. data/lib/node_modules/npm/node_modules/fstream-npm/example/bundle.js +13 -0
  456. data/lib/node_modules/npm/node_modules/fstream-npm/example/dir-tar.js +19 -0
  457. data/lib/node_modules/npm/node_modules/fstream-npm/example/dir.js +25 -0
  458. data/lib/node_modules/npm/node_modules/fstream-npm/example/example.js +12 -0
  459. data/lib/node_modules/npm/node_modules/fstream-npm/example/ig-tar.js +19 -0
  460. data/lib/node_modules/npm/node_modules/fstream-npm/example/tar.js +25 -0
  461. data/lib/node_modules/npm/node_modules/fstream-npm/fstream-npm.js +323 -0
  462. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE +27 -0
  463. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md +22 -0
  464. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/example/basic.js +13 -0
  465. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js +275 -0
  466. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json +40 -0
  467. data/lib/node_modules/npm/node_modules/fstream-npm/package.json +27 -0
  468. data/lib/node_modules/npm/node_modules/fstream/LICENSE +27 -0
  469. data/lib/node_modules/npm/node_modules/fstream/README.md +76 -0
  470. data/lib/node_modules/npm/node_modules/fstream/examples/filter-pipe.js +131 -0
  471. data/lib/node_modules/npm/node_modules/fstream/examples/pipe.js +115 -0
  472. data/lib/node_modules/npm/node_modules/fstream/examples/reader.js +54 -0
  473. data/lib/node_modules/npm/node_modules/fstream/examples/symlink-write.js +24 -0
  474. data/lib/node_modules/npm/node_modules/fstream/fstream.js +31 -0
  475. data/lib/node_modules/npm/node_modules/fstream/lib/abstract.js +85 -0
  476. data/lib/node_modules/npm/node_modules/fstream/lib/collect.js +67 -0
  477. data/lib/node_modules/npm/node_modules/fstream/lib/dir-reader.js +251 -0
  478. data/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js +171 -0
  479. data/lib/node_modules/npm/node_modules/fstream/lib/file-reader.js +147 -0
  480. data/lib/node_modules/npm/node_modules/fstream/lib/file-writer.js +100 -0
  481. data/lib/node_modules/npm/node_modules/fstream/lib/get-type.js +32 -0
  482. data/lib/node_modules/npm/node_modules/fstream/lib/link-reader.js +54 -0
  483. data/lib/node_modules/npm/node_modules/fstream/lib/link-writer.js +95 -0
  484. data/lib/node_modules/npm/node_modules/fstream/lib/proxy-reader.js +93 -0
  485. data/lib/node_modules/npm/node_modules/fstream/lib/proxy-writer.js +109 -0
  486. data/lib/node_modules/npm/node_modules/fstream/lib/reader.js +260 -0
  487. data/lib/node_modules/npm/node_modules/fstream/lib/socket-reader.js +38 -0
  488. data/lib/node_modules/npm/node_modules/fstream/lib/writer.js +389 -0
  489. data/lib/node_modules/npm/node_modules/fstream/package.json +43 -0
  490. data/lib/node_modules/npm/node_modules/github-url-from-git/History.md +10 -0
  491. data/lib/node_modules/npm/node_modules/github-url-from-git/Makefile +5 -0
  492. data/lib/node_modules/npm/node_modules/github-url-from-git/Readme.md +41 -0
  493. data/lib/node_modules/npm/node_modules/github-url-from-git/index.js +12 -0
  494. data/lib/node_modules/npm/node_modules/github-url-from-git/package.json +31 -0
  495. data/lib/node_modules/npm/node_modules/github-url-from-git/test.js +40 -0
  496. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/LICENSE +27 -0
  497. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/README.md +14 -0
  498. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/index.js +9 -0
  499. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/package.json +33 -0
  500. data/lib/node_modules/npm/node_modules/glob/LICENSE +27 -0
  501. data/lib/node_modules/npm/node_modules/glob/README.md +250 -0
  502. data/lib/node_modules/npm/node_modules/glob/examples/g.js +9 -0
  503. data/lib/node_modules/npm/node_modules/glob/examples/usr-local.js +9 -0
  504. data/lib/node_modules/npm/node_modules/glob/glob.js +680 -0
  505. data/lib/node_modules/npm/node_modules/glob/package.json +39 -0
  506. data/lib/node_modules/npm/node_modules/graceful-fs/LICENSE +27 -0
  507. data/lib/node_modules/npm/node_modules/graceful-fs/README.md +26 -0
  508. data/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js +161 -0
  509. data/lib/node_modules/npm/node_modules/graceful-fs/package.json +48 -0
  510. data/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js +228 -0
  511. data/lib/node_modules/npm/node_modules/inherits/LICENSE +16 -0
  512. data/lib/node_modules/npm/node_modules/inherits/README.md +42 -0
  513. data/lib/node_modules/npm/node_modules/inherits/inherits.js +1 -0
  514. data/lib/node_modules/npm/node_modules/inherits/inherits_browser.js +23 -0
  515. data/lib/node_modules/npm/node_modules/inherits/package.json +32 -0
  516. data/lib/node_modules/npm/node_modules/inherits/test.js +25 -0
  517. data/lib/node_modules/npm/node_modules/ini/LICENSE +23 -0
  518. data/lib/node_modules/npm/node_modules/ini/README.md +79 -0
  519. data/lib/node_modules/npm/node_modules/ini/ini.js +166 -0
  520. data/lib/node_modules/npm/node_modules/ini/package.json +29 -0
  521. data/lib/node_modules/npm/node_modules/init-package-json/README.md +43 -0
  522. data/lib/node_modules/npm/node_modules/init-package-json/default-input.js +181 -0
  523. data/lib/node_modules/npm/node_modules/init-package-json/example/example-basic.js +8 -0
  524. data/lib/node_modules/npm/node_modules/init-package-json/example/example-default.js +7 -0
  525. data/lib/node_modules/npm/node_modules/init-package-json/example/example-npm.js +13 -0
  526. data/lib/node_modules/npm/node_modules/init-package-json/example/init/basic-init.js +1 -0
  527. data/lib/node_modules/npm/node_modules/init-package-json/init-package-json.js +129 -0
  528. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/LICENSE +15 -0
  529. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/README.md +133 -0
  530. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/index.js +11 -0
  531. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md +8 -0
  532. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js +191 -0
  533. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js +37 -0
  534. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json +10 -0
  535. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js +61 -0
  536. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/package.json +32 -0
  537. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/promzard.js +216 -0
  538. data/lib/node_modules/npm/node_modules/init-package-json/package.json +48 -0
  539. data/lib/node_modules/npm/node_modules/lockfile/LICENSE +27 -0
  540. data/lib/node_modules/npm/node_modules/lockfile/README.md +81 -0
  541. data/lib/node_modules/npm/node_modules/lockfile/lockfile.js +272 -0
  542. data/lib/node_modules/npm/node_modules/lockfile/package.json +45 -0
  543. data/lib/node_modules/npm/node_modules/lru-cache/CONTRIBUTORS +14 -0
  544. data/lib/node_modules/npm/node_modules/lru-cache/LICENSE +23 -0
  545. data/lib/node_modules/npm/node_modules/lru-cache/README.md +97 -0
  546. data/lib/node_modules/npm/node_modules/lru-cache/lib/lru-cache.js +252 -0
  547. data/lib/node_modules/npm/node_modules/lru-cache/package.json +33 -0
  548. data/lib/node_modules/npm/node_modules/minimatch/LICENSE +23 -0
  549. data/lib/node_modules/npm/node_modules/minimatch/README.md +218 -0
  550. data/lib/node_modules/npm/node_modules/minimatch/minimatch.js +1055 -0
  551. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  552. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  553. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  554. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  555. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  556. data/lib/node_modules/npm/node_modules/minimatch/package.json +40 -0
  557. data/lib/node_modules/npm/node_modules/mkdirp/LICENSE +21 -0
  558. data/lib/node_modules/npm/node_modules/mkdirp/README.markdown +63 -0
  559. data/lib/node_modules/npm/node_modules/mkdirp/examples/pow.js +6 -0
  560. data/lib/node_modules/npm/node_modules/mkdirp/index.js +82 -0
  561. data/lib/node_modules/npm/node_modules/mkdirp/package.json +33 -0
  562. data/lib/node_modules/npm/node_modules/node-gyp/LICENSE +24 -0
  563. data/lib/node_modules/npm/node_modules/node-gyp/README.md +163 -0
  564. data/lib/node_modules/npm/node_modules/node-gyp/addon.gypi +59 -0
  565. data/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js +133 -0
  566. data/lib/node_modules/npm/node_modules/node-gyp/gyp/AUTHORS +10 -0
  567. data/lib/node_modules/npm/node_modules/node-gyp/gyp/DEPS +24 -0
  568. data/lib/node_modules/npm/node_modules/node-gyp/gyp/LICENSE +27 -0
  569. data/lib/node_modules/npm/node_modules/node-gyp/gyp/OWNERS +1 -0
  570. data/lib/node_modules/npm/node_modules/node-gyp/gyp/PRESUBMIT.py +115 -0
  571. data/lib/node_modules/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py +148 -0
  572. data/lib/node_modules/npm/node_modules/node-gyp/gyp/codereview.settings +10 -0
  573. data/lib/node_modules/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +12 -0
  574. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp +7 -0
  575. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp.bat +5 -0
  576. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_dummy.c +7 -0
  577. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py +18 -0
  578. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyptest.py +274 -0
  579. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +340 -0
  580. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +208 -0
  581. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +1051 -0
  582. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +1482 -0
  583. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +58 -0
  584. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +147 -0
  585. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +267 -0
  586. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +407 -0
  587. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +537 -0
  588. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py +513 -0
  589. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +72 -0
  590. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +157 -0
  591. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +103 -0
  592. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +49 -0
  593. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  594. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +1069 -0
  595. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +81 -0
  596. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +308 -0
  597. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +87 -0
  598. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +56 -0
  599. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +2172 -0
  600. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +3270 -0
  601. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +37 -0
  602. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2150 -0
  603. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +44 -0
  604. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +1224 -0
  605. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +23 -0
  606. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +2809 -0
  607. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +90 -0
  608. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +264 -0
  609. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +870 -0
  610. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +160 -0
  611. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +176 -0
  612. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +1324 -0
  613. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +2888 -0
  614. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +69 -0
  615. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylintrc +307 -0
  616. data/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples +81 -0
  617. data/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples.bat +5 -0
  618. data/lib/node_modules/npm/node_modules/node-gyp/gyp/setup.py +19 -0
  619. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/README +15 -0
  620. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/README +5 -0
  621. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
  622. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
  623. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/README +12 -0
  624. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el +63 -0
  625. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el +252 -0
  626. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh +7 -0
  627. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp +1105 -0
  628. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified +1107 -0
  629. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/graphviz.py +100 -0
  630. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py +155 -0
  631. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py +168 -0
  632. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +329 -0
  633. data/lib/node_modules/npm/node_modules/node-gyp/lib/build.js +275 -0
  634. data/lib/node_modules/npm/node_modules/node-gyp/lib/clean.js +22 -0
  635. data/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js +344 -0
  636. data/lib/node_modules/npm/node_modules/node-gyp/lib/install.js +362 -0
  637. data/lib/node_modules/npm/node_modules/node-gyp/lib/list.js +33 -0
  638. data/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js +225 -0
  639. data/lib/node_modules/npm/node_modules/node-gyp/lib/rebuild.js +16 -0
  640. data/lib/node_modules/npm/node_modules/node-gyp/lib/remove.js +56 -0
  641. data/lib/node_modules/npm/node_modules/node-gyp/package.json +55 -0
  642. data/lib/node_modules/npm/node_modules/nopt/LICENSE +23 -0
  643. data/lib/node_modules/npm/node_modules/nopt/README.md +210 -0
  644. data/lib/node_modules/npm/node_modules/nopt/bin/nopt.js +51 -0
  645. data/lib/node_modules/npm/node_modules/nopt/examples/my-program.js +30 -0
  646. data/lib/node_modules/npm/node_modules/nopt/lib/nopt.js +407 -0
  647. data/lib/node_modules/npm/node_modules/nopt/package.json +39 -0
  648. data/lib/node_modules/npm/node_modules/npm-install-checks/LICENSE +234 -0
  649. data/lib/node_modules/npm/node_modules/npm-install-checks/README.md +25 -0
  650. data/lib/node_modules/npm/node_modules/npm-install-checks/index.js +146 -0
  651. data/lib/node_modules/npm/node_modules/npm-install-checks/package.json +43 -0
  652. data/lib/node_modules/npm/node_modules/npm-registry-client/LICENSE +27 -0
  653. data/lib/node_modules/npm/node_modules/npm-registry-client/README.md +176 -0
  654. data/lib/node_modules/npm/node_modules/npm-registry-client/index.js +55 -0
  655. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js +138 -0
  656. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/bugs.js +9 -0
  657. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js +28 -0
  658. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js +184 -0
  659. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/publish.js +156 -0
  660. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js +270 -0
  661. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/star.js +29 -0
  662. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/stars.js +9 -0
  663. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/tag.js +6 -0
  664. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js +104 -0
  665. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/upload.js +22 -0
  666. data/lib/node_modules/npm/node_modules/npm-registry-client/package.json +43 -0
  667. data/lib/node_modules/npm/node_modules/npm-user-validate/LICENSE +27 -0
  668. data/lib/node_modules/npm/node_modules/npm-user-validate/README.md +6 -0
  669. data/lib/node_modules/npm/node_modules/npm-user-validate/npm-user-validate.js +49 -0
  670. data/lib/node_modules/npm/node_modules/npm-user-validate/package.json +37 -0
  671. data/lib/node_modules/npm/node_modules/npmconf/LICENSE +27 -0
  672. data/lib/node_modules/npm/node_modules/npmconf/README.md +33 -0
  673. data/lib/node_modules/npm/node_modules/npmconf/config-defs.js +353 -0
  674. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/LICENCE +22 -0
  675. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/index.js +282 -0
  676. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/LICENSE +23 -0
  677. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/README.md +3 -0
  678. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json +33 -0
  679. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/proto-list.js +81 -0
  680. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/package.json +32 -0
  681. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/readme.markdown +228 -0
  682. data/lib/node_modules/npm/node_modules/npmconf/npmconf.js +338 -0
  683. data/lib/node_modules/npm/node_modules/npmconf/package.json +50 -0
  684. data/lib/node_modules/npm/node_modules/npmlog/LICENSE +27 -0
  685. data/lib/node_modules/npm/node_modules/npmlog/README.md +153 -0
  686. data/lib/node_modules/npm/node_modules/npmlog/example.js +39 -0
  687. data/lib/node_modules/npm/node_modules/npmlog/log.js +154 -0
  688. data/lib/node_modules/npm/node_modules/npmlog/package.json +32 -0
  689. data/lib/node_modules/npm/node_modules/once/LICENSE +27 -0
  690. data/lib/node_modules/npm/node_modules/once/README.md +51 -0
  691. data/lib/node_modules/npm/node_modules/once/once.js +20 -0
  692. data/lib/node_modules/npm/node_modules/once/package.json +39 -0
  693. data/lib/node_modules/npm/node_modules/opener/LICENSE.txt +14 -0
  694. data/lib/node_modules/npm/node_modules/opener/README.md +44 -0
  695. data/lib/node_modules/npm/node_modules/opener/opener.js +55 -0
  696. data/lib/node_modules/npm/node_modules/opener/package.json +34 -0
  697. data/lib/node_modules/npm/node_modules/osenv/LICENSE +25 -0
  698. data/lib/node_modules/npm/node_modules/osenv/README.md +63 -0
  699. data/lib/node_modules/npm/node_modules/osenv/osenv.js +80 -0
  700. data/lib/node_modules/npm/node_modules/osenv/package.json +38 -0
  701. data/lib/node_modules/npm/node_modules/path-is-inside/LICENSE.txt +14 -0
  702. data/lib/node_modules/npm/node_modules/path-is-inside/README.md +35 -0
  703. data/lib/node_modules/npm/node_modules/path-is-inside/lib/path-is-inside.js +24 -0
  704. data/lib/node_modules/npm/node_modules/path-is-inside/package.json +39 -0
  705. data/lib/node_modules/npm/node_modules/read-installed/LICENSE +16 -0
  706. data/lib/node_modules/npm/node_modules/read-installed/README.md +25 -0
  707. data/lib/node_modules/npm/node_modules/read-installed/package.json +39 -0
  708. data/lib/node_modules/npm/node_modules/read-installed/read-installed.js +338 -0
  709. data/lib/node_modules/npm/node_modules/read-package-json/LICENSE +15 -0
  710. data/lib/node_modules/npm/node_modules/read-package-json/README.md +166 -0
  711. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/AUTHORS +4 -0
  712. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/LICENSE +30 -0
  713. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/README.md +101 -0
  714. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/core_module_names.json +29 -0
  715. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/extract_description.js +14 -0
  716. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/fixer.js +392 -0
  717. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/normalize.js +36 -0
  718. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/safe_format.js +9 -0
  719. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/typos.json +25 -0
  720. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/warning_messages.json +28 -0
  721. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/package.json +53 -0
  722. data/lib/node_modules/npm/node_modules/read-package-json/package.json +39 -0
  723. data/lib/node_modules/npm/node_modules/read-package-json/read-json.js +368 -0
  724. data/lib/node_modules/npm/node_modules/read/LICENCE +25 -0
  725. data/lib/node_modules/npm/node_modules/read/README.md +53 -0
  726. data/lib/node_modules/npm/node_modules/read/example/example.js +13 -0
  727. data/lib/node_modules/npm/node_modules/read/lib/read.js +113 -0
  728. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/LICENSE +27 -0
  729. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/README.md +68 -0
  730. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/mute.js +140 -0
  731. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/package.json +37 -0
  732. data/lib/node_modules/npm/node_modules/read/package.json +35 -0
  733. data/lib/node_modules/npm/node_modules/read/rs.js +4 -0
  734. data/lib/node_modules/npm/node_modules/request/LICENSE +55 -0
  735. data/lib/node_modules/npm/node_modules/request/README.md +364 -0
  736. data/lib/node_modules/npm/node_modules/request/index.js +157 -0
  737. data/lib/node_modules/npm/node_modules/request/lib/copy.js +8 -0
  738. data/lib/node_modules/npm/node_modules/request/lib/debug.js +7 -0
  739. data/lib/node_modules/npm/node_modules/request/lib/getSafe.js +34 -0
  740. data/lib/node_modules/npm/node_modules/request/lib/optional.js +5 -0
  741. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/LICENSE +55 -0
  742. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/README.md +4 -0
  743. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js +202 -0
  744. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json +28 -0
  745. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/LICENSE +55 -0
  746. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/README.md +4 -0
  747. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js +119 -0
  748. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json +28 -0
  749. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/License +19 -0
  750. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/Readme.md +163 -0
  751. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js +325 -0
  752. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE +19 -0
  753. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/README.md +1414 -0
  754. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/component.json +11 -0
  755. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js +955 -0
  756. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json +43 -0
  757. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/License +19 -0
  758. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/Makefile +7 -0
  759. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md +132 -0
  760. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js +185 -0
  761. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License +19 -0
  762. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile +7 -0
  763. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md +154 -0
  764. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +99 -0
  765. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json +31 -0
  766. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json +32 -0
  767. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/package.json +46 -0
  768. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/LICENSE +24 -0
  769. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/Makefile +10 -0
  770. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/README.md +627 -0
  771. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/example/usage.js +78 -0
  772. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/images/hawk.png +0 -0
  773. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/images/logo.png +0 -0
  774. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/index.js +1 -0
  775. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/browser.js +485 -0
  776. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/client.js +367 -0
  777. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/crypto.js +111 -0
  778. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/index.js +15 -0
  779. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/server.js +524 -0
  780. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/utils.js +183 -0
  781. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE +24 -0
  782. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/Makefile +11 -0
  783. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md +6 -0
  784. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png +0 -0
  785. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/index.js +1 -0
  786. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js +207 -0
  787. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json +47 -0
  788. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE +24 -0
  789. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile +11 -0
  790. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md +6 -0
  791. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js +1 -0
  792. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js +68 -0
  793. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json +48 -0
  794. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE +33 -0
  795. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile +10 -0
  796. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md +436 -0
  797. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png +0 -0
  798. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/index.js +1 -0
  799. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js +132 -0
  800. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js +585 -0
  801. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json +49 -0
  802. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE +24 -0
  803. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile +11 -0
  804. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md +68 -0
  805. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js +16 -0
  806. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js +25 -0
  807. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/index.js +1 -0
  808. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js +409 -0
  809. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json +48 -0
  810. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/package.json +53 -0
  811. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/LICENSE +18 -0
  812. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/README.md +75 -0
  813. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/http_signing.md +296 -0
  814. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/index.js +25 -0
  815. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/parser.js +304 -0
  816. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/signer.js +179 -0
  817. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/util.js +249 -0
  818. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/verify.js +42 -0
  819. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE +19 -0
  820. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md +50 -0
  821. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js +13 -0
  822. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js +27 -0
  823. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js +267 -0
  824. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js +36 -0
  825. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js +317 -0
  826. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js +20 -0
  827. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json +43 -0
  828. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js +172 -0
  829. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js +296 -0
  830. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md +126 -0
  831. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js +196 -0
  832. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json +20 -0
  833. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG +71 -0
  834. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE +24 -0
  835. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README +82 -0
  836. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old +298 -0
  837. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js +245 -0
  838. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js +1485 -0
  839. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js +944 -0
  840. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype +241 -0
  841. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json +18 -0
  842. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf +129 -0
  843. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle +839 -0
  844. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json +13 -0
  845. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json +13 -0
  846. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json +104 -0
  847. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json +19 -0
  848. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js +39 -0
  849. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js +14 -0
  850. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js +14 -0
  851. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js +17 -0
  852. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js +18 -0
  853. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js +15 -0
  854. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json +14 -0
  855. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js +767 -0
  856. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js +753 -0
  857. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js +638 -0
  858. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js +101 -0
  859. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js +53 -0
  860. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js +92 -0
  861. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js +451 -0
  862. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js +81 -0
  863. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js +95 -0
  864. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js +156 -0
  865. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js +50 -0
  866. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js +44 -0
  867. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js +42 -0
  868. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js +45 -0
  869. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js +28 -0
  870. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js +128 -0
  871. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js +28 -0
  872. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js +31 -0
  873. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/package.json +36 -0
  874. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE +27 -0
  875. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/README.md +49 -0
  876. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json +33 -0
  877. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js +39 -0
  878. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test.js +128 -0
  879. data/lib/node_modules/npm/node_modules/request/node_modules/mime/LICENSE +19 -0
  880. data/lib/node_modules/npm/node_modules/request/node_modules/mime/README.md +66 -0
  881. data/lib/node_modules/npm/node_modules/request/node_modules/mime/mime.js +114 -0
  882. data/lib/node_modules/npm/node_modules/request/node_modules/mime/package.json +36 -0
  883. data/lib/node_modules/npm/node_modules/request/node_modules/mime/test.js +84 -0
  884. data/lib/node_modules/npm/node_modules/request/node_modules/mime/types/mime.types +1588 -0
  885. data/lib/node_modules/npm/node_modules/request/node_modules/mime/types/node.types +77 -0
  886. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/LICENSE.md +2 -0
  887. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/README.md +207 -0
  888. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md +53 -0
  889. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +174 -0
  890. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +34 -0
  891. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +34 -0
  892. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +84 -0
  893. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/component.json +18 -0
  894. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json +35 -0
  895. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js +245 -0
  896. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/LICENSE +55 -0
  897. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/README.md +4 -0
  898. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js +43 -0
  899. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json +31 -0
  900. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/test.js +49 -0
  901. data/lib/node_modules/npm/node_modules/request/node_modules/qs/Readme.md +58 -0
  902. data/lib/node_modules/npm/node_modules/request/node_modules/qs/index.js +366 -0
  903. data/lib/node_modules/npm/node_modules/request/node_modules/qs/package.json +38 -0
  904. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/LICENSE +78 -0
  905. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/README.md +380 -0
  906. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js +230 -0
  907. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js +947 -0
  908. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js +102 -0
  909. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js +69 -0
  910. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt +278 -0
  911. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt +20 -0
  912. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json +73 -0
  913. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js +508 -0
  914. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js +2 -0
  915. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt +20 -0
  916. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md +35 -0
  917. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md +69 -0
  918. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php +35 -0
  919. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php +38 -0
  920. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php +226 -0
  921. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php +442 -0
  922. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php +563 -0
  923. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json +46 -0
  924. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/public-suffix.txt +5229 -0
  925. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/test.js +1340 -0
  926. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/LICENSE +55 -0
  927. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/README.md +4 -0
  928. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js +227 -0
  929. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json +28 -0
  930. data/lib/node_modules/npm/node_modules/request/package.json +57 -0
  931. data/lib/node_modules/npm/node_modules/request/request.js +1260 -0
  932. data/lib/node_modules/npm/node_modules/retry/License +21 -0
  933. data/lib/node_modules/npm/node_modules/retry/Makefile +7 -0
  934. data/lib/node_modules/npm/node_modules/retry/Readme.md +167 -0
  935. data/lib/node_modules/npm/node_modules/retry/equation.gif +0 -0
  936. data/lib/node_modules/npm/node_modules/retry/example/dns.js +31 -0
  937. data/lib/node_modules/npm/node_modules/retry/index.js +1 -0
  938. data/lib/node_modules/npm/node_modules/retry/lib/retry.js +50 -0
  939. data/lib/node_modules/npm/node_modules/retry/lib/retry_operation.js +109 -0
  940. data/lib/node_modules/npm/node_modules/retry/package.json +29 -0
  941. data/lib/node_modules/npm/node_modules/rimraf/AUTHORS +6 -0
  942. data/lib/node_modules/npm/node_modules/rimraf/LICENSE +23 -0
  943. data/lib/node_modules/npm/node_modules/rimraf/README.md +30 -0
  944. data/lib/node_modules/npm/node_modules/rimraf/bin.js +33 -0
  945. data/lib/node_modules/npm/node_modules/rimraf/package.json +56 -0
  946. data/lib/node_modules/npm/node_modules/rimraf/rimraf.js +178 -0
  947. data/lib/node_modules/npm/node_modules/semver/LICENSE +27 -0
  948. data/lib/node_modules/npm/node_modules/semver/Makefile +24 -0
  949. data/lib/node_modules/npm/node_modules/semver/README.md +142 -0
  950. data/lib/node_modules/npm/node_modules/semver/bin/semver +124 -0
  951. data/lib/node_modules/npm/node_modules/semver/foot.js +6 -0
  952. data/lib/node_modules/npm/node_modules/semver/head.js +2 -0
  953. data/lib/node_modules/npm/node_modules/semver/package.json +32 -0
  954. data/lib/node_modules/npm/node_modules/semver/semver.browser.js +1007 -0
  955. data/lib/node_modules/npm/node_modules/semver/semver.browser.js.gz +0 -0
  956. data/lib/node_modules/npm/node_modules/semver/semver.js +1011 -0
  957. data/lib/node_modules/npm/node_modules/semver/semver.min.js +1 -0
  958. data/lib/node_modules/npm/node_modules/semver/semver.min.js.gz +0 -0
  959. data/lib/node_modules/npm/node_modules/sha/LICENSE +46 -0
  960. data/lib/node_modules/npm/node_modules/sha/README.md +49 -0
  961. data/lib/node_modules/npm/node_modules/sha/index.js +120 -0
  962. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/LICENSE +27 -0
  963. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/README.md +768 -0
  964. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/duplex.js +1 -0
  965. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/float.patch +68 -0
  966. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_duplex.js +69 -0
  967. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_passthrough.js +41 -0
  968. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_readable.js +927 -0
  969. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_transform.js +205 -0
  970. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_writable.js +369 -0
  971. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/package.json +36 -0
  972. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/passthrough.js +1 -0
  973. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/readable.js +6 -0
  974. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/transform.js +1 -0
  975. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/writable.js +1 -0
  976. data/lib/node_modules/npm/node_modules/sha/package.json +32 -0
  977. data/lib/node_modules/npm/node_modules/slide/LICENSE +15 -0
  978. data/lib/node_modules/npm/node_modules/slide/README.md +143 -0
  979. data/lib/node_modules/npm/node_modules/slide/index.js +1 -0
  980. data/lib/node_modules/npm/node_modules/slide/lib/async-map-ordered.js +65 -0
  981. data/lib/node_modules/npm/node_modules/slide/lib/async-map.js +56 -0
  982. data/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js +16 -0
  983. data/lib/node_modules/npm/node_modules/slide/lib/chain.js +20 -0
  984. data/lib/node_modules/npm/node_modules/slide/lib/slide.js +3 -0
  985. data/lib/node_modules/npm/node_modules/slide/package.json +35 -0
  986. data/lib/node_modules/npm/node_modules/tar/LICENCE +25 -0
  987. data/lib/node_modules/npm/node_modules/tar/README.md +46 -0
  988. data/lib/node_modules/npm/node_modules/tar/examples/extracter.js +11 -0
  989. data/lib/node_modules/npm/node_modules/tar/examples/reader.js +36 -0
  990. data/lib/node_modules/npm/node_modules/tar/lib/buffer-entry.js +30 -0
  991. data/lib/node_modules/npm/node_modules/tar/lib/entry-writer.js +169 -0
  992. data/lib/node_modules/npm/node_modules/tar/lib/entry.js +213 -0
  993. data/lib/node_modules/npm/node_modules/tar/lib/extended-header-writer.js +191 -0
  994. data/lib/node_modules/npm/node_modules/tar/lib/extended-header.js +140 -0
  995. data/lib/node_modules/npm/node_modules/tar/lib/extract.js +78 -0
  996. data/lib/node_modules/npm/node_modules/tar/lib/global-header-writer.js +14 -0
  997. data/lib/node_modules/npm/node_modules/tar/lib/header.js +385 -0
  998. data/lib/node_modules/npm/node_modules/tar/lib/pack.js +231 -0
  999. data/lib/node_modules/npm/node_modules/tar/lib/parse.js +270 -0
  1000. data/lib/node_modules/npm/node_modules/tar/package.json +40 -0
  1001. data/lib/node_modules/npm/node_modules/tar/tar.js +173 -0
  1002. data/lib/node_modules/npm/node_modules/text-table/LICENSE +18 -0
  1003. data/lib/node_modules/npm/node_modules/text-table/example/align.js +8 -0
  1004. data/lib/node_modules/npm/node_modules/text-table/example/center.js +8 -0
  1005. data/lib/node_modules/npm/node_modules/text-table/example/dotalign.js +9 -0
  1006. data/lib/node_modules/npm/node_modules/text-table/example/doubledot.js +11 -0
  1007. data/lib/node_modules/npm/node_modules/text-table/example/table.js +6 -0
  1008. data/lib/node_modules/npm/node_modules/text-table/index.js +86 -0
  1009. data/lib/node_modules/npm/node_modules/text-table/package.json +52 -0
  1010. data/lib/node_modules/npm/node_modules/text-table/readme.markdown +134 -0
  1011. data/lib/node_modules/npm/node_modules/uid-number/LICENCE +25 -0
  1012. data/lib/node_modules/npm/node_modules/uid-number/README.md +17 -0
  1013. data/lib/node_modules/npm/node_modules/uid-number/get-uid-gid.js +24 -0
  1014. data/lib/node_modules/npm/node_modules/uid-number/package.json +35 -0
  1015. data/lib/node_modules/npm/node_modules/uid-number/uid-number.js +54 -0
  1016. data/lib/node_modules/npm/node_modules/which/LICENSE +23 -0
  1017. data/lib/node_modules/npm/node_modules/which/README.md +5 -0
  1018. data/lib/node_modules/npm/node_modules/which/bin/which +14 -0
  1019. data/lib/node_modules/npm/node_modules/which/package.json +34 -0
  1020. data/lib/node_modules/npm/node_modules/which/which.js +104 -0
  1021. data/lib/node_modules/npm/package.json +155 -0
  1022. data/lib/node_modules/npm/scripts/clean-old.sh +165 -0
  1023. data/lib/node_modules/npm/scripts/doc-build.sh +84 -0
  1024. data/lib/node_modules/npm/scripts/index-build.js +62 -0
  1025. data/lib/node_modules/npm/scripts/install.sh +313 -0
  1026. data/lib/node_modules/npm/scripts/release.sh +36 -0
  1027. data/lib/node_modules/npm/scripts/relocate.sh +26 -0
  1028. metadata +1052 -36
  1029. checksums.yaml +0 -7
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env python
2
+
3
+ # Copyright 2013 Google Inc. All rights reserved.
4
+ # Use of this source code is governed by a BSD-style license that can be
5
+ # found in the LICENSE file.
6
+
7
+ """Unit tests for the input.py file."""
8
+
9
+ import gyp.input
10
+ import unittest
11
+ import sys
12
+
13
+
14
+ class TestFindCycles(unittest.TestCase):
15
+ def setUp(self):
16
+ self.nodes = {}
17
+ for x in ('a', 'b', 'c', 'd', 'e'):
18
+ self.nodes[x] = gyp.input.DependencyGraphNode(x)
19
+
20
+ def _create_dependency(self, dependent, dependency):
21
+ dependent.dependencies.append(dependency)
22
+ dependency.dependents.append(dependent)
23
+
24
+ def test_no_cycle_empty_graph(self):
25
+ for label, node in self.nodes.iteritems():
26
+ self.assertEquals([], node.FindCycles())
27
+
28
+ def test_no_cycle_line(self):
29
+ self._create_dependency(self.nodes['a'], self.nodes['b'])
30
+ self._create_dependency(self.nodes['b'], self.nodes['c'])
31
+ self._create_dependency(self.nodes['c'], self.nodes['d'])
32
+
33
+ for label, node in self.nodes.iteritems():
34
+ self.assertEquals([], node.FindCycles())
35
+
36
+ def test_no_cycle_dag(self):
37
+ self._create_dependency(self.nodes['a'], self.nodes['b'])
38
+ self._create_dependency(self.nodes['a'], self.nodes['c'])
39
+ self._create_dependency(self.nodes['b'], self.nodes['c'])
40
+
41
+ for label, node in self.nodes.iteritems():
42
+ self.assertEquals([], node.FindCycles())
43
+
44
+ def test_cycle_self_reference(self):
45
+ self._create_dependency(self.nodes['a'], self.nodes['a'])
46
+
47
+ self.assertEquals([(self.nodes['a'], self.nodes['a'])],
48
+ self.nodes['a'].FindCycles())
49
+
50
+ def test_cycle_two_nodes(self):
51
+ self._create_dependency(self.nodes['a'], self.nodes['b'])
52
+ self._create_dependency(self.nodes['b'], self.nodes['a'])
53
+
54
+ self.assertEquals([(self.nodes['a'], self.nodes['b'], self.nodes['a'])],
55
+ self.nodes['a'].FindCycles())
56
+ self.assertEquals([(self.nodes['b'], self.nodes['a'], self.nodes['b'])],
57
+ self.nodes['b'].FindCycles())
58
+
59
+ def test_two_cycles(self):
60
+ self._create_dependency(self.nodes['a'], self.nodes['b'])
61
+ self._create_dependency(self.nodes['b'], self.nodes['a'])
62
+
63
+ self._create_dependency(self.nodes['b'], self.nodes['c'])
64
+ self._create_dependency(self.nodes['c'], self.nodes['b'])
65
+
66
+ cycles = self.nodes['a'].FindCycles()
67
+ self.assertTrue(
68
+ (self.nodes['a'], self.nodes['b'], self.nodes['a']) in cycles)
69
+ self.assertTrue(
70
+ (self.nodes['b'], self.nodes['c'], self.nodes['b']) in cycles)
71
+ self.assertEquals(2, len(cycles))
72
+
73
+ def test_big_cycle(self):
74
+ self._create_dependency(self.nodes['a'], self.nodes['b'])
75
+ self._create_dependency(self.nodes['b'], self.nodes['c'])
76
+ self._create_dependency(self.nodes['c'], self.nodes['d'])
77
+ self._create_dependency(self.nodes['d'], self.nodes['e'])
78
+ self._create_dependency(self.nodes['e'], self.nodes['a'])
79
+
80
+ self.assertEquals([(self.nodes['a'],
81
+ self.nodes['b'],
82
+ self.nodes['c'],
83
+ self.nodes['d'],
84
+ self.nodes['e'],
85
+ self.nodes['a'])],
86
+ self.nodes['a'].FindCycles())
87
+
88
+
89
+ if __name__ == '__main__':
90
+ unittest.main()
@@ -0,0 +1,264 @@
1
+ #!/usr/bin/env python
2
+ # Copyright (c) 2012 Google Inc. All rights reserved.
3
+ # Use of this source code is governed by a BSD-style license that can be
4
+ # found in the LICENSE file.
5
+
6
+ """Utility functions to perform Xcode-style build steps.
7
+
8
+ These functions are executed via gyp-mac-tool when using the Makefile generator.
9
+ """
10
+
11
+ import fcntl
12
+ import json
13
+ import os
14
+ import plistlib
15
+ import re
16
+ import shutil
17
+ import string
18
+ import subprocess
19
+ import sys
20
+
21
+
22
+ def main(args):
23
+ executor = MacTool()
24
+ exit_code = executor.Dispatch(args)
25
+ if exit_code is not None:
26
+ sys.exit(exit_code)
27
+
28
+
29
+ class MacTool(object):
30
+ """This class performs all the Mac tooling steps. The methods can either be
31
+ executed directly, or dispatched from an argument list."""
32
+
33
+ def Dispatch(self, args):
34
+ """Dispatches a string command to a method."""
35
+ if len(args) < 1:
36
+ raise Exception("Not enough arguments")
37
+
38
+ method = "Exec%s" % self._CommandifyName(args[0])
39
+ return getattr(self, method)(*args[1:])
40
+
41
+ def _CommandifyName(self, name_string):
42
+ """Transforms a tool name like copy-info-plist to CopyInfoPlist"""
43
+ return name_string.title().replace('-', '')
44
+
45
+ def ExecCopyBundleResource(self, source, dest):
46
+ """Copies a resource file to the bundle/Resources directory, performing any
47
+ necessary compilation on each resource."""
48
+ extension = os.path.splitext(source)[1].lower()
49
+ if os.path.isdir(source):
50
+ # Copy tree.
51
+ # TODO(thakis): This copies file attributes like mtime, while the
52
+ # single-file branch below doesn't. This should probably be changed to
53
+ # be consistent with the single-file branch.
54
+ if os.path.exists(dest):
55
+ shutil.rmtree(dest)
56
+ shutil.copytree(source, dest)
57
+ elif extension == '.xib':
58
+ return self._CopyXIBFile(source, dest)
59
+ elif extension == '.storyboard':
60
+ return self._CopyXIBFile(source, dest)
61
+ elif extension == '.strings':
62
+ self._CopyStringsFile(source, dest)
63
+ else:
64
+ shutil.copy(source, dest)
65
+
66
+ def _CopyXIBFile(self, source, dest):
67
+ """Compiles a XIB file with ibtool into a binary plist in the bundle."""
68
+
69
+ # ibtool sometimes crashes with relative paths. See crbug.com/314728.
70
+ base = os.path.dirname(os.path.realpath(__file__))
71
+ if os.path.relpath(source):
72
+ source = os.path.join(base, source)
73
+ if os.path.relpath(dest):
74
+ dest = os.path.join(base, dest)
75
+
76
+ args = ['xcrun', 'ibtool', '--errors', '--warnings', '--notices',
77
+ '--output-format', 'human-readable-text', '--compile', dest, source]
78
+ ibtool_section_re = re.compile(r'/\*.*\*/')
79
+ ibtool_re = re.compile(r'.*note:.*is clipping its content')
80
+ ibtoolout = subprocess.Popen(args, stdout=subprocess.PIPE)
81
+ current_section_header = None
82
+ for line in ibtoolout.stdout:
83
+ if ibtool_section_re.match(line):
84
+ current_section_header = line
85
+ elif not ibtool_re.match(line):
86
+ if current_section_header:
87
+ sys.stdout.write(current_section_header)
88
+ current_section_header = None
89
+ sys.stdout.write(line)
90
+ return ibtoolout.returncode
91
+
92
+ def _CopyStringsFile(self, source, dest):
93
+ """Copies a .strings file using iconv to reconvert the input into UTF-16."""
94
+ input_code = self._DetectInputEncoding(source) or "UTF-8"
95
+
96
+ # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call
97
+ # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints
98
+ # CFPropertyListCreateFromXMLData(): Old-style plist parser: missing
99
+ # semicolon in dictionary.
100
+ # on invalid files. Do the same kind of validation.
101
+ import CoreFoundation
102
+ s = open(source, 'rb').read()
103
+ d = CoreFoundation.CFDataCreate(None, s, len(s))
104
+ _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None)
105
+ if error:
106
+ return
107
+
108
+ fp = open(dest, 'wb')
109
+ fp.write(s.decode(input_code).encode('UTF-16'))
110
+ fp.close()
111
+
112
+ def _DetectInputEncoding(self, file_name):
113
+ """Reads the first few bytes from file_name and tries to guess the text
114
+ encoding. Returns None as a guess if it can't detect it."""
115
+ fp = open(file_name, 'rb')
116
+ try:
117
+ header = fp.read(3)
118
+ except e:
119
+ fp.close()
120
+ return None
121
+ fp.close()
122
+ if header.startswith("\xFE\xFF"):
123
+ return "UTF-16"
124
+ elif header.startswith("\xFF\xFE"):
125
+ return "UTF-16"
126
+ elif header.startswith("\xEF\xBB\xBF"):
127
+ return "UTF-8"
128
+ else:
129
+ return None
130
+
131
+ def ExecCopyInfoPlist(self, source, dest, *keys):
132
+ """Copies the |source| Info.plist to the destination directory |dest|."""
133
+ # Read the source Info.plist into memory.
134
+ fd = open(source, 'r')
135
+ lines = fd.read()
136
+ fd.close()
137
+
138
+ # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
139
+ plist = plistlib.readPlistFromString(lines)
140
+ if keys:
141
+ plist = dict(plist.items() + json.loads(keys[0]).items())
142
+ lines = plistlib.writePlistToString(plist)
143
+
144
+ # Go through all the environment variables and replace them as variables in
145
+ # the file.
146
+ IDENT_RE = re.compile('[/\s]')
147
+ for key in os.environ:
148
+ if key.startswith('_'):
149
+ continue
150
+ evar = '${%s}' % key
151
+ evalue = os.environ[key]
152
+ lines = string.replace(lines, evar, evalue)
153
+
154
+ # Xcode supports various suffices on environment variables, which are
155
+ # all undocumented. :rfc1034identifier is used in the standard project
156
+ # template these days, and :identifier was used earlier. They are used to
157
+ # convert non-url characters into things that look like valid urls --
158
+ # except that the replacement character for :identifier, '_' isn't valid
159
+ # in a URL either -- oops, hence :rfc1034identifier was born.
160
+ evar = '${%s:identifier}' % key
161
+ evalue = IDENT_RE.sub('_', os.environ[key])
162
+ lines = string.replace(lines, evar, evalue)
163
+
164
+ evar = '${%s:rfc1034identifier}' % key
165
+ evalue = IDENT_RE.sub('-', os.environ[key])
166
+ lines = string.replace(lines, evar, evalue)
167
+
168
+ # Remove any keys with values that haven't been replaced.
169
+ lines = lines.split('\n')
170
+ for i in range(len(lines)):
171
+ if lines[i].strip().startswith("<string>${"):
172
+ lines[i] = None
173
+ lines[i - 1] = None
174
+ lines = '\n'.join(filter(lambda x: x is not None, lines))
175
+
176
+ # Write out the file with variables replaced.
177
+ fd = open(dest, 'w')
178
+ fd.write(lines)
179
+ fd.close()
180
+
181
+ # Now write out PkgInfo file now that the Info.plist file has been
182
+ # "compiled".
183
+ self._WritePkgInfo(dest)
184
+
185
+ def _WritePkgInfo(self, info_plist):
186
+ """This writes the PkgInfo file from the data stored in Info.plist."""
187
+ plist = plistlib.readPlist(info_plist)
188
+ if not plist:
189
+ return
190
+
191
+ # Only create PkgInfo for executable types.
192
+ package_type = plist['CFBundlePackageType']
193
+ if package_type != 'APPL':
194
+ return
195
+
196
+ # The format of PkgInfo is eight characters, representing the bundle type
197
+ # and bundle signature, each four characters. If that is missing, four
198
+ # '?' characters are used instead.
199
+ signature_code = plist.get('CFBundleSignature', '????')
200
+ if len(signature_code) != 4: # Wrong length resets everything, too.
201
+ signature_code = '?' * 4
202
+
203
+ dest = os.path.join(os.path.dirname(info_plist), 'PkgInfo')
204
+ fp = open(dest, 'w')
205
+ fp.write('%s%s' % (package_type, signature_code))
206
+ fp.close()
207
+
208
+ def ExecFlock(self, lockfile, *cmd_list):
209
+ """Emulates the most basic behavior of Linux's flock(1)."""
210
+ # Rely on exception handling to report errors.
211
+ fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666)
212
+ fcntl.flock(fd, fcntl.LOCK_EX)
213
+ return subprocess.call(cmd_list)
214
+
215
+ def ExecFilterLibtool(self, *cmd_list):
216
+ """Calls libtool and filters out '/path/to/libtool: file: foo.o has no
217
+ symbols'."""
218
+ libtool_re = re.compile(r'^.*libtool: file: .* has no symbols$')
219
+ libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE)
220
+ _, err = libtoolout.communicate()
221
+ for line in err.splitlines():
222
+ if not libtool_re.match(line):
223
+ print >>sys.stderr, line
224
+ return libtoolout.returncode
225
+
226
+ def ExecPackageFramework(self, framework, version):
227
+ """Takes a path to Something.framework and the Current version of that and
228
+ sets up all the symlinks."""
229
+ # Find the name of the binary based on the part before the ".framework".
230
+ binary = os.path.basename(framework).split('.')[0]
231
+
232
+ CURRENT = 'Current'
233
+ RESOURCES = 'Resources'
234
+ VERSIONS = 'Versions'
235
+
236
+ if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)):
237
+ # Binary-less frameworks don't seem to contain symlinks (see e.g.
238
+ # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle).
239
+ return
240
+
241
+ # Move into the framework directory to set the symlinks correctly.
242
+ pwd = os.getcwd()
243
+ os.chdir(framework)
244
+
245
+ # Set up the Current version.
246
+ self._Relink(version, os.path.join(VERSIONS, CURRENT))
247
+
248
+ # Set up the root symlinks.
249
+ self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary)
250
+ self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES)
251
+
252
+ # Back to where we were before!
253
+ os.chdir(pwd)
254
+
255
+ def _Relink(self, dest, link):
256
+ """Creates a symlink to |dest| named |link|. If |link| already exists,
257
+ it is overwritten."""
258
+ if os.path.lexists(link):
259
+ os.remove(link)
260
+ os.symlink(dest, link)
261
+
262
+
263
+ if __name__ == '__main__':
264
+ sys.exit(main(sys.argv[1:]))
@@ -0,0 +1,870 @@
1
+ # Copyright (c) 2012 Google Inc. All rights reserved.
2
+ # Use of this source code is governed by a BSD-style license that can be
3
+ # found in the LICENSE file.
4
+
5
+ """
6
+ This module helps emulate Visual Studio 2008 behavior on top of other
7
+ build systems, primarily ninja.
8
+ """
9
+
10
+ import os
11
+ import re
12
+ import subprocess
13
+ import sys
14
+
15
+ import gyp.MSVSVersion
16
+
17
+ windows_quoter_regex = re.compile(r'(\\*)"')
18
+
19
+ def QuoteForRspFile(arg):
20
+ """Quote a command line argument so that it appears as one argument when
21
+ processed via cmd.exe and parsed by CommandLineToArgvW (as is typical for
22
+ Windows programs)."""
23
+ # See http://goo.gl/cuFbX and http://goo.gl/dhPnp including the comment
24
+ # threads. This is actually the quoting rules for CommandLineToArgvW, not
25
+ # for the shell, because the shell doesn't do anything in Windows. This
26
+ # works more or less because most programs (including the compiler, etc.)
27
+ # use that function to handle command line arguments.
28
+
29
+ # For a literal quote, CommandLineToArgvW requires 2n+1 backslashes
30
+ # preceding it, and results in n backslashes + the quote. So we substitute
31
+ # in 2* what we match, +1 more, plus the quote.
32
+ arg = windows_quoter_regex.sub(lambda mo: 2 * mo.group(1) + '\\"', arg)
33
+
34
+ # %'s also need to be doubled otherwise they're interpreted as batch
35
+ # positional arguments. Also make sure to escape the % so that they're
36
+ # passed literally through escaping so they can be singled to just the
37
+ # original %. Otherwise, trying to pass the literal representation that
38
+ # looks like an environment variable to the shell (e.g. %PATH%) would fail.
39
+ arg = arg.replace('%', '%%')
40
+
41
+ # These commands are used in rsp files, so no escaping for the shell (via ^)
42
+ # is necessary.
43
+
44
+ # Finally, wrap the whole thing in quotes so that the above quote rule
45
+ # applies and whitespace isn't a word break.
46
+ return '"' + arg + '"'
47
+
48
+
49
+ def EncodeRspFileList(args):
50
+ """Process a list of arguments using QuoteCmdExeArgument."""
51
+ # Note that the first argument is assumed to be the command. Don't add
52
+ # quotes around it because then built-ins like 'echo', etc. won't work.
53
+ # Take care to normpath only the path in the case of 'call ../x.bat' because
54
+ # otherwise the whole thing is incorrectly interpreted as a path and not
55
+ # normalized correctly.
56
+ if not args: return ''
57
+ if args[0].startswith('call '):
58
+ call, program = args[0].split(' ', 1)
59
+ program = call + ' ' + os.path.normpath(program)
60
+ else:
61
+ program = os.path.normpath(args[0])
62
+ return program + ' ' + ' '.join(QuoteForRspFile(arg) for arg in args[1:])
63
+
64
+
65
+ def _GenericRetrieve(root, default, path):
66
+ """Given a list of dictionary keys |path| and a tree of dicts |root|, find
67
+ value at path, or return |default| if any of the path doesn't exist."""
68
+ if not root:
69
+ return default
70
+ if not path:
71
+ return root
72
+ return _GenericRetrieve(root.get(path[0]), default, path[1:])
73
+
74
+
75
+ def _AddPrefix(element, prefix):
76
+ """Add |prefix| to |element| or each subelement if element is iterable."""
77
+ if element is None:
78
+ return element
79
+ # Note, not Iterable because we don't want to handle strings like that.
80
+ if isinstance(element, list) or isinstance(element, tuple):
81
+ return [prefix + e for e in element]
82
+ else:
83
+ return prefix + element
84
+
85
+
86
+ def _DoRemapping(element, map):
87
+ """If |element| then remap it through |map|. If |element| is iterable then
88
+ each item will be remapped. Any elements not found will be removed."""
89
+ if map is not None and element is not None:
90
+ if not callable(map):
91
+ map = map.get # Assume it's a dict, otherwise a callable to do the remap.
92
+ if isinstance(element, list) or isinstance(element, tuple):
93
+ element = filter(None, [map(elem) for elem in element])
94
+ else:
95
+ element = map(element)
96
+ return element
97
+
98
+
99
+ def _AppendOrReturn(append, element):
100
+ """If |append| is None, simply return |element|. If |append| is not None,
101
+ then add |element| to it, adding each item in |element| if it's a list or
102
+ tuple."""
103
+ if append is not None and element is not None:
104
+ if isinstance(element, list) or isinstance(element, tuple):
105
+ append.extend(element)
106
+ else:
107
+ append.append(element)
108
+ else:
109
+ return element
110
+
111
+
112
+ def _FindDirectXInstallation():
113
+ """Try to find an installation location for the DirectX SDK. Check for the
114
+ standard environment variable, and if that doesn't exist, try to find
115
+ via the registry. May return None if not found in either location."""
116
+ # Return previously calculated value, if there is one
117
+ if hasattr(_FindDirectXInstallation, 'dxsdk_dir'):
118
+ return _FindDirectXInstallation.dxsdk_dir
119
+
120
+ dxsdk_dir = os.environ.get('DXSDK_DIR')
121
+ if not dxsdk_dir:
122
+ # Setup params to pass to and attempt to launch reg.exe.
123
+ cmd = ['reg.exe', 'query', r'HKLM\Software\Microsoft\DirectX', '/s']
124
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
125
+ for line in p.communicate()[0].splitlines():
126
+ if 'InstallPath' in line:
127
+ dxsdk_dir = line.split(' ')[3] + "\\"
128
+
129
+ # Cache return value
130
+ _FindDirectXInstallation.dxsdk_dir = dxsdk_dir
131
+ return dxsdk_dir
132
+
133
+
134
+ class MsvsSettings(object):
135
+ """A class that understands the gyp 'msvs_...' values (especially the
136
+ msvs_settings field). They largely correpond to the VS2008 IDE DOM. This
137
+ class helps map those settings to command line options."""
138
+
139
+ def __init__(self, spec, generator_flags):
140
+ self.spec = spec
141
+ self.vs_version = GetVSVersion(generator_flags)
142
+ self.dxsdk_dir = _FindDirectXInstallation()
143
+
144
+ # Try to find an installation location for the Windows DDK by checking
145
+ # the WDK_DIR environment variable, may be None.
146
+ self.wdk_dir = os.environ.get('WDK_DIR')
147
+
148
+ supported_fields = [
149
+ ('msvs_configuration_attributes', dict),
150
+ ('msvs_settings', dict),
151
+ ('msvs_system_include_dirs', list),
152
+ ('msvs_disabled_warnings', list),
153
+ ('msvs_precompiled_header', str),
154
+ ('msvs_precompiled_source', str),
155
+ ('msvs_configuration_platform', str),
156
+ ('msvs_target_platform', str),
157
+ ]
158
+ configs = spec['configurations']
159
+ for field, default in supported_fields:
160
+ setattr(self, field, {})
161
+ for configname, config in configs.iteritems():
162
+ getattr(self, field)[configname] = config.get(field, default())
163
+
164
+ self.msvs_cygwin_dirs = spec.get('msvs_cygwin_dirs', ['.'])
165
+
166
+ def GetVSMacroEnv(self, base_to_build=None, config=None):
167
+ """Get a dict of variables mapping internal VS macro names to their gyp
168
+ equivalents."""
169
+ target_platform = 'Win32' if self.GetArch(config) == 'x86' else 'x64'
170
+ target_name = self.spec.get('product_prefix', '') + \
171
+ self.spec.get('product_name', self.spec['target_name'])
172
+ target_dir = base_to_build + '\\' if base_to_build else ''
173
+ replacements = {
174
+ '$(OutDir)\\': target_dir,
175
+ '$(TargetDir)\\': target_dir,
176
+ '$(IntDir)': '$!INTERMEDIATE_DIR',
177
+ '$(InputPath)': '${source}',
178
+ '$(InputName)': '${root}',
179
+ '$(ProjectName)': self.spec['target_name'],
180
+ '$(TargetName)': target_name,
181
+ '$(PlatformName)': target_platform,
182
+ '$(ProjectDir)\\': '',
183
+ }
184
+ # '$(VSInstallDir)' and '$(VCInstallDir)' are available when and only when
185
+ # Visual Studio is actually installed.
186
+ if self.vs_version.Path():
187
+ replacements['$(VSInstallDir)'] = self.vs_version.Path()
188
+ replacements['$(VCInstallDir)'] = os.path.join(self.vs_version.Path(),
189
+ 'VC') + '\\'
190
+ # Chromium uses DXSDK_DIR in include/lib paths, but it may or may not be
191
+ # set. This happens when the SDK is sync'd via src-internal, rather than
192
+ # by typical end-user installation of the SDK. If it's not set, we don't
193
+ # want to leave the unexpanded variable in the path, so simply strip it.
194
+ replacements['$(DXSDK_DIR)'] = self.dxsdk_dir if self.dxsdk_dir else ''
195
+ replacements['$(WDK_DIR)'] = self.wdk_dir if self.wdk_dir else ''
196
+ return replacements
197
+
198
+ def ConvertVSMacros(self, s, base_to_build=None, config=None):
199
+ """Convert from VS macro names to something equivalent."""
200
+ env = self.GetVSMacroEnv(base_to_build, config=config)
201
+ return ExpandMacros(s, env)
202
+
203
+ def AdjustLibraries(self, libraries):
204
+ """Strip -l from library if it's specified with that."""
205
+ libs = [lib[2:] if lib.startswith('-l') else lib for lib in libraries]
206
+ return [lib + '.lib' if not lib.endswith('.lib') else lib for lib in libs]
207
+
208
+ def _GetAndMunge(self, field, path, default, prefix, append, map):
209
+ """Retrieve a value from |field| at |path| or return |default|. If
210
+ |append| is specified, and the item is found, it will be appended to that
211
+ object instead of returned. If |map| is specified, results will be
212
+ remapped through |map| before being returned or appended."""
213
+ result = _GenericRetrieve(field, default, path)
214
+ result = _DoRemapping(result, map)
215
+ result = _AddPrefix(result, prefix)
216
+ return _AppendOrReturn(append, result)
217
+
218
+ class _GetWrapper(object):
219
+ def __init__(self, parent, field, base_path, append=None):
220
+ self.parent = parent
221
+ self.field = field
222
+ self.base_path = [base_path]
223
+ self.append = append
224
+ def __call__(self, name, map=None, prefix='', default=None):
225
+ return self.parent._GetAndMunge(self.field, self.base_path + [name],
226
+ default=default, prefix=prefix, append=self.append, map=map)
227
+
228
+ def GetArch(self, config):
229
+ """Get architecture based on msvs_configuration_platform and
230
+ msvs_target_platform. Returns either 'x86' or 'x64'."""
231
+ configuration_platform = self.msvs_configuration_platform.get(config, '')
232
+ platform = self.msvs_target_platform.get(config, '')
233
+ if not platform: # If no specific override, use the configuration's.
234
+ platform = configuration_platform
235
+ # Map from platform to architecture.
236
+ return {'Win32': 'x86', 'x64': 'x64'}.get(platform, 'x86')
237
+
238
+ def _TargetConfig(self, config):
239
+ """Returns the target-specific configuration."""
240
+ # There's two levels of architecture/platform specification in VS. The
241
+ # first level is globally for the configuration (this is what we consider
242
+ # "the" config at the gyp level, which will be something like 'Debug' or
243
+ # 'Release_x64'), and a second target-specific configuration, which is an
244
+ # override for the global one. |config| is remapped here to take into
245
+ # account the local target-specific overrides to the global configuration.
246
+ arch = self.GetArch(config)
247
+ if arch == 'x64' and not config.endswith('_x64'):
248
+ config += '_x64'
249
+ if arch == 'x86' and config.endswith('_x64'):
250
+ config = config.rsplit('_', 1)[0]
251
+ return config
252
+
253
+ def _Setting(self, path, config,
254
+ default=None, prefix='', append=None, map=None):
255
+ """_GetAndMunge for msvs_settings."""
256
+ return self._GetAndMunge(
257
+ self.msvs_settings[config], path, default, prefix, append, map)
258
+
259
+ def _ConfigAttrib(self, path, config,
260
+ default=None, prefix='', append=None, map=None):
261
+ """_GetAndMunge for msvs_configuration_attributes."""
262
+ return self._GetAndMunge(
263
+ self.msvs_configuration_attributes[config],
264
+ path, default, prefix, append, map)
265
+
266
+ def AdjustIncludeDirs(self, include_dirs, config):
267
+ """Updates include_dirs to expand VS specific paths, and adds the system
268
+ include dirs used for platform SDK and similar."""
269
+ config = self._TargetConfig(config)
270
+ includes = include_dirs + self.msvs_system_include_dirs[config]
271
+ includes.extend(self._Setting(
272
+ ('VCCLCompilerTool', 'AdditionalIncludeDirectories'), config, default=[]))
273
+ return [self.ConvertVSMacros(p, config=config) for p in includes]
274
+
275
+ def GetComputedDefines(self, config):
276
+ """Returns the set of defines that are injected to the defines list based
277
+ on other VS settings."""
278
+ config = self._TargetConfig(config)
279
+ defines = []
280
+ if self._ConfigAttrib(['CharacterSet'], config) == '1':
281
+ defines.extend(('_UNICODE', 'UNICODE'))
282
+ if self._ConfigAttrib(['CharacterSet'], config) == '2':
283
+ defines.append('_MBCS')
284
+ defines.extend(self._Setting(
285
+ ('VCCLCompilerTool', 'PreprocessorDefinitions'), config, default=[]))
286
+ return defines
287
+
288
+ def GetCompilerPdbName(self, config, expand_special):
289
+ """Get the pdb file name that should be used for compiler invocations, or
290
+ None if there's no explicit name specified."""
291
+ config = self._TargetConfig(config)
292
+ pdbname = self._Setting(
293
+ ('VCCLCompilerTool', 'ProgramDataBaseFileName'), config)
294
+ if pdbname:
295
+ pdbname = expand_special(self.ConvertVSMacros(pdbname))
296
+ return pdbname
297
+
298
+ def GetMapFileName(self, config, expand_special):
299
+ """Gets the explicitly overriden map file name for a target or returns None
300
+ if it's not set."""
301
+ config = self._TargetConfig(config)
302
+ map_file = self._Setting(('VCLinkerTool', 'MapFileName'), config)
303
+ if map_file:
304
+ map_file = expand_special(self.ConvertVSMacros(map_file, config=config))
305
+ return map_file
306
+
307
+ def GetOutputName(self, config, expand_special):
308
+ """Gets the explicitly overridden output name for a target or returns None
309
+ if it's not overridden."""
310
+ config = self._TargetConfig(config)
311
+ type = self.spec['type']
312
+ root = 'VCLibrarianTool' if type == 'static_library' else 'VCLinkerTool'
313
+ # TODO(scottmg): Handle OutputDirectory without OutputFile.
314
+ output_file = self._Setting((root, 'OutputFile'), config)
315
+ if output_file:
316
+ output_file = expand_special(self.ConvertVSMacros(
317
+ output_file, config=config))
318
+ return output_file
319
+
320
+ def GetPDBName(self, config, expand_special):
321
+ """Gets the explicitly overridden pdb name for a target or returns None
322
+ if it's not overridden."""
323
+ config = self._TargetConfig(config)
324
+ output_file = self._Setting(('VCLinkerTool', 'ProgramDatabaseFile'), config)
325
+ if output_file:
326
+ output_file = expand_special(self.ConvertVSMacros(
327
+ output_file, config=config))
328
+ return output_file
329
+
330
+ def GetCflags(self, config):
331
+ """Returns the flags that need to be added to .c and .cc compilations."""
332
+ config = self._TargetConfig(config)
333
+ cflags = []
334
+ cflags.extend(['/wd' + w for w in self.msvs_disabled_warnings[config]])
335
+ cl = self._GetWrapper(self, self.msvs_settings[config],
336
+ 'VCCLCompilerTool', append=cflags)
337
+ cl('Optimization',
338
+ map={'0': 'd', '1': '1', '2': '2', '3': 'x'}, prefix='/O', default='2')
339
+ cl('InlineFunctionExpansion', prefix='/Ob')
340
+ cl('DisableSpecificWarnings', prefix='/wd')
341
+ cl('StringPooling', map={'true': '/GF'})
342
+ cl('EnableFiberSafeOptimizations', map={'true': '/GT'})
343
+ cl('OmitFramePointers', map={'false': '-', 'true': ''}, prefix='/Oy')
344
+ cl('EnableIntrinsicFunctions', map={'false': '-', 'true': ''}, prefix='/Oi')
345
+ cl('FavorSizeOrSpeed', map={'1': 't', '2': 's'}, prefix='/O')
346
+ cl('WholeProgramOptimization', map={'true': '/GL'})
347
+ cl('WarningLevel', prefix='/W')
348
+ cl('WarnAsError', map={'true': '/WX'})
349
+ cl('DebugInformationFormat',
350
+ map={'1': '7', '3': 'i', '4': 'I'}, prefix='/Z')
351
+ cl('RuntimeTypeInfo', map={'true': '/GR', 'false': '/GR-'})
352
+ cl('EnableFunctionLevelLinking', map={'true': '/Gy', 'false': '/Gy-'})
353
+ cl('MinimalRebuild', map={'true': '/Gm'})
354
+ cl('BufferSecurityCheck', map={'true': '/GS', 'false': '/GS-'})
355
+ cl('BasicRuntimeChecks', map={'1': 's', '2': 'u', '3': '1'}, prefix='/RTC')
356
+ cl('RuntimeLibrary',
357
+ map={'0': 'T', '1': 'Td', '2': 'D', '3': 'Dd'}, prefix='/M')
358
+ cl('ExceptionHandling', map={'1': 'sc','2': 'a'}, prefix='/EH')
359
+ cl('DefaultCharIsUnsigned', map={'true': '/J'})
360
+ cl('TreatWChar_tAsBuiltInType',
361
+ map={'false': '-', 'true': ''}, prefix='/Zc:wchar_t')
362
+ cl('EnablePREfast', map={'true': '/analyze'})
363
+ cl('AdditionalOptions', prefix='')
364
+ cflags.extend(['/FI' + f for f in self._Setting(
365
+ ('VCCLCompilerTool', 'ForcedIncludeFiles'), config, default=[])])
366
+ if self.vs_version.short_name in ('2013', '2013e'):
367
+ # New flag required in 2013 to maintain previous PDB behavior.
368
+ cflags.append('/FS')
369
+ # ninja handles parallelism by itself, don't have the compiler do it too.
370
+ cflags = filter(lambda x: not x.startswith('/MP'), cflags)
371
+ return cflags
372
+
373
+ def GetPrecompiledHeader(self, config, gyp_to_build_path):
374
+ """Returns an object that handles the generation of precompiled header
375
+ build steps."""
376
+ config = self._TargetConfig(config)
377
+ return _PchHelper(self, config, gyp_to_build_path)
378
+
379
+ def _GetPchFlags(self, config, extension):
380
+ """Get the flags to be added to the cflags for precompiled header support.
381
+ """
382
+ config = self._TargetConfig(config)
383
+ # The PCH is only built once by a particular source file. Usage of PCH must
384
+ # only be for the same language (i.e. C vs. C++), so only include the pch
385
+ # flags when the language matches.
386
+ if self.msvs_precompiled_header[config]:
387
+ source_ext = os.path.splitext(self.msvs_precompiled_source[config])[1]
388
+ if _LanguageMatchesForPch(source_ext, extension):
389
+ pch = os.path.split(self.msvs_precompiled_header[config])[1]
390
+ return ['/Yu' + pch, '/FI' + pch, '/Fp${pchprefix}.' + pch + '.pch']
391
+ return []
392
+
393
+ def GetCflagsC(self, config):
394
+ """Returns the flags that need to be added to .c compilations."""
395
+ config = self._TargetConfig(config)
396
+ return self._GetPchFlags(config, '.c')
397
+
398
+ def GetCflagsCC(self, config):
399
+ """Returns the flags that need to be added to .cc compilations."""
400
+ config = self._TargetConfig(config)
401
+ return ['/TP'] + self._GetPchFlags(config, '.cc')
402
+
403
+ def _GetAdditionalLibraryDirectories(self, root, config, gyp_to_build_path):
404
+ """Get and normalize the list of paths in AdditionalLibraryDirectories
405
+ setting."""
406
+ config = self._TargetConfig(config)
407
+ libpaths = self._Setting((root, 'AdditionalLibraryDirectories'),
408
+ config, default=[])
409
+ libpaths = [os.path.normpath(
410
+ gyp_to_build_path(self.ConvertVSMacros(p, config=config)))
411
+ for p in libpaths]
412
+ return ['/LIBPATH:"' + p + '"' for p in libpaths]
413
+
414
+ def GetLibFlags(self, config, gyp_to_build_path):
415
+ """Returns the flags that need to be added to lib commands."""
416
+ config = self._TargetConfig(config)
417
+ libflags = []
418
+ lib = self._GetWrapper(self, self.msvs_settings[config],
419
+ 'VCLibrarianTool', append=libflags)
420
+ libflags.extend(self._GetAdditionalLibraryDirectories(
421
+ 'VCLibrarianTool', config, gyp_to_build_path))
422
+ lib('LinkTimeCodeGeneration', map={'true': '/LTCG'})
423
+ lib('AdditionalOptions')
424
+ return libflags
425
+
426
+ def GetDefFile(self, gyp_to_build_path):
427
+ """Returns the .def file from sources, if any. Otherwise returns None."""
428
+ spec = self.spec
429
+ if spec['type'] in ('shared_library', 'loadable_module', 'executable'):
430
+ def_files = [s for s in spec.get('sources', []) if s.endswith('.def')]
431
+ if len(def_files) == 1:
432
+ return gyp_to_build_path(def_files[0])
433
+ elif len(def_files) > 1:
434
+ raise Exception("Multiple .def files")
435
+ return None
436
+
437
+ def _GetDefFileAsLdflags(self, ldflags, gyp_to_build_path):
438
+ """.def files get implicitly converted to a ModuleDefinitionFile for the
439
+ linker in the VS generator. Emulate that behaviour here."""
440
+ def_file = self.GetDefFile(gyp_to_build_path)
441
+ if def_file:
442
+ ldflags.append('/DEF:"%s"' % def_file)
443
+
444
+ def GetLdflags(self, config, gyp_to_build_path, expand_special,
445
+ manifest_base_name, is_executable):
446
+ """Returns the flags that need to be added to link commands, and the
447
+ manifest files."""
448
+ config = self._TargetConfig(config)
449
+ ldflags = []
450
+ ld = self._GetWrapper(self, self.msvs_settings[config],
451
+ 'VCLinkerTool', append=ldflags)
452
+ self._GetDefFileAsLdflags(ldflags, gyp_to_build_path)
453
+ ld('GenerateDebugInformation', map={'true': '/DEBUG'})
454
+ ld('TargetMachine', map={'1': 'X86', '17': 'X64'}, prefix='/MACHINE:')
455
+ ldflags.extend(self._GetAdditionalLibraryDirectories(
456
+ 'VCLinkerTool', config, gyp_to_build_path))
457
+ ld('DelayLoadDLLs', prefix='/DELAYLOAD:')
458
+ out = self.GetOutputName(config, expand_special)
459
+ if out:
460
+ ldflags.append('/OUT:' + out)
461
+ pdb = self.GetPDBName(config, expand_special)
462
+ if pdb:
463
+ ldflags.append('/PDB:' + pdb)
464
+ map_file = self.GetMapFileName(config, expand_special)
465
+ ld('GenerateMapFile', map={'true': '/MAP:' + map_file if map_file
466
+ else '/MAP'})
467
+ ld('MapExports', map={'true': '/MAPINFO:EXPORTS'})
468
+ ld('AdditionalOptions', prefix='')
469
+ ld('SubSystem', map={'1': 'CONSOLE', '2': 'WINDOWS'}, prefix='/SUBSYSTEM:')
470
+ ld('TerminalServerAware', map={'1': ':NO', '2': ''}, prefix='/TSAWARE')
471
+ ld('LinkIncremental', map={'1': ':NO', '2': ''}, prefix='/INCREMENTAL')
472
+ ld('FixedBaseAddress', map={'1': ':NO', '2': ''}, prefix='/FIXED')
473
+ ld('RandomizedBaseAddress',
474
+ map={'1': ':NO', '2': ''}, prefix='/DYNAMICBASE')
475
+ ld('DataExecutionPrevention',
476
+ map={'1': ':NO', '2': ''}, prefix='/NXCOMPAT')
477
+ ld('OptimizeReferences', map={'1': 'NOREF', '2': 'REF'}, prefix='/OPT:')
478
+ ld('EnableCOMDATFolding', map={'1': 'NOICF', '2': 'ICF'}, prefix='/OPT:')
479
+ ld('LinkTimeCodeGeneration', map={'1': '/LTCG'})
480
+ ld('IgnoreDefaultLibraryNames', prefix='/NODEFAULTLIB:')
481
+ ld('ResourceOnlyDLL', map={'true': '/NOENTRY'})
482
+ ld('EntryPointSymbol', prefix='/ENTRY:')
483
+ ld('Profile', map={'true': '/PROFILE'})
484
+ ld('LargeAddressAware',
485
+ map={'1': ':NO', '2': ''}, prefix='/LARGEADDRESSAWARE')
486
+ # TODO(scottmg): This should sort of be somewhere else (not really a flag).
487
+ ld('AdditionalDependencies', prefix='')
488
+
489
+ # If the base address is not specifically controlled, DYNAMICBASE should
490
+ # be on by default.
491
+ base_flags = filter(lambda x: 'DYNAMICBASE' in x or x == '/FIXED',
492
+ ldflags)
493
+ if not base_flags:
494
+ ldflags.append('/DYNAMICBASE')
495
+
496
+ # If the NXCOMPAT flag has not been specified, default to on. Despite the
497
+ # documentation that says this only defaults to on when the subsystem is
498
+ # Vista or greater (which applies to the linker), the IDE defaults it on
499
+ # unless it's explicitly off.
500
+ if not filter(lambda x: 'NXCOMPAT' in x, ldflags):
501
+ ldflags.append('/NXCOMPAT')
502
+
503
+ have_def_file = filter(lambda x: x.startswith('/DEF:'), ldflags)
504
+ manifest_flags, intermediate_manifest_file = self._GetLdManifestFlags(
505
+ config, manifest_base_name, is_executable and not have_def_file)
506
+ ldflags.extend(manifest_flags)
507
+ manifest_files = self._GetAdditionalManifestFiles(config, gyp_to_build_path)
508
+ manifest_files.append(intermediate_manifest_file)
509
+
510
+ return ldflags, manifest_files
511
+
512
+ def _GetLdManifestFlags(self, config, name, allow_isolation):
513
+ """Returns the set of flags that need to be added to the link to generate
514
+ a default manifest, as well as the name of the generated file."""
515
+ # The manifest is generated by default.
516
+ output_name = name + '.intermediate.manifest'
517
+ flags = [
518
+ '/MANIFEST',
519
+ '/ManifestFile:' + output_name,
520
+ ]
521
+
522
+ config = self._TargetConfig(config)
523
+ enable_uac = self._Setting(('VCLinkerTool', 'EnableUAC'), config,
524
+ default='true')
525
+ if enable_uac == 'true':
526
+ execution_level = self._Setting(('VCLinkerTool', 'UACExecutionLevel'),
527
+ config, default='0')
528
+ execution_level_map = {
529
+ '0': 'asInvoker',
530
+ '1': 'highestAvailable',
531
+ '2': 'requireAdministrator'
532
+ }
533
+
534
+ ui_access = self._Setting(('VCLinkerTool', 'UACUIAccess'), config,
535
+ default='false')
536
+ flags.append('''/MANIFESTUAC:"level='%s' uiAccess='%s'"''' %
537
+ (execution_level_map[execution_level], ui_access))
538
+ else:
539
+ flags.append('/MANIFESTUAC:NO')
540
+
541
+ if allow_isolation:
542
+ flags.append('/ALLOWISOLATION')
543
+ return flags, output_name
544
+
545
+ def _GetAdditionalManifestFiles(self, config, gyp_to_build_path):
546
+ """Gets additional manifest files that are added to the default one
547
+ generated by the linker."""
548
+ files = self._Setting(('VCManifestTool', 'AdditionalManifestFiles'), config,
549
+ default=[])
550
+ if isinstance(files, str):
551
+ files = files.split(';')
552
+ return [os.path.normpath(
553
+ gyp_to_build_path(self.ConvertVSMacros(f, config=config)))
554
+ for f in files]
555
+
556
+ def IsUseLibraryDependencyInputs(self, config):
557
+ """Returns whether the target should be linked via Use Library Dependency
558
+ Inputs (using component .objs of a given .lib)."""
559
+ config = self._TargetConfig(config)
560
+ uldi = self._Setting(('VCLinkerTool', 'UseLibraryDependencyInputs'), config)
561
+ return uldi == 'true'
562
+
563
+ def IsEmbedManifest(self, config):
564
+ """Returns whether manifest should be linked into binary."""
565
+ config = self._TargetConfig(config)
566
+ embed = self._Setting(('VCManifestTool', 'EmbedManifest'), config)
567
+ return embed == 'true'
568
+
569
+ def IsLinkIncremental(self, config):
570
+ """Returns whether the target should be linked incrementally."""
571
+ config = self._TargetConfig(config)
572
+ link_inc = self._Setting(('VCLinkerTool', 'LinkIncremental'), config)
573
+ return link_inc != '1'
574
+
575
+ def GetRcflags(self, config, gyp_to_ninja_path):
576
+ """Returns the flags that need to be added to invocations of the resource
577
+ compiler."""
578
+ config = self._TargetConfig(config)
579
+ rcflags = []
580
+ rc = self._GetWrapper(self, self.msvs_settings[config],
581
+ 'VCResourceCompilerTool', append=rcflags)
582
+ rc('AdditionalIncludeDirectories', map=gyp_to_ninja_path, prefix='/I')
583
+ rcflags.append('/I' + gyp_to_ninja_path('.'))
584
+ rc('PreprocessorDefinitions', prefix='/d')
585
+ # /l arg must be in hex without leading '0x'
586
+ rc('Culture', prefix='/l', map=lambda x: hex(int(x))[2:])
587
+ return rcflags
588
+
589
+ def BuildCygwinBashCommandLine(self, args, path_to_base):
590
+ """Build a command line that runs args via cygwin bash. We assume that all
591
+ incoming paths are in Windows normpath'd form, so they need to be
592
+ converted to posix style for the part of the command line that's passed to
593
+ bash. We also have to do some Visual Studio macro emulation here because
594
+ various rules use magic VS names for things. Also note that rules that
595
+ contain ninja variables cannot be fixed here (for example ${source}), so
596
+ the outer generator needs to make sure that the paths that are written out
597
+ are in posix style, if the command line will be used here."""
598
+ cygwin_dir = os.path.normpath(
599
+ os.path.join(path_to_base, self.msvs_cygwin_dirs[0]))
600
+ cd = ('cd %s' % path_to_base).replace('\\', '/')
601
+ args = [a.replace('\\', '/').replace('"', '\\"') for a in args]
602
+ args = ["'%s'" % a.replace("'", "'\\''") for a in args]
603
+ bash_cmd = ' '.join(args)
604
+ cmd = (
605
+ 'call "%s\\setup_env.bat" && set CYGWIN=nontsec && ' % cygwin_dir +
606
+ 'bash -c "%s ; %s"' % (cd, bash_cmd))
607
+ return cmd
608
+
609
+ def IsRuleRunUnderCygwin(self, rule):
610
+ """Determine if an action should be run under cygwin. If the variable is
611
+ unset, or set to 1 we use cygwin."""
612
+ return int(rule.get('msvs_cygwin_shell',
613
+ self.spec.get('msvs_cygwin_shell', 1))) != 0
614
+
615
+ def _HasExplicitRuleForExtension(self, spec, extension):
616
+ """Determine if there's an explicit rule for a particular extension."""
617
+ for rule in spec.get('rules', []):
618
+ if rule['extension'] == extension:
619
+ return True
620
+ return False
621
+
622
+ def HasExplicitIdlRules(self, spec):
623
+ """Determine if there's an explicit rule for idl files. When there isn't we
624
+ need to generate implicit rules to build MIDL .idl files."""
625
+ return self._HasExplicitRuleForExtension(spec, 'idl')
626
+
627
+ def HasExplicitAsmRules(self, spec):
628
+ """Determine if there's an explicit rule for asm files. When there isn't we
629
+ need to generate implicit rules to assemble .asm files."""
630
+ return self._HasExplicitRuleForExtension(spec, 'asm')
631
+
632
+ def GetIdlBuildData(self, source, config):
633
+ """Determine the implicit outputs for an idl file. Returns output
634
+ directory, outputs, and variables and flags that are required."""
635
+ config = self._TargetConfig(config)
636
+ midl_get = self._GetWrapper(self, self.msvs_settings[config], 'VCMIDLTool')
637
+ def midl(name, default=None):
638
+ return self.ConvertVSMacros(midl_get(name, default=default),
639
+ config=config)
640
+ tlb = midl('TypeLibraryName', default='${root}.tlb')
641
+ header = midl('HeaderFileName', default='${root}.h')
642
+ dlldata = midl('DLLDataFileName', default='dlldata.c')
643
+ iid = midl('InterfaceIdentifierFileName', default='${root}_i.c')
644
+ proxy = midl('ProxyFileName', default='${root}_p.c')
645
+ # Note that .tlb is not included in the outputs as it is not always
646
+ # generated depending on the content of the input idl file.
647
+ outdir = midl('OutputDirectory', default='')
648
+ output = [header, dlldata, iid, proxy]
649
+ variables = [('tlb', tlb),
650
+ ('h', header),
651
+ ('dlldata', dlldata),
652
+ ('iid', iid),
653
+ ('proxy', proxy)]
654
+ # TODO(scottmg): Are there configuration settings to set these flags?
655
+ target_platform = 'win32' if self.GetArch(config) == 'x86' else 'x64'
656
+ flags = ['/char', 'signed', '/env', target_platform, '/Oicf']
657
+ return outdir, output, variables, flags
658
+
659
+
660
+ def _LanguageMatchesForPch(source_ext, pch_source_ext):
661
+ c_exts = ('.c',)
662
+ cc_exts = ('.cc', '.cxx', '.cpp')
663
+ return ((source_ext in c_exts and pch_source_ext in c_exts) or
664
+ (source_ext in cc_exts and pch_source_ext in cc_exts))
665
+
666
+
667
+ class PrecompiledHeader(object):
668
+ """Helper to generate dependencies and build rules to handle generation of
669
+ precompiled headers. Interface matches the GCH handler in xcode_emulation.py.
670
+ """
671
+ def __init__(
672
+ self, settings, config, gyp_to_build_path, gyp_to_unique_output, obj_ext):
673
+ self.settings = settings
674
+ self.config = config
675
+ pch_source = self.settings.msvs_precompiled_source[self.config]
676
+ self.pch_source = gyp_to_build_path(pch_source)
677
+ filename, _ = os.path.splitext(pch_source)
678
+ self.output_obj = gyp_to_unique_output(filename + obj_ext).lower()
679
+
680
+ def _PchHeader(self):
681
+ """Get the header that will appear in an #include line for all source
682
+ files."""
683
+ return os.path.split(self.settings.msvs_precompiled_header[self.config])[1]
684
+
685
+ def GetObjDependencies(self, sources, objs, arch):
686
+ """Given a list of sources files and the corresponding object files,
687
+ returns a list of the pch files that should be depended upon. The
688
+ additional wrapping in the return value is for interface compatability
689
+ with make.py on Mac, and xcode_emulation.py."""
690
+ assert arch is None
691
+ if not self._PchHeader():
692
+ return []
693
+ pch_ext = os.path.splitext(self.pch_source)[1]
694
+ for source in sources:
695
+ if _LanguageMatchesForPch(os.path.splitext(source)[1], pch_ext):
696
+ return [(None, None, self.output_obj)]
697
+ return []
698
+
699
+ def GetPchBuildCommands(self, arch):
700
+ """Not used on Windows as there are no additional build steps required
701
+ (instead, existing steps are modified in GetFlagsModifications below)."""
702
+ return []
703
+
704
+ def GetFlagsModifications(self, input, output, implicit, command,
705
+ cflags_c, cflags_cc, expand_special):
706
+ """Get the modified cflags and implicit dependencies that should be used
707
+ for the pch compilation step."""
708
+ if input == self.pch_source:
709
+ pch_output = ['/Yc' + self._PchHeader()]
710
+ if command == 'cxx':
711
+ return ([('cflags_cc', map(expand_special, cflags_cc + pch_output))],
712
+ self.output_obj, [])
713
+ elif command == 'cc':
714
+ return ([('cflags_c', map(expand_special, cflags_c + pch_output))],
715
+ self.output_obj, [])
716
+ return [], output, implicit
717
+
718
+
719
+ vs_version = None
720
+ def GetVSVersion(generator_flags):
721
+ global vs_version
722
+ if not vs_version:
723
+ vs_version = gyp.MSVSVersion.SelectVisualStudioVersion(
724
+ generator_flags.get('msvs_version', 'auto'))
725
+ return vs_version
726
+
727
+ def _GetVsvarsSetupArgs(generator_flags, arch):
728
+ vs = GetVSVersion(generator_flags)
729
+ return vs.SetupScript()
730
+
731
+ def ExpandMacros(string, expansions):
732
+ """Expand $(Variable) per expansions dict. See MsvsSettings.GetVSMacroEnv
733
+ for the canonical way to retrieve a suitable dict."""
734
+ if '$' in string:
735
+ for old, new in expansions.iteritems():
736
+ assert '$(' not in new, new
737
+ string = string.replace(old, new)
738
+ return string
739
+
740
+ def _ExtractImportantEnvironment(output_of_set):
741
+ """Extracts environment variables required for the toolchain to run from
742
+ a textual dump output by the cmd.exe 'set' command."""
743
+ envvars_to_save = (
744
+ 'goma_.*', # TODO(scottmg): This is ugly, but needed for goma.
745
+ 'include',
746
+ 'lib',
747
+ 'libpath',
748
+ 'path',
749
+ 'pathext',
750
+ 'systemroot',
751
+ 'temp',
752
+ 'tmp',
753
+ )
754
+ env = {}
755
+ for line in output_of_set.splitlines():
756
+ for envvar in envvars_to_save:
757
+ if re.match(envvar + '=', line.lower()):
758
+ var, setting = line.split('=', 1)
759
+ if envvar == 'path':
760
+ # Our own rules (for running gyp-win-tool) and other actions in
761
+ # Chromium rely on python being in the path. Add the path to this
762
+ # python here so that if it's not in the path when ninja is run
763
+ # later, python will still be found.
764
+ setting = os.path.dirname(sys.executable) + os.pathsep + setting
765
+ env[var.upper()] = setting
766
+ break
767
+ for required in ('SYSTEMROOT', 'TEMP', 'TMP'):
768
+ if required not in env:
769
+ raise Exception('Environment variable "%s" '
770
+ 'required to be set to valid path' % required)
771
+ return env
772
+
773
+ def _FormatAsEnvironmentBlock(envvar_dict):
774
+ """Format as an 'environment block' directly suitable for CreateProcess.
775
+ Briefly this is a list of key=value\0, terminated by an additional \0. See
776
+ CreateProcess documentation for more details."""
777
+ block = ''
778
+ nul = '\0'
779
+ for key, value in envvar_dict.iteritems():
780
+ block += key + '=' + value + nul
781
+ block += nul
782
+ return block
783
+
784
+ def _ExtractCLPath(output_of_where):
785
+ """Gets the path to cl.exe based on the output of calling the environment
786
+ setup batch file, followed by the equivalent of `where`."""
787
+ # Take the first line, as that's the first found in the PATH.
788
+ for line in output_of_where.strip().splitlines():
789
+ if line.startswith('LOC:'):
790
+ return line[len('LOC:'):].strip()
791
+
792
+ def GenerateEnvironmentFiles(toplevel_build_dir, generator_flags, open_out):
793
+ """It's not sufficient to have the absolute path to the compiler, linker,
794
+ etc. on Windows, as those tools rely on .dlls being in the PATH. We also
795
+ need to support both x86 and x64 compilers within the same build (to support
796
+ msvs_target_platform hackery). Different architectures require a different
797
+ compiler binary, and different supporting environment variables (INCLUDE,
798
+ LIB, LIBPATH). So, we extract the environment here, wrap all invocations
799
+ of compiler tools (cl, link, lib, rc, midl, etc.) via win_tool.py which
800
+ sets up the environment, and then we do not prefix the compiler with
801
+ an absolute path, instead preferring something like "cl.exe" in the rule
802
+ which will then run whichever the environment setup has put in the path.
803
+ When the following procedure to generate environment files does not
804
+ meet your requirement (e.g. for custom toolchains), you can pass
805
+ "-G ninja_use_custom_environment_files" to the gyp to suppress file
806
+ generation and use custom environment files prepared by yourself."""
807
+ archs = ('x86', 'x64')
808
+ if generator_flags.get('ninja_use_custom_environment_files', 0):
809
+ cl_paths = {}
810
+ for arch in archs:
811
+ cl_paths[arch] = 'cl.exe'
812
+ return cl_paths
813
+ vs = GetVSVersion(generator_flags)
814
+ cl_paths = {}
815
+ for arch in archs:
816
+ # Extract environment variables for subprocesses.
817
+ args = vs.SetupScript(arch)
818
+ args.extend(('&&', 'set'))
819
+ popen = subprocess.Popen(
820
+ args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
821
+ variables, _ = popen.communicate()
822
+ env = _ExtractImportantEnvironment(variables)
823
+ env_block = _FormatAsEnvironmentBlock(env)
824
+ f = open_out(os.path.join(toplevel_build_dir, 'environment.' + arch), 'wb')
825
+ f.write(env_block)
826
+ f.close()
827
+
828
+ # Find cl.exe location for this architecture.
829
+ args = vs.SetupScript(arch)
830
+ args.extend(('&&',
831
+ 'for', '%i', 'in', '(cl.exe)', 'do', '@echo', 'LOC:%~$PATH:i'))
832
+ popen = subprocess.Popen(args, shell=True, stdout=subprocess.PIPE)
833
+ output, _ = popen.communicate()
834
+ cl_paths[arch] = _ExtractCLPath(output)
835
+ return cl_paths
836
+
837
+ def VerifyMissingSources(sources, build_dir, generator_flags, gyp_to_ninja):
838
+ """Emulate behavior of msvs_error_on_missing_sources present in the msvs
839
+ generator: Check that all regular source files, i.e. not created at run time,
840
+ exist on disk. Missing files cause needless recompilation when building via
841
+ VS, and we want this check to match for people/bots that build using ninja,
842
+ so they're not surprised when the VS build fails."""
843
+ if int(generator_flags.get('msvs_error_on_missing_sources', 0)):
844
+ no_specials = filter(lambda x: '$' not in x, sources)
845
+ relative = [os.path.join(build_dir, gyp_to_ninja(s)) for s in no_specials]
846
+ missing = filter(lambda x: not os.path.exists(x), relative)
847
+ if missing:
848
+ # They'll look like out\Release\..\..\stuff\things.cc, so normalize the
849
+ # path for a slightly less crazy looking output.
850
+ cleaned_up = [os.path.normpath(x) for x in missing]
851
+ raise Exception('Missing input files:\n%s' % '\n'.join(cleaned_up))
852
+
853
+ # Sets some values in default_variables, which are required for many
854
+ # generators, run on Windows.
855
+ def CalculateCommonVariables(default_variables, params):
856
+ generator_flags = params.get('generator_flags', {})
857
+
858
+ # Set a variable so conditions can be based on msvs_version.
859
+ msvs_version = gyp.msvs_emulation.GetVSVersion(generator_flags)
860
+ default_variables['MSVS_VERSION'] = msvs_version.ShortName()
861
+
862
+ # To determine processor word size on Windows, in addition to checking
863
+ # PROCESSOR_ARCHITECTURE (which reflects the word size of the current
864
+ # process), it is also necessary to check PROCESSOR_ARCHITEW6432 (which
865
+ # contains the actual word size of the system when running thru WOW64).
866
+ if ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or
867
+ '64' in os.environ.get('PROCESSOR_ARCHITEW6432', '')):
868
+ default_variables['MSVS_OS_BITS'] = 64
869
+ else:
870
+ default_variables['MSVS_OS_BITS'] = 32