traceur-rb 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +2 -2
  3. data/lib/js/compile.js +7 -15
  4. data/lib/traceur.rb +2 -1
  5. data/lib/traceur/compilation_error.rb +27 -0
  6. data/lib/traceur/compiler.rb +4 -1
  7. data/lib/traceur/configuration.rb +1 -1
  8. data/lib/traceur/node/runner.rb +1 -1
  9. data/lib/traceur/version.rb +1 -1
  10. data/spec/examples/syntax_error.js +3 -0
  11. data/spec/integration/examples_spec.rb +6 -0
  12. data/vendor/node_modules/traceur/LICENSE +202 -0
  13. data/vendor/node_modules/traceur/README.md +5 -5
  14. data/vendor/node_modules/traceur/bin/traceur-runtime.js +1392 -623
  15. data/vendor/node_modules/traceur/bin/traceur.js +24749 -17990
  16. data/vendor/node_modules/traceur/node_modules/.bin/semver +2 -2
  17. data/vendor/node_modules/traceur/node_modules/commander/History.md +222 -0
  18. data/vendor/node_modules/traceur/node_modules/commander/Readme.md +127 -35
  19. data/vendor/node_modules/traceur/node_modules/commander/index.js +261 -93
  20. data/vendor/node_modules/traceur/node_modules/commander/package.json +41 -9
  21. data/vendor/node_modules/traceur/node_modules/glob/LICENSE +15 -0
  22. data/vendor/node_modules/traceur/node_modules/glob/README.md +357 -0
  23. data/vendor/node_modules/traceur/node_modules/glob/common.js +177 -0
  24. data/vendor/node_modules/traceur/node_modules/glob/glob.js +649 -0
  25. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
  26. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/LICENSE +15 -0
  27. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/README.md +37 -0
  28. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/inflight.js +44 -0
  29. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
  30. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
  31. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +34 -0
  32. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
  33. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
  34. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/package.json +61 -0
  35. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/test.js +97 -0
  36. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  37. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/README.md +42 -0
  38. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  39. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  40. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/package.json +33 -0
  41. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/test.js +25 -0
  42. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  43. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
  44. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  45. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/README.md +216 -0
  46. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
  47. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
  48. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
  49. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
  50. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
  51. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
  52. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  53. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  54. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  55. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/collections → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/.travis.yml +0 -0
  56. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  57. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  58. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  59. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  60. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
  61. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  62. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/url2 → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/.travis.yml +1 -1
  63. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  64. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  65. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  66. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  67. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
  68. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  69. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
  70. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
  71. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
  72. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
  73. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
  74. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
  75. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
  76. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
  77. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
  78. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
  79. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
  80. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
  81. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
  82. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/package.json +60 -0
  83. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  84. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
  85. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  86. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  87. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/LICENSE +27 -0
  88. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/README.md +51 -0
  89. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
  90. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  91. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +34 -0
  92. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  93. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  94. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/once.js +21 -0
  95. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/package.json +42 -0
  96. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/test/once.js +23 -0
  97. data/vendor/node_modules/traceur/node_modules/glob/package.json +72 -0
  98. data/vendor/node_modules/traceur/node_modules/glob/sync.js +409 -0
  99. data/vendor/node_modules/traceur/node_modules/rsvp/.release.json +17 -0
  100. data/vendor/node_modules/traceur/node_modules/rsvp/CHANGELOG.md +165 -0
  101. data/vendor/node_modules/traceur/node_modules/rsvp/LICENSE +19 -0
  102. data/vendor/node_modules/traceur/node_modules/rsvp/README.md +364 -0
  103. data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.js +1671 -0
  104. data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.min.js +9 -0
  105. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.js +66 -0
  106. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.umd.js +50 -0
  107. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/-internal.js +265 -0
  108. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all-settled.js +71 -0
  109. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all.js +15 -0
  110. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/asap.js +109 -0
  111. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/config.js +28 -0
  112. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/defer.js +45 -0
  113. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/enumerator.js +125 -0
  114. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/events.js +201 -0
  115. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/filter.js +120 -0
  116. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash-settled.js +124 -0
  117. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash.js +94 -0
  118. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/instrument.js +41 -0
  119. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/map.js +99 -0
  120. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/node.js +281 -0
  121. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js +51 -0
  122. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise.js +496 -0
  123. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/all.js +52 -0
  124. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/race.js +105 -0
  125. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/reject.js +47 -0
  126. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/resolve.js +49 -0
  127. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/race.js +15 -0
  128. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/reject.js +16 -0
  129. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/resolve.js +17 -0
  130. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/rethrow.js +46 -0
  131. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/utils.js +39 -0
  132. data/vendor/node_modules/traceur/node_modules/rsvp/package.json +100 -0
  133. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/README.md +9 -0
  134. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/bower.json +22 -0
  135. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/composer.json +18 -0
  136. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/package.json +52 -0
  137. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.amd.js +1607 -0
  138. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.js +1566 -0
  139. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.min.js +26 -0
  140. data/vendor/node_modules/traceur/node_modules/rsvp/vertx.js +1 -0
  141. data/vendor/node_modules/traceur/node_modules/semver/bin/semver +2 -2
  142. data/vendor/node_modules/traceur/node_modules/semver/package.json +4 -3
  143. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js +7 -0
  144. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js.gz +0 -0
  145. data/vendor/node_modules/traceur/node_modules/semver/semver.js +7 -0
  146. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js +1 -1
  147. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js.gz +0 -0
  148. data/vendor/node_modules/traceur/node_modules/semver/test/index.js +8 -4
  149. data/vendor/node_modules/traceur/node_modules/semver/test/ltr.js +2 -1
  150. data/vendor/node_modules/traceur/node_modules/source-map-support/.npmignore +1 -0
  151. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/mime/LICENSE → source-map-support/LICENSE.md} +7 -5
  152. data/vendor/node_modules/traceur/node_modules/source-map-support/README.md +165 -0
  153. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/browser-source-map-support.js +89 -0
  154. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/index.html +6 -0
  155. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/require.js +36 -0
  156. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.coffee +13 -0
  157. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.js +24 -0
  158. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.map +10 -0
  159. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-source-map-support.js +89 -0
  160. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/index.html +6 -0
  161. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.coffee +12 -0
  162. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.js +25 -0
  163. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.map +10 -0
  164. data/vendor/node_modules/traceur/node_modules/source-map-support/build.js +69 -0
  165. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/index.html +6 -0
  166. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.coffee +12 -0
  167. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.js +25 -0
  168. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.map +10 -0
  169. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/server.js +45 -0
  170. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/.npmignore +2 -0
  171. data/vendor/node_modules/traceur/node_modules/{q-io → source-map-support/node_modules/source-map}/.travis.yml +1 -0
  172. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/CHANGELOG.md +121 -0
  173. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/LICENSE +28 -0
  174. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/Makefile.dryice.js +166 -0
  175. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/README.md +434 -0
  176. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/assert-shim.js +56 -0
  177. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/mini-require.js +152 -0
  178. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  179. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-utils.jsm +18 -0
  180. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-browser.js +8 -0
  181. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  182. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-utils.jsm +21 -0
  183. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-prefix.js +8 -0
  184. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-suffix.js +3 -0
  185. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map.js +8 -0
  186. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/array-set.js +97 -0
  187. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  188. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64.js +42 -0
  189. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  190. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
  191. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
  192. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-node.js +371 -0
  193. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/util.js +205 -0
  194. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  195. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  196. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  197. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  198. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  199. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/package.json +142 -0
  200. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/run-tests.js +62 -0
  201. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-api.js +26 -0
  202. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  203. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  204. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64.js +35 -0
  205. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  206. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  207. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
  208. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
  209. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-node.js +365 -0
  210. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/util.js +161 -0
  211. data/vendor/node_modules/traceur/node_modules/source-map-support/package.json +52 -0
  212. data/vendor/node_modules/traceur/node_modules/source-map-support/source-map-support.js +381 -0
  213. data/vendor/node_modules/traceur/node_modules/source-map-support/test.js +359 -0
  214. data/vendor/node_modules/traceur/package.json +234 -20
  215. data/vendor/node_modules/traceur/src/node/NodeCompiler.js +78 -0
  216. data/vendor/node_modules/traceur/src/node/System.js +32 -5
  217. data/vendor/node_modules/traceur/src/node/api.js +28 -93
  218. data/vendor/node_modules/traceur/src/node/command.js +84 -19
  219. data/vendor/node_modules/traceur/src/node/compileAllJsFilesInDir.js +40 -0
  220. data/vendor/node_modules/traceur/src/node/interpreter.js +11 -8
  221. data/vendor/node_modules/traceur/src/node/recursiveModuleCompile.js +171 -0
  222. data/vendor/node_modules/traceur/src/node/require.js +7 -21
  223. data/vendor/node_modules/traceur/src/node/to-amd-compiler.js +2 -7
  224. data/vendor/node_modules/traceur/src/node/to-closure-compiler.js +28 -0
  225. data/vendor/node_modules/traceur/src/node/to-commonjs-compiler.js +3 -7
  226. data/vendor/node_modules/traceur/src/node/traceur.js +1 -1
  227. metadata +196 -190
  228. data/vendor/node_modules/traceur/node_modules/q-io/.npmignore +0 -1
  229. data/vendor/node_modules/traceur/node_modules/q-io/CHANGES.md +0 -122
  230. data/vendor/node_modules/traceur/node_modules/q-io/LICENSE +0 -19
  231. data/vendor/node_modules/traceur/node_modules/q-io/README.md +0 -928
  232. data/vendor/node_modules/traceur/node_modules/q-io/buffer-stream.js +0 -59
  233. data/vendor/node_modules/traceur/node_modules/q-io/coverage-report.js +0 -44
  234. data/vendor/node_modules/traceur/node_modules/q-io/deprecate.js +0 -51
  235. data/vendor/node_modules/traceur/node_modules/q-io/fs-boot.js +0 -307
  236. data/vendor/node_modules/traceur/node_modules/q-io/fs-common.js +0 -499
  237. data/vendor/node_modules/traceur/node_modules/q-io/fs-mock.js +0 -547
  238. data/vendor/node_modules/traceur/node_modules/q-io/fs-root.js +0 -105
  239. data/vendor/node_modules/traceur/node_modules/q-io/fs.js +0 -355
  240. data/vendor/node_modules/traceur/node_modules/q-io/fs2http.js +0 -65
  241. data/vendor/node_modules/traceur/node_modules/q-io/http-apps.js +0 -152
  242. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/chain.js +0 -24
  243. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/content.js +0 -93
  244. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/cookie.js +0 -154
  245. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/decorators.js +0 -178
  246. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/fs.js +0 -417
  247. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/html.js +0 -58
  248. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/json.js +0 -78
  249. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/negotiate.js +0 -120
  250. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/proxy.js +0 -27
  251. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/redirect.js +0 -209
  252. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/route.js +0 -125
  253. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/status.js +0 -175
  254. data/vendor/node_modules/traceur/node_modules/q-io/http-cookie.js +0 -75
  255. data/vendor/node_modules/traceur/node_modules/q-io/http.js +0 -378
  256. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/.npmignore +0 -11
  257. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/CHANGES.md +0 -78
  258. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/LICENSE.md +0 -21
  259. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/README.md +0 -1285
  260. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/collections.js +0 -22
  261. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/dict.js +0 -142
  262. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-map.js +0 -57
  263. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-set.js +0 -183
  264. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-collection.js +0 -261
  265. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-map.js +0 -186
  266. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-order.js +0 -55
  267. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-set.js +0 -59
  268. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/heap.js +0 -236
  269. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/iterator.js +0 -371
  270. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/list.js +0 -435
  271. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/array-changes.js +0 -247
  272. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/map-changes.js +0 -147
  273. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/property-changes.js +0 -448
  274. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/range-changes.js +0 -139
  275. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-map.js +0 -79
  276. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-set.js +0 -142
  277. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/map.js +0 -60
  278. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/multi-map.js +0 -41
  279. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/package.json +0 -12
  280. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync +0 -7
  281. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync.patch +0 -48
  282. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/weak-map.js +0 -590
  283. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/package.json +0 -49
  284. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/set.js +0 -173
  285. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-array.js +0 -274
  286. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-function.js +0 -59
  287. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-object.js +0 -538
  288. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-regexp.js +0 -14
  289. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim.js +0 -6
  290. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-map.js +0 -49
  291. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-set.js +0 -51
  292. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array.js +0 -269
  293. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-map.js +0 -61
  294. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-set.js +0 -736
  295. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/tree-log.js +0 -40
  296. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/weak-map.js +0 -1
  297. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/README.md +0 -66
  298. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/mime.js +0 -114
  299. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/package.json +0 -35
  300. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/test.js +0 -84
  301. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/mime.types +0 -1588
  302. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/node.types +0 -77
  303. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/CHANGES +0 -15
  304. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/LICENSE +0 -19
  305. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/README +0 -96
  306. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/lib/mimeparse.js +0 -166
  307. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/package.json +0 -43
  308. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/CONTRIBUTING.md +0 -40
  309. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/LICENSE +0 -19
  310. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/README.md +0 -813
  311. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/compare-with-callbacks.js +0 -71
  312. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/scenarios.js +0 -36
  313. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/package.json +0 -93
  314. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/q.js +0 -1937
  315. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/queue.js +0 -35
  316. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/.gitmodules +0 -6
  317. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/History.md +0 -36
  318. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Makefile +0 -7
  319. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Readme.md +0 -38
  320. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/benchmark.js +0 -32
  321. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/examples.js +0 -39
  322. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/index.js +0 -2
  323. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/lib/querystring.js +0 -123
  324. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/package.json +0 -19
  325. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.gitmodules +0 -3
  326. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.npmignore +0 -3
  327. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/History.md +0 -128
  328. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Makefile +0 -53
  329. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Readme.md +0 -61
  330. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/bin/expresso +0 -856
  331. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/api.html +0 -1080
  332. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.html +0 -377
  333. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.md +0 -290
  334. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  335. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  336. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/bar.js +0 -4
  337. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/foo.js +0 -16
  338. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/package.json +0 -12
  339. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  340. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/async.test.js +0 -12
  341. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  342. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  343. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/http.test.js +0 -146
  344. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  345. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  346. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/.gitmodules +0 -3
  347. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/History.md +0 -22
  348. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Makefile +0 -6
  349. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Readme.md +0 -248
  350. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/examples/runner.js +0 -53
  351. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/index.js +0 -2
  352. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/eql.js +0 -91
  353. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/should.js +0 -548
  354. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/package.json +0 -8
  355. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/test/should.test.js +0 -358
  356. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/test/querystring.test.js +0 -133
  357. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/.npmignore +0 -3
  358. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/LICENSE.md +0 -20
  359. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/README.md +0 -33
  360. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/package.json +0 -37
  361. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/test/url2-spec.js +0 -125
  362. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/url2.js +0 -151
  363. data/vendor/node_modules/traceur/node_modules/q-io/package.json +0 -51
  364. data/vendor/node_modules/traceur/node_modules/q-io/reader.js +0 -133
  365. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/boot-directory-spec.js +0 -47
  366. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/contains-spec.js +0 -11
  367. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/fixtures/hello.txt +0 -1
  368. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/issues/1-spec.js +0 -33
  369. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/make-tree-spec.js +0 -92
  370. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/append-spec.js +0 -41
  371. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/copy-tree-spec.js +0 -57
  372. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/fixture/hello.txt +0 -1
  373. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/link-spec.js +0 -70
  374. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/make-tree-spec.js +0 -109
  375. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/merge-spec.js +0 -67
  376. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/move-spec.js +0 -219
  377. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/object-spec.js +0 -20
  378. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/range-spec.js +0 -26
  379. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/read-spec.js +0 -40
  380. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-directory-spec.js +0 -37
  381. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-tree-spec.js +0 -39
  382. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/root-spec.js +0 -32
  383. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/stat-spec.js +0 -26
  384. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/symbolic-link-spec.js +0 -86
  385. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/working-directory-spec.js +0 -31
  386. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/write-spec.js +0 -73
  387. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.js +0 -23
  388. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.txt +0 -1
  389. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/read-spec.js +0 -22
  390. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/relative-spec.js +0 -25
  391. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/reroot-spec.js +0 -45
  392. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/write-spec.js +0 -38
  393. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/cookie-spec.js +0 -52
  394. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/directory-list-spec.js +0 -86
  395. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/01234.txt +0 -1
  396. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/1234.txt +0 -1
  397. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/5678.txt +0 -0
  398. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/9012/3456.txt +0 -0
  399. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/hosts-spec.js +0 -49
  400. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/interpret-range-spec.js +0 -47
  401. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/partial-range-spec.js +0 -186
  402. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/proxy-spec.js +0 -82
  403. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/symbolic-link-spec.js +0 -110
  404. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/agent-spec.js +0 -96
  405. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/basic-spec.js +0 -96
  406. data/vendor/node_modules/traceur/node_modules/q-io/spec/lib/jasmine-promise.js +0 -42
  407. data/vendor/node_modules/traceur/node_modules/q-io/writer.js +0 -111
  408. data/vendor/node_modules/traceur/src/node/compile-single-file.js +0 -69
  409. data/vendor/node_modules/traceur/src/node/compiler.js +0 -116
  410. data/vendor/node_modules/traceur/src/node/inline-module.js +0 -149
