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,245 @@
1
+ /*
2
+ * ctf.js
3
+ *
4
+ * Understand and parse all of the different JSON formats of CTF data and
5
+ * translate that into a series of node-ctype friendly pieces. The reason for
6
+ * the abstraction is to handle different changes in the file format.
7
+ *
8
+ * We have to be careful here that we don't end up using a name that is already
9
+ * a built in type.
10
+ */
11
+ var mod_assert = require('assert');
12
+ var ASSERT = mod_assert.ok;
13
+
14
+ var ctf_versions = [ '1.0' ];
15
+ var ctf_entries = [ 'integer', 'float', 'typedef', 'struct' ];
16
+ var ctf_deftypes = [ 'int8_t', 'uint8_t', 'int16_t', 'uint16_t', 'int32_t',
17
+ 'uint32_t', 'float', 'double' ];
18
+
19
+ function ctfParseInteger(entry, ctype)
20
+ {
21
+ var name, sign, len, type;
22
+
23
+ name = entry['name'];
24
+ if (!('signed' in entry['integer']))
25
+ throw (new Error('Malformed CTF JSON: integer missing ' +
26
+ 'signed value'));
27
+
28
+
29
+ if (!('length' in entry['integer']))
30
+ throw (new Error('Malformed CTF JSON: integer missing ' +
31
+ 'length value'));
32
+
33
+ sign = entry['integer']['signed'];
34
+ len = entry['integer']['length'];
35
+ type = null;
36
+
37
+ if (sign && len == 1)
38
+ type = 'int8_t';
39
+ else if (len == 1)
40
+ type = 'uint8_t';
41
+ else if (sign && len == 2)
42
+ type = 'int16_t';
43
+ else if (len == 2)
44
+ type = 'uint16_t';
45
+ else if (sign && len == 4)
46
+ type = 'int32_t';
47
+ else if (len == 4)
48
+ type = 'uint32_t';
49
+ else if (sign && len == 8)
50
+ type = 'int64_t';
51
+ else if (len == 8)
52
+ type = 'uint64_t';
53
+
54
+ if (type === null)
55
+ throw (new Error('Malformed CTF JSON: integer has ' +
56
+ 'unsupported length and sign - ' + len + '/' + sign));
57
+
58
+ /*
59
+ * This means that this is the same as one of our built in types. If
60
+ * that's the case defining it would be an error. So instead of trying
61
+ * to typedef it, we'll return here.
62
+ */
63
+ if (name == type)
64
+ return;
65
+
66
+ if (name == 'char') {
67
+ ASSERT(type == 'int8_t');
68
+ return;
69
+ }
70
+
71
+ ctype.typedef(name, type);
72
+ }
73
+
74
+ function ctfParseFloat(entry, ctype)
75
+ {
76
+ var name, len;
77
+
78
+ name = entry['name'];
79
+ if (!('length' in entry['float']))
80
+ throw (new Error('Malformed CTF JSON: float missing ' +
81
+ 'length value'));
82
+
83
+ len = entry['float']['length'];
84
+ if (len != 4 && len != 8)
85
+ throw (new Error('Malformed CTF JSON: float has invalid ' +
86
+ 'length value'));
87
+
88
+ if (len == 4) {
89
+ if (name == 'float')
90
+ return;
91
+ ctype.typedef(name, 'float');
92
+ } else if (len == 8) {
93
+ if (name == 'double')
94
+ return;
95
+ ctype.typedef(name, 'double');
96
+ }
97
+ }
98
+
99
+ function ctfParseTypedef(entry, ctype)
100
+ {
101
+ var name, type, ii;
102
+
103
+ name = entry['name'];
104
+ if (typeof (entry['typedef']) != 'string')
105
+ throw (new Error('Malformed CTF JSON: typedef value in not ' +
106
+ 'a string'));
107
+
108
+ type = entry['typedef'];
109
+
110
+ /*
111
+ * We need to ensure that we're not looking at type that's one of our
112
+ * built in types. Traditionally in C a uint32_t would be a typedef to
113
+ * some kind of integer. However, those size types are built ins.
114
+ */
115
+ for (ii = 0; ii < ctf_deftypes.length; ii++) {
116
+ if (name == ctf_deftypes[ii])
117
+ return;
118
+ }
119
+
120
+ ctype.typedef(name, type);
121
+ }
122
+
123
+ function ctfParseStruct(entry, ctype)
124
+ {
125
+ var name, type, ii, val, index, member, push;
126
+
127
+ member = [];
128
+ if (!Array.isArray(entry['struct']))
129
+ throw (new Error('Malformed CTF JSON: struct value is not ' +
130
+ 'an array'));
131
+
132
+ for (ii = 0; ii < entry['struct'].length; ii++) {
133
+ val = entry['struct'][ii];
134
+ if (!('name' in val))
135
+ throw (new Error('Malformed CTF JSON: struct member ' +
136
+ 'missing name'));
137
+
138
+ if (!('type' in val))
139
+ throw (new Error('Malformed CTF JSON: struct member ' +
140
+ 'missing type'));
141
+
142
+ if (typeof (val['name']) != 'string')
143
+ throw (new Error('Malformed CTF JSON: struct member ' +
144
+ 'name isn\'t a string'));
145
+
146
+ if (typeof (val['type']) != 'string')
147
+ throw (new Error('Malformed CTF JSON: struct member ' +
148
+ 'type isn\'t a string'));
149
+
150
+ /*
151
+ * CTF version 2 specifies array names as <type> [<num>] where
152
+ * as node-ctype does this as <type>[<num>].
153
+ */
154
+ name = val['name'];
155
+ type = val['type'];
156
+ index = type.indexOf(' [');
157
+ if (index != -1) {
158
+ type = type.substring(0, index) +
159
+ type.substring(index + 1, type.length);
160
+ }
161
+ push = {};
162
+ push[name] = { 'type': type };
163
+ member.push(push);
164
+ }
165
+
166
+ name = entry['name'];
167
+ ctype.typedef(name, member);
168
+ }
169
+
170
+ function ctfParseEntry(entry, ctype)
171
+ {
172
+ var ii, found;
173
+
174
+ if (!('name' in entry))
175
+ throw (new Error('Malformed CTF JSON: entry missing "name" ' +
176
+ 'section'));
177
+
178
+ for (ii = 0; ii < ctf_entries.length; ii++) {
179
+ if (ctf_entries[ii] in entry)
180
+ found++;
181
+ }
182
+
183
+ if (found === 0)
184
+ throw (new Error('Malformed CTF JSON: found no entries'));
185
+
186
+ if (found >= 2)
187
+ throw (new Error('Malformed CTF JSON: found more than one ' +
188
+ 'entry'));
189
+
190
+ if ('integer' in entry) {
191
+ ctfParseInteger(entry, ctype);
192
+ return;
193
+ }
194
+
195
+ if ('float' in entry) {
196
+ ctfParseFloat(entry, ctype);
197
+ return;
198
+ }
199
+
200
+ if ('typedef' in entry) {
201
+ ctfParseTypedef(entry, ctype);
202
+ return;
203
+ }
204
+
205
+ if ('struct' in entry) {
206
+ ctfParseStruct(entry, ctype);
207
+ return;
208
+ }
209
+
210
+ ASSERT(false, 'shouldn\'t reach here');
211
+ }
212
+
213
+ function ctfParseJson(json, ctype)
214
+ {
215
+ var version, ii;
216
+
217
+ ASSERT(json);
218
+ ASSERT(ctype);
219
+ if (!('metadata' in json))
220
+ throw (new Error('Invalid CTF JSON: missing metadata section'));
221
+
222
+ if (!('ctf2json_version' in json['metadata']))
223
+ throw (new Error('Invalid CTF JSON: missing ctf2json_version'));
224
+
225
+ version = json['metadata']['ctf2json_version'];
226
+ for (ii = 0; ii < ctf_versions.length; ii++) {
227
+ if (ctf_versions[ii] == version)
228
+ break;
229
+ }
230
+
231
+ if (ii == ctf_versions.length)
232
+ throw (new Error('Unsuported ctf2json_version: ' + version));
233
+
234
+ if (!('data' in json))
235
+ throw (new Error('Invalid CTF JSON: missing data section'));
236
+
237
+ if (!Array.isArray(json['data']))
238
+ throw (new Error('Malformed CTF JSON: data section is not ' +
239
+ 'an array'));
240
+
241
+ for (ii = 0; ii < json['data'].length; ii++)
242
+ ctfParseEntry(json['data'][ii], ctype);
243
+ }
244
+
245
+ exports.ctfParseJson = ctfParseJson;
@@ -0,0 +1,1485 @@
1
+ /*
2
+ * rm - Feb 2011
3
+ * ctio.js:
4
+ *
5
+ * A simple way to read and write simple ctypes. Of course, as you'll find the
6
+ * code isn't as simple as it might appear. The following types are currently
7
+ * supported in big and little endian formats:
8
+ *
9
+ * uint8_t int8_t
10
+ * uint16_t int16_t
11
+ * uint32_t int32_t
12
+ * float (single precision IEEE 754)
13
+ * double (double precision IEEE 754)
14
+ *
15
+ * This is designed to work in Node and v8. It may in fact work in other
16
+ * Javascript interpreters (that'd be pretty neat), but it hasn't been tested.
17
+ * If you find that it does in fact work, that's pretty cool. Try and pass word
18
+ * back to the original author.
19
+ *
20
+ * Note to the reader: If you're tabstop isn't set to 8, parts of this may look
21
+ * weird.
22
+ */
23
+
24
+ /*
25
+ * Numbers in Javascript have a secret: all numbers must be represented with an
26
+ * IEEE-754 double. The double has a mantissa with a length of 52 bits with an
27
+ * implicit one. Thus the range of integers that can be represented is limited
28
+ * to the size of the mantissa, this makes reading and writing 64-bit integers
29
+ * difficult, but far from impossible.
30
+ *
31
+ * Another side effect of this representation is what happens when you use the
32
+ * bitwise operators, i.e. shift left, shift right, and, or, etc. In Javascript,
33
+ * each operand and the result is cast to a signed 32-bit number. However, in
34
+ * the case of >>> the values are cast to an unsigned number.
35
+ */
36
+
37
+ /*
38
+ * A reminder on endian related issues:
39
+ *
40
+ * Big Endian: MSB -> First byte
41
+ * Little Endian: MSB->Last byte
42
+ */
43
+ var mod_assert = require('assert');
44
+
45
+ /*
46
+ * An 8 bit unsigned integer involves doing no significant work.
47
+ */
48
+ function ruint8(buffer, endian, offset)
49
+ {
50
+ if (endian === undefined)
51
+ throw (new Error('missing endian'));
52
+
53
+ if (buffer === undefined)
54
+ throw (new Error('missing buffer'));
55
+
56
+ if (offset === undefined)
57
+ throw (new Error('missing offset'));
58
+
59
+ if (offset >= buffer.length)
60
+ throw (new Error('Trying to read beyond buffer length'));
61
+
62
+ return (buffer[offset]);
63
+ }
64
+
65
+ /*
66
+ * For 16 bit unsigned numbers we can do all the casting that we want to do.
67
+ */
68
+ function rgint16(buffer, endian, offset)
69
+ {
70
+ var val = 0;
71
+
72
+ if (endian == 'big') {
73
+ val = buffer[offset] << 8;
74
+ val |= buffer[offset+1];
75
+ } else {
76
+ val = buffer[offset];
77
+ val |= buffer[offset+1] << 8;
78
+ }
79
+
80
+ return (val);
81
+
82
+ }
83
+
84
+ function ruint16(buffer, endian, offset)
85
+ {
86
+ if (endian === undefined)
87
+ throw (new Error('missing endian'));
88
+
89
+ if (buffer === undefined)
90
+ throw (new Error('missing buffer'));
91
+
92
+ if (offset === undefined)
93
+ throw (new Error('missing offset'));
94
+
95
+ if (offset + 1 >= buffer.length)
96
+ throw (new Error('Trying to read beyond buffer length'));
97
+
98
+ return (rgint16(buffer, endian, offset));
99
+ }
100
+
101
+ /*
102
+ * Because most bitshifting is done using signed numbers, if we would go into
103
+ * the realm where we use that 32nd bit, we'll end up going into the negative
104
+ * range. i.e.:
105
+ * > 200 << 24
106
+ * -939524096
107
+ *
108
+ * Not the value you'd expect. To work around this, we end up having to do some
109
+ * abuse of the JavaScript standard. in this case, we know that a >>> shift is
110
+ * defined to cast our value to an *unsigned* 32-bit number. Because of that, we
111
+ * use that instead to save us some additional math, though it does feel a
112
+ * little weird and it isn't obvious as to why you woul dwant to do this at
113
+ * first.
114
+ */
115
+ function rgint32(buffer, endian, offset)
116
+ {
117
+ var val = 0;
118
+
119
+ if (endian == 'big') {
120
+ val = buffer[offset+1] << 16;
121
+ val |= buffer[offset+2] << 8;
122
+ val |= buffer[offset+3];
123
+ val = val + (buffer[offset] << 24 >>> 0);
124
+ } else {
125
+ val = buffer[offset+2] << 16;
126
+ val |= buffer[offset+1] << 8;
127
+ val |= buffer[offset];
128
+ val = val + (buffer[offset + 3] << 24 >>> 0);
129
+ }
130
+
131
+ return (val);
132
+ }
133
+
134
+ function ruint32(buffer, endian, offset)
135
+ {
136
+ if (endian === undefined)
137
+ throw (new Error('missing endian'));
138
+
139
+ if (buffer === undefined)
140
+ throw (new Error('missing buffer'));
141
+
142
+ if (offset === undefined)
143
+ throw (new Error('missing offset'));
144
+
145
+ if (offset + 3 >= buffer.length)
146
+ throw (new Error('Trying to read beyond buffer length'));
147
+
148
+ return (rgint32(buffer, endian, offset));
149
+ }
150
+
151
+ /*
152
+ * Reads a 64-bit unsigned number. The astue observer will note that this
153
+ * doesn't quite work. Javascript has chosen to only have numbers that can be
154
+ * represented by a double. A double only has 52 bits of mantissa with an
155
+ * implicit 1, thus we have up to 53 bits to represent an integer. However, 2^53
156
+ * doesn't quite give us what we want. Isn't 53 bits enough for anyone? What
157
+ * could you have possibly wanted to represent that was larger than that? Oh,
158
+ * maybe a size? You mean we bypassed the 4 GB limit on file sizes, when did
159
+ * that happen?
160
+ *
161
+ * To get around this egregious language issue, we're going to instead construct
162
+ * an array of two 32 bit unsigned integers. Where arr[0] << 32 + arr[1] would
163
+ * give the actual number. However, note that the above code probably won't
164
+ * produce the desired results because of the way Javascript numbers are
165
+ * doubles.
166
+ */
167
+ function rgint64(buffer, endian, offset)
168
+ {
169
+ var val = new Array(2);
170
+
171
+ if (endian == 'big') {
172
+ val[0] = ruint32(buffer, endian, offset);
173
+ val[1] = ruint32(buffer, endian, offset+4);
174
+ } else {
175
+ val[0] = ruint32(buffer, endian, offset+4);
176
+ val[1] = ruint32(buffer, endian, offset);
177
+ }
178
+
179
+ return (val);
180
+ }
181
+
182
+ function ruint64(buffer, endian, offset)
183
+ {
184
+ if (endian === undefined)
185
+ throw (new Error('missing endian'));
186
+
187
+ if (buffer === undefined)
188
+ throw (new Error('missing buffer'));
189
+
190
+ if (offset === undefined)
191
+ throw (new Error('missing offset'));
192
+
193
+ if (offset + 7 >= buffer.length)
194
+ throw (new Error('Trying to read beyond buffer length'));
195
+
196
+ return (rgint64(buffer, endian, offset));
197
+ }
198
+
199
+
200
+ /*
201
+ * Signed integer types, yay team! A reminder on how two's complement actually
202
+ * works. The first bit is the signed bit, i.e. tells us whether or not the
203
+ * number should be positive or negative. If the two's complement value is
204
+ * positive, then we're done, as it's equivalent to the unsigned representation.
205
+ *
206
+ * Now if the number is positive, you're pretty much done, you can just leverage
207
+ * the unsigned translations and return those. Unfortunately, negative numbers
208
+ * aren't quite that straightforward.
209
+ *
210
+ * At first glance, one might be inclined to use the traditional formula to
211
+ * translate binary numbers between the positive and negative values in two's
212
+ * complement. (Though it doesn't quite work for the most negative value)
213
+ * Mainly:
214
+ * - invert all the bits
215
+ * - add one to the result
216
+ *
217
+ * Of course, this doesn't quite work in Javascript. Take for example the value
218
+ * of -128. This could be represented in 16 bits (big-endian) as 0xff80. But of
219
+ * course, Javascript will do the following:
220
+ *
221
+ * > ~0xff80
222
+ * -65409
223
+ *
224
+ * Whoh there, Javascript, that's not quite right. But wait, according to
225
+ * Javascript that's perfectly correct. When Javascript ends up seeing the
226
+ * constant 0xff80, it has no notion that it is actually a signed number. It
227
+ * assumes that we've input the unsigned value 0xff80. Thus, when it does the
228
+ * binary negation, it casts it into a signed value, (positive 0xff80). Then
229
+ * when you perform binary negation on that, it turns it into a negative number.
230
+ *
231
+ * Instead, we're going to have to use the following general formula, that works
232
+ * in a rather Javascript friendly way. I'm glad we don't support this kind of
233
+ * weird numbering scheme in the kernel.
234
+ *
235
+ * (BIT-MAX - (unsigned)val + 1) * -1
236
+ *
237
+ * The astute observer, may think that this doesn't make sense for 8-bit numbers
238
+ * (really it isn't necessary for them). However, when you get 16-bit numbers,
239
+ * you do. Let's go back to our prior example and see how this will look:
240
+ *
241
+ * (0xffff - 0xff80 + 1) * -1
242
+ * (0x007f + 1) * -1
243
+ * (0x0080) * -1
244
+ *
245
+ * Doing it this way ends up allowing us to treat it appropriately in
246
+ * Javascript. Sigh, that's really quite ugly for what should just be a few bit
247
+ * shifts, ~ and &.
248
+ */
249
+
250
+ /*
251
+ * Endianness doesn't matter for 8-bit signed values. We could in fact optimize
252
+ * this case because the more traditional methods work, but for consistency,
253
+ * we'll keep doing this the same way.
254
+ */
255
+ function rsint8(buffer, endian, offset)
256
+ {
257
+ var neg;
258
+
259
+ if (endian === undefined)
260
+ throw (new Error('missing endian'));
261
+
262
+ if (buffer === undefined)
263
+ throw (new Error('missing buffer'));
264
+
265
+ if (offset === undefined)
266
+ throw (new Error('missing offset'));
267
+
268
+ if (offset >= buffer.length)
269
+ throw (new Error('Trying to read beyond buffer length'));
270
+
271
+ neg = buffer[offset] & 0x80;
272
+ if (!neg)
273
+ return (buffer[offset]);
274
+
275
+ return ((0xff - buffer[offset] + 1) * -1);
276
+ }
277
+
278
+ /*
279
+ * The 16-bit version requires a bit more effort. In this case, we can leverage
280
+ * our unsigned code to generate the value we want to return.
281
+ */
282
+ function rsint16(buffer, endian, offset)
283
+ {
284
+ var neg, val;
285
+
286
+ if (endian === undefined)
287
+ throw (new Error('missing endian'));
288
+
289
+ if (buffer === undefined)
290
+ throw (new Error('missing buffer'));
291
+
292
+ if (offset === undefined)
293
+ throw (new Error('missing offset'));
294
+
295
+ if (offset + 1 >= buffer.length)
296
+ throw (new Error('Trying to read beyond buffer length'));
297
+
298
+ val = rgint16(buffer, endian, offset);
299
+ neg = val & 0x8000;
300
+ if (!neg)
301
+ return (val);
302
+
303
+ return ((0xffff - val + 1) * -1);
304
+ }
305
+
306
+ /*
307
+ * We really shouldn't leverage our 32-bit code here and instead utilize the
308
+ * fact that we know that since these are signed numbers, we can do all the
309
+ * shifting and binary anding to generate the 32-bit number. But, for
310
+ * consistency we'll do the same. If we want to do otherwise, we should instead
311
+ * make the 32 bit unsigned code do the optimization. But as long as there
312
+ * aren't floats secretly under the hood for that, we /should/ be okay.
313
+ */
314
+ function rsint32(buffer, endian, offset)
315
+ {
316
+ var neg, val;
317
+
318
+ if (endian === undefined)
319
+ throw (new Error('missing endian'));
320
+
321
+ if (buffer === undefined)
322
+ throw (new Error('missing buffer'));
323
+
324
+ if (offset === undefined)
325
+ throw (new Error('missing offset'));
326
+
327
+ if (offset + 3 >= buffer.length)
328
+ throw (new Error('Trying to read beyond buffer length'));
329
+
330
+ val = rgint32(buffer, endian, offset);
331
+ neg = val & 0x80000000;
332
+ if (!neg)
333
+ return (val);
334
+
335
+ return ((0xffffffff - val + 1) * -1);
336
+ }
337
+
338
+ /*
339
+ * The signed version of this code suffers from all of the same problems of the
340
+ * other 64 bit version.
341
+ */
342
+ function rsint64(buffer, endian, offset)
343
+ {
344
+ var neg, val;
345
+
346
+ if (endian === undefined)
347
+ throw (new Error('missing endian'));
348
+
349
+ if (buffer === undefined)
350
+ throw (new Error('missing buffer'));
351
+
352
+ if (offset === undefined)
353
+ throw (new Error('missing offset'));
354
+
355
+ if (offset + 3 >= buffer.length)
356
+ throw (new Error('Trying to read beyond buffer length'));
357
+
358
+ val = rgint64(buffer, endian, offset);
359
+ neg = val[0] & 0x80000000;
360
+
361
+ if (!neg)
362
+ return (val);
363
+
364
+ val[0] = (0xffffffff - val[0]) * -1;
365
+ val[1] = (0xffffffff - val[1] + 1) * -1;
366
+
367
+ /*
368
+ * If we had the key 0x8000000000000000, that would leave the lower 32
369
+ * bits as 0xffffffff, however, since we're goint to add one, that would
370
+ * actually leave the lower 32-bits as 0x100000000, which would break
371
+ * our ability to write back a value that we received. To work around
372
+ * this, if we actually get that value, we're going to bump the upper
373
+ * portion by 1 and set this to zero.
374
+ */
375
+ mod_assert.ok(val[1] <= 0x100000000);
376
+ if (val[1] == -0x100000000) {
377
+ val[1] = 0;
378
+ val[0]--;
379
+ }
380
+
381
+ return (val);
382
+ }
383
+
384
+ /*
385
+ * We now move onto IEEE 754: The traditional form for floating point numbers
386
+ * and what is secretly hiding at the heart of everything in this. I really hope
387
+ * that someone is actually using this, as otherwise, this effort is probably
388
+ * going to be more wasted.
389
+ *
390
+ * One might be tempted to use parseFloat here, but that wouldn't work at all
391
+ * for several reasons. Mostly due to the way floats actually work, and
392
+ * parseFloat only actually works in base 10. I don't see base 10 anywhere near
393
+ * this file.
394
+ *
395
+ * In this case we'll implement the single and double precision versions. The
396
+ * quadruple precision, while probably useful, wouldn't really be accepted by
397
+ * Javascript, so let's not even waste our time.
398
+ *
399
+ * So let's review how this format looks like. A single precision value is 32
400
+ * bits and has three parts:
401
+ * - Sign bit
402
+ * - Exponent (Using bias notation)
403
+ * - Mantissa
404
+ *
405
+ * |s|eeeeeeee|mmmmmmmmmmmmmmmmmmmmmmmmm|
406
+ * 31| 30-23 | 22 - 0 |
407
+ *
408
+ * The exponent is stored in a biased input. The bias in this case 127.
409
+ * Therefore, our exponent is equal to the 8-bit value - 127.
410
+ *
411
+ * By default, a number is normalized in IEEE, that means that the mantissa has
412
+ * an implicit one that we don't see. So really the value stored is 1.m.
413
+ * However, if the exponent is all zeros, then instead we have to shift
414
+ * everything to the right one and there is no more implicit one.
415
+ *
416
+ * Special values:
417
+ * - Positive Infinity:
418
+ * Sign: 0
419
+ * Exponent: All 1s
420
+ * Mantissa: 0
421
+ * - Negative Infinity:
422
+ * Sign: 1
423
+ * Exponent: All 1s
424
+ * Mantissa: 0
425
+ * - NaN:
426
+ * Sign: *
427
+ * Exponent: All 1s
428
+ * Mantissa: non-zero
429
+ * - Zero:
430
+ * Sign: *
431
+ * Exponent: All 0s
432
+ * Mantissa: 0
433
+ *
434
+ * In the case of zero, the sign bit determines whether we get a positive or
435
+ * negative zero. However, since Javascript cannot determine the difference
436
+ * between the two: i.e. -0 == 0, we just always return 0.
437
+ *
438
+ */
439
+ function rfloat(buffer, endian, offset)
440
+ {
441
+ var bytes = [];
442
+ var sign, exponent, mantissa, val;
443
+ var bias = 127;
444
+ var maxexp = 0xff;
445
+
446
+ if (endian === undefined)
447
+ throw (new Error('missing endian'));
448
+
449
+ if (buffer === undefined)
450
+ throw (new Error('missing buffer'));
451
+
452
+ if (offset === undefined)
453
+ throw (new Error('missing offset'));
454
+
455
+ if (offset + 3 >= buffer.length)
456
+ throw (new Error('Trying to read beyond buffer length'));
457
+
458
+ /* Normalize the bytes to be in endian order */
459
+ if (endian == 'big') {
460
+ bytes[0] = buffer[offset];
461
+ bytes[1] = buffer[offset+1];
462
+ bytes[2] = buffer[offset+2];
463
+ bytes[3] = buffer[offset+3];
464
+ } else {
465
+ bytes[3] = buffer[offset];
466
+ bytes[2] = buffer[offset+1];
467
+ bytes[1] = buffer[offset+2];
468
+ bytes[0] = buffer[offset+3];
469
+ }
470
+
471
+ sign = bytes[0] & 0x80;
472
+ exponent = (bytes[0] & 0x7f) << 1;
473
+ exponent |= (bytes[1] & 0x80) >>> 7;
474
+ mantissa = (bytes[1] & 0x7f) << 16;
475
+ mantissa |= bytes[2] << 8;
476
+ mantissa |= bytes[3];
477
+
478
+ /* Check for special cases before we do general parsing */
479
+ if (!sign && exponent == maxexp && mantissa === 0)
480
+ return (Number.POSITIVE_INFINITY);
481
+
482
+ if (sign && exponent == maxexp && mantissa === 0)
483
+ return (Number.NEGATIVE_INFINITY);
484
+
485
+ if (exponent == maxexp && mantissa !== 0)
486
+ return (Number.NaN);
487
+
488
+ /*
489
+ * Javascript really doesn't have support for positive or negative zero.
490
+ * So we're not going to try and give it to you. That would be just
491
+ * plain weird. Besides -0 == 0.
492
+ */
493
+ if (exponent === 0 && mantissa === 0)
494
+ return (0);
495
+
496
+ /*
497
+ * Now we can deal with the bias and the determine whether the mantissa
498
+ * has the implicit one or not.
499
+ */
500
+ exponent -= bias;
501
+ if (exponent == -bias) {
502
+ exponent++;
503
+ val = 0;
504
+ } else {
505
+ val = 1;
506
+ }
507
+
508
+ val = (val + mantissa * Math.pow(2, -23)) * Math.pow(2, exponent);
509
+
510
+ if (sign)
511
+ val *= -1;
512
+
513
+ return (val);
514
+ }
515
+
516
+ /*
517
+ * Doubles in IEEE 754 are like their brothers except for a few changes and
518
+ * increases in size:
519
+ * - The exponent is now 11 bits
520
+ * - The mantissa is now 52 bits
521
+ * - The bias is now 1023
522
+ *
523
+ * |s|eeeeeeeeeee|mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm|
524
+ * 63| 62 - 52 | 51 - 0 |
525
+ * 63| 62 - 52 | 51 - 0 |
526
+ *
527
+ * While the size has increased a fair amount, we're going to end up keeping the
528
+ * same general formula for calculating the final value. As a reminder, this
529
+ * formula is:
530
+ *
531
+ * (-1)^s * (n + m) * 2^(e-b)
532
+ *
533
+ * Where:
534
+ * s is the sign bit
535
+ * n is (exponent > 0) ? 1 : 0 -- Determines whether we're normalized
536
+ * or not
537
+ * m is the mantissa
538
+ * e is the exponent specified
539
+ * b is the bias for the exponent
540
+ *
541
+ */
542
+ function rdouble(buffer, endian, offset)
543
+ {
544
+ var bytes = [];
545
+ var sign, exponent, mantissa, val, lowmant;
546
+ var bias = 1023;
547
+ var maxexp = 0x7ff;
548
+
549
+ if (endian === undefined)
550
+ throw (new Error('missing endian'));
551
+
552
+ if (buffer === undefined)
553
+ throw (new Error('missing buffer'));
554
+
555
+ if (offset === undefined)
556
+ throw (new Error('missing offset'));
557
+
558
+ if (offset + 7 >= buffer.length)
559
+ throw (new Error('Trying to read beyond buffer length'));
560
+
561
+ /* Normalize the bytes to be in endian order */
562
+ if (endian == 'big') {
563
+ bytes[0] = buffer[offset];
564
+ bytes[1] = buffer[offset+1];
565
+ bytes[2] = buffer[offset+2];
566
+ bytes[3] = buffer[offset+3];
567
+ bytes[4] = buffer[offset+4];
568
+ bytes[5] = buffer[offset+5];
569
+ bytes[6] = buffer[offset+6];
570
+ bytes[7] = buffer[offset+7];
571
+ } else {
572
+ bytes[7] = buffer[offset];
573
+ bytes[6] = buffer[offset+1];
574
+ bytes[5] = buffer[offset+2];
575
+ bytes[4] = buffer[offset+3];
576
+ bytes[3] = buffer[offset+4];
577
+ bytes[2] = buffer[offset+5];
578
+ bytes[1] = buffer[offset+6];
579
+ bytes[0] = buffer[offset+7];
580
+ }
581
+
582
+ /*
583
+ * We can construct the exponent and mantissa the same way as we did in
584
+ * the case of a float, just increase the range of the exponent.
585
+ */
586
+ sign = bytes[0] & 0x80;
587
+ exponent = (bytes[0] & 0x7f) << 4;
588
+ exponent |= (bytes[1] & 0xf0) >>> 4;
589
+
590
+ /*
591
+ * This is going to be ugly but then again, we're dealing with IEEE 754.
592
+ * This could probably be done as a node add on in a few lines of C++,
593
+ * but oh we'll, we've made it this far so let's be native the rest of
594
+ * the way...
595
+ *
596
+ * What we're going to do is break the mantissa into two parts, the
597
+ * lower 24 bits and the upper 28 bits. We'll multiply the upper 28 bits
598
+ * by the appropriate power and then add in the lower 24-bits. Not
599
+ * really that great. It's pretty much a giant kludge to deal with
600
+ * Javascript eccentricities around numbers.
601
+ */
602
+ lowmant = bytes[7];
603
+ lowmant |= bytes[6] << 8;
604
+ lowmant |= bytes[5] << 16;
605
+ mantissa = bytes[4];
606
+ mantissa |= bytes[3] << 8;
607
+ mantissa |= bytes[2] << 16;
608
+ mantissa |= (bytes[1] & 0x0f) << 24;
609
+ mantissa *= Math.pow(2, 24); /* Equivalent to << 24, but JS compat */
610
+ mantissa += lowmant;
611
+
612
+ /* Check for special cases before we do general parsing */
613
+ if (!sign && exponent == maxexp && mantissa === 0)
614
+ return (Number.POSITIVE_INFINITY);
615
+
616
+ if (sign && exponent == maxexp && mantissa === 0)
617
+ return (Number.NEGATIVE_INFINITY);
618
+
619
+ if (exponent == maxexp && mantissa !== 0)
620
+ return (Number.NaN);
621
+
622
+ /*
623
+ * Javascript really doesn't have support for positive or negative zero.
624
+ * So we're not going to try and give it to you. That would be just
625
+ * plain weird. Besides -0 == 0.
626
+ */
627
+ if (exponent === 0 && mantissa === 0)
628
+ return (0);
629
+
630
+ /*
631
+ * Now we can deal with the bias and the determine whether the mantissa
632
+ * has the implicit one or not.
633
+ */
634
+ exponent -= bias;
635
+ if (exponent == -bias) {
636
+ exponent++;
637
+ val = 0;
638
+ } else {
639
+ val = 1;
640
+ }
641
+
642
+ val = (val + mantissa * Math.pow(2, -52)) * Math.pow(2, exponent);
643
+
644
+ if (sign)
645
+ val *= -1;
646
+
647
+ return (val);
648
+ }
649
+
650
+ /*
651
+ * Now that we have gone through the pain of reading the individual types, we're
652
+ * probably going to want some way to write these back. None of this is going to
653
+ * be good. But since we have Javascript numbers this should certainly be more
654
+ * interesting. Though we can constrain this end a little bit more in what is
655
+ * valid. For now, let's go back to our friends the unsigned value.
656
+ */
657
+
658
+ /*
659
+ * Unsigned numbers seem deceptively easy. Here are the general steps and rules
660
+ * that we are going to take:
661
+ * - If the number is negative, throw an Error
662
+ * - Truncate any floating point portion
663
+ * - Take the modulus of the number in our base
664
+ * - Write it out to the buffer in the endian format requested at the offset
665
+ */
666
+
667
+ /*
668
+ * We have to make sure that the value is a valid integer. This means that it is
669
+ * non-negative. It has no fractional component and that it does not exceed the
670
+ * maximum allowed value.
671
+ *
672
+ * value The number to check for validity
673
+ *
674
+ * max The maximum value
675
+ */
676
+ function prepuint(value, max)
677
+ {
678
+ if (typeof (value) != 'number')
679
+ throw (new (Error('cannot write a non-number as a number')));
680
+
681
+ if (value < 0)
682
+ throw (new Error('specified a negative value for writing an ' +
683
+ 'unsigned value'));
684
+
685
+ if (value > max)
686
+ throw (new Error('value is larger than maximum value for ' +
687
+ 'type'));
688
+
689
+ if (Math.floor(value) !== value)
690
+ throw (new Error('value has a fractional component'));
691
+
692
+ return (value);
693
+ }
694
+
695
+ /*
696
+ * 8-bit version, classy. We can ignore endianness which is good.
697
+ */
698
+ function wuint8(value, endian, buffer, offset)
699
+ {
700
+ var val;
701
+
702
+ if (value === undefined)
703
+ throw (new Error('missing value'));
704
+
705
+ if (endian === undefined)
706
+ throw (new Error('missing endian'));
707
+
708
+ if (buffer === undefined)
709
+ throw (new Error('missing buffer'));
710
+
711
+ if (offset === undefined)
712
+ throw (new Error('missing offset'));
713
+
714
+ if (offset >= buffer.length)
715
+ throw (new Error('Trying to read beyond buffer length'));
716
+
717
+ val = prepuint(value, 0xff);
718
+ buffer[offset] = val;
719
+ }
720
+
721
+ /*
722
+ * Pretty much the same as the 8-bit version, just this time we need to worry
723
+ * about endian related issues.
724
+ */
725
+ function wgint16(val, endian, buffer, offset)
726
+ {
727
+ if (endian == 'big') {
728
+ buffer[offset] = (val & 0xff00) >>> 8;
729
+ buffer[offset+1] = val & 0x00ff;
730
+ } else {
731
+ buffer[offset+1] = (val & 0xff00) >>> 8;
732
+ buffer[offset] = val & 0x00ff;
733
+ }
734
+ }
735
+
736
+ function wuint16(value, endian, buffer, offset)
737
+ {
738
+ var val;
739
+
740
+ if (value === undefined)
741
+ throw (new Error('missing value'));
742
+
743
+ if (endian === undefined)
744
+ throw (new Error('missing endian'));
745
+
746
+ if (buffer === undefined)
747
+ throw (new Error('missing buffer'));
748
+
749
+ if (offset === undefined)
750
+ throw (new Error('missing offset'));
751
+
752
+ if (offset + 1 >= buffer.length)
753
+ throw (new Error('Trying to read beyond buffer length'));
754
+
755
+ val = prepuint(value, 0xffff);
756
+ wgint16(val, endian, buffer, offset);
757
+ }
758
+
759
+ /*
760
+ * The 32-bit version is going to have to be a little different unfortunately.
761
+ * We can't quite bitshift to get the largest byte, because that would end up
762
+ * getting us caught by the signed values.
763
+ *
764
+ * And yes, we do want to subtract out the lower part by default. This means
765
+ * that when we do the division, it will be treated as a bit shift and we won't
766
+ * end up generating a floating point value. If we did generate a floating point
767
+ * value we'd have to truncate it intelligently, this saves us that problem and
768
+ * may even be somewhat faster under the hood.
769
+ */
770
+ function wgint32(val, endian, buffer, offset)
771
+ {
772
+ if (endian == 'big') {
773
+ buffer[offset] = (val - (val & 0x00ffffff)) / Math.pow(2, 24);
774
+ buffer[offset+1] = (val >>> 16) & 0xff;
775
+ buffer[offset+2] = (val >>> 8) & 0xff;
776
+ buffer[offset+3] = val & 0xff;
777
+ } else {
778
+ buffer[offset+3] = (val - (val & 0x00ffffff)) /
779
+ Math.pow(2, 24);
780
+ buffer[offset+2] = (val >>> 16) & 0xff;
781
+ buffer[offset+1] = (val >>> 8) & 0xff;
782
+ buffer[offset] = val & 0xff;
783
+ }
784
+ }
785
+
786
+ function wuint32(value, endian, buffer, offset)
787
+ {
788
+ var val;
789
+
790
+ if (value === undefined)
791
+ throw (new Error('missing value'));
792
+
793
+ if (endian === undefined)
794
+ throw (new Error('missing endian'));
795
+
796
+ if (buffer === undefined)
797
+ throw (new Error('missing buffer'));
798
+
799
+ if (offset === undefined)
800
+ throw (new Error('missing offset'));
801
+
802
+ if (offset + 3 >= buffer.length)
803
+ throw (new Error('Trying to read beyond buffer length'));
804
+
805
+ val = prepuint(value, 0xffffffff);
806
+ wgint32(val, endian, buffer, offset);
807
+ }
808
+
809
+ /*
810
+ * Unlike the other versions, we expect the value to be in the form of two
811
+ * arrays where value[0] << 32 + value[1] would result in the value that we
812
+ * want.
813
+ */
814
+ function wgint64(value, endian, buffer, offset)
815
+ {
816
+ if (endian == 'big') {
817
+ wgint32(value[0], endian, buffer, offset);
818
+ wgint32(value[1], endian, buffer, offset+4);
819
+ } else {
820
+ wgint32(value[0], endian, buffer, offset+4);
821
+ wgint32(value[1], endian, buffer, offset);
822
+ }
823
+ }
824
+
825
+ function wuint64(value, endian, buffer, offset)
826
+ {
827
+ if (value === undefined)
828
+ throw (new Error('missing value'));
829
+
830
+ if (!(value instanceof Array))
831
+ throw (new Error('value must be an array'));
832
+
833
+ if (value.length != 2)
834
+ throw (new Error('value must be an array of length 2'));
835
+
836
+ if (endian === undefined)
837
+ throw (new Error('missing endian'));
838
+
839
+ if (buffer === undefined)
840
+ throw (new Error('missing buffer'));
841
+
842
+ if (offset === undefined)
843
+ throw (new Error('missing offset'));
844
+
845
+ if (offset + 7 >= buffer.length)
846
+ throw (new Error('Trying to read beyond buffer length'));
847
+
848
+ prepuint(value[0], 0xffffffff);
849
+ prepuint(value[1], 0xffffffff);
850
+ wgint64(value, endian, buffer, offset);
851
+ }
852
+
853
+ /*
854
+ * We now move onto our friends in the signed number category. Unlike unsigned
855
+ * numbers, we're going to have to worry a bit more about how we put values into
856
+ * arrays. Since we are only worrying about signed 32-bit values, we're in
857
+ * slightly better shape. Unfortunately, we really can't do our favorite binary
858
+ * & in this system. It really seems to do the wrong thing. For example:
859
+ *
860
+ * > -32 & 0xff
861
+ * 224
862
+ *
863
+ * What's happening above is really: 0xe0 & 0xff = 0xe0. However, the results of
864
+ * this aren't treated as a signed number. Ultimately a bad thing.
865
+ *
866
+ * What we're going to want to do is basically create the unsigned equivalent of
867
+ * our representation and pass that off to the wuint* functions. To do that
868
+ * we're going to do the following:
869
+ *
870
+ * - if the value is positive
871
+ * we can pass it directly off to the equivalent wuint
872
+ * - if the value is negative
873
+ * we do the following computation:
874
+ * mb + val + 1, where
875
+ * mb is the maximum unsigned value in that byte size
876
+ * val is the Javascript negative integer
877
+ *
878
+ *
879
+ * As a concrete value, take -128. In signed 16 bits this would be 0xff80. If
880
+ * you do out the computations:
881
+ *
882
+ * 0xffff - 128 + 1
883
+ * 0xffff - 127
884
+ * 0xff80
885
+ *
886
+ * You can then encode this value as the signed version. This is really rather
887
+ * hacky, but it should work and get the job done which is our goal here.
888
+ *
889
+ * Thus the overall flow is:
890
+ * - Truncate the floating point part of the number
891
+ * - We don't have to take the modulus, because the unsigned versions will
892
+ * take care of that for us. And we don't have to worry about that
893
+ * potentially causing bad things to happen because of sign extension
894
+ * - Pass it off to the appropriate unsigned version, potentially modifying
895
+ * the negative portions as necessary.
896
+ */
897
+
898
+ /*
899
+ * A series of checks to make sure we actually have a signed 32-bit number
900
+ */
901
+ function prepsint(value, max, min)
902
+ {
903
+ if (typeof (value) != 'number')
904
+ throw (new (Error('cannot write a non-number as a number')));
905
+
906
+ if (value > max)
907
+ throw (new Error('value larger than maximum allowed value'));
908
+
909
+ if (value < min)
910
+ throw (new Error('value smaller than minimum allowed value'));
911
+
912
+ if (Math.floor(value) !== value)
913
+ throw (new Error('value has a fractional component'));
914
+
915
+ return (value);
916
+ }
917
+
918
+ /*
919
+ * The 8-bit version of the signed value. Overall, fairly straightforward.
920
+ */
921
+ function wsint8(value, endian, buffer, offset)
922
+ {
923
+ var val;
924
+
925
+ if (value === undefined)
926
+ throw (new Error('missing value'));
927
+
928
+ if (endian === undefined)
929
+ throw (new Error('missing endian'));
930
+
931
+ if (buffer === undefined)
932
+ throw (new Error('missing buffer'));
933
+
934
+ if (offset === undefined)
935
+ throw (new Error('missing offset'));
936
+
937
+ if (offset >= buffer.length)
938
+ throw (new Error('Trying to read beyond buffer length'));
939
+
940
+ val = prepsint(value, 0x7f, -0x80);
941
+ if (val >= 0)
942
+ wuint8(val, endian, buffer, offset);
943
+ else
944
+ wuint8(0xff + val + 1, endian, buffer, offset);
945
+ }
946
+
947
+ /*
948
+ * The 16-bit version of the signed value. Also, fairly straightforward.
949
+ */
950
+ function wsint16(value, endian, buffer, offset)
951
+ {
952
+ var val;
953
+
954
+ if (value === undefined)
955
+ throw (new Error('missing value'));
956
+
957
+ if (endian === undefined)
958
+ throw (new Error('missing endian'));
959
+
960
+ if (buffer === undefined)
961
+ throw (new Error('missing buffer'));
962
+
963
+ if (offset === undefined)
964
+ throw (new Error('missing offset'));
965
+
966
+ if (offset + 1 >= buffer.length)
967
+ throw (new Error('Trying to read beyond buffer length'));
968
+
969
+ val = prepsint(value, 0x7fff, -0x8000);
970
+ if (val >= 0)
971
+ wgint16(val, endian, buffer, offset);
972
+ else
973
+ wgint16(0xffff + val + 1, endian, buffer, offset);
974
+
975
+ }
976
+
977
+ /*
978
+ * We can do this relatively easily by leveraging the code used for 32-bit
979
+ * unsigned code.
980
+ */
981
+ function wsint32(value, endian, buffer, offset)
982
+ {
983
+ var val;
984
+
985
+ if (value === undefined)
986
+ throw (new Error('missing value'));
987
+
988
+ if (endian === undefined)
989
+ throw (new Error('missing endian'));
990
+
991
+ if (buffer === undefined)
992
+ throw (new Error('missing buffer'));
993
+
994
+ if (offset === undefined)
995
+ throw (new Error('missing offset'));
996
+
997
+ if (offset + 3 >= buffer.length)
998
+ throw (new Error('Trying to read beyond buffer length'));
999
+
1000
+ val = prepsint(value, 0x7fffffff, -0x80000000);
1001
+ if (val >= 0)
1002
+ wgint32(val, endian, buffer, offset);
1003
+ else
1004
+ wgint32(0xffffffff + val + 1, endian, buffer, offset);
1005
+ }
1006
+
1007
+ /*
1008
+ * The signed 64 bit integer should by in the same format as when received.
1009
+ * Mainly it should ensure that the value is an array of two integers where
1010
+ * value[0] << 32 + value[1] is the desired number. Furthermore, the two values
1011
+ * need to be equal.
1012
+ */
1013
+ function wsint64(value, endian, buffer, offset)
1014
+ {
1015
+ var vzpos, vopos;
1016
+ var vals = new Array(2);
1017
+
1018
+ if (value === undefined)
1019
+ throw (new Error('missing value'));
1020
+
1021
+ if (!(value instanceof Array))
1022
+ throw (new Error('value must be an array'));
1023
+
1024
+ if (value.length != 2)
1025
+ throw (new Error('value must be an array of length 2'));
1026
+
1027
+ if (endian === undefined)
1028
+ throw (new Error('missing endian'));
1029
+
1030
+ if (buffer === undefined)
1031
+ throw (new Error('missing buffer'));
1032
+
1033
+ if (offset === undefined)
1034
+ throw (new Error('missing offset'));
1035
+
1036
+ if (offset + 7 >= buffer.length)
1037
+ throw (new Error('Trying to read beyond buffer length'));
1038
+
1039
+ /*
1040
+ * We need to make sure that we have the same sign on both values. The
1041
+ * hokiest way to to do this is to multiply the number by +inf. If we do
1042
+ * this, we'll get either +/-inf depending on the sign of the value.
1043
+ * Once we have this, we can compare it to +inf to see if the number is
1044
+ * positive or not.
1045
+ */
1046
+ vzpos = (value[0] * Number.POSITIVE_INFINITY) ==
1047
+ Number.POSITIVE_INFINITY;
1048
+ vopos = (value[1] * Number.POSITIVE_INFINITY) ==
1049
+ Number.POSITIVE_INFINITY;
1050
+
1051
+ /*
1052
+ * If either of these is zero, then we don't actually need this check.
1053
+ */
1054
+ if (value[0] != 0 && value[1] != 0 && vzpos != vopos)
1055
+ throw (new Error('Both entries in the array must have ' +
1056
+ 'the same sign'));
1057
+
1058
+ /*
1059
+ * Doing verification for a signed 64-bit integer is actually a big
1060
+ * trickier than it appears. We can't quite use our standard techniques
1061
+ * because we need to compare both sets of values. The first value is
1062
+ * pretty straightforward. If the first value is beond the extremes than
1063
+ * we error out. However, the valid range of the second value varies
1064
+ * based on the first one. If the first value is negative, and *not* the
1065
+ * largest negative value, than it can be any integer within the range [
1066
+ * 0, 0xffffffff ]. If it is the largest negative number, it must be
1067
+ * zero.
1068
+ *
1069
+ * If the first number is positive, than it doesn't matter what the
1070
+ * value is. We just simply have to make sure we have a valid positive
1071
+ * integer.
1072
+ */
1073
+ if (vzpos) {
1074
+ prepuint(value[0], 0x7fffffff);
1075
+ prepuint(value[1], 0xffffffff);
1076
+ } else {
1077
+ prepsint(value[0], 0, -0x80000000);
1078
+ prepsint(value[1], 0, -0xffffffff);
1079
+ if (value[0] == -0x80000000 && value[1] != 0)
1080
+ throw (new Error('value smaller than minimum ' +
1081
+ 'allowed value'));
1082
+ }
1083
+
1084
+ /* Fix negative numbers */
1085
+ if (value[0] < 0 || value[1] < 0) {
1086
+ vals[0] = 0xffffffff - Math.abs(value[0]);
1087
+ vals[1] = 0x100000000 - Math.abs(value[1]);
1088
+ if (vals[1] == 0x100000000) {
1089
+ vals[1] = 0;
1090
+ vals[0]++;
1091
+ }
1092
+ } else {
1093
+ vals[0] = value[0];
1094
+ vals[1] = value[1];
1095
+ }
1096
+ wgint64(vals, endian, buffer, offset);
1097
+ }
1098
+
1099
+ /*
1100
+ * Now we are moving onto the weirder of these, the float and double. For this
1101
+ * we're going to just have to do something that's pretty weird. First off, we
1102
+ * have no way to get at the underlying float representation, at least not
1103
+ * easily. But that doesn't mean we can't figure it out, we just have to use our
1104
+ * heads.
1105
+ *
1106
+ * One might propose to use Number.toString(2). Of course, this is not really
1107
+ * that good, because the ECMAScript 262 v3 Standard says the following Section
1108
+ * 15.7.4.2-Number.prototype.toString (radix):
1109
+ *
1110
+ * If radix is an integer from 2 to 36, but not 10, the result is a string, the
1111
+ * choice of which is implementation-dependent.
1112
+ *
1113
+ * Well that doesn't really help us one bit now does it? We could use the
1114
+ * standard base 10 version of the string, but that's just going to create more
1115
+ * errors as we end up trying to convert it back to a binary value. So, really
1116
+ * this just means we have to be non-lazy and parse the structure intelligently.
1117
+ *
1118
+ * First off, we can do the basic checks: NaN, positive and negative infinity.
1119
+ *
1120
+ * Now that those are done we can work backwards to generate the mantissa and
1121
+ * exponent.
1122
+ *
1123
+ * The first thing we need to do is determine the sign bit, easy to do, check
1124
+ * whether the value is less than 0. And convert the number to its absolute
1125
+ * value representation. Next, we need to determine if the value is less than
1126
+ * one or greater than or equal to one and from there determine what power was
1127
+ * used to get there. What follows is now specific to floats, though the general
1128
+ * ideas behind this will hold for doubles as well, but the exact numbers
1129
+ * involved will change.
1130
+ *
1131
+ * Once we have that power we can determine the exponent and the mantissa. Call
1132
+ * the value that has the number of bits to reach the power ebits. In the
1133
+ * general case they have the following values:
1134
+ *
1135
+ * exponent 127 + ebits
1136
+ * mantissa value * 2^(23 - ebits) & 0x7fffff
1137
+ *
1138
+ * In the case where the value of ebits is <= -127 we are now in the case where
1139
+ * we no longer have normalized numbers. In this case the values take on the
1140
+ * following values:
1141
+ *
1142
+ * exponent 0
1143
+ * mantissa value * 2^149 & 0x7fffff
1144
+ *
1145
+ * Once we have the values for the sign, mantissa, and exponent. We reconstruct
1146
+ * the four bytes as follows:
1147
+ *
1148
+ * byte0 sign bit and seven most significant bits from the exp
1149
+ * sign << 7 | (exponent & 0xfe) >>> 1
1150
+ *
1151
+ * byte1 lsb from the exponent and 7 top bits from the mantissa
1152
+ * (exponent & 0x01) << 7 | (mantissa & 0x7f0000) >>> 16
1153
+ *
1154
+ * byte2 bits 8-15 (zero indexing) from mantissa
1155
+ * mantissa & 0xff00 >> 8
1156
+ *
1157
+ * byte3 bits 0-7 from mantissa
1158
+ * mantissa & 0xff
1159
+ *
1160
+ * Once we have this we have to assign them into the buffer in proper endian
1161
+ * order.
1162
+ */
1163
+
1164
+ /*
1165
+ * Compute the log base 2 of the value. Now, someone who remembers basic
1166
+ * properties of logarithms will point out that we could use the change of base
1167
+ * formula for logs, and in fact that would be astute, because that's what we'll
1168
+ * do for now. It feels cleaner, albeit it may be less efficient than just
1169
+ * iterating and dividing by 2. We may want to come back and revisit that some
1170
+ * day.
1171
+ */
1172
+ function log2(value)
1173
+ {
1174
+ return (Math.log(value) / Math.log(2));
1175
+ }
1176
+
1177
+ /*
1178
+ * Helper to determine the exponent of the number we're looking at.
1179
+ */
1180
+ function intexp(value)
1181
+ {
1182
+ return (Math.floor(log2(value)));
1183
+ }
1184
+
1185
+ /*
1186
+ * Helper to determine the exponent of the fractional part of the value.
1187
+ */
1188
+ function fracexp(value)
1189
+ {
1190
+ return (Math.floor(log2(value)));
1191
+ }
1192
+
1193
+ function wfloat(value, endian, buffer, offset)
1194
+ {
1195
+ var sign, exponent, mantissa, ebits;
1196
+ var bytes = [];
1197
+
1198
+ if (value === undefined)
1199
+ throw (new Error('missing value'));
1200
+
1201
+ if (endian === undefined)
1202
+ throw (new Error('missing endian'));
1203
+
1204
+ if (buffer === undefined)
1205
+ throw (new Error('missing buffer'));
1206
+
1207
+ if (offset === undefined)
1208
+ throw (new Error('missing offset'));
1209
+
1210
+
1211
+ if (offset + 3 >= buffer.length)
1212
+ throw (new Error('Trying to read beyond buffer length'));
1213
+
1214
+ if (isNaN(value)) {
1215
+ sign = 0;
1216
+ exponent = 0xff;
1217
+ mantissa = 23;
1218
+ } else if (value == Number.POSITIVE_INFINITY) {
1219
+ sign = 0;
1220
+ exponent = 0xff;
1221
+ mantissa = 0;
1222
+ } else if (value == Number.NEGATIVE_INFINITY) {
1223
+ sign = 1;
1224
+ exponent = 0xff;
1225
+ mantissa = 0;
1226
+ } else {
1227
+ /* Well we have some work to do */
1228
+
1229
+ /* Thankfully the sign bit is trivial */
1230
+ if (value < 0) {
1231
+ sign = 1;
1232
+ value = Math.abs(value);
1233
+ } else {
1234
+ sign = 0;
1235
+ }
1236
+
1237
+ /* Use the correct function to determine number of bits */
1238
+ if (value < 1)
1239
+ ebits = fracexp(value);
1240
+ else
1241
+ ebits = intexp(value);
1242
+
1243
+ /* Time to deal with the issues surrounding normalization */
1244
+ if (ebits <= -127) {
1245
+ exponent = 0;
1246
+ mantissa = (value * Math.pow(2, 149)) & 0x7fffff;
1247
+ } else {
1248
+ exponent = 127 + ebits;
1249
+ mantissa = value * Math.pow(2, 23 - ebits);
1250
+ mantissa &= 0x7fffff;
1251
+ }
1252
+ }
1253
+
1254
+ bytes[0] = sign << 7 | (exponent & 0xfe) >>> 1;
1255
+ bytes[1] = (exponent & 0x01) << 7 | (mantissa & 0x7f0000) >>> 16;
1256
+ bytes[2] = (mantissa & 0x00ff00) >>> 8;
1257
+ bytes[3] = mantissa & 0x0000ff;
1258
+
1259
+ if (endian == 'big') {
1260
+ buffer[offset] = bytes[0];
1261
+ buffer[offset+1] = bytes[1];
1262
+ buffer[offset+2] = bytes[2];
1263
+ buffer[offset+3] = bytes[3];
1264
+ } else {
1265
+ buffer[offset] = bytes[3];
1266
+ buffer[offset+1] = bytes[2];
1267
+ buffer[offset+2] = bytes[1];
1268
+ buffer[offset+3] = bytes[0];
1269
+ }
1270
+ }
1271
+
1272
+ /*
1273
+ * Now we move onto doubles. Doubles are similar to floats in pretty much all
1274
+ * ways except that the processing isn't quite as straightforward because we
1275
+ * can't always use shifting, i.e. we have > 32 bit values.
1276
+ *
1277
+ * We're going to proceed in an identical fashion to floats and utilize the same
1278
+ * helper functions. All that really is changing are the specific values that we
1279
+ * use to do the calculations. Thus, to review we have to do the following.
1280
+ *
1281
+ * First get the sign bit and convert the value to its absolute value
1282
+ * representation. Next, we determine the number of bits that we used to get to
1283
+ * the value, branching whether the value is greater than or less than 1. Once
1284
+ * we have that value which we will again call ebits, we have to do the
1285
+ * following in the general case:
1286
+ *
1287
+ * exponent 1023 + ebits
1288
+ * mantissa [value * 2^(52 - ebits)] % 2^52
1289
+ *
1290
+ * In the case where the value of ebits <= -1023 we no longer use normalized
1291
+ * numbers, thus like with floats we have to do slightly different processing:
1292
+ *
1293
+ * exponent 0
1294
+ * mantissa [value * 2^1074] % 2^52
1295
+ *
1296
+ * Once we have determined the sign, exponent and mantissa we can construct the
1297
+ * bytes as follows:
1298
+ *
1299
+ * byte0 sign bit and seven most significant bits form the exp
1300
+ * sign << 7 | (exponent & 0x7f0) >>> 4
1301
+ *
1302
+ * byte1 Remaining 4 bits from the exponent and the four most
1303
+ * significant bits from the mantissa 48-51
1304
+ * (exponent & 0x00f) << 4 | mantissa >>> 48
1305
+ *
1306
+ * byte2 Bits 40-47 from the mantissa
1307
+ * (mantissa >>> 40) & 0xff
1308
+ *
1309
+ * byte3 Bits 32-39 from the mantissa
1310
+ * (mantissa >>> 32) & 0xff
1311
+ *
1312
+ * byte4 Bits 24-31 from the mantissa
1313
+ * (mantissa >>> 24) & 0xff
1314
+ *
1315
+ * byte5 Bits 16-23 from the Mantissa
1316
+ * (mantissa >>> 16) & 0xff
1317
+ *
1318
+ * byte6 Bits 8-15 from the mantissa
1319
+ * (mantissa >>> 8) & 0xff
1320
+ *
1321
+ * byte7 Bits 0-7 from the mantissa
1322
+ * mantissa & 0xff
1323
+ *
1324
+ * Now we can't quite do the right shifting that we want in bytes 1 - 3, because
1325
+ * we'll have extended too far and we'll lose those values when we try and do
1326
+ * the shift. Instead we have to use an alternate approach. To try and stay out
1327
+ * of floating point, what we'll do is say that mantissa -= bytes[4-7] and then
1328
+ * divide by 2^32. Once we've done that we can use binary arithmetic. Oof,
1329
+ * that's ugly, but it seems to avoid using floating point (just based on how v8
1330
+ * seems to be optimizing for base 2 arithmetic).
1331
+ */
1332
+ function wdouble(value, endian, buffer, offset)
1333
+ {
1334
+ var sign, exponent, mantissa, ebits;
1335
+ var bytes = [];
1336
+
1337
+ if (value === undefined)
1338
+ throw (new Error('missing value'));
1339
+
1340
+ if (endian === undefined)
1341
+ throw (new Error('missing endian'));
1342
+
1343
+ if (buffer === undefined)
1344
+ throw (new Error('missing buffer'));
1345
+
1346
+ if (offset === undefined)
1347
+ throw (new Error('missing offset'));
1348
+
1349
+
1350
+ if (offset + 7 >= buffer.length)
1351
+ throw (new Error('Trying to read beyond buffer length'));
1352
+
1353
+ if (isNaN(value)) {
1354
+ sign = 0;
1355
+ exponent = 0x7ff;
1356
+ mantissa = 23;
1357
+ } else if (value == Number.POSITIVE_INFINITY) {
1358
+ sign = 0;
1359
+ exponent = 0x7ff;
1360
+ mantissa = 0;
1361
+ } else if (value == Number.NEGATIVE_INFINITY) {
1362
+ sign = 1;
1363
+ exponent = 0x7ff;
1364
+ mantissa = 0;
1365
+ } else {
1366
+ /* Well we have some work to do */
1367
+
1368
+ /* Thankfully the sign bit is trivial */
1369
+ if (value < 0) {
1370
+ sign = 1;
1371
+ value = Math.abs(value);
1372
+ } else {
1373
+ sign = 0;
1374
+ }
1375
+
1376
+ /* Use the correct function to determine number of bits */
1377
+ if (value < 1)
1378
+ ebits = fracexp(value);
1379
+ else
1380
+ ebits = intexp(value);
1381
+
1382
+ /*
1383
+ * This is a total hack to determine a denormalized value.
1384
+ * Unfortunately, we sometimes do not get a proper value for
1385
+ * ebits, i.e. we lose the values that would get rounded off.
1386
+ *
1387
+ *
1388
+ * The astute observer may wonder why we would be
1389
+ * multiplying by two Math.pows rather than just summing
1390
+ * them. Well, that's to get around a small bug in the
1391
+ * way v8 seems to implement the function. On occasion
1392
+ * doing:
1393
+ *
1394
+ * foo * Math.pow(2, 1023 + 51)
1395
+ *
1396
+ * Causes us to overflow to infinity, where as doing:
1397
+ *
1398
+ * foo * Math.pow(2, 1023) * Math.pow(2, 51)
1399
+ *
1400
+ * Does not cause us to overflow. Go figure.
1401
+ *
1402
+ */
1403
+ if (value <= 2.225073858507201e-308 || ebits <= -1023) {
1404
+ exponent = 0;
1405
+ mantissa = value * Math.pow(2, 1023) * Math.pow(2, 51);
1406
+ mantissa %= Math.pow(2, 52);
1407
+ } else {
1408
+ /*
1409
+ * We might have gotten fucked by our floating point
1410
+ * logarithm magic. This is rather crappy, but that's
1411
+ * our luck. If we just had a log base 2 or access to
1412
+ * the stupid underlying representation this would have
1413
+ * been much easier and we wouldn't have such stupid
1414
+ * kludges or hacks.
1415
+ */
1416
+ if (ebits > 1023)
1417
+ ebits = 1023;
1418
+ exponent = 1023 + ebits;
1419
+ mantissa = value * Math.pow(2, -ebits);
1420
+ mantissa *= Math.pow(2, 52);
1421
+ mantissa %= Math.pow(2, 52);
1422
+ }
1423
+ }
1424
+
1425
+ /* Fill the bytes in backwards to deal with the size issues */
1426
+ bytes[7] = mantissa & 0xff;
1427
+ bytes[6] = (mantissa >>> 8) & 0xff;
1428
+ bytes[5] = (mantissa >>> 16) & 0xff;
1429
+ mantissa = (mantissa - (mantissa & 0xffffff)) / Math.pow(2, 24);
1430
+ bytes[4] = mantissa & 0xff;
1431
+ bytes[3] = (mantissa >>> 8) & 0xff;
1432
+ bytes[2] = (mantissa >>> 16) & 0xff;
1433
+ bytes[1] = (exponent & 0x00f) << 4 | mantissa >>> 24;
1434
+ bytes[0] = (sign << 7) | (exponent & 0x7f0) >>> 4;
1435
+
1436
+ if (endian == 'big') {
1437
+ buffer[offset] = bytes[0];
1438
+ buffer[offset+1] = bytes[1];
1439
+ buffer[offset+2] = bytes[2];
1440
+ buffer[offset+3] = bytes[3];
1441
+ buffer[offset+4] = bytes[4];
1442
+ buffer[offset+5] = bytes[5];
1443
+ buffer[offset+6] = bytes[6];
1444
+ buffer[offset+7] = bytes[7];
1445
+ } else {
1446
+ buffer[offset+7] = bytes[0];
1447
+ buffer[offset+6] = bytes[1];
1448
+ buffer[offset+5] = bytes[2];
1449
+ buffer[offset+4] = bytes[3];
1450
+ buffer[offset+3] = bytes[4];
1451
+ buffer[offset+2] = bytes[5];
1452
+ buffer[offset+1] = bytes[6];
1453
+ buffer[offset] = bytes[7];
1454
+ }
1455
+ }
1456
+
1457
+ /*
1458
+ * Actually export our work above. One might argue that we shouldn't expose
1459
+ * these interfaces and just force people to use the higher level abstractions
1460
+ * around this work. However, unlike say other libraries we've come across, this
1461
+ * interface has several properties: it makes sense, it's simple, and it's
1462
+ * useful.
1463
+ */
1464
+ exports.ruint8 = ruint8;
1465
+ exports.ruint16 = ruint16;
1466
+ exports.ruint32 = ruint32;
1467
+ exports.ruint64 = ruint64;
1468
+ exports.wuint8 = wuint8;
1469
+ exports.wuint16 = wuint16;
1470
+ exports.wuint32 = wuint32;
1471
+ exports.wuint64 = wuint64;
1472
+
1473
+ exports.rsint8 = rsint8;
1474
+ exports.rsint16 = rsint16;
1475
+ exports.rsint32 = rsint32;
1476
+ exports.rsint64 = rsint64;
1477
+ exports.wsint8 = wsint8;
1478
+ exports.wsint16 = wsint16;
1479
+ exports.wsint32 = wsint32;
1480
+ exports.wsint64 = wsint64;
1481
+
1482
+ exports.rfloat = rfloat;
1483
+ exports.rdouble = rdouble;
1484
+ exports.wfloat = wfloat;
1485
+ exports.wdouble = wdouble;