Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Commit friendshipSystem

  • Loading branch information...
commit caa0e24c78bc2b9eb85a3ad49e9838da4a59845f 1 parent 7ecf7e6
@rashadrussell rashadrussell authored
Showing with 39,051 additions and 6 deletions.
  1. +83 −0 about.html
  2. +67 −0 contact.html
  3. +112 −6 css/desktop.css
  4. +5 −0 css/reset.css
  5. +1 −0  editor/Procfile
  6. +44 −0 editor/app.js
  7. +165 −0 editor/css/common.css
  8. +216 −0 editor/css/desktop.css
  9. +1 −0  editor/css/read.txt
  10. +5 −0 editor/css/reset.css
  11. BIN  editor/img/bg.png
  12. BIN  editor/img/boyIcon1.png
  13. BIN  editor/img/boyIcon2.png
  14. BIN  editor/img/boy_3.png
  15. BIN  editor/img/boy_4.png
  16. BIN  editor/img/boy_7.png
  17. BIN  editor/img/boy_8.png
  18. BIN  editor/img/header-bg.png
  19. BIN  editor/img/inputBg.png
  20. BIN  editor/img/logo.png
  21. BIN  editor/img/menu_item_bg.png
  22. BIN  editor/img/menu_item_hover_bg.png
  23. BIN  editor/img/online-status.png
  24. +1 −0  editor/img/read.txt
  25. BIN  editor/img/speechCycle.png
  26. BIN  editor/img/submitButton.png
  27. BIN  editor/img/table_thead_bg.png
  28. +80 −0 editor/index.html
  29. +3 −0  editor/node_modules/socket.io/.npmignore
  30. +187 −0 editor/node_modules/socket.io/History.md
  31. +31 −0 editor/node_modules/socket.io/Makefile
  32. +343 −0 editor/node_modules/socket.io/Readme.md
  33. +64 −0 editor/node_modules/socket.io/benchmarks/decode.bench.js
  34. +90 −0 editor/node_modules/socket.io/benchmarks/encode.bench.js
  35. +55 −0 editor/node_modules/socket.io/benchmarks/runner.js
  36. +8 −0 editor/node_modules/socket.io/index.js
  37. +97 −0 editor/node_modules/socket.io/lib/logger.js
  38. +961 −0 editor/node_modules/socket.io/lib/manager.js
  39. +355 −0 editor/node_modules/socket.io/lib/namespace.js
  40. +249 −0 editor/node_modules/socket.io/lib/parser.js
  41. +136 −0 editor/node_modules/socket.io/lib/socket.io.js
  42. +362 −0 editor/node_modules/socket.io/lib/socket.js
  43. +395 −0 editor/node_modules/socket.io/lib/static.js
  44. +98 −0 editor/node_modules/socket.io/lib/store.js
  45. +143 −0 editor/node_modules/socket.io/lib/stores/memory.js
  46. +269 −0 editor/node_modules/socket.io/lib/stores/redis.js
  47. +534 −0 editor/node_modules/socket.io/lib/transport.js
  48. +106 −0 editor/node_modules/socket.io/lib/transports/flashsocket.js
  49. +82 −0 editor/node_modules/socket.io/lib/transports/htmlfile.js
  50. +135 −0 editor/node_modules/socket.io/lib/transports/http-polling.js
  51. +111 −0 editor/node_modules/socket.io/lib/transports/http.js
  52. +12 −0 editor/node_modules/socket.io/lib/transports/index.js
  53. +96 −0 editor/node_modules/socket.io/lib/transports/jsonp-polling.js
  54. +36 −0 editor/node_modules/socket.io/lib/transports/websocket.js
  55. +358 −0 editor/node_modules/socket.io/lib/transports/websocket/default.js
  56. +617 −0 editor/node_modules/socket.io/lib/transports/websocket/hybi-07-12.js
  57. +617 −0 editor/node_modules/socket.io/lib/transports/websocket/hybi-16.js
  58. +604 −0 editor/node_modules/socket.io/lib/transports/websocket/hybi-17.js
  59. +11 −0 editor/node_modules/socket.io/lib/transports/websocket/index.js
  60. +72 −0 editor/node_modules/socket.io/lib/transports/xhr-polling.js
  61. +50 −0 editor/node_modules/socket.io/lib/util.js
  62. +1 −0  editor/node_modules/socket.io/node_modules/policyfile/.npmignore
  63. +19 −0 editor/node_modules/socket.io/node_modules/policyfile/LICENSE
  64. +7 −0 editor/node_modules/socket.io/node_modules/policyfile/Makefile
  65. +98 −0 editor/node_modules/socket.io/node_modules/policyfile/README.md
  66. +375 −0 editor/node_modules/socket.io/node_modules/policyfile/doc/index.html
  67. +8 −0 editor/node_modules/socket.io/node_modules/policyfile/examples/basic.fallback.js
  68. +5 −0 editor/node_modules/socket.io/node_modules/policyfile/examples/basic.js
  69. +1 −0  editor/node_modules/socket.io/node_modules/policyfile/index.js
  70. +289 −0 editor/node_modules/socket.io/node_modules/policyfile/lib/server.js
  71. +43 −0 editor/node_modules/socket.io/node_modules/policyfile/package.json
  72. +21 −0 editor/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.crt
  73. +27 −0 editor/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.private.key
  74. +231 −0 editor/node_modules/socket.io/node_modules/policyfile/tests/unit.test.js
  75. +567 −0 editor/node_modules/socket.io/node_modules/redis/README.md
  76. +184 −0 editor/node_modules/socket.io/node_modules/redis/changelog.md
  77. +9 −0 editor/node_modules/socket.io/node_modules/redis/eval_test.js
  78. +5 −0 editor/node_modules/socket.io/node_modules/redis/examples/auth.js
  79. +33 −0 editor/node_modules/socket.io/node_modules/redis/examples/backpressure_drain.js
  80. +24 −0 editor/node_modules/socket.io/node_modules/redis/examples/extend.js
  81. +32 −0 editor/node_modules/socket.io/node_modules/redis/examples/file.js
  82. +5 −0 editor/node_modules/socket.io/node_modules/redis/examples/mget.js
  83. +10 −0 editor/node_modules/socket.io/node_modules/redis/examples/monitor.js
  84. +46 −0 editor/node_modules/socket.io/node_modules/redis/examples/multi.js
  85. +29 −0 editor/node_modules/socket.io/node_modules/redis/examples/multi2.js
  86. +33 −0 editor/node_modules/socket.io/node_modules/redis/examples/psubscribe.js
  87. +41 −0 editor/node_modules/socket.io/node_modules/redis/examples/pub_sub.js
  88. +17 −0 editor/node_modules/socket.io/node_modules/redis/examples/simple.js
  89. +15 −0 editor/node_modules/socket.io/node_modules/redis/examples/subqueries.js
  90. +19 −0 editor/node_modules/socket.io/node_modules/redis/examples/subquery.js
  91. +29 −0 editor/node_modules/socket.io/node_modules/redis/examples/unix_socket.js
  92. +31 −0 editor/node_modules/socket.io/node_modules/redis/examples/web_server.js
  93. +40 −0 editor/node_modules/socket.io/node_modules/redis/generate_commands.js
  94. +860 −0 editor/node_modules/socket.io/node_modules/redis/index.js
  95. +126 −0 editor/node_modules/socket.io/node_modules/redis/lib/commands.js
  96. +41 −0 editor/node_modules/socket.io/node_modules/redis/lib/parser/hiredis.js
  97. +316 −0 editor/node_modules/socket.io/node_modules/redis/lib/parser/javascript.js
  98. +58 −0 editor/node_modules/socket.io/node_modules/redis/lib/queue.js
  99. +12 −0 editor/node_modules/socket.io/node_modules/redis/lib/to_array.js
  100. +6 −0 editor/node_modules/socket.io/node_modules/redis/lib/util.js
  101. +135 −0 editor/node_modules/socket.io/node_modules/redis/multi_bench.js
  102. +58 −0 editor/node_modules/socket.io/node_modules/redis/package.json
  103. +3 −0  editor/node_modules/socket.io/node_modules/redis/simple_test.js
  104. +1,248 −0 editor/node_modules/socket.io/node_modules/redis/test.js
  105. +89 −0 editor/node_modules/socket.io/node_modules/redis/tests/buffer_bench.js
  106. +27 −0 editor/node_modules/socket.io/node_modules/redis/tests/reconnect_test.js
  107. +16 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/codec.js
  108. +38 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/pubsub/pub.js
  109. +10 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/pubsub/run
  110. +23 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/pubsub/server.js
  111. +49 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/rpushblpop/pub.js
  112. +6 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/rpushblpop/run
  113. +30 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/rpushblpop/server.js
  114. +13 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/speed/00
  115. +13 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/speed/plot
  116. BIN  editor/node_modules/socket.io/node_modules/redis/tests/stress/speed/size-rate.png
  117. +84 −0 editor/node_modules/socket.io/node_modules/redis/tests/stress/speed/speed.js
  118. +18 −0 editor/node_modules/socket.io/node_modules/redis/tests/sub_quit_test.js
  119. +17 −0 editor/node_modules/socket.io/node_modules/redis/tests/test_start_stop.js
  120. +2 −0  editor/node_modules/socket.io/node_modules/socket.io-client/.npmignore
  121. +125 −0 editor/node_modules/socket.io/node_modules/socket.io-client/History.md
  122. +20 −0 editor/node_modules/socket.io/node_modules/socket.io-client/Makefile
  123. +246 −0 editor/node_modules/socket.io/node_modules/socket.io-client/README.md
  124. +278 −0 editor/node_modules/socket.io/node_modules/socket.io-client/bin/builder.js
  125. BIN  editor/node_modules/socket.io/node_modules/socket.io-client/dist/WebSocketMain.swf
  126. BIN  editor/node_modules/socket.io/node_modules/socket.io-client/dist/WebSocketMainInsecure.swf
  127. +3,750 −0 editor/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js
  128. +2 −0  editor/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.min.js
  129. +184 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/events.js
  130. +206 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/io.js
  131. +322 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/json.js
  132. +242 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/namespace.js
  133. +262 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/parser.js
  134. +525 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js
  135. +239 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transport.js
  136. +191 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/flashsocket.js
  137. +172 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/htmlfile.js
  138. +255 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/jsonp-polling.js
  139. +184 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/websocket.js
  140. +155 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/xhr-polling.js
  141. +213 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/transports/xhr.js
  142. +360 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/util.js
  143. +1 −0  editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/.npmignore
  144. +157 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/README.md
  145. BIN  editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf
  146. BIN  editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip
  147. +8 −0 ...node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/IWebSocketLogger.as
  148. +464 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as
  149. +33 −0 ...r/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketEvent.as
  150. +150 −0 ...or/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as
  151. +19 −0 ...modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as
  152. +10 −0 editor/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh
  153. +204 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as
  154. +375 −0 ...ules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as
  155. +287 −0 ...les/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as
  156. +3,235 −0 ...ules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as
  157. +218 −0 ...node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as
  158. +57 −0 ...es/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as
  159. +82 −0 .../socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as
  160. +27 −0 ...socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as
  161. +21 −0 ...socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as
  162. +137 −0 ...s/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as
  163. +124 −0 ...s/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as
  164. +204 −0 ...s/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as
  165. +106 −0 .../socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as
  166. +28 −0 ...ocket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as
  167. +115 −0 ...ocket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as
  168. +71 −0 ...cket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as
  169. +90 −0 .../socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as
  170. +20 −0 ...socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as
  171. +119 −0 ...ocket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as
  172. +142 −0 ...ocket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as
  173. +339 −0 ...socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as
  174. +2,797 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as
  175. +375 −0 ...ode_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as
  176. +55 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as
  177. +61 −0 ...o/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as
  178. +64 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as
  179. +58 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as
  180. +365 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as
  181. +86 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as
  182. +21 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as
  183. +15 −0 ...t.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as
  184. +32 −0 ...et.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as
  185. +21 −0 ...e_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as
  186. +35 −0 ...e_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as
  187. +110 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as
  188. +34 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as
  189. +52 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as
  190. +44 −0 ...t.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as
  191. +44 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as
  192. +60 −0 ...de_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as
  193. +42 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as
  194. +88 −0 ...de_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as
  195. +94 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as
  196. +29 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl
  197. +2,304 −0 ...t.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt
  198. +1,220 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as
  199. +58 −0 ...et.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as
  200. +39 −0 ...node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as
  201. +148 −0 ...ode_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as
  202. +160 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as
  203. +71 −0 ...o/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as
  204. +98 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as
  205. +109 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as
  206. +112 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as
  207. +151 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as
  208. +184 −0 ...et.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as
  209. +20 −0 ...o/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as
  210. +56 −0 ...ket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as
  211. +58 −0 ...ket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as
  212. +101 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as
  213. +92 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as
  214. +198 −0 ...et.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as
  215. +58 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as
  216. +60 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as
  217. +51 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as
  218. +42 −0 ...et.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as
  219. +59 −0 ...de_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as
  220. +66 −0 ...io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as
  221. +102 −0 ...t.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as
  222. +117 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as
  223. +14 −0 ...node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as
  224. +29 −0 ...e_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as
  225. +24 −0 ....io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as
  226. +38 −0 ...s/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as
  227. +171 −0 ...de_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as
  228. +26 −0 ...cket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as