@@ -0,0 +1,16 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
11
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
16
+
@@ -0,0 +1,42 @@
1
+ Browser-friendly inheritance fully compatible with standard node.js
2
+ [inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
3
+
4
+ This package exports standard `inherits` from node.js `util` module in
5
+ node environment, but also provides alternative browser-friendly
6
+ implementation through [browser
7
+ field](https://gist.github.com/shtylman/4339901). Alternative
8
+ implementation is a literal copy of standard one located in standalone
9
+ module to avoid requiring of `util`. It also has a shim for old
10
+ browsers with no `Object.create` support.
11
+
12
+ While keeping you sure you are using standard `inherits`
13
+ implementation in node.js environment, it allows bundlers such as
14
+ [browserify](https://github.com/substack/node-browserify) to not
15
+ include full `util` package to your client code if all you need is
16
+ just `inherits` function. It worth, because browser shim for `util`
17
+ package is large and `inherits` is often the single function you need
18
+ from it.
19
+
20
+ It's recommended to use this package instead of
21
+ `require('util').inherits` for any code that has chances to be used
22
+ not only in node.js but in browser too.
23
+
24
+ ## usage
25
+
26
+ ```js
27
+ var inherits = require('inherits');
28
+ // then use exactly as the standard one
29
+ ```
30
+
31
+ ## note on version ~1.0
32
+
33
+ Version ~1.0 had completely different motivation and is not compatible
34
+ neither with 2.0 nor with standard node.js `inherits`.
35
+
36
+ If you are using version ~1.0 and planning to switch to ~2.0, be
37
+ careful:
38
+
39
+ * new version uses `super_` instead of `super` for referencing
40
+ superclass
41
+ * new version overwrites current prototype while old one preserves any
42
+ existing fields on it
@@ -0,0 +1 @@
1
+ module.exports = require('util').inherits
@@ -0,0 +1,23 @@
1
+ if (typeof Object.create === 'function') {
2
+ // implementation from standard node.js 'util' module
3
+ module.exports = function inherits(ctor, superCtor) {
4
+ ctor.super_ = superCtor
5
+ ctor.prototype = Object.create(superCtor.prototype, {
6
+ constructor: {
7
+ value: ctor,
8
+ enumerable: false,
9
+ writable: true,
10
+ configurable: true
11
+ }
12
+ });
13
+ };
14
+ } else {
15
+ // old school shim for old browsers
16
+ module.exports = function inherits(ctor, superCtor) {
17
+ ctor.super_ = superCtor
18
+ var TempCtor = function () {}
19
+ TempCtor.prototype = superCtor.prototype
20
+ ctor.prototype = new TempCtor()
21
+ ctor.prototype.constructor = ctor
22
+ }
23
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "inherits",
3
+ "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
4
+ "version": "2.0.1",
5
+ "keywords": [
6
+ "inheritance",
7
+ "class",
8
+ "klass",
9
+ "oop",
10
+ "object-oriented",
11
+ "inherits",
12
+ "browser",
13
+ "browserify"
14
+ ],
15
+ "main": "./inherits.js",
16
+ "browser": "./inherits_browser.js",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git://github.com/isaacs/inherits"
20
+ },
21
+ "license": "ISC",
22
+ "scripts": {
23
+ "test": "node test"
24
+ },
25
+ "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n",
26
+ "readmeFilename": "README.md",
27
+ "bugs": {
28
+ "url": "https://github.com/isaacs/inherits/issues"
29
+ },
30
+ "homepage": "https://github.com/isaacs/inherits",
31
+ "_id": "inherits@2.0.1",
32
+ "_from": "inherits@>=2.0.0 <3.0.0"
33
+ }
@@ -0,0 +1,25 @@
1
+ var inherits = require('./inherits.js')
2
+ var assert = require('assert')
3
+
4
+ function test(c) {
5
+ assert(c.constructor === Child)
6
+ assert(c.constructor.super_ === Parent)
7
+ assert(Object.getPrototypeOf(c) === Child.prototype)
8
+ assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype)
9
+ assert(c instanceof Child)
10
+ assert(c instanceof Parent)
11
+ }
12
+
13
+ function Child() {
14
+ Parent.call(this)
15
+ test(this)
16
+ }
17
+
18
+ function Parent() {}
19
+
20
+ inherits(Child, Parent)
21
+
22
+ var c = new Child
23
+ test(c)
24
+
25
+ console.log('ok')
@@ -0,0 +1,4 @@
1
+ language: node_js
2
+ node_js:
3
+ - 0.10
4
+ - 0.11
@@ -0,0 +1,23 @@
1
+ Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
2
+ All rights reserved.
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,216 @@
1
+ # minimatch
2
+
3
+ A minimal matching utility.
4
+
5
+ [![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
6
+
7
+
8
+ This is the matching library used internally by npm.
9
+
10
+ It works by converting glob expressions into JavaScript `RegExp`
11
+ objects.
12
+
13
+ ## Usage
14
+
15
+ ```javascript
16
+ var minimatch = require("minimatch")
17
+
18
+ minimatch("bar.foo", "*.foo") // true!
19
+ minimatch("bar.foo", "*.bar") // false!
20
+ minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
21
+ ```
22
+
23
+ ## Features
24
+
25
+ Supports these glob features:
26
+
27
+ * Brace Expansion
28
+ * Extended glob matching
29
+ * "Globstar" `**` matching
30
+
31
+ See:
32
+
33
+ * `man sh`
34
+ * `man bash`
35
+ * `man 3 fnmatch`
36
+ * `man 5 gitignore`
37
+
38
+ ## Minimatch Class
39
+
40
+ Create a minimatch object by instanting the `minimatch.Minimatch` class.
41
+
42
+ ```javascript
43
+ var Minimatch = require("minimatch").Minimatch
44
+ var mm = new Minimatch(pattern, options)
45
+ ```
46
+
47
+ ### Properties
48
+
49
+ * `pattern` The original pattern the minimatch object represents.
50
+ * `options` The options supplied to the constructor.
51
+ * `set` A 2-dimensional array of regexp or string expressions.
52
+ Each row in the
53
+ array corresponds to a brace-expanded pattern. Each item in the row
54
+ corresponds to a single path-part. For example, the pattern
55
+ `{a,b/c}/d` would expand to a set of patterns like:
56
+
57
+ [ [ a, d ]
58
+ , [ b, c, d ] ]
59
+
60
+ If a portion of the pattern doesn't have any "magic" in it
61
+ (that is, it's something like `"foo"` rather than `fo*o?`), then it
62
+ will be left as a string rather than converted to a regular
63
+ expression.
64
+
65
+ * `regexp` Created by the `makeRe` method. A single regular expression
66
+ expressing the entire pattern. This is useful in cases where you wish
67
+ to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
68
+ * `negate` True if the pattern is negated.
69
+ * `comment` True if the pattern is a comment.
70
+ * `empty` True if the pattern is `""`.
71
+
72
+ ### Methods
73
+
74
+ * `makeRe` Generate the `regexp` member if necessary, and return it.
75
+ Will return `false` if the pattern is invalid.
76
+ * `match(fname)` Return true if the filename matches the pattern, or
77
+ false otherwise.
78
+ * `matchOne(fileArray, patternArray, partial)` Take a `/`-split
79
+ filename, and match it against a single row in the `regExpSet`. This
80
+ method is mainly for internal use, but is exposed so that it can be
81
+ used by a glob-walker that needs to avoid excessive filesystem calls.
82
+
83
+ All other methods are internal, and will be called as necessary.
84
+
85
+ ## Functions
86
+
87
+ The top-level exported function has a `cache` property, which is an LRU
88
+ cache set to store 100 items. So, calling these methods repeatedly
89
+ with the same pattern and options will use the same Minimatch object,
90
+ saving the cost of parsing it multiple times.
91
+
92
+ ### minimatch(path, pattern, options)
93
+
94
+ Main export. Tests a path against the pattern using the options.
95
+
96
+ ```javascript
97
+ var isJS = minimatch(file, "*.js", { matchBase: true })
98
+ ```
99
+
100
+ ### minimatch.filter(pattern, options)
101
+
102
+ Returns a function that tests its
103
+ supplied argument, suitable for use with `Array.filter`. Example:
104
+
105
+ ```javascript
106
+ var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
107
+ ```
108
+
109
+ ### minimatch.match(list, pattern, options)
110
+
111
+ Match against the list of
112
+ files, in the style of fnmatch or glob. If nothing is matched, and
113
+ options.nonull is set, then return a list containing the pattern itself.
114
+
115
+ ```javascript
116
+ var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
117
+ ```
118
+
119
+ ### minimatch.makeRe(pattern, options)
120
+
121
+ Make a regular expression object from the pattern.
122
+
123
+ ## Options
124
+
125
+ All options are `false` by default.
126
+
127
+ ### debug
128
+
129
+ Dump a ton of stuff to stderr.
130
+
131
+ ### nobrace
132
+
133
+ Do not expand `{a,b}` and `{1..3}` brace sets.
134
+
135
+ ### noglobstar
136
+
137
+ Disable `**` matching against multiple folder names.
138
+
139
+ ### dot
140
+
141
+ Allow patterns to match filenames starting with a period, even if
142
+ the pattern does not explicitly have a period in that spot.
143
+
144
+ Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
145
+ is set.
146
+
147
+ ### noext
148
+
149
+ Disable "extglob" style patterns like `+(a|b)`.
150
+
151
+ ### nocase
152
+
153
+ Perform a case-insensitive match.
154
+
155
+ ### nonull
156
+
157
+ When a match is not found by `minimatch.match`, return a list containing
158
+ the pattern itself if this option is set. When not set, an empty list
159
+ is returned if there are no matches.
160
+
161
+ ### matchBase
162
+
163
+ If set, then patterns without slashes will be matched
164
+ against the basename of the path if it contains slashes. For example,
165
+ `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
166
+
167
+ ### nocomment
168
+
169
+ Suppress the behavior of treating `#` at the start of a pattern as a
170
+ comment.
171
+
172
+ ### nonegate
173
+
174
+ Suppress the behavior of treating a leading `!` character as negation.
175
+
176
+ ### flipNegate
177
+
178
+ Returns from negate expressions the same as if they were not negated.
179
+ (Ie, true on a hit, false on a miss.)
180
+
181
+
182
+ ## Comparisons to other fnmatch/glob implementations
183
+
184
+ While strict compliance with the existing standards is a worthwhile
185
+ goal, some discrepancies exist between minimatch and other
186
+ implementations, and are intentional.
187
+
188
+ If the pattern starts with a `!` character, then it is negated. Set the
189
+ `nonegate` flag to suppress this behavior, and treat leading `!`
190
+ characters normally. This is perhaps relevant if you wish to start the
191
+ pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
192
+ characters at the start of a pattern will negate the pattern multiple
193
+ times.
194
+
195
+ If a pattern starts with `#`, then it is treated as a comment, and
196
+ will not match anything. Use `\#` to match a literal `#` at the
197
+ start of a line, or set the `nocomment` flag to suppress this behavior.
198
+
199
+ The double-star character `**` is supported by default, unless the
200
+ `noglobstar` flag is set. This is supported in the manner of bsdglob
201
+ and bash 4.1, where `**` only has special significance if it is the only
202
+ thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
203
+ `a/**b` will not.
204
+
205
+ If an escaped pattern has no matches, and the `nonull` flag is set,
206
+ then minimatch.match returns the pattern as-provided, rather than
207
+ interpreting the character escapes. For example,
208
+ `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
209
+ `"*a?"`. This is akin to setting the `nullglob` option in bash, except
210
+ that it does not resolve escaped pattern characters.
211
+
212
+ If brace expansion is not disabled, then it is performed before any
213
+ other interpretation of the glob pattern. Thus, a pattern like
214
+ `+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
215
+ **first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
216
+ checked for validity. Since those two are valid, matching proceeds.
@@ -0,0 +1,15 @@
1
+ var m = require('./minimatch.js')
2
+ var pattern = "**/*.js"
3
+ var expand = require('brace-expansion')
4
+ var files = expand('x/y/z/{1..1000}.js')
5
+ var start = process.hrtime()
6
+
7
+ for (var i = 0; i < 1000; i++) {
8
+ for (var f = 0; f < files.length; f++) {
9
+ var res = m(pattern, files[f])
10
+ }
11
+ if (!(i%10)) process.stdout.write('.')
12
+ }
13
+ console.log('done')
14
+ var dur = process.hrtime(start)
15
+ console.log('%s ms', dur[0]*1e3 + dur[1]/1e6)
@@ -0,0 +1,1181 @@
1
+ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
+ (function (process){
3
+ module.exports = minimatch
4
+ minimatch.Minimatch = Minimatch
5
+
6
+ var isWindows = false
7
+ if (typeof process !== 'undefined' && process.platform === 'win32')
8
+ isWindows = true
9
+
10
+ var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
11
+ , expand = require("brace-expansion")
12
+
13
+ // any single thing other than /
14
+ // don't need to escape / when using new RegExp()
15
+ , qmark = "[^/]"
16
+
17
+ // * => any number of characters
18
+ , star = qmark + "*?"
19
+
20
+ // ** when dots are allowed. Anything goes, except .. and .
21
+ // not (^ or / followed by one or two dots followed by $ or /),
22
+ // followed by anything, any number of times.
23
+ , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?"
24
+
25
+ // not a ^ or / followed by a dot,
26
+ // followed by anything, any number of times.
27
+ , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?"
28
+
29
+ // characters that need to be escaped in RegExp.
30
+ , reSpecials = charSet("().*{}+?[]^$\\!")
31
+
32
+ // "abc" -> { a:true, b:true, c:true }
33
+ function charSet (s) {
34
+ return s.split("").reduce(function (set, c) {
35
+ set[c] = true
36
+ return set
37
+ }, {})
38
+ }
39
+
40
+ // normalizes slashes.
41
+ var slashSplit = /\/+/
42
+
43
+ minimatch.filter = filter
44
+ function filter (pattern, options) {
45
+ options = options || {}
46
+ return function (p, i, list) {
47
+ return minimatch(p, pattern, options)
48
+ }
49
+ }
50
+
51
+ function ext (a, b) {
52
+ a = a || {}
53
+ b = b || {}
54
+ var t = {}
55
+ Object.keys(b).forEach(function (k) {
56
+ t[k] = b[k]
57
+ })
58
+ Object.keys(a).forEach(function (k) {
59
+ t[k] = a[k]
60
+ })
61
+ return t
62
+ }
63
+
64
+ minimatch.defaults = function (def) {
65
+ if (!def || !Object.keys(def).length) return minimatch
66
+
67
+ var orig = minimatch
68
+
69
+ var m = function minimatch (p, pattern, options) {
70
+ return orig.minimatch(p, pattern, ext(def, options))
71
+ }
72
+
73
+ m.Minimatch = function Minimatch (pattern, options) {
74
+ return new orig.Minimatch(pattern, ext(def, options))
75
+ }
76
+
77
+ return m
78
+ }
79
+
80
+ Minimatch.defaults = function (def) {
81
+ if (!def || !Object.keys(def).length) return Minimatch
82
+ return minimatch.defaults(def).Minimatch
83
+ }
84
+
85
+
86
+ function minimatch (p, pattern, options) {
87
+ if (typeof pattern !== "string") {
88
+ throw new TypeError("glob pattern string required")
89
+ }
90
+
91
+ if (!options) options = {}
92
+
93
+ // shortcut: comments match nothing.
94
+ if (!options.nocomment && pattern.charAt(0) === "#") {
95
+ return false
96
+ }
97
+
98
+ // "" only matches ""
99
+ if (pattern.trim() === "") return p === ""
100
+
101
+ return new Minimatch(pattern, options).match(p)
102
+ }
103
+
104
+ function Minimatch (pattern, options) {
105
+ if (!(this instanceof Minimatch)) {
106
+ return new Minimatch(pattern, options)
107
+ }
108
+
109
+ if (typeof pattern !== "string") {
110
+ throw new TypeError("glob pattern string required")
111
+ }
112
+
113
+ if (!options) options = {}
114
+ pattern = pattern.trim()
115
+
116
+ // windows support: need to use /, not \
117
+ if (isWindows)
118
+ pattern = pattern.split("\\").join("/")
119
+
120
+ this.options = options
121
+ this.set = []
122
+ this.pattern = pattern
123
+ this.regexp = null
124
+ this.negate = false
125
+ this.comment = false
126
+ this.empty = false
127
+
128
+ // make the set of regexps etc.
129
+ this.make()
130
+ }
131
+
132
+ Minimatch.prototype.debug = function() {}
133
+
134
+ Minimatch.prototype.make = make
135
+ function make () {
136
+ // don't do it more than once.
137
+ if (this._made) return
138
+
139
+ var pattern = this.pattern
140
+ var options = this.options
141
+
142
+ // empty patterns and comments match nothing.
143
+ if (!options.nocomment && pattern.charAt(0) === "#") {
144
+ this.comment = true
145
+ return
146
+ }
147
+ if (!pattern) {
148
+ this.empty = true
149
+ return
150
+ }
151
+
152
+ // step 1: figure out negation, etc.
153
+ this.parseNegate()
154
+
155
+ // step 2: expand braces
156
+ var set = this.globSet = this.braceExpand()
157
+
158
+ if (options.debug) this.debug = console.error
159
+
160
+ this.debug(this.pattern, set)
161
+
162
+ // step 3: now we have a set, so turn each one into a series of path-portion
163
+ // matching patterns.
164
+ // These will be regexps, except in the case of "**", which is
165
+ // set to the GLOBSTAR object for globstar behavior,
166
+ // and will not contain any / characters
167
+ set = this.globParts = set.map(function (s) {
168
+ return s.split(slashSplit)
169
+ })
170
+
171
+ this.debug(this.pattern, set)
172
+
173
+ // glob --> regexps
174
+ set = set.map(function (s, si, set) {
175
+ return s.map(this.parse, this)
176
+ }, this)
177
+
178
+ this.debug(this.pattern, set)
179
+
180
+ // filter out everything that didn't compile properly.
181
+ set = set.filter(function (s) {
182
+ return -1 === s.indexOf(false)
183
+ })
184
+
185
+ this.debug(this.pattern, set)
186
+
187
+ this.set = set
188
+ }
189
+
190
+ Minimatch.prototype.parseNegate = parseNegate
191
+ function parseNegate () {
192
+ var pattern = this.pattern
193
+ , negate = false
194
+ , options = this.options
195
+ , negateOffset = 0
196
+
197
+ if (options.nonegate) return
198
+
199
+ for ( var i = 0, l = pattern.length
200
+ ; i < l && pattern.charAt(i) === "!"
201
+ ; i ++) {
202
+ negate = !negate
203
+ negateOffset ++
204
+ }
205
+
206
+ if (negateOffset) this.pattern = pattern.substr(negateOffset)
207
+ this.negate = negate
208
+ }
209
+
210
+ // Brace expansion:
211
+ // a{b,c}d -> abd acd
212
+ // a{b,}c -> abc ac
213
+ // a{0..3}d -> a0d a1d a2d a3d
214
+ // a{b,c{d,e}f}g -> abg acdfg acefg
215
+ // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
216
+ //
217
+ // Invalid sets are not expanded.
218
+ // a{2..}b -> a{2..}b
219
+ // a{b}c -> a{b}c
220
+ minimatch.braceExpand = function (pattern, options) {
221
+ return braceExpand(pattern, options)
222
+ }
223
+
224
+ Minimatch.prototype.braceExpand = braceExpand
225
+
226
+ function braceExpand (pattern, options) {
227
+ if (!options) {
228
+ if (this instanceof Minimatch)
229
+ options = this.options
230
+ else
231
+ options = {}
232
+ }
233
+
234
+ pattern = typeof pattern === "undefined"
235
+ ? this.pattern : pattern
236
+
237
+ if (typeof pattern === "undefined") {
238
+ throw new Error("undefined pattern")
239
+ }
240
+
241
+ if (options.nobrace ||
242
+ !pattern.match(/\{.*\}/)) {
243
+ // shortcut. no need to expand.
244
+ return [pattern]
245
+ }
246
+
247
+ return expand(pattern)
248
+ }
249
+
250
+ // parse a component of the expanded set.
251
+ // At this point, no pattern may contain "/" in it
252
+ // so we're going to return a 2d array, where each entry is the full
253
+ // pattern, split on '/', and then turned into a regular expression.
254
+ // A regexp is made at the end which joins each array with an
255
+ // escaped /, and another full one which joins each regexp with |.
256
+ //
257
+ // Following the lead of Bash 4.1, note that "**" only has special meaning
258
+ // when it is the *only* thing in a path portion. Otherwise, any series
259
+ // of * is equivalent to a single *. Globstar behavior is enabled by
260
+ // default, and can be disabled by setting options.noglobstar.
261
+ Minimatch.prototype.parse = parse
262
+ var SUBPARSE = {}
263
+ function parse (pattern, isSub) {
264
+ var options = this.options
265
+
266
+ // shortcuts
267
+ if (!options.noglobstar && pattern === "**") return GLOBSTAR
268
+ if (pattern === "") return ""
269
+
270
+ var re = ""
271
+ , hasMagic = !!options.nocase
272
+ , escaping = false
273
+ // ? => one single character
274
+ , patternListStack = []
275
+ , plType
276
+ , stateChar
277
+ , inClass = false
278
+ , reClassStart = -1
279
+ , classStart = -1
280
+ // . and .. never match anything that doesn't start with .,
281
+ // even when options.dot is set.
282
+ , patternStart = pattern.charAt(0) === "." ? "" // anything
283
+ // not (start or / followed by . or .. followed by / or end)
284
+ : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))"
285
+ : "(?!\\.)"
286
+ , self = this
287
+
288
+ function clearStateChar () {
289
+ if (stateChar) {
290
+ // we had some state-tracking character
291
+ // that wasn't consumed by this pass.
292
+ switch (stateChar) {
293
+ case "*":
294
+ re += star
295
+ hasMagic = true
296
+ break
297
+ case "?":
298
+ re += qmark
299
+ hasMagic = true
300
+ break
301
+ default:
302
+ re += "\\"+stateChar
303
+ break
304
+ }
305
+ self.debug('clearStateChar %j %j', stateChar, re)
306
+ stateChar = false
307
+ }
308
+ }
309
+
310
+ for ( var i = 0, len = pattern.length, c
311
+ ; (i < len) && (c = pattern.charAt(i))
312
+ ; i ++ ) {
313
+
314
+ this.debug("%s\t%s %s %j", pattern, i, re, c)
315
+
316
+ // skip over any that are escaped.
317
+ if (escaping && reSpecials[c]) {
318
+ re += "\\" + c
319
+ escaping = false
320
+ continue
321
+ }
322
+
323
+ SWITCH: switch (c) {
324
+ case "/":
325
+ // completely not allowed, even escaped.
326
+ // Should already be path-split by now.
327
+ return false
328
+
329
+ case "\\":
330
+ clearStateChar()
331
+ escaping = true
332
+ continue
333
+
334
+ // the various stateChar values
335
+ // for the "extglob" stuff.
336
+ case "?":
337
+ case "*":
338
+ case "+":
339
+ case "@":
340
+ case "!":
341
+ this.debug("%s\t%s %s %j <-- stateChar", pattern, i, re, c)
342
+
343
+ // all of those are literals inside a class, except that
344
+ // the glob [!a] means [^a] in regexp
345
+ if (inClass) {
346
+ this.debug(' in class')
347
+ if (c === "!" && i === classStart + 1) c = "^"
348
+ re += c
349
+ continue
350
+ }
351
+
352
+ // if we already have a stateChar, then it means
353
+ // that there was something like ** or +? in there.
354
+ // Handle the stateChar, then proceed with this one.
355
+ self.debug('call clearStateChar %j', stateChar)
356
+ clearStateChar()
357
+ stateChar = c
358
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
359
+ // just clear the statechar *now*, rather than even diving into
360
+ // the patternList stuff.
361
+ if (options.noext) clearStateChar()
362
+ continue
363
+
364
+ case "(":
365
+ if (inClass) {
366
+ re += "("
367
+ continue
368
+ }
369
+
370
+ if (!stateChar) {
371
+ re += "\\("
372
+ continue
373
+ }
374
+
375
+ plType = stateChar
376
+ patternListStack.push({ type: plType
377
+ , start: i - 1
378
+ , reStart: re.length })
379
+ // negation is (?:(?!js)[^/]*)
380
+ re += stateChar === "!" ? "(?:(?!" : "(?:"
381
+ this.debug('plType %j %j', stateChar, re)
382
+ stateChar = false
383
+ continue
384
+
385
+ case ")":
386
+ if (inClass || !patternListStack.length) {
387
+ re += "\\)"
388
+ continue
389
+ }
390
+
391
+ clearStateChar()
392
+ hasMagic = true
393
+ re += ")"
394
+ plType = patternListStack.pop().type
395
+ // negation is (?:(?!js)[^/]*)
396
+ // The others are (?:<pattern>)<type>
397
+ switch (plType) {
398
+ case "!":
399
+ re += "[^/]*?)"
400
+ break
401
+ case "?":
402
+ case "+":
403
+ case "*": re += plType
404
+ case "@": break // the default anyway
405
+ }
406
+ continue
407
+
408
+ case "|":
409
+ if (inClass || !patternListStack.length || escaping) {
410
+ re += "\\|"
411
+ escaping = false
412
+ continue
413
+ }
414
+
415
+ clearStateChar()
416
+ re += "|"
417
+ continue
418
+
419
+ // these are mostly the same in regexp and glob
420
+ case "[":
421
+ // swallow any state-tracking char before the [
422
+ clearStateChar()
423
+
424
+ if (inClass) {
425
+ re += "\\" + c
426
+ continue
427
+ }
428
+
429
+ inClass = true
430
+ classStart = i
431
+ reClassStart = re.length
432
+ re += c
433
+ continue
434
+
435
+ case "]":
436
+ // a right bracket shall lose its special
437
+ // meaning and represent itself in
438
+ // a bracket expression if it occurs
439
+ // first in the list. -- POSIX.2 2.8.3.2
440
+ if (i === classStart + 1 || !inClass) {
441
+ re += "\\" + c
442
+ escaping = false
443
+ continue
444
+ }
445
+
446
+ // finish up the class.
447
+ hasMagic = true
448
+ inClass = false
449
+ re += c
450
+ continue
451
+
452
+ default:
453
+ // swallow any state char that wasn't consumed
454
+ clearStateChar()
455
+
456
+ if (escaping) {
457
+ // no need
458
+ escaping = false
459
+ } else if (reSpecials[c]
460
+ && !(c === "^" && inClass)) {
461
+ re += "\\"
462
+ }
463
+
464
+ re += c
465
+
466
+ } // switch
467
+ } // for
468
+
469
+
470
+ // handle the case where we left a class open.
471
+ // "[abc" is valid, equivalent to "\[abc"
472
+ if (inClass) {
473
+ // split where the last [ was, and escape it
474
+ // this is a huge pita. We now have to re-walk
475
+ // the contents of the would-be class to re-translate
476
+ // any characters that were passed through as-is
477
+ var cs = pattern.substr(classStart + 1)
478
+ , sp = this.parse(cs, SUBPARSE)
479
+ re = re.substr(0, reClassStart) + "\\[" + sp[0]
480
+ hasMagic = hasMagic || sp[1]
481
+ }
482
+
483
+ // handle the case where we had a +( thing at the *end*
484
+ // of the pattern.
485
+ // each pattern list stack adds 3 chars, and we need to go through
486
+ // and escape any | chars that were passed through as-is for the regexp.
487
+ // Go through and escape them, taking care not to double-escape any
488
+ // | chars that were already escaped.
489
+ var pl
490
+ while (pl = patternListStack.pop()) {
491
+ var tail = re.slice(pl.reStart + 3)
492
+ // maybe some even number of \, then maybe 1 \, followed by a |
493
+ tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
494
+ if (!$2) {
495
+ // the | isn't already escaped, so escape it.
496
+ $2 = "\\"
497
+ }
498
+
499
+ // need to escape all those slashes *again*, without escaping the
500
+ // one that we need for escaping the | character. As it works out,
501
+ // escaping an even number of slashes can be done by simply repeating
502
+ // it exactly after itself. That's why this trick works.
503
+ //
504
+ // I am sorry that you have to see this.
505
+ return $1 + $1 + $2 + "|"
506
+ })
507
+
508
+ this.debug("tail=%j\n %s", tail, tail)
509
+ var t = pl.type === "*" ? star
510
+ : pl.type === "?" ? qmark
511
+ : "\\" + pl.type
512
+
513
+ hasMagic = true
514
+ re = re.slice(0, pl.reStart)
515
+ + t + "\\("
516
+ + tail
517
+ }
518
+
519
+ // handle trailing things that only matter at the very end.
520
+ clearStateChar()
521
+ if (escaping) {
522
+ // trailing \\
523
+ re += "\\\\"
524
+ }
525
+
526
+ // only need to apply the nodot start if the re starts with
527
+ // something that could conceivably capture a dot
528
+ var addPatternStart = false
529
+ switch (re.charAt(0)) {
530
+ case ".":
531
+ case "[":
532
+ case "(": addPatternStart = true
533
+ }
534
+
535
+ // if the re is not "" at this point, then we need to make sure
536
+ // it doesn't match against an empty path part.
537
+ // Otherwise a/* will match a/, which it should not.
538
+ if (re !== "" && hasMagic) re = "(?=.)" + re
539
+
540
+ if (addPatternStart) re = patternStart + re
541
+
542
+ // parsing just a piece of a larger pattern.
543
+ if (isSub === SUBPARSE) {
544
+ return [ re, hasMagic ]
545
+ }
546
+
547
+ // skip the regexp for non-magical patterns
548
+ // unescape anything in it, though, so that it'll be
549
+ // an exact match against a file etc.
550
+ if (!hasMagic) {
551
+ return globUnescape(pattern)
552
+ }
553
+
554
+ var flags = options.nocase ? "i" : ""
555
+ , regExp = new RegExp("^" + re + "$", flags)
556
+
557
+ regExp._glob = pattern
558
+ regExp._src = re
559
+
560
+ return regExp
561
+ }
562
+
563
+ minimatch.makeRe = function (pattern, options) {
564
+ return new Minimatch(pattern, options || {}).makeRe()
565
+ }
566
+
567
+ Minimatch.prototype.makeRe = makeRe
568
+ function makeRe () {
569
+ if (this.regexp || this.regexp === false) return this.regexp
570
+
571
+ // at this point, this.set is a 2d array of partial
572
+ // pattern strings, or "**".
573
+ //
574
+ // It's better to use .match(). This function shouldn't
575
+ // be used, really, but it's pretty convenient sometimes,
576
+ // when you just want to work with a regex.
577
+ var set = this.set
578
+
579
+ if (!set.length) return this.regexp = false
580
+ var options = this.options
581
+
582
+ var twoStar = options.noglobstar ? star
583
+ : options.dot ? twoStarDot
584
+ : twoStarNoDot
585
+ , flags = options.nocase ? "i" : ""
586
+
587
+ var re = set.map(function (pattern) {
588
+ return pattern.map(function (p) {
589
+ return (p === GLOBSTAR) ? twoStar
590
+ : (typeof p === "string") ? regExpEscape(p)
591
+ : p._src
592
+ }).join("\\\/")
593
+ }).join("|")
594
+
595
+ // must match entire pattern
596
+ // ending in a * or ** will make it less strict.
597
+ re = "^(?:" + re + ")$"
598
+
599
+ // can match anything, as long as it's not this.
600
+ if (this.negate) re = "^(?!" + re + ").*$"
601
+
602
+ try {
603
+ return this.regexp = new RegExp(re, flags)
604
+ } catch (ex) {
605
+ return this.regexp = false
606
+ }
607
+ }
608
+
609
+ minimatch.match = function (list, pattern, options) {
610
+ options = options || {}
611
+ var mm = new Minimatch(pattern, options)
612
+ list = list.filter(function (f) {
613
+ return mm.match(f)
614
+ })
615
+ if (mm.options.nonull && !list.length) {
616
+ list.push(pattern)
617
+ }
618
+ return list
619
+ }
620
+
621
+ Minimatch.prototype.match = match
622
+ function match (f, partial) {
623
+ this.debug("match", f, this.pattern)
624
+ // short-circuit in the case of busted things.
625
+ // comments, etc.
626
+ if (this.comment) return false
627
+ if (this.empty) return f === ""
628
+
629
+ if (f === "/" && partial) return true
630
+
631
+ var options = this.options
632
+
633
+ // windows: need to use /, not \
634
+ if (isWindows)
635
+ f = f.split("\\").join("/")
636
+
637
+ // treat the test path as a set of pathparts.
638
+ f = f.split(slashSplit)
639
+ this.debug(this.pattern, "split", f)
640
+
641
+ // just ONE of the pattern sets in this.set needs to match
642
+ // in order for it to be valid. If negating, then just one
643
+ // match means that we have failed.
644
+ // Either way, return on the first hit.
645
+
646
+ var set = this.set
647
+ this.debug(this.pattern, "set", set)
648
+
649
+ // Find the basename of the path by looking for the last non-empty segment
650
+ var filename;
651
+ for (var i = f.length - 1; i >= 0; i--) {
652
+ filename = f[i]
653
+ if (filename) break
654
+ }
655
+
656
+ for (var i = 0, l = set.length; i < l; i ++) {
657
+ var pattern = set[i], file = f
658
+ if (options.matchBase && pattern.length === 1) {
659
+ file = [filename]
660
+ }
661
+ var hit = this.matchOne(file, pattern, partial)
662
+ if (hit) {
663
+ if (options.flipNegate) return true
664
+ return !this.negate
665
+ }
666
+ }
667
+
668
+ // didn't get any hits. this is success if it's a negative
669
+ // pattern, failure otherwise.
670
+ if (options.flipNegate) return false
671
+ return this.negate
672
+ }
673
+
674
+ // set partial to true to test if, for example,
675
+ // "/a/b" matches the start of "/*/b/*/d"
676
+ // Partial means, if you run out of file before you run
677
+ // out of pattern, then that's fine, as long as all
678
+ // the parts match.
679
+ Minimatch.prototype.matchOne = function (file, pattern, partial) {
680
+ var options = this.options
681
+
682
+ this.debug("matchOne",
683
+ { "this": this
684
+ , file: file
685
+ , pattern: pattern })
686
+
687
+ this.debug("matchOne", file.length, pattern.length)
688
+
689
+ for ( var fi = 0
690
+ , pi = 0
691
+ , fl = file.length
692
+ , pl = pattern.length
693
+ ; (fi < fl) && (pi < pl)
694
+ ; fi ++, pi ++ ) {
695
+
696
+ this.debug("matchOne loop")
697
+ var p = pattern[pi]
698
+ , f = file[fi]
699
+
700
+ this.debug(pattern, p, f)
701
+
702
+ // should be impossible.
703
+ // some invalid regexp stuff in the set.
704
+ if (p === false) return false
705
+
706
+ if (p === GLOBSTAR) {
707
+ this.debug('GLOBSTAR', [pattern, p, f])
708
+
709
+ // "**"
710
+ // a/**/b/**/c would match the following:
711
+ // a/b/x/y/z/c
712
+ // a/x/y/z/b/c
713
+ // a/b/x/b/x/c
714
+ // a/b/c
715
+ // To do this, take the rest of the pattern after
716
+ // the **, and see if it would match the file remainder.
717
+ // If so, return success.
718
+ // If not, the ** "swallows" a segment, and try again.
719
+ // This is recursively awful.
720
+ //
721
+ // a/**/b/**/c matching a/b/x/y/z/c
722
+ // - a matches a
723
+ // - doublestar
724
+ // - matchOne(b/x/y/z/c, b/**/c)
725
+ // - b matches b
726
+ // - doublestar
727
+ // - matchOne(x/y/z/c, c) -> no
728
+ // - matchOne(y/z/c, c) -> no
729
+ // - matchOne(z/c, c) -> no
730
+ // - matchOne(c, c) yes, hit
731
+ var fr = fi
732
+ , pr = pi + 1
733
+ if (pr === pl) {
734
+ this.debug('** at the end')
735
+ // a ** at the end will just swallow the rest.
736
+ // We have found a match.
737
+ // however, it will not swallow /.x, unless
738
+ // options.dot is set.
739
+ // . and .. are *never* matched by **, for explosively
740
+ // exponential reasons.
741
+ for ( ; fi < fl; fi ++) {
742
+ if (file[fi] === "." || file[fi] === ".." ||
743
+ (!options.dot && file[fi].charAt(0) === ".")) return false
744
+ }
745
+ return true
746
+ }
747
+
748
+ // ok, let's see if we can swallow whatever we can.
749
+ WHILE: while (fr < fl) {
750
+ var swallowee = file[fr]
751
+
752
+ this.debug('\nglobstar while',
753
+ file, fr, pattern, pr, swallowee)
754
+
755
+ // XXX remove this slice. Just pass the start index.
756
+ if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
757
+ this.debug('globstar found match!', fr, fl, swallowee)
758
+ // found a match.
759
+ return true
760
+ } else {
761
+ // can't swallow "." or ".." ever.
762
+ // can only swallow ".foo" when explicitly asked.
763
+ if (swallowee === "." || swallowee === ".." ||
764
+ (!options.dot && swallowee.charAt(0) === ".")) {
765
+ this.debug("dot detected!", file, fr, pattern, pr)
766
+ break WHILE
767
+ }
768
+
769
+ // ** swallows a segment, and continue.
770
+ this.debug('globstar swallow a segment, and continue')
771
+ fr ++
772
+ }
773
+ }
774
+ // no match was found.
775
+ // However, in partial mode, we can't say this is necessarily over.
776
+ // If there's more *pattern* left, then
777
+ if (partial) {
778
+ // ran out of file
779
+ this.debug("\n>>> no match, partial?", file, fr, pattern, pr)
780
+ if (fr === fl) return true
781
+ }
782
+ return false
783
+ }
784
+
785
+ // something other than **
786
+ // non-magic patterns just have to match exactly
787
+ // patterns with magic have been turned into regexps.
788
+ var hit
789
+ if (typeof p === "string") {
790
+ if (options.nocase) {
791
+ hit = f.toLowerCase() === p.toLowerCase()
792
+ } else {
793
+ hit = f === p
794
+ }
795
+ this.debug("string match", p, f, hit)
796
+ } else {
797
+ hit = f.match(p)
798
+ this.debug("pattern match", p, f, hit)
799
+ }
800
+
801
+ if (!hit) return false
802
+ }
803
+
804
+ // Note: ending in / means that we'll get a final ""
805
+ // at the end of the pattern. This can only match a
806
+ // corresponding "" at the end of the file.
807
+ // If the file ends in /, then it can only match a
808
+ // a pattern that ends in /, unless the pattern just
809
+ // doesn't have any more for it. But, a/b/ should *not*
810
+ // match "a/b/*", even though "" matches against the
811
+ // [^/]*? pattern, except in partial mode, where it might
812
+ // simply not be reached yet.
813
+ // However, a/b/ should still satisfy a/*
814
+
815
+ // now either we fell off the end of the pattern, or we're done.
816
+ if (fi === fl && pi === pl) {
817
+ // ran out of pattern and filename at the same time.
818
+ // an exact hit!
819
+ return true
820
+ } else if (fi === fl) {
821
+ // ran out of file, but still had pattern left.
822
+ // this is ok if we're doing the match as part of
823
+ // a glob fs traversal.
824
+ return partial
825
+ } else if (pi === pl) {
826
+ // ran out of pattern, still have file left.
827
+ // this is only acceptable if we're on the very last
828
+ // empty segment of a file with a trailing slash.
829
+ // a/* should match a/b/
830
+ var emptyFileEnd = (fi === fl - 1) && (file[fi] === "")
831
+ return emptyFileEnd
832
+ }
833
+
834
+ // should be unreachable.
835
+ throw new Error("wtf?")
836
+ }
837
+
838
+
839
+ // replace stuff like \* with *
840
+ function globUnescape (s) {
841
+ return s.replace(/\\(.)/g, "$1")
842
+ }
843
+
844
+
845
+ function regExpEscape (s) {
846
+ return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
847
+ }
848
+
849
+ }).call(this,require('_process'))
850
+ },{"_process":5,"brace-expansion":2}],2:[function(require,module,exports){
851
+ var concatMap = require('concat-map');
852
+ var balanced = require('balanced-match');
853
+
854
+ module.exports = expandTop;
855
+
856
+ var escSlash = '\0SLASH'+Math.random()+'\0';
857
+ var escOpen = '\0OPEN'+Math.random()+'\0';
858
+ var escClose = '\0CLOSE'+Math.random()+'\0';
859
+ var escComma = '\0COMMA'+Math.random()+'\0';
860
+ var escPeriod = '\0PERIOD'+Math.random()+'\0';
861
+
862
+ function numeric(str) {
863
+ return parseInt(str, 10) == str
864
+ ? parseInt(str, 10)
865
+ : str.charCodeAt(0);
866
+ }
867
+
868
+ function escapeBraces(str) {
869
+ return str.split('\\\\').join(escSlash)
870
+ .split('\\{').join(escOpen)
871
+ .split('\\}').join(escClose)
872
+ .split('\\,').join(escComma)
873
+ .split('\\.').join(escPeriod);
874
+ }
875
+
876
+ function unescapeBraces(str) {
877
+ return str.split(escSlash).join('\\')
878
+ .split(escOpen).join('{')
879
+ .split(escClose).join('}')
880
+ .split(escComma).join(',')
881
+ .split(escPeriod).join('.');
882
+ }
883
+
884
+
885
+ // Basically just str.split(","), but handling cases
886
+ // where we have nested braced sections, which should be
887
+ // treated as individual members, like {a,{b,c},d}
888
+ function parseCommaParts(str) {
889
+ if (!str)
890
+ return [''];
891
+
892
+ var parts = [];
893
+ var m = balanced('{', '}', str);
894
+
895
+ if (!m)
896
+ return str.split(',');
897
+
898
+ var pre = m.pre;
899
+ var body = m.body;
900
+ var post = m.post;
901
+ var p = pre.split(',');
902
+
903
+ p[p.length-1] += '{' + body + '}';
904
+ var postParts = parseCommaParts(post);
905
+ if (post.length) {
906
+ p[p.length-1] += postParts.shift();
907
+ p.push.apply(p, postParts);
908
+ }
909
+
910
+ parts.push.apply(parts, p);
911
+
912
+ return parts;
913
+ }
914
+
915
+ function expandTop(str) {
916
+ if (!str)
917
+ return [];
918
+
919
+ var expansions = expand(escapeBraces(str));
920
+ return expansions.filter(identity).map(unescapeBraces);
921
+ }
922
+
923
+ function identity(e) {
924
+ return e;
925
+ }
926
+
927
+ function embrace(str) {
928
+ return '{' + str + '}';
929
+ }
930
+ function isPadded(el) {
931
+ return /^-?0\d/.test(el);
932
+ }
933
+
934
+ function lte(i, y) {
935
+ return i <= y;
936
+ }
937
+ function gte(i, y) {
938
+ return i >= y;
939
+ }
940
+
941
+ function expand(str) {
942
+ var expansions = [];
943
+
944
+ var m = balanced('{', '}', str);
945
+ if (!m || /\$$/.test(m.pre)) return [str];
946
+
947
+ var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
948
+ var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
949
+ var isSequence = isNumericSequence || isAlphaSequence;
950
+ var isOptions = /^(.*,)+(.+)?$/.test(m.body);
951
+ if (!isSequence && !isOptions) {
952
+ // {a},b}
953
+ if (m.post.match(/,.*}/)) {
954
+ str = m.pre + '{' + m.body + escClose + m.post;
955
+ return expand(str);
956
+ }
957
+ return [str];
958
+ }
959
+
960
+ var n;
961
+ if (isSequence) {
962
+ n = m.body.split(/\.\./);
963
+ } else {
964
+ n = parseCommaParts(m.body);
965
+ if (n.length === 1) {
966
+ // x{{a,b}}y ==> x{a}y x{b}y
967
+ n = expand(n[0]).map(embrace);
968
+ if (n.length === 1) {
969
+ var post = m.post.length
970
+ ? expand(m.post)
971
+ : [''];
972
+ return post.map(function(p) {
973
+ return m.pre + n[0] + p;
974
+ });
975
+ }
976
+ }
977
+ }
978
+
979
+ // at this point, n is the parts, and we know it's not a comma set
980
+ // with a single entry.
981
+
982
+ // no need to expand pre, since it is guaranteed to be free of brace-sets
983
+ var pre = m.pre;
984
+ var post = m.post.length
985
+ ? expand(m.post)
986
+ : [''];
987
+
988
+ var N;
989
+
990
+ if (isSequence) {
991
+ var x = numeric(n[0]);
992
+ var y = numeric(n[1]);
993
+ var width = Math.max(n[0].length, n[1].length)
994
+ var incr = n.length == 3
995
+ ? Math.abs(numeric(n[2]))
996
+ : 1;
997
+ var test = lte;
998
+ var reverse = y < x;
999
+ if (reverse) {
1000
+ incr *= -1;
1001
+ test = gte;
1002
+ }
1003
+ var pad = n.some(isPadded);
1004
+
1005
+ N = [];
1006
+
1007
+ for (var i = x; test(i, y); i += incr) {
1008
+ var c;
1009
+ if (isAlphaSequence) {
1010
+ c = String.fromCharCode(i);
1011
+ if (c === '\\')
1012
+ c = '';
1013
+ } else {
1014
+ c = String(i);
1015
+ if (pad) {
1016
+ var need = width - c.length;
1017
+ if (need > 0) {
1018
+ var z = new Array(need + 1).join('0');
1019
+ if (i < 0)
1020
+ c = '-' + z + c.slice(1);
1021
+ else
1022
+ c = z + c;
1023
+ }
1024
+ }
1025
+ }
1026
+ N.push(c);
1027
+ }
1028
+ } else {
1029
+ N = concatMap(n, function(el) { return expand(el) });
1030
+ }
1031
+
1032
+ for (var j = 0; j < N.length; j++) {
1033
+ for (var k = 0; k < post.length; k++) {
1034
+ expansions.push([pre, N[j], post[k]].join(''))
1035
+ }
1036
+ }
1037
+
1038
+ return expansions;
1039
+ }
1040
+
1041
+
1042
+ },{"balanced-match":3,"concat-map":4}],3:[function(require,module,exports){
1043
+ module.exports = balanced;
1044
+ function balanced(a, b, str) {
1045
+ var bal = 0;
1046
+ var m = {};
1047
+ var ended = false;
1048
+
1049
+ for (var i = 0; i < str.length; i++) {
1050
+ if (a == str.substr(i, a.length)) {
1051
+ if (!('start' in m)) m.start = i;
1052
+ bal++;
1053
+ }
1054
+ else if (b == str.substr(i, b.length) && 'start' in m) {
1055
+ ended = true;
1056
+ bal--;
1057
+ if (!bal) {
1058
+ m.end = i;
1059
+ m.pre = str.substr(0, m.start);
1060
+ m.body = (m.end - m.start > 1)
1061
+ ? str.substring(m.start + a.length, m.end)
1062
+ : '';
1063
+ m.post = str.slice(m.end + b.length);
1064
+ return m;
1065
+ }
1066
+ }
1067
+ }
1068
+
1069
+ // if we opened more than we closed, find the one we closed
1070
+ if (bal && ended) {
1071
+ var start = m.start + a.length;
1072
+ m = balanced(a, b, str.substr(start));
1073
+ if (m) {
1074
+ m.start += start;
1075
+ m.end += start;
1076
+ m.pre = str.slice(0, start) + m.pre;
1077
+ }
1078
+ return m;
1079
+ }
1080
+ }
1081
+
1082
+ },{}],4:[function(require,module,exports){
1083
+ module.exports = function (xs, fn) {
1084
+ var res = [];
1085
+ for (var i = 0; i < xs.length; i++) {
1086
+ var x = fn(xs[i], i);
1087
+ if (Array.isArray(x)) res.push.apply(res, x);
1088
+ else res.push(x);
1089
+ }
1090
+ return res;
1091
+ };
1092
+
1093
+ },{}],5:[function(require,module,exports){
1094
+ // shim for using process in browser
1095
+
1096
+ var process = module.exports = {};
1097
+
1098
+ process.nextTick = (function () {
1099
+ var canSetImmediate = typeof window !== 'undefined'
1100
+ && window.setImmediate;
1101
+ var canMutationObserver = typeof window !== 'undefined'
1102
+ && window.MutationObserver;
1103
+ var canPost = typeof window !== 'undefined'
1104
+ && window.postMessage && window.addEventListener
1105
+ ;
1106
+
1107
+ if (canSetImmediate) {
1108
+ return function (f) { return window.setImmediate(f) };
1109
+ }
1110
+
1111
+ var queue = [];
1112
+
1113
+ if (canMutationObserver) {
1114
+ var hiddenDiv = document.createElement("div");
1115
+ var observer = new MutationObserver(function () {
1116
+ var queueList = queue.slice();
1117
+ queue.length = 0;
1118
+ queueList.forEach(function (fn) {
1119
+ fn();
1120
+ });
1121
+ });
1122
+
1123
+ observer.observe(hiddenDiv, { attributes: true });
1124
+
1125
+ return function nextTick(fn) {
1126
+ if (!queue.length) {
1127
+ hiddenDiv.setAttribute('yes', 'no');
1128
+ }
1129
+ queue.push(fn);
1130
+ };
1131
+ }
1132
+
1133
+ if (canPost) {
1134
+ window.addEventListener('message', function (ev) {
1135
+ var source = ev.source;
1136
+ if ((source === window || source === null) && ev.data === 'process-tick') {
1137
+ ev.stopPropagation();
1138
+ if (queue.length > 0) {
1139
+ var fn = queue.shift();
1140
+ fn();
1141
+ }
1142
+ }
1143
+ }, true);
1144
+
1145
+ return function nextTick(fn) {
1146
+ queue.push(fn);
1147
+ window.postMessage('process-tick', '*');
1148
+ };
1149
+ }
1150
+
1151
+ return function nextTick(fn) {
1152
+ setTimeout(fn, 0);
1153
+ };
1154
+ })();
1155
+
1156
+ process.title = 'browser';
1157
+ process.browser = true;
1158
+ process.env = {};
1159
+ process.argv = [];
1160
+
1161
+ function noop() {}
1162
+
1163
+ process.on = noop;
1164
+ process.addListener = noop;
1165
+ process.once = noop;
1166
+ process.off = noop;
1167
+ process.removeListener = noop;
1168
+ process.removeAllListeners = noop;
1169
+ process.emit = noop;
1170
+
1171
+ process.binding = function (name) {
1172
+ throw new Error('process.binding is not supported');
1173
+ };
1174
+
1175
+ // TODO(shtylman)
1176
+ process.cwd = function () { return '/' };
1177
+ process.chdir = function (dir) {
1178
+ throw new Error('process.chdir is not supported');
1179
+ };
1180
+
1181
+ },{}]},{},[1]);