opal 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/lib/opal/cli.rb +9 -1
  4. data/lib/opal/cli_options.rb +12 -3
  5. data/lib/opal/cli_runners/nodejs.rb +3 -2
  6. data/lib/opal/version.rb +1 -1
  7. data/opal/corelib/kernel.rb +7 -0
  8. data/opal/corelib/runtime.js +4 -0
  9. data/spec/lib/cli_spec.rb +16 -0
  10. data/stdlib/nodejs.rb +1 -2
  11. data/stdlib/nodejs/{process.rb → kernel.rb} +7 -4
  12. data/stdlib/nodejs/node_modules/.bin/js-yaml +140 -0
  13. data/stdlib/nodejs/node_modules/glob/LICENSE +15 -0
  14. data/stdlib/nodejs/node_modules/glob/README.md +357 -0
  15. data/stdlib/nodejs/node_modules/glob/common.js +177 -0
  16. data/stdlib/nodejs/node_modules/glob/glob.js +649 -0
  17. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
  18. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/LICENSE +15 -0
  19. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/README.md +37 -0
  20. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +44 -0
  21. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
  22. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
  23. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +52 -0
  24. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
  25. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
  26. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +61 -0
  27. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +97 -0
  28. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  29. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/README.md +42 -0
  30. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  31. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  32. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +51 -0
  33. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +25 -0
  34. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  35. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
  36. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  37. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/README.md +216 -0
  38. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
  39. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
  40. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
  41. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
  42. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
  43. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
  44. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  45. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  46. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  47. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +4 -0
  48. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  49. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  50. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  51. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  52. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
  53. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  54. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +4 -0
  55. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  56. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  57. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  58. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  59. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
  60. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  61. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
  62. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
  63. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
  64. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
  65. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
  66. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
  67. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
  68. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
  69. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
  70. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
  71. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
  72. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
  73. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
  74. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +60 -0
  75. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  76. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
  77. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  78. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  79. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +27 -0
  80. data/stdlib/nodejs/node_modules/glob/node_modules/once/README.md +51 -0
  81. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
  82. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  83. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +52 -0
  84. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  85. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  86. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +21 -0
  87. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +60 -0
  88. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +23 -0
  89. data/stdlib/nodejs/node_modules/glob/package.json +72 -0
  90. data/stdlib/nodejs/node_modules/glob/sync.js +409 -0
  91. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +277 -0
  92. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +21 -0
  93. data/stdlib/nodejs/node_modules/js-yaml/README.md +288 -0
  94. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +140 -0
  95. data/stdlib/nodejs/node_modules/js-yaml/bower.json +23 -0
  96. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.js +3666 -0
  97. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +3 -0
  98. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +102 -0
  99. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +18 -0
  100. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +31 -0
  101. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +22 -0
  102. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +18 -0
  103. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +197 -0
  104. data/stdlib/nodejs/node_modules/js-yaml/index.js +7 -0
  105. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +39 -0
  106. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +62 -0
  107. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +554 -0
  108. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
  109. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +1581 -0
  110. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
  111. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
  112. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  113. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  114. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  115. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  116. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  117. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  118. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +133 -0
  119. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +37 -0
  120. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +110 -0
  121. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +183 -0
  122. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +85 -0
  123. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +84 -0
  124. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +27 -0
  125. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  126. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  127. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
  128. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +56 -0
  129. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +61 -0
  130. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  131. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +33 -0
  132. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  133. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +98 -0
  134. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esparse +117 -0
  135. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esvalidate +177 -0
  136. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +115 -0
  137. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
  138. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
  139. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
  140. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
  141. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
  142. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
  143. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
  144. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
  145. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
  146. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
  147. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
  148. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
  149. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
  150. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
  151. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
  152. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
  153. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
  154. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
  155. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
  156. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
  157. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
  158. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
  159. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
  160. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
  161. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
  162. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
  163. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
  164. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
  165. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
  166. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1168 -0
  167. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
  168. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
  169. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +798 -0
  170. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
  171. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +2 -0
  172. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +8 -0
  173. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +825 -0
  174. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +33 -0
  175. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
  176. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +10 -0
  177. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +26 -0
  178. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
  179. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  180. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +107 -0
  181. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +23 -0
  182. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +22 -0
  183. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +69 -0
  184. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +6 -0
  185. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1415 -0
  186. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +62 -0
  187. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
  188. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
  189. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
  190. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
  191. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +69 -0
  192. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
  193. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
  194. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
  195. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
  196. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
  197. data/stdlib/nodejs/node_modules/js-yaml/package.json +83 -0
  198. data/{package.json → stdlib/nodejs/package.json} +0 -3
  199. data/stdlib/phantomjs.rb +1 -6
  200. data/tasks/testing.rake +1 -4
  201. metadata +191 -6
  202. data/stdlib/nodejs/runtime.rb +0 -26
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "wrappy",
3
+ "version": "1.0.1",
4
+ "description": "Callback wrapping utility",
5
+ "main": "wrappy.js",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "dependencies": {},
10
+ "devDependencies": {
11
+ "tap": "^0.4.12"
12
+ },
13
+ "scripts": {
14
+ "test": "tap test/*.js"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/npm/wrappy"
19
+ },
20
+ "author": {
21
+ "name": "Isaac Z. Schlueter",
22
+ "email": "i@izs.me",
23
+ "url": "http://blog.izs.me/"
24
+ },
25
+ "license": "ISC",
26
+ "bugs": {
27
+ "url": "https://github.com/npm/wrappy/issues"
28
+ },
29
+ "homepage": "https://github.com/npm/wrappy",
30
+ "gitHead": "006a8cbac6b99988315834c207896eed71fd069a",
31
+ "_id": "wrappy@1.0.1",
32
+ "_shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739",
33
+ "_from": "wrappy@>=1.0.0 <2.0.0",
34
+ "_npmVersion": "2.0.0",
35
+ "_nodeVersion": "0.10.31",
36
+ "_npmUser": {
37
+ "name": "isaacs",
38
+ "email": "i@izs.me"
39
+ },
40
+ "maintainers": [
41
+ {
42
+ "name": "isaacs",
43
+ "email": "i@izs.me"
44
+ }
45
+ ],
46
+ "dist": {
47
+ "shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739",
48
+ "tarball": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
49
+ },
50
+ "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
51
+ "readme": "ERROR: No README data found!"
52
+ }
@@ -0,0 +1,51 @@
1
+ var test = require('tap').test
2
+ var wrappy = require('../wrappy.js')
3
+
4
+ test('basic', function (t) {
5
+ function onceifier (cb) {
6
+ var called = false
7
+ return function () {
8
+ if (called) return
9
+ called = true
10
+ return cb.apply(this, arguments)
11
+ }
12
+ }
13
+ onceifier.iAmOnce = {}
14
+ var once = wrappy(onceifier)
15
+ t.equal(once.iAmOnce, onceifier.iAmOnce)
16
+
17
+ var called = 0
18
+ function boo () {
19
+ t.equal(called, 0)
20
+ called++
21
+ }
22
+ // has some rando property
23
+ boo.iAmBoo = true
24
+
25
+ var onlyPrintOnce = once(boo)
26
+
27
+ onlyPrintOnce() // prints 'boo'
28
+ onlyPrintOnce() // does nothing
29
+ t.equal(called, 1)
30
+
31
+ // random property is retained!
32
+ t.equal(onlyPrintOnce.iAmBoo, true)
33
+
34
+ var logs = []
35
+ var logwrap = wrappy(function (msg, cb) {
36
+ logs.push(msg + ' wrapping cb')
37
+ return function () {
38
+ logs.push(msg + ' before cb')
39
+ var ret = cb.apply(this, arguments)
40
+ logs.push(msg + ' after cb')
41
+ }
42
+ })
43
+
44
+ var c = logwrap('foo', function () {
45
+ t.same(logs, [ 'foo wrapping cb', 'foo before cb' ])
46
+ })
47
+ c()
48
+ t.same(logs, [ 'foo wrapping cb', 'foo before cb', 'foo after cb' ])
49
+
50
+ t.end()
51
+ })
@@ -0,0 +1,33 @@
1
+ // Returns a wrapper function that returns a wrapped callback
2
+ // The wrapper function should do some stuff, and return a
3
+ // presumably different callback function.
4
+ // This makes sure that own properties are retained, so that
5
+ // decorations and such are not lost along the way.
6
+ module.exports = wrappy
7
+ function wrappy (fn, cb) {
8
+ if (fn && cb) return wrappy(fn)(cb)
9
+
10
+ if (typeof fn !== 'function')
11
+ throw new TypeError('need wrapper function')
12
+
13
+ Object.keys(fn).forEach(function (k) {
14
+ wrapper[k] = fn[k]
15
+ })
16
+
17
+ return wrapper
18
+
19
+ function wrapper() {
20
+ var args = new Array(arguments.length)
21
+ for (var i = 0; i < args.length; i++) {
22
+ args[i] = arguments[i]
23
+ }
24
+ var ret = fn.apply(this, args)
25
+ var cb = args[args.length-1]
26
+ if (typeof ret === 'function' && ret !== cb) {
27
+ Object.keys(cb).forEach(function (k) {
28
+ ret[k] = cb[k]
29
+ })
30
+ }
31
+ return ret
32
+ }
33
+ }
@@ -0,0 +1,21 @@
1
+ var wrappy = require('wrappy')
2
+ module.exports = wrappy(once)
3
+
4
+ once.proto = once(function () {
5
+ Object.defineProperty(Function.prototype, 'once', {
6
+ value: function () {
7
+ return once(this)
8
+ },
9
+ configurable: true
10
+ })
11
+ })
12
+
13
+ function once (fn) {
14
+ var f = function () {
15
+ if (f.called) return f.value
16
+ f.called = true
17
+ return f.value = fn.apply(this, arguments)
18
+ }
19
+ f.called = false
20
+ return f
21
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "once",
3
+ "version": "1.3.1",
4
+ "description": "Run a function exactly one time",
5
+ "main": "once.js",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "dependencies": {
10
+ "wrappy": "1"
11
+ },
12
+ "devDependencies": {
13
+ "tap": "~0.3.0"
14
+ },
15
+ "scripts": {
16
+ "test": "tap test/*.js"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git://github.com/isaacs/once"
21
+ },
22
+ "keywords": [
23
+ "once",
24
+ "function",
25
+ "one",
26
+ "single"
27
+ ],
28
+ "author": {
29
+ "name": "Isaac Z. Schlueter",
30
+ "email": "i@izs.me",
31
+ "url": "http://blog.izs.me/"
32
+ },
33
+ "license": "BSD",
34
+ "gitHead": "c90ac02a74f433ce47f6938869e68dd6196ffc2c",
35
+ "bugs": {
36
+ "url": "https://github.com/isaacs/once/issues"
37
+ },
38
+ "homepage": "https://github.com/isaacs/once",
39
+ "_id": "once@1.3.1",
40
+ "_shasum": "f3f3e4da5b7d27b5c732969ee3e67e729457b31f",
41
+ "_from": "once@>=1.3.0 <2.0.0",
42
+ "_npmVersion": "2.0.0",
43
+ "_nodeVersion": "0.10.31",
44
+ "_npmUser": {
45
+ "name": "isaacs",
46
+ "email": "i@izs.me"
47
+ },
48
+ "maintainers": [
49
+ {
50
+ "name": "isaacs",
51
+ "email": "i@izs.me"
52
+ }
53
+ ],
54
+ "dist": {
55
+ "shasum": "f3f3e4da5b7d27b5c732969ee3e67e729457b31f",
56
+ "tarball": "http://registry.npmjs.org/once/-/once-1.3.1.tgz"
57
+ },
58
+ "_resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
59
+ "readme": "ERROR: No README data found!"
60
+ }
@@ -0,0 +1,23 @@
1
+ var test = require('tap').test
2
+ var once = require('../once.js')
3
+
4
+ test('once', function (t) {
5
+ var f = 0
6
+ function fn (g) {
7
+ t.equal(f, 0)
8
+ f ++
9
+ return f + g + this
10
+ }
11
+ fn.ownProperty = {}
12
+ var foo = once(fn)
13
+ t.equal(fn.ownProperty, foo.ownProperty)
14
+ t.notOk(foo.called)
15
+ for (var i = 0; i < 1E3; i++) {
16
+ t.same(f, i === 0 ? 0 : 1)
17
+ var g = foo.call(1, 1)
18
+ t.ok(foo.called)
19
+ t.same(g, 3)
20
+ t.same(f, 1)
21
+ }
22
+ t.end()
23
+ })
@@ -0,0 +1,72 @@
1
+ {
2
+ "author": {
3
+ "name": "Isaac Z. Schlueter",
4
+ "email": "i@izs.me",
5
+ "url": "http://blog.izs.me/"
6
+ },
7
+ "name": "glob",
8
+ "description": "a little globber",
9
+ "version": "4.3.5",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git://github.com/isaacs/node-glob.git"
13
+ },
14
+ "main": "glob.js",
15
+ "files": [
16
+ "glob.js",
17
+ "sync.js",
18
+ "common.js"
19
+ ],
20
+ "engines": {
21
+ "node": "*"
22
+ },
23
+ "dependencies": {
24
+ "inflight": "^1.0.4",
25
+ "inherits": "2",
26
+ "minimatch": "^2.0.1",
27
+ "once": "^1.3.0"
28
+ },
29
+ "devDependencies": {
30
+ "mkdirp": "0",
31
+ "rimraf": "^2.2.8",
32
+ "tap": "^0.5.0",
33
+ "tick": "0.0.6"
34
+ },
35
+ "scripts": {
36
+ "prepublish": "npm run benchclean",
37
+ "profclean": "rm -f v8.log profile.txt",
38
+ "test": "npm run profclean && tap test/*.js",
39
+ "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
40
+ "bench": "bash benchmark.sh",
41
+ "prof": "bash prof.sh && cat profile.txt",
42
+ "benchclean": "bash benchclean.sh"
43
+ },
44
+ "license": "ISC",
45
+ "gitHead": "9de4cb6bfeb9c8458cf188fe91447b99bf8f3cfd",
46
+ "bugs": {
47
+ "url": "https://github.com/isaacs/node-glob/issues"
48
+ },
49
+ "homepage": "https://github.com/isaacs/node-glob",
50
+ "_id": "glob@4.3.5",
51
+ "_shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3",
52
+ "_from": "glob@latest",
53
+ "_npmVersion": "2.2.0",
54
+ "_nodeVersion": "0.10.35",
55
+ "_npmUser": {
56
+ "name": "isaacs",
57
+ "email": "i@izs.me"
58
+ },
59
+ "maintainers": [
60
+ {
61
+ "name": "isaacs",
62
+ "email": "i@izs.me"
63
+ }
64
+ ],
65
+ "dist": {
66
+ "shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3",
67
+ "tarball": "http://registry.npmjs.org/glob/-/glob-4.3.5.tgz"
68
+ },
69
+ "directories": {},
70
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz",
71
+ "readme": "ERROR: No README data found!"
72
+ }
@@ -0,0 +1,409 @@
1
+ module.exports = globSync
2
+ globSync.GlobSync = GlobSync
3
+
4
+ var fs = require('fs')
5
+ var minimatch = require('minimatch')
6
+ var Minimatch = minimatch.Minimatch
7
+ var Glob = require('./glob.js').Glob
8
+ var util = require('util')
9
+ var path = require('path')
10
+ var assert = require('assert')
11
+ var common = require('./common.js')
12
+ var alphasort = common.alphasort
13
+ var alphasorti = common.alphasorti
14
+ var isAbsolute = common.isAbsolute
15
+ var setopts = common.setopts
16
+ var ownProp = common.ownProp
17
+
18
+ function globSync (pattern, options) {
19
+ if (typeof options === 'function' || arguments.length === 3)
20
+ throw new TypeError('callback provided to sync glob')
21
+
22
+ return new GlobSync(pattern, options).found
23
+ }
24
+
25
+ function GlobSync (pattern, options) {
26
+ if (!pattern)
27
+ throw new Error('must provide pattern')
28
+
29
+ if (typeof options === 'function' || arguments.length === 3)
30
+ throw new TypeError('callback provided to sync glob')
31
+
32
+ if (!(this instanceof GlobSync))
33
+ return new GlobSync(pattern, options)
34
+
35
+ setopts(this, pattern, options)
36
+
37
+ if (this.noprocess)
38
+ return this
39
+
40
+ var n = this.minimatch.set.length
41
+ this.matches = new Array(n)
42
+ for (var i = 0; i < n; i ++) {
43
+ this._process(this.minimatch.set[i], i, false)
44
+ }
45
+ this._finish()
46
+ }
47
+
48
+ GlobSync.prototype._finish = function () {
49
+ assert(this instanceof GlobSync)
50
+ common.finish(this)
51
+ }
52
+
53
+
54
+ GlobSync.prototype._process = function (pattern, index, inGlobStar) {
55
+ assert(this instanceof GlobSync)
56
+
57
+ // Get the first [n] parts of pattern that are all strings.
58
+ var n = 0
59
+ while (typeof pattern[n] === 'string') {
60
+ n ++
61
+ }
62
+ // now n is the index of the first one that is *not* a string.
63
+
64
+ // See if there's anything else
65
+ var prefix
66
+ switch (n) {
67
+ // if not, then this is rather simple
68
+ case pattern.length:
69
+ this._processSimple(pattern.join('/'), index)
70
+ return
71
+
72
+ case 0:
73
+ // pattern *starts* with some non-trivial item.
74
+ // going to readdir(cwd), but not include the prefix in matches.
75
+ prefix = null
76
+ break
77
+
78
+ default:
79
+ // pattern has some string bits in the front.
80
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
81
+ // or 'relative' like '../baz'
82
+ prefix = pattern.slice(0, n).join('/')
83
+ break
84
+ }
85
+
86
+ var remain = pattern.slice(n)
87
+
88
+ // get the list of entries.
89
+ var read
90
+ if (prefix === null)
91
+ read = '.'
92
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
93
+ if (!prefix || !isAbsolute(prefix))
94
+ prefix = '/' + prefix
95
+ read = prefix
96
+ } else
97
+ read = prefix
98
+
99
+ var abs = this._makeAbs(read)
100
+
101
+ var isGlobStar = remain[0] === minimatch.GLOBSTAR
102
+ if (isGlobStar)
103
+ this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
104
+ else
105
+ this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
106
+ }
107
+
108
+ GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
109
+ var entries = this._readdir(abs, inGlobStar)
110
+
111
+ // if the abs isn't a dir, then nothing can match!
112
+ if (!entries)
113
+ return
114
+
115
+ // It will only match dot entries if it starts with a dot, or if
116
+ // dot is set. Stuff like @(.foo|.bar) isn't allowed.
117
+ var pn = remain[0]
118
+ var negate = !!this.minimatch.negate
119
+ var rawGlob = pn._glob
120
+ var dotOk = this.dot || rawGlob.charAt(0) === '.'
121
+
122
+ var matchedEntries = []
123
+ for (var i = 0; i < entries.length; i++) {
124
+ var e = entries[i]
125
+ if (e.charAt(0) !== '.' || dotOk) {
126
+ var m
127
+ if (negate && !prefix) {
128
+ m = !e.match(pn)
129
+ } else {
130
+ m = e.match(pn)
131
+ }
132
+ if (m)
133
+ matchedEntries.push(e)
134
+ }
135
+ }
136
+
137
+ var len = matchedEntries.length
138
+ // If there are no matched entries, then nothing matches.
139
+ if (len === 0)
140
+ return
141
+
142
+ // if this is the last remaining pattern bit, then no need for
143
+ // an additional stat *unless* the user has specified mark or
144
+ // stat explicitly. We know they exist, since readdir returned
145
+ // them.
146
+
147
+ if (remain.length === 1 && !this.mark && !this.stat) {
148
+ if (!this.matches[index])
149
+ this.matches[index] = Object.create(null)
150
+
151
+ for (var i = 0; i < len; i ++) {
152
+ var e = matchedEntries[i]
153
+ if (prefix) {
154
+ if (prefix.slice(-1) !== '/')
155
+ e = prefix + '/' + e
156
+ else
157
+ e = prefix + e
158
+ }
159
+
160
+ if (e.charAt(0) === '/' && !this.nomount) {
161
+ e = path.join(this.root, e)
162
+ }
163
+ this.matches[index][e] = true
164
+ }
165
+ // This was the last one, and no stats were needed
166
+ return
167
+ }
168
+
169
+ // now test all matched entries as stand-ins for that part
170
+ // of the pattern.
171
+ remain.shift()
172
+ for (var i = 0; i < len; i ++) {
173
+ var e = matchedEntries[i]
174
+ var newPattern
175
+ if (prefix)
176
+ newPattern = [prefix, e]
177
+ else
178
+ newPattern = [e]
179
+ this._process(newPattern.concat(remain), index, inGlobStar)
180
+ }
181
+ }
182
+
183
+
184
+ GlobSync.prototype._emitMatch = function (index, e) {
185
+ if (!this.matches[index][e]) {
186
+ if (this.nodir) {
187
+ var c = this.cache[this._makeAbs(e)]
188
+ if (c === 'DIR' || Array.isArray(c))
189
+ return
190
+ }
191
+
192
+ this.matches[index][e] = true
193
+ if (this.stat || this.mark)
194
+ this._stat(this._makeAbs(e))
195
+ }
196
+ }
197
+
198
+
199
+ GlobSync.prototype._readdirInGlobStar = function (abs) {
200
+ var entries
201
+ var lstat
202
+ var stat
203
+ try {
204
+ lstat = fs.lstatSync(abs)
205
+ } catch (er) {
206
+ // lstat failed, doesn't exist
207
+ return null
208
+ }
209
+
210
+ var isSym = lstat.isSymbolicLink()
211
+ this.symlinks[abs] = isSym
212
+
213
+ // If it's not a symlink or a dir, then it's definitely a regular file.
214
+ // don't bother doing a readdir in that case.
215
+ if (!isSym && !lstat.isDirectory())
216
+ this.cache[abs] = 'FILE'
217
+ else
218
+ entries = this._readdir(abs, false)
219
+
220
+ return entries
221
+ }
222
+
223
+ GlobSync.prototype._readdir = function (abs, inGlobStar) {
224
+ var entries
225
+
226
+ if (inGlobStar && !ownProp(this.symlinks, abs))
227
+ return this._readdirInGlobStar(abs)
228
+
229
+ if (ownProp(this.cache, abs)) {
230
+ var c = this.cache[abs]
231
+ if (!c || c === 'FILE')
232
+ return null
233
+
234
+ if (Array.isArray(c))
235
+ return c
236
+ }
237
+
238
+ try {
239
+ return this._readdirEntries(abs, fs.readdirSync(abs))
240
+ } catch (er) {
241
+ this._readdirError(abs, er)
242
+ return null
243
+ }
244
+ }
245
+
246
+ GlobSync.prototype._readdirEntries = function (abs, entries) {
247
+ // if we haven't asked to stat everything, then just
248
+ // assume that everything in there exists, so we can avoid
249
+ // having to stat it a second time.
250
+ if (!this.mark && !this.stat) {
251
+ for (var i = 0; i < entries.length; i ++) {
252
+ var e = entries[i]
253
+ if (abs === '/')
254
+ e = abs + e
255
+ else
256
+ e = abs + '/' + e
257
+ this.cache[e] = true
258
+ }
259
+ }
260
+
261
+ this.cache[abs] = entries
262
+
263
+ // mark and cache dir-ness
264
+ return entries
265
+ }
266
+
267
+ GlobSync.prototype._readdirError = function (f, er) {
268
+ // handle errors, and cache the information
269
+ switch (er.code) {
270
+ case 'ENOTDIR': // totally normal. means it *does* exist.
271
+ this.cache[f] = 'FILE'
272
+ break
273
+
274
+ case 'ENOENT': // not terribly unusual
275
+ case 'ELOOP':
276
+ case 'ENAMETOOLONG':
277
+ case 'UNKNOWN':
278
+ this.cache[f] = false
279
+ break
280
+
281
+ default: // some unusual error. Treat as failure.
282
+ this.cache[f] = false
283
+ if (this.strict) throw er
284
+ if (!this.silent) console.error('glob error', er)
285
+ break
286
+ }
287
+ }
288
+
289
+ GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
290
+
291
+ var entries = this._readdir(abs, inGlobStar)
292
+
293
+ // no entries means not a dir, so it can never have matches
294
+ // foo.txt/** doesn't match foo.txt
295
+ if (!entries)
296
+ return
297
+
298
+ // test without the globstar, and with every child both below
299
+ // and replacing the globstar.
300
+ var remainWithoutGlobStar = remain.slice(1)
301
+ var gspref = prefix ? [ prefix ] : []
302
+ var noGlobStar = gspref.concat(remainWithoutGlobStar)
303
+
304
+ // the noGlobStar pattern exits the inGlobStar state
305
+ this._process(noGlobStar, index, false)
306
+
307
+ var len = entries.length
308
+ var isSym = this.symlinks[abs]
309
+
310
+ // If it's a symlink, and we're in a globstar, then stop
311
+ if (isSym && inGlobStar)
312
+ return
313
+
314
+ for (var i = 0; i < len; i++) {
315
+ var e = entries[i]
316
+ if (e.charAt(0) === '.' && !this.dot)
317
+ continue
318
+
319
+ // these two cases enter the inGlobStar state
320
+ var instead = gspref.concat(entries[i], remainWithoutGlobStar)
321
+ this._process(instead, index, true)
322
+
323
+ var below = gspref.concat(entries[i], remain)
324
+ this._process(below, index, true)
325
+ }
326
+ }
327
+
328
+ GlobSync.prototype._processSimple = function (prefix, index) {
329
+ // XXX review this. Shouldn't it be doing the mounting etc
330
+ // before doing stat? kinda weird?
331
+ var exists = this._stat(prefix)
332
+
333
+ if (!this.matches[index])
334
+ this.matches[index] = Object.create(null)
335
+
336
+ // If it doesn't exist, then just mark the lack of results
337
+ if (!exists)
338
+ return
339
+
340
+ if (prefix && isAbsolute(prefix) && !this.nomount) {
341
+ var trail = /[\/\\]$/.test(prefix)
342
+ if (prefix.charAt(0) === '/') {
343
+ prefix = path.join(this.root, prefix)
344
+ } else {
345
+ prefix = path.resolve(this.root, prefix)
346
+ if (trail)
347
+ prefix += '/'
348
+ }
349
+ }
350
+
351
+ if (process.platform === 'win32')
352
+ prefix = prefix.replace(/\\/g, '/')
353
+
354
+ // Mark this as a match
355
+ this.matches[index][prefix] = true
356
+ }
357
+
358
+ // Returns either 'DIR', 'FILE', or false
359
+ GlobSync.prototype._stat = function (f) {
360
+ var abs = f
361
+ if (f.charAt(0) === '/')
362
+ abs = path.join(this.root, f)
363
+ else if (this.changedCwd)
364
+ abs = path.resolve(this.cwd, f)
365
+
366
+
367
+ if (f.length > this.maxLength)
368
+ return false
369
+
370
+ if (!this.stat && ownProp(this.cache, f)) {
371
+ var c = this.cache[f]
372
+
373
+ if (Array.isArray(c))
374
+ c = 'DIR'
375
+
376
+ // It exists, but not how we need it
377
+ if (abs.slice(-1) === '/' && c !== 'DIR')
378
+ return false
379
+
380
+ return c
381
+ }
382
+
383
+ var exists
384
+ var stat = this.statCache[abs]
385
+ if (!stat) {
386
+ try {
387
+ stat = fs.statSync(abs)
388
+ } catch (er) {
389
+ return false
390
+ }
391
+ }
392
+
393
+ this.statCache[abs] = stat
394
+
395
+ if (abs.slice(-1) === '/' && !stat.isDirectory())
396
+ return false
397
+
398
+ var c = stat.isDirectory() ? 'DIR' : 'FILE'
399
+ this.cache[f] = this.cache[f] || c
400
+ return c
401
+ }
402
+
403
+ GlobSync.prototype._mark = function (p) {
404
+ return common.mark(this, p)
405
+ }
406
+
407
+ GlobSync.prototype._makeAbs = function (f) {
408
+ return common.makeAbs(this, f)
409
+ }