Sorry, we could not display the entire diff because too many files (397) changed.
View
83 about.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Code Blue</title>
+
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <style>
+ @import url("./css/reset.css");
+ @import url("./css/common.css");
+ @import url("./css/desktop.css");
+ </style>
+</head>
+<body>
+ <header id="header">
+ <h1 id="header-title"><a href="index.html">Code Blue</a></h1>
+
+ <nav id="header-nav">
+ <ul>
+ <li><a href="about.html">What's Code Blue</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="signup.html">Sign Up</a></li>
+ </ul>
+ </nav>
+
+ <div class="clear"></div>
+
+ </header>
+
+ <section id="content">
+
+ <div id="padding-content"><!-- padding-content -->
+ <div id="leftNav">
+ <ul>
+ <a href="about.html"><li>About</li></a>
+ <a href="team.html"><li>Team</li></a>
+ <a href="contact.html"><li>Contact</li></a>
+ </ul>
+ </div>
+
+ <div id="main_content"><!-- content -->
+ <h3>So, What's CodeBlue Anyway?</h3>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+
+ <h3>Upcoming Features</h3>
+ <blockquote>
+ <ul>
+ <li>- Syntax Highlighting</li>
+ <li>- Function Reference</li>
+ <li>- Code Snippets</li>
+ </ul>
+ </blockquote>
+
+ <h3>UIUC Web Monkeys</h3>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </div><!-- end main_content -->
+
+ </div><!-- padding-content -->
+
+ </section>
+
+ <footer id="footer">
+
+ <nav id="footer-nav">
+ <ul>
+ <li><a href="about.html">About</a></li>
+ <li><a href="">Legal</a></li>
+ <li><a href="">Github</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+
+ </footer>
+
+</body>
+</html>
View
67 contact.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Code Blue</title>
+
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <style>
+ @import url("./css/reset.css");
+ @import url("./css/common.css");
+ @import url("./css/desktop.css");
+ </style>
+</head>
+<body>
+ <header id="header">
+ <h1 id="header-title"><a href="index.html">Code Blue</a></h1>
+
+ <nav id="header-nav">
+ <ul>
+ <li><a href="about.html">What's Code Blue</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="signup.html">Sign Up</a></li>
+ </ul>
+ </nav>
+
+ <div class="clear"></div>
+
+ </header>
+
+ <section id="content">
+
+ <div id="padding-content"><!-- padding-content -->
+ <div id="leftNav">
+ <ul>
+ <a href="about.html"><li>About</li></a>
+ <a href="team.html"><li>Team</li></a>
+ <a href="contact.html"><li>Contact</li></a>
+ </ul>
+ </div>
+
+ <div id="main_content"><!-- content -->
+
+ <h3>Contact UIUC Web Monkeys</h3>
+
+ <p><strong>Website:</strong> <a href="http://www.acm.uiuc.edu/webmonkeys" target="_blank">www.acm.uiuc.edu/webmonkeys</a></p>
+ <p><strong>Github:</strong> <a href="https://github.com/acm-uiuc/CodeBlue" target="_blank">www.github.com/acm-uiuc/CodeBlue</a></p>
+ </div><!-- end main_content -->
+
+ </div><!-- padding-content -->
+
+ </section>
+
+ <footer id="footer">
+
+ <nav id="footer-nav">
+ <ul>
+ <li><a href="about.html">About</a></li>
+ <li><a href="">Legal</a></li>
+ <li><a href="">Github</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+
+ </footer>
+
+</body>
+</html>
View
118 css/desktop.css
@@ -7,7 +7,7 @@ html {
/* Header */
#header {
- padding: 0 5%;
+ padding: 0 10%;
}
#header-title {
@@ -39,14 +39,60 @@ html {
/* Content */
#padding-content {
- width: 1000px;
- padding-top: 20px;
- padding-bottom: 20px;
- text-align: center;
+ padding: 20px 10%;
margin: 0px auto;
+ overflow: hidden;
+}
+
+#leftNav ul {
+ list-style: none;
+ float: left;
+ border-left: solid 1px #ccc;
+ border-top: solid 1px #ccc;
+ border-right: solid 1px #ccc;
+}
+
+#leftNav li {
+ width: 200px;
+ padding: 10px;
+ border-bottom: solid 1px #ccc;
+ background: #fafafa;
+}
+
+#leftNav ul a li:hover {
+ background-color: #f5f5f5;
+}
+
+#leftNav a:hover {
+ text-decoration: none;
+}
+
+#main_content {
+ width: 700px;
+ padding: 0px 20px;
+ padding-bottom: 20px;
+ background: #fafafa;
+ float: right;
+ margin-bottom: 40px;
+ border: solid 1px #ccc;
+}
+
+#main_content h3 {
+ margin-top: 10px;
+}
+
+.teamList {
+ width: 100%;
+ overflow: hidden;
+}
+
+.teamList li {
+ width: 140px;
+ float: left;
}
.speechCycleImage {
+ margin: 0px 20%;
}
.form {
@@ -72,7 +118,6 @@ html {
width: 303px;
height: 54px;
font-size: 16px;
- folor: #999;
background: url('../img/submitButton.png');
}
@@ -89,6 +134,67 @@ html {
margin-left: 260px;
}
+#text_editor {
+ float: left;
+}
+
+#text_editor textarea {
+ width: 500px;
+ height: 600px;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ font-size: 14px;
+}
+
+#instant_chat {
+ height: 320px;
+ width: 370px;
+ float: right;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ position: relative;
+ background: #fff;
+}
+
+#instant_chat form {
+ position: absolute;
+ bottom: 0px;
+}
+
+#friends_online_box {
+ width: 370px;
+ height: 320px;
+ margin-top: 20px;
+ background: #fff;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ float: right;
+}
+
+#friends_online_box h3 {
+ width: 250px;
+ margin: 0px auto;
+ margin-top: 10px;
+ text-align: center;
+ background: #006699;
+ border: solid 4px #0099cc;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ color: #fff;
+ padding: 10px;
+}
+
/* Footer */
#footer-nav {
border-top: 1px solid #AEAEAE;
View
5 css/reset.css
@@ -0,0 +1,5 @@
+html, body, div, ul, ol {
+ padding: 0px;
+ margin: 0px;
+ list-style-type: none;
+}
View
1  editor/Procfile
@@ -0,0 +1 @@
+web: node app.js
View
44 editor/app.js
@@ -0,0 +1,44 @@
+var http = require('http');
+var fs = require('fs');
+var path = require('path');
+
+var server = http.createServer(function (request, response) {
+
+ console.log('request starting...');
+
+ var filePath = '.' + request.url;
+ if (filePath == './') {
+ filePath = './index.html';
+ }
+
+ console.log(filePath);
+
+ var extname = path.extname(filePath);
+ var contentType = 'text/html';
+ switch (extname) {
+ case '.js':
+ contentType = 'text/javascript';
+ break;
+ case '.css':
+ contentType = 'text/css';
+ break;
+ }
+
+
+ fs.readFile(filePath, function(error, content) {
+ response.writeHead(200, { 'Content-Type': contentType });
+ response.end(content, 'utf-8');
+
+ });
+
+ }).listen(3000, "127.0.0.1");
+
+console.log('Server running at http://127.0.0.1:3000/');
+
+var io = require('socket.io').listen(server);
+
+io.sockets.on('connection', function (socket) {
+ socket.on('code', function (data) {
+ socket.broadcast.emit('push code', data);
+ });
+});
View
165 editor/css/common.css
@@ -0,0 +1,165 @@
+/* Generic */
+
+html {
+ font-family: sans-serif;
+}
+
+html, body {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ background: #cadced url("../img/bg.png") no-repeat center center fixed;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #003366
+}
+
+a {
+ color: #305171;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+/* Table */
+table
+{
+ width: 100%;
+ border-spacing: 0;
+ border-collapse: collapse;
+ border: 1px solid #CCCCCC;
+}
+
+table caption
+{
+ background: #FFFFFF;
+ border: 1px solid #CCCCCC;
+ text-align: left;
+ padding: 0.5em 1em;
+ margin-bottom: 0.75em;
+ border-radius: 5px;
+ background: #FAFAFA;
+}
+
+table caption h1, table caption h2, table caption h3, table caption h4, table caption h5, table caption h6
+{
+ margin: 0;
+}
+
+table th, table td
+{
+ padding: 0.25em 0.5em;
+}
+
+table thead th
+{
+ background: #FAFAFA url("../img/table_thead_bg.png") repeat-x;
+ padding: 0.1em 1em;
+ font-size: 80%;
+ text-transform: uppercase;
+ text-align: left;
+ color: #003366
+}
+
+table tbody tr
+{
+ border-top: 1px solid #DDDDDD;
+}
+
+table tbody tr th
+{
+ background: #FFFFFF;
+ text-align: left;
+}
+
+table tbody tr td
+{
+ background: #FFFFFF;
+}
+
+table th img
+{
+ width: 16px;
+ height: 16px;
+}
+
+/* Header */
+
+#header {
+ background: url("../img/header-bg.png") repeat-x;
+}
+
+#header-title a {
+ text-indent: -10000px;
+ background: url("../img/logo.png") no-repeat;
+}
+
+#header a {
+ color: white;
+}
+
+/* Menu Nav */
+nav.menu
+{
+ padding: 0.5em 0;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border: 1px solid #CCCCCC;
+ background: #FAFAFA;
+}
+
+nav.menu img
+{
+ vertical-align: middle;
+}
+
+nav.menu p
+{
+ margin: 0 1em 0.5em;
+}
+
+nav.menu ul
+{
+ margin: 0;
+ padding: 0;
+}
+
+nav.menu ul li
+{
+ padding: 0 0 0 10px;
+ list-style: none;
+}
+
+nav.menu ul li a
+{
+ display: block;
+ padding: 0.3em 0.3em 0.3em 10px;
+ margin-left: -10px;
+ background: #F4F4F4 url("../img/menu_item_bg.png") repeat-x;
+ border-top: 1px solid #ECECEC;
+}
+
+nav.menu ul li a:hover
+{
+ border-top-color: #DDDDDD;
+ border-bottom-color: #DDDDDD;
+ border-left: 3px solid red;
+ padding-left: 7px;
+ background: #F5F5F5 url("../img/menu_item_hover_bg.png");
+}
+
+nav.menu ul li:last-child a
+{
+ border-bottom: 1px solid #ECECEC
+}
+
+/* Useful styles */
+.clear {
+ clear: both;
+}
View
216 editor/css/desktop.css
@@ -0,0 +1,216 @@
+/* Generic */
+
+html {
+ min-width: 600px;
+}
+
+/* Header */
+
+#header {
+ padding: 0 10%;
+}
+
+#header-title {
+ margin: 0;
+ float: left;
+}
+
+#header-title a {
+ display: block;
+ width: 123px;
+ height: 42px;
+ background-position: center;
+}
+
+#header-nav {
+ float: right;
+}
+
+#header-nav ul {
+ margin: 0;
+ padding: 0.65em 0;
+}
+
+#header-nav li {
+ float: left;
+ list-style: none;
+ margin-left: 1em;
+}
+
+/* Content */
+#padding-content {
+ padding: 20px 10%;
+ margin: 0px auto;
+ overflow: hidden;
+}
+
+#leftNav ul {
+ list-style: none;
+ float: left;
+ border-left: solid 1px #ccc;
+ border-top: solid 1px #ccc;
+ border-right: solid 1px #ccc;
+}
+
+#leftNav li {
+ width: 200px;
+ padding: 10px;
+ border-bottom: solid 1px #ccc;
+ background: #fafafa;
+}
+
+#leftNav ul a li:hover {
+ background-color: #f5f5f5;
+}
+
+#leftNav a:hover {
+ text-decoration: none;
+}
+
+#main_content {
+ width: 700px;
+ padding: 0px 20px;
+ padding-bottom: 20px;
+ background: #fafafa;
+ float: right;
+ margin-bottom: 40px;
+ border: solid 1px #ccc;
+}
+
+#main_content h3 {
+ margin-top: 10px;
+}
+
+.teamList {
+ width: 100%;
+ overflow: hidden;
+}
+
+.teamList li {
+ width: 140px;
+ float: left;
+}
+
+.speechCycleImage {
+ margin: 0px 20%;
+}
+
+.form {
+ width: 305px;
+ margin: 0px auto;
+}
+
+.form input {
+ display: block;
+ background: url('../img/inputBg.png');
+ width: 294px;
+ height: 54px;
+ border: none;
+ padding-left: 10px;
+ margin-bottom: 10px;
+ font-family: arial;
+ color: #999;
+ font-size: 20px;
+}
+
+.form button {
+ border: 0px;
+ width: 303px;
+ height: 54px;
+ font-size: 16px;
+ background: url('../img/submitButton.png');
+}
+
+/* Content 2 Column */
+.content-2-column-left
+{
+ float: left;
+ width: 250px;
+ margin-right: 10px;
+}
+
+.content-2-column-right
+{
+ margin-left: 260px;
+}
+
+#text_editor {
+ float: left;
+}
+
+#text_editor textarea {
+ width: 500px;
+ height: 600px;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ font-size: 14px;
+}
+
+#instant_chat {
+ height: 320px;
+ width: 370px;
+ float: right;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ position: relative;
+ background: #fff;
+}
+
+#instant_chat form {
+ position: absolute;
+ bottom: 0px;
+}
+
+#friends_online_box {
+ width: 370px;
+ height: 320px;
+ margin-top: 20px;
+ background: #fff;
+ border: solid 5px #d8dde1;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ float: right;
+}
+
+#friends_online_box h3 {
+ width: 250px;
+ margin: 0px auto;
+ margin-top: 10px;
+ text-align: center;
+ background: #006699;
+ border: solid 4px #0099cc;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -o-border-radius: 5px;
+ color: #fff;
+ padding: 10px;
+}
+
+/* Footer */
+#footer-nav {
+ border-top: 1px solid #AEAEAE;
+ width: 50%;
+ min-width: 400px;
+ margin: auto;
+}
+
+#footer-nav ul {
+ text-align: center;
+ font-weight: bold;
+ margin: 0;
+ padding: 1em 0;
+}
+
+#footer-nav ul li {
+ display: inline;
+ padding: 0 1em;
+}
View
1  editor/css/read.txt
@@ -0,0 +1 @@
+This directory is for adding css files
View
5 editor/css/reset.css
@@ -0,0 +1,5 @@
+html, body, div, ul, ol {
+ padding: 0px;
+ margin: 0px;
+ list-style-type: none;
+}
View
BIN  editor/img/bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boyIcon1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boyIcon2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boy_3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boy_4.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boy_7.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/boy_8.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/header-bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/inputBg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/menu_item_bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/menu_item_hover_bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/online-status.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
1  editor/img/read.txt
@@ -0,0 +1 @@
+This directory is for storing images.
View
BIN  editor/img/speechCycle.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/submitButton.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  editor/img/table_thead_bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
80 editor/index.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Code Blue</title>
+
+ <style>
+ @import url("./css/reset.css");
+ @import url("./css/common.css");
+ @import url("./css/desktop.css");
+ </style>
+</head>
+<body>
+ <header id="header">
+ <h1 id="header-title"><a href="index.html">Code Blue</a></h1>
+
+ <nav id="header-nav">
+ <ul>
+ <li><a href="about.html">What's Code Blue</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="signup.html">Sign Up</a></li>
+ </ul>
+ </nav>
+
+ <div class="clear"></div>
+
+ </header>
+
+ <section id="content">
+
+ <div id="padding-content"><!-- padding-content -->
+
+ <form id="text_editor">
+ <textarea id="code"></textarea>
+ </form>
+
+ <div id="instant_chat">
+ <form>
+ <textarea rows="3" cols="49"></textarea>
+ </form>
+ </div>
+
+ <div id="friends_online_box">
+ <h3>Online Friends</h3>
+ </div>
+
+ </div><!-- padding-content -->
+
+ </section>
+
+ <footer id="footer">
+
+ <nav id="footer-nav">
+ <ul>
+ <li><a href="about.html">About</a></li>
+ <li><a href="">Legal</a></li>
+ <li><a href="">Github</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+
+ </footer>
+
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script src="/socket.io/socket.io.js"></script>
+ <script>
+ var socket = io.connect('http://127.0.0.1:3000');
+ var code = document.getElementById('code');
+ $(code).keyup(function() {
+ socket.emit('code', { text: code.value });
+ //return true;
+ });
+ socket.on('push code', function (data) {
+ console.log(data);
+ $(code).val(data.text);
+ });
+ </script>
+
+</body>
+</html>
View
3  editor/node_modules/socket.io/.npmignore
@@ -0,0 +1,3 @@
+support
+test
+examples
View
187 editor/node_modules/socket.io/History.md
@@ -0,0 +1,187 @@
+
+0.8.7 / 2011-11-05
+==================
+
+ * Fixed memory leaks in closed clients.
+ * Fixed memory leaks in namespaces.
+ * Fixed websocket handling for malformed requests from proxies. [einaros]
+ * Node 0.6 compatibility. [einaros] [3rd-Eden]
+ * Adapted tests and examples.
+
+0.8.6 / 2011-10-27
+==================
+
+ * Added JSON decoding on jsonp-polling transport.
+ * Fixed README example.
+ * Major speed optimizations [3rd-Eden] [einaros] [visionmedia]
+ * Added decode/encode benchmarks [visionmedia]
+ * Added support for black-listing client sent events.
+ * Fixed logging options, closes #540 [3rd-Eden]
+ * Added vary header for gzip [3rd-Eden]
+ * Properly cleaned up async websocket / flashsocket tests, after patching node-websocket-client
+ * Patched to properly shut down when a finishClose call is made during connection establishment
+ * Added support for socket.io version on url and far-future Expires [3rd-Eden] [getify]
+ * Began IE10 compatibility [einaros] [tbranyen]
+ * Misc WebSocket fixes [einaros]
+ * Added UTF8 to respone headers for htmlfile [3rd-Eden]
+
+0.8.5 / 2011-10-07
+==================
+
+ * Added websocket draft HyBi-16 support. [einaros]
+ * Fixed websocket continuation bugs. [einaros]
+ * Fixed flashsocket transport name.
+ * Fixed websocket tests.
+ * Ensured `parser#decodePayload` doesn't choke.
+ * Added http referrer verification to manager verifyOrigin.
+ * Added access control for cross domain xhr handshakes [3rd-Eden]
+ * Added support for automatic generation of socket.io files [3rd-Eden]
+ * Added websocket binary support [einaros]
+ * Added gzip support for socket.io.js [3rd-Eden]
+ * Expose socket.transport [3rd-Eden]
+ * Updated client.
+
+0.8.4 / 2011-09-06
+==================
+
+ * Client build
+
+0.8.3 / 2011-09-03
+==================
+
+ * Fixed `\n` parsing for non-JSON packets (fixes #479).
+ * Fixed parsing of certain unicode characters (fixes #451).
+ * Fixed transport message packet logging.
+ * Fixed emission of `error` event resulting in an uncaught exception if unhandled (fixes #476).
+ * Fixed; allow for falsy values as the configuration value of `log level` (fixes #491).
+ * Fixed repository URI in `package.json`. Fixes #504.
+ * Added text/plain content-type to handshake responses [einaros]
+ * Improved single byte writes [einaros]
+ * Updated socket.io-flashsocket default port from 843 to 10843 [3rd-Eden]
+ * Updated client.
+
+0.8.2 / 2011-08-29
+==================
+
+ * Updated client.
+
+0.8.1 / 2011-08-29
+==================
+
+ * Fixed utf8 bug in send framing in websocket [einaros]
+ * Fixed typo in docs [Znarkus]
+ * Fixed bug in send framing for over 64kB of data in websocket [einaros]
+ * Corrected ping handling in websocket transport [einaros]
+
+0.8.0 / 2011-08-28
+==================
+
+ * Updated to work with two-level websocket versioning. [einaros]
+ * Added hybi07 support. [einaros]
+ * Added hybi10 support. [einaros]
+ * Added http referrer verification to manager.js verifyOrigin. [einaors]
+
+0.7.11 / 2011-08-27
+===================
+
+ * Updated socket.io-client.
+
+0.7.10 / 2011-08-27
+===================
+
+ * Updated socket.io-client.
+
+0.7.9 / 2011-08-12
+==================
+
+ * Updated socket.io-client.
+ * Make sure we only do garbage collection when the server we receive is actually run.
+
+0.7.8 / 2011-08-08
+==================
+
+ * Changed; make sure sio#listen passes options to both HTTP server and socket.io manager.
+ * Added docs for sio#listen.
+ * Added options parameter support for Manager constructor.
+ * Added memory leaks tests and test-leaks Makefile task.
+ * Removed auto npm-linking from make test.
+ * Make sure that you can disable heartbeats. [3rd-Eden]
+ * Fixed rooms memory leak [3rd-Eden]
+ * Send response once we got all POST data, not immediately [Pita]
+ * Fixed onLeave behavior with missing clientsk [3rd-Eden]
+ * Prevent duplicate references in rooms.
+ * Added alias for `to` to `in` and `in` to `to`.
+ * Fixed roomClients definition.
+ * Removed dependency on redis for installation without npm [3rd-Eden]
+ * Expose path and querystring in handshakeData [3rd-Eden]
+
+0.7.7 / 2011-07-12
+==================
+
+ * Fixed double dispatch handling with emit to closed clients.
+ * Added test for emitting to closed clients to prevent regression.
+ * Fixed race condition in redis test.
+ * Changed Transport#end instrumentation.
+ * Leveraged $emit instead of emit internally.
+ * Made tests faster.
+ * Fixed double disconnect events.
+ * Fixed disconnect logic
+ * Simplified remote events handling in Socket.
+ * Increased testcase timeout.
+ * Fixed unknown room emitting (GH-291). [3rd-Eden]
+ * Fixed `address` in handshakeData. [3rd-Eden]
+ * Removed transports definition in chat example.
+ * Fixed room cleanup
+ * Fixed; make sure the client is cleaned up after booting.
+ * Make sure to mark the client as non-open if the connection is closed.
+ * Removed unneeded `buffer` declarations.
+ * Fixed; make sure to clear socket handlers and subscriptions upon transport close.
+
+0.7.6 / 2011-06-30
+==================
+
+ * Fixed general dispatching when a client has closed.
+
+0.7.5 / 2011-06-30
+==================
+
+ * Fixed dispatching to clients that are disconnected.
+
+0.7.4 / 2011-06-30
+==================
+
+ * Fixed; only clear handlers if they were set. [level09]
+
+0.7.3 / 2011-06-30
+==================
+
+ * Exposed handshake data to clients.
+ * Refactored dispatcher interface.
+ * Changed; Moved id generation method into the manager.
+ * Added sub-namespace authorization. [3rd-Eden]
+ * Changed; normalized SocketNamespace local eventing [dvv]
+ * Changed; Use packet.reason or default to 'packet' [3rd-Eden]
+ * Changed console.error to console.log.
+ * Fixed; bind both servers at the same time do that the test never times out.
+ * Added 304 support.
+ * Removed `Transport#name` for abstract interface.
+ * Changed; lazily require http and https module only when needed. [3rd-Eden]
+
+0.7.2 / 2011-06-22
+==================
+
+ * Make sure to write a packet (of type `noop`) when closing a poll.
+ This solves a problem with cross-domain requests being flagged as aborted and
+ reconnection being triggered.
+ * Added `noop` message type.
+
+0.7.1 / 2011-06-21
+==================
+
+ * Fixed cross-domain XHR.
+ * Added CORS test to xhr-polling suite.
+
+0.7.0 / 2010-06-21
+==================
+
+ * http://socket.io/announcement.html
View
31 editor/node_modules/socket.io/Makefile
@@ -0,0 +1,31 @@
+
+ALL_TESTS = $(shell find test/ -name '*.test.js')
+ALL_BENCH = $(shell find benchmarks -name '*.bench.js')
+
+run-tests:
+ @./node_modules/.bin/expresso \
+ -t 3000 \
+ -I support \
+ --serial \
+ $(TESTFLAGS) \
+ $(TESTS)
+
+test:
+ @$(MAKE) NODE_PATH=lib TESTS="$(ALL_TESTS)" run-tests
+
+test-cov:
+ @TESTFLAGS=--cov $(MAKE) test
+
+test-leaks:
+ @ls test/leaks/* | xargs node --expose_debug_as=debug --expose_gc
+
+run-bench:
+ @node $(PROFILEFLAGS) benchmarks/runner.js
+
+bench:
+ @$(MAKE) BENCHMARKS="$(ALL_BENCH)" run-bench
+
+profile:
+ @PROFILEFLAGS='--prof --trace-opt --trace-bailout --trace-deopt' $(MAKE) bench
+
+.PHONY: test bench profile
View
343 editor/node_modules/socket.io/Readme.md
@@ -0,0 +1,343 @@
+# Socket.IO
+
+Socket.IO is a Node.JS project that makes WebSockets and realtime possible in
+all browsers. It also enhances WebSockets by providing built-in multiplexing,
+horizontal scalability, automatic JSON encoding/decoding, and more.
+
+## How to Install
+
+ npm install socket.io
+
+## How to use
+
+First, require `socket.io`:
+
+```js
+var io = require('socket.io');
+```
+
+Next, attach it to a HTTP/HTTPS server. If you're using the fantastic `express`
+web framework:
+
+```js
+var app = express.createServer()
+ , io = io.listen(app);
+
+app.listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.emit('news', { hello: 'world' });
+ socket.on('my other event', function (data) {
+ console.log(data);
+ });
+});
+```
+
+Finally, load it from the client side code:
+
+```html
+<script src="/socket.io/socket.io.js"></script>
+<script>
+ var socket = io.connect('http://localhost');
+ socket.on('news', function (data) {
+ console.log(data);
+ socket.emit('my other event', { my: 'data' });
+ });
+</script>
+```
+
+For more thorough examples, look at the `examples/` directory.
+
+## Short recipes
+
+### Sending and receiving events.
+
+Socket.IO allows you to emit and receive custom events.
+Besides `connect`, `message` and `disconnect`, you can emit custom events:
+
+```js
+// note, io.listen(<port>) will create a http server for you
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ io.sockets.emit('this', { will: 'be received by everyone' });
+
+ socket.on('private message', function (from, msg) {
+ console.log('I received a private message by ', from, ' saying ', msg);
+ });
+
+ socket.on('disconnect', function () {
+ io.sockets.emit('user disconnected');
+ });
+});
+```
+
+### Storing data associated to a client
+
+Sometimes it's necessary to store data associated with a client that's
+necessary for the duration of the session.
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.on('set nickname', function (name) {
+ socket.set('nickname', name, function () { socket.emit('ready'); });
+ });
+
+ socket.on('msg', function () {
+ socket.get('nickname', function (err, name) {
+ console.log('Chat message by ', name);
+ });
+ });
+});
+```
+
+#### Client side
+
+```html
+<script>
+ var socket = io.connect('http://localhost');
+
+ socket.on('connect', function () {
+ socket.emit('set nickname', confirm('What is your nickname?'));
+ socket.on('ready', function () {
+ console.log('Connected !');
+ socket.emit('msg', confirm('What is your message?'));
+ });
+ });
+</script>
+```
+
+### Restricting yourself to a namespace
+
+If you have control over all the messages and events emitted for a particular
+application, using the default `/` namespace works.
+
+If you want to leverage 3rd-party code, or produce code to share with others,
+socket.io provides a way of namespacing a `socket`.
+
+This has the benefit of `multiplexing` a single connection. Instead of
+socket.io using two `WebSocket` connections, it'll use one.
+
+The following example defines a socket that listens on '/chat' and one for
+'/news':
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+var chat = io
+ .of('/chat');
+ .on('connection', function (socket) {
+ socket.emit('a message', { that: 'only', '/chat': 'will get' });
+ chat.emit('a message', { everyone: 'in', '/chat': 'will get' });
+ });
+
+var news = io
+ .of('/news');
+ .on('connection', function (socket) {
+ socket.emit('item', { news: 'item' });
+ });
+```
+
+#### Client side:
+
+```html
+<script>
+ var chat = io.connect('http://localhost/chat')
+ , news = io.connect('http://localhost/news');
+
+ chat.on('connect', function () {
+ chat.emit('hi!');
+ });
+
+ news.on('news', function () {
+ news.emit('woot');
+ });
+</script>
+```
+
+### Sending volatile messages.
+
+Sometimes certain messages can be dropped. Let's say you have an app that
+shows realtime tweets for the keyword `bieber`.
+
+If a certain client is not ready to receive messages (because of network slowness
+or other issues, or because he's connected through long polling and is in the
+middle of a request-response cycle), if he doesn't receive ALL the tweets related
+to bieber your application won't suffer.
+
+In that case, you might want to send those messages as volatile messages.
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ var tweets = setInterval(function () {
+ getBieberTweet(function (tweet) {
+ socket.volatile.emit('bieber tweet', tweet);
+ });
+ }, 100);
+
+ socket.on('disconnect', function () {
+ clearInterval(tweets);
+ });
+});
+```
+
+#### Client side
+
+In the client side, messages are received the same way whether they're volatile
+or not.
+
+### Getting acknowledgements
+
+Sometimes, you might want to get a callback when the client confirmed the message
+reception.
+
+To do this, simply pass a function as the last parameter of `.send` or `.emit`.
+What's more, when you use `.emit`, the acknowledgement is done by you, which
+means you can also pass data along:
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.on('ferret', function (name, fn) {
+ fn('woot');
+ });
+});
+```
+
+#### Client side
+
+```html
+<script>
+ var socket = io.connect(); // TIP: .connect with no args does auto-discovery
+ socket.on('connect', function () { // TIP: you can avoid listening on `connect` and listen on events directly too!
+ socket.emit('ferret', 'tobi', function (data) {
+ console.log(data); // data will be 'woot'
+ });
+ });
+</script>
+```
+
+### Broadcasting messages
+
+To broadcast, simply add a `broadcast` flag to `emit` and `send` method calls.
+Broadcasting means sending a message to everyone else except for the socket
+that starts it.
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.broadcast.emit('user connected');
+ socket.broadcast.json.send({ a: 'message' });
+});
+```
+
+### Rooms
+
+Sometimes you want to put certain sockets in the same room, so that it's easy
+to broadcast to all of them together.
+
+Think of this as built-in channels for sockets. Sockets `join` and `leave`
+rooms in each socket.
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.join('justin bieber fans');
+ socket.broadcast.to('justin bieber fans').emit('new fan');
+ io.sockets.in('rammstein fans').emit('new non-fan');
+});
+```
+
+### Using it just as a cross-browser WebSocket
+
+If you just want the WebSocket semantics, you can do that too.
+Simply leverage `send` and listen on the `message` event:
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.sockets.on('connection', function (socket) {
+ socket.on('message', function () { });
+ socket.on('disconnect', function () { });
+});
+```
+
+#### Client side
+
+```html
+<script>
+ var socket = io.connect('http://localhost/');
+ socket.on('connect', function () {
+ socket.send('hi');
+
+ socket.on('message', function (msg) {
+ // my msg
+ });
+ });
+</script>
+```
+
+### Changing configuration
+
+Configuration in socket.io is TJ-style:
+
+#### Server side
+
+```js
+var io = require('socket.io').listen(80);
+
+io.configure(function () {
+ io.set('transports', ['websocket', 'flashsocket', 'xhr-polling']);
+});
+
+io.configure('development', function () {
+ io.set('transports', ['websocket', 'xhr-polling']);
+ io.enable('log');
+});
+```
+
+## License
+
+(The MIT License)
+
+Copyright (c) 2011 Guillermo Rauch &lt;guillermo@learnboost.com&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
64 editor/node_modules/socket.io/benchmarks/decode.bench.js
@@ -0,0 +1,64 @@
+
+/**
+ * Module dependencies.
+ */
+
+var benchmark = require('benchmark')
+ , colors = require('colors')
+ , io = require('../')
+ , parser = io.parser
+ , suite = new benchmark.Suite('Decode packet');
+
+suite.add('string', function () {
+ parser.decodePacket('4:::"2"');
+});
+
+suite.add('event', function () {
+ parser.decodePacket('5:::{"name":"woot"}');
+});
+
+suite.add('event+ack', function () {
+ parser.decodePacket('5:1+::{"name":"tobi"}');
+});
+
+suite.add('event+data', function () {
+ parser.decodePacket('5:::{"name":"edwald","args":[{"a": "b"},2,"3"]}');
+});
+
+suite.add('heartbeat', function () {
+ parser.decodePacket('2:::');
+});
+
+suite.add('error', function () {
+ parser.decodePacket('7:::2+0');
+});
+
+var payload = parser.encodePayload([
+ parser.encodePacket({ type: 'message', data: '5', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: '53d', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbazfoobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
+]);
+
+suite.add('payload', function () {
+ parser.decodePayload(payload);
+});
+
+suite.on('cycle', function (bench, details) {
+ console.log('\n' + suite.name.grey, details.name.white.bold);
+ console.log([
+ details.hz.toFixed(2).cyan + ' ops/sec'.grey
+ , details.count.toString().white + ' times executed'.grey
+ , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
+ ,
+ ].join(', '.grey));
+});
+
+if (!module.parent) {
+ suite.run();
+} else {
+ module.exports = suite;
+}
View
90 editor/node_modules/socket.io/benchmarks/encode.bench.js
@@ -0,0 +1,90 @@
+
+/**
+ * Module dependencies.
+ */
+
+var benchmark = require('benchmark')
+ , colors = require('colors')
+ , io = require('../')
+ , parser = io.parser
+ , suite = new benchmark.Suite('Encode packet');
+
+suite.add('string', function () {
+ parser.encodePacket({
+ type: 'json'
+ , endpoint: ''
+ , data: '2'
+ });
+});
+
+suite.add('event', function () {
+ parser.encodePacket({
+ type: 'event'
+ , name: 'woot'
+ , endpoint: ''
+ , args: []
+ });
+});
+
+suite.add('event+ack', function () {
+ parser.encodePacket({
+ type: 'json'
+ , id: 1
+ , ack: 'data'
+ , endpoint: ''
+ , data: { a: 'b' }
+ });
+});
+
+suite.add('event+data', function () {
+ parser.encodePacket({
+ type: 'event'
+ , name: 'edwald'
+ , endpoint: ''
+ , args: [{a: 'b'}, 2, '3']
+ });
+});
+
+suite.add('heartbeat', function () {
+ parser.encodePacket({
+ type: 'heartbeat'
+ , endpoint: ''
+ })
+});
+
+suite.add('error', function () {
+ parser.encodePacket({
+ type: 'error'
+ , reason: 'unauthorized'
+ , advice: 'reconnect'
+ , endpoint: ''
+ })
+})
+
+suite.add('payload', function () {
+ parser.encodePayload([
+ parser.encodePacket({ type: 'message', data: '5', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: '53d', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbazfoobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
+ , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
+ ]);
+});
+
+suite.on('cycle', function (bench, details) {
+ console.log('\n' + suite.name.grey, details.name.white.bold);
+ console.log([
+ details.hz.toFixed(2).cyan + ' ops/sec'.grey
+ , details.count.toString().white + ' times executed'.grey
+ , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
+ ,
+ ].join(', '.grey));
+});
+
+if (!module.parent) {
+ suite.run();
+} else {
+ module.exports = suite;
+}
View
55 editor/node_modules/socket.io/benchmarks/runner.js
@@ -0,0 +1,55 @@
+/**
+ * Benchmark runner dependencies
+ */
+
+var colors = require('colors')
+ , path = require('path');
+
+/**
+ * Find all the benchmarks
+ */
+
+var benchmarks_files = process.env.BENCHMARKS.split(' ')
+ , all = [].concat(benchmarks_files)
+ , first = all.shift()
+ , benchmarks = {};
+
+// find the benchmarks and load them all in our obj
+benchmarks_files.forEach(function (file) {
+ benchmarks[file] = require(path.join(__dirname, '..', file));
+});
+
+// setup the complete listeners
+benchmarks_files.forEach(function (file) {
+ var benchmark = benchmarks[file]
+ , next_file = all.shift()
+ , next = benchmarks[next_file];
+
+ /**
+ * Generate a oncomplete function for the tests, either we are done or we
+ * have more benchmarks to process.
+ */
+
+ function complete () {
+ if (!next) {
+ console.log(
+ '\n\nBenchmark completed in'.grey
+ , (Date.now() - start).toString().green + ' ms'.grey
+ );
+ } else {
+ console.log('\nStarting benchmark '.grey + next_file.yellow);
+ next.run();
+ }
+ }
+
+ // attach the listener
+ benchmark.on('complete', complete);
+});
+
+/**
+ * Start the benchmark
+ */
+
+var start = Date.now();
+console.log('Starting benchmark '.grey + first.yellow);
+benchmarks[first].run();
View
8 editor/node_modules/socket.io/index.js
@@ -0,0 +1,8 @@
+
+/*!
+ * socket.io-node
+ * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
+ * MIT Licensed
+ */
+
+module.exports = require('./lib/socket.io');
View
97 editor/node_modules/socket.io/lib/logger.js
@@ -0,0 +1,97 @@
+
+/*!
+ * socket.io-node
+ * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var util = require('./util')
+ , toArray = util.toArray;
+
+/**
+ * Log levels.
+ */
+
+var levels = [
+ 'error'
+ , 'warn'
+ , 'info'
+ , 'debug'
+];
+
+/**
+ * Colors for log levels.
+ */
+
+var colors = [
+ 31
+ , 33
+ , 36
+ , 90
+];
+
+/**
+ * Pads the nice output to the longest log level.
+ */
+
+function pad (str) {
+ var max = 0;
+
+ for (var i = 0, l = levels.length; i < l; i++)
+ max = Math.max(max, levels[i].length);
+
+ if (str.length < max)
+ return str + new Array(max - str.length + 1).join(' ');
+
+ return str;
+};
+
+/**
+ * Logger (console).
+ *
+ * @api public
+ */
+
+var Logger = module.exports = function (opts) {
+ opts = opts || {}
+ this.colors = false !== opts.colors;
+ this.level = 3;
+ this.enabled = true;
+};
+
+/**
+ * Log method.
+ *
+ * @api public
+ */
+
+Logger.prototype.log = function (type) {
+ var index = levels.indexOf(type);
+
+ if (index > this.level || !this.enabled)
+ return this;
+
+ console.log.apply(
+ console
+ , [this.colors
+ ? ' \033[' + colors[index] + 'm' + pad(type) + ' -\033[39m'
+ : type + ':'
+ ].concat(toArray(arguments).slice(1))
+ );
+
+ return this;
+};
+
+/**
+ * Generate methods.
+ */
+
+levels.forEach(function (name) {
+ Logger.prototype[name] = function () {
+ this.log.apply(this, [name].concat(toArray(arguments)));
+ };
+});
View
961 editor/node_modules/socket.io/lib/manager.js
@@ -0,0 +1,961 @@
+/*!
+ * socket.io-node
+ * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var fs = require('fs')
+ , url = require('url')
+ , util = require('./util')
+ , store = require('./store')
+ , client = require('socket.io-client')
+ , transports = require('./transports')
+ , Logger = require('./logger')
+ , Socket = require('./socket')
+ , MemoryStore = require('./stores/memory')
+ , SocketNamespace = require('./namespace')
+ , Static = require('./static')
+ , EventEmitter = process.EventEmitter;
+
+/**
+ * Export the constructor.
+ */
+
+exports = module.exports = Manager;
+
+/**
+ * Default transports.
+ */
+
+var defaultTransports = exports.defaultTransports = [
+ 'websocket'
+ , 'htmlfile'
+ , 'xhr-polling'
+ , 'jsonp-polling'
+];
+
+/**
+ * Inherited defaults.
+ */
+
+var parent = module.parent.exports
+ , protocol = parent.protocol;
+
+/**
+ * Manager constructor.
+ *
+ * @param {HTTPServer} server
+ * @param {Object} options, optional
+ * @api public
+ */
+
+function Manager (server, options) {
+ this.server = server;
+ this.namespaces = {};
+ this.sockets = this.of('');
+ this.settings = {
+ origins: '*:*'
+ , log: true
+ , store: new MemoryStore
+ , logger: new Logger
+ , static: new Static(this)
+ , heartbeats: true
+ , resource: '/socket.io'
+ , transports: defaultTransports
+ , authorization: false
+ , blacklist: ['disconnect']
+ , 'log level': 3
+ , 'log colors': true
+ , 'close timeout': 25
+ , 'heartbeat timeout': 15
+ , 'heartbeat interval': 20
+ , 'polling duration': 20
+ , 'flash policy server': true
+ , 'flash policy port': 10843
+ , 'destroy upgrade': true
+ , 'browser client': true
+ , 'browser client cache': true
+ , 'browser client minification': false
+ , 'browser client etag': false
+ , 'browser client expires': 315360000
+ , 'browser client gzip': false
+ , 'browser client handler': false
+ , 'client store expiration': 15
+ };
+
+ for (var i in options) {
+ this.settings[i] = options[i];
+ }
+
+ var self = this;
+
+ // default error handler
+ server.on('error', function(err) {
+ self.log.warn('error raised: ' + err);
+ });
+
+ this.initStore();
+
+ this.on('set:store', function() {
+ self.initStore();
+ });
+
+ // reset listeners
+ this.oldListeners = server.listeners('request');
+ server.removeAllListeners('request');
+
+ server.on('request', function (req, res) {
+ self.handleRequest(req, res